Re: [PATCH] powerpc: Fix problems with 32bit PPC's running with more than 2GB of RAM
> Are you *sure* you can see all 4GB? I thought we lost some of the 32- > bit PCI address space for PCI IO.. Disclaimer: I'm no expert on > PCI :) You are right. I didn't think that through when I replied. We do lose some of it for MMIO (not IO). So we cannot really go all the way to 4G because we can't DMA to all of it, right. > FYI, I'm *very* close to having swiotlb fully functional on powerpc to > support larger RAM - I am able to boot with 6GB on 8641 right now. > There are some bugs that I'm still shaking out - I hope to push this > out in the next couple of weeks. That won't make .27 then ? Cheers, Ben. ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: [PATCH] powerpc: Fix problems with 32bit PPC's running with more than 2GB of RAM
On Jul 9, 2008, at 7:44 PM, Josh Boyer wrote: On Thu, 10 Jul 2008 06:39:39 +1000 Benjamin Herrenschmidt <[EMAIL PROTECTED]> wrote: On Wed, 2008-07-09 at 16:22 -0400, Josh Boyer wrote: On Thu, 10 Jul 2008 06:02:38 +1000 Benjamin Herrenschmidt <[EMAIL PROTECTED]> wrote: On Wed, 2008-07-09 at 15:44 +0200, Stefan Roese wrote: This patch enables 32bit PPC's (with 36bit physical address space, e.g. IBM/AMCC PPC44x) to run with more than 2GB of RAM. Mostly its just replacing types (unsigned long -> phys_addr_t). Tested on an AMCC Katmai with 4GB of DDR2. Signed-off-by: Stefan Roese <[EMAIL PROTECTED]> But DMAs will break no ? How? Hrm... forget it. It's fine up to 4G of RAM... (ie. as long as DMA is below 32 bits). Right. We haven't really dealt with anything larger than 4 GiB, and we certainly aren't dealing with discontiguous DRAM due to I/O ranges. Are you *sure* you can see all 4GB? I thought we lost some of the 32- bit PCI address space for PCI IO.. Disclaimer: I'm no expert on PCI :) FYI, I'm *very* close to having swiotlb fully functional on powerpc to support larger RAM - I am able to boot with 6GB on 8641 right now. There are some bugs that I'm still shaking out - I hope to push this out in the next couple of weeks. Cheers, B ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: [PATCH] powerpc: Fix problems with 32bit PPC's running with more than 2GB of RAM
On Thu, 10 Jul 2008 06:39:39 +1000 Benjamin Herrenschmidt <[EMAIL PROTECTED]> wrote: > On Wed, 2008-07-09 at 16:22 -0400, Josh Boyer wrote: > > On Thu, 10 Jul 2008 06:02:38 +1000 > > Benjamin Herrenschmidt <[EMAIL PROTECTED]> wrote: > > > > > On Wed, 2008-07-09 at 15:44 +0200, Stefan Roese wrote: > > > > This patch enables 32bit PPC's (with 36bit physical address space, e.g. > > > > IBM/AMCC PPC44x) to run with more than 2GB of RAM. Mostly its just > > > > replacing types (unsigned long -> phys_addr_t). > > > > > > > > Tested on an AMCC Katmai with 4GB of DDR2. > > > > > > > > Signed-off-by: Stefan Roese <[EMAIL PROTECTED]> > > > > > > But DMAs will break no ? > > > > How? > > Hrm... forget it. It's fine up to 4G of RAM... (ie. as long as DMA is > below 32 bits). Right. We haven't really dealt with anything larger than 4 GiB, and we certainly aren't dealing with discontiguous DRAM due to I/O ranges. josh ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: [PATCH] powerpc: Fix problems with 32bit PPC's running with more than 2GB of RAM
On Wed, 2008-07-09 at 16:22 -0400, Josh Boyer wrote: > On Thu, 10 Jul 2008 06:02:38 +1000 > Benjamin Herrenschmidt <[EMAIL PROTECTED]> wrote: > > > On Wed, 2008-07-09 at 15:44 +0200, Stefan Roese wrote: > > > This patch enables 32bit PPC's (with 36bit physical address space, e.g. > > > IBM/AMCC PPC44x) to run with more than 2GB of RAM. Mostly its just > > > replacing types (unsigned long -> phys_addr_t). > > > > > > Tested on an AMCC Katmai with 4GB of DDR2. > > > > > > Signed-off-by: Stefan Roese <[EMAIL PROTECTED]> > > > > But DMAs will break no ? > > How? Hrm... forget it. It's fine up to 4G of RAM... (ie. as long as DMA is below 32 bits). Ben. ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: [PATCH] powerpc: Fix problems with 32bit PPC's running with more than 2GB of RAM
On Thu, 10 Jul 2008 06:02:38 +1000 Benjamin Herrenschmidt <[EMAIL PROTECTED]> wrote: > On Wed, 2008-07-09 at 15:44 +0200, Stefan Roese wrote: > > This patch enables 32bit PPC's (with 36bit physical address space, e.g. > > IBM/AMCC PPC44x) to run with more than 2GB of RAM. Mostly its just > > replacing types (unsigned long -> phys_addr_t). > > > > Tested on an AMCC Katmai with 4GB of DDR2. > > > > Signed-off-by: Stefan Roese <[EMAIL PROTECTED]> > > But DMAs will break no ? How? josh ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: [PATCH] powerpc: Fix problems with 32bit PPC's running with more than 2GB of RAM
On Wed, 2008-07-09 at 15:44 +0200, Stefan Roese wrote: > This patch enables 32bit PPC's (with 36bit physical address space, e.g. > IBM/AMCC PPC44x) to run with more than 2GB of RAM. Mostly its just > replacing types (unsigned long -> phys_addr_t). > > Tested on an AMCC Katmai with 4GB of DDR2. > > Signed-off-by: Stefan Roese <[EMAIL PROTECTED]> But DMAs will break no ? Ben. > --- > arch/powerpc/mm/init_32.c |4 ++-- > arch/powerpc/mm/mem.c |8 > arch/powerpc/mm/mmu_decl.h |4 ++-- > 3 files changed, 8 insertions(+), 8 deletions(-) > > diff --git a/arch/powerpc/mm/init_32.c b/arch/powerpc/mm/init_32.c > index 1952b4d..325ccdd 100644 > --- a/arch/powerpc/mm/init_32.c > +++ b/arch/powerpc/mm/init_32.c > @@ -56,8 +56,8 @@ > > DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); > > -unsigned long total_memory; > -unsigned long total_lowmem; > +phys_addr_t total_memory; > +phys_addr_t total_lowmem; > > phys_addr_t memstart_addr = (phys_addr_t)~0ull; > EXPORT_SYMBOL(memstart_addr); > diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c > index 51f82d8..55ef772 100644 > --- a/arch/powerpc/mm/mem.c > +++ b/arch/powerpc/mm/mem.c > @@ -329,7 +329,7 @@ static int __init mark_nonram_nosave(void) > void __init paging_init(void) > { > unsigned long total_ram = lmb_phys_mem_size(); > - unsigned long top_of_ram = lmb_end_of_DRAM(); > + phys_addr_t top_of_ram = lmb_end_of_DRAM(); > unsigned long max_zone_pfns[MAX_NR_ZONES]; > > #ifdef CONFIG_PPC32 > @@ -348,10 +348,10 @@ void __init paging_init(void) > kmap_prot = PAGE_KERNEL; > #endif /* CONFIG_HIGHMEM */ > > - printk(KERN_DEBUG "Top of RAM: 0x%lx, Total RAM: 0x%lx\n", > -top_of_ram, total_ram); > + printk(KERN_DEBUG "Top of RAM: 0x%llx, Total RAM: 0x%lx\n", > +(u64)top_of_ram, total_ram); > printk(KERN_DEBUG "Memory hole size: %ldMB\n", > -(top_of_ram - total_ram) >> 20); > +(long int)((top_of_ram - total_ram) >> 20)); > memset(max_zone_pfns, 0, sizeof(max_zone_pfns)); > #ifdef CONFIG_HIGHMEM > max_zone_pfns[ZONE_DMA] = lowmem_end_addr >> PAGE_SHIFT; > diff --git a/arch/powerpc/mm/mmu_decl.h b/arch/powerpc/mm/mmu_decl.h > index 0480225..4e46c63 100644 > --- a/arch/powerpc/mm/mmu_decl.h > +++ b/arch/powerpc/mm/mmu_decl.h > @@ -49,8 +49,8 @@ extern unsigned int num_tlbcam_entries; > extern unsigned long ioremap_bot; > extern unsigned long __max_low_memory; > extern phys_addr_t __initial_memory_limit_addr; > -extern unsigned long total_memory; > -extern unsigned long total_lowmem; > +extern phys_addr_t total_memory; > +extern phys_addr_t total_lowmem; > extern phys_addr_t memstart_addr; > extern phys_addr_t lowmem_end_addr; > ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: [PATCH] powerpc: Fix problems with 32bit PPC's running with more than 2GB of RAM
On Wednesday 09 July 2008, Kumar Gala wrote: > On Jul 9, 2008, at 8:44 AM, Stefan Roese wrote: > > This patch enables 32bit PPC's (with 36bit physical address space, > > e.g. > > IBM/AMCC PPC44x) to run with more than 2GB of RAM. Mostly its just > > replacing types (unsigned long -> phys_addr_t). > > should the commit header really be >= 4G. I don't think there is any > issue with 2-4G support as it stands. Right. I'll fix this up and resubmit. Thanks. Best regards, Stefan ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: [PATCH] powerpc: Fix problems with 32bit PPC's running with more than 2GB of RAM
On Jul 9, 2008, at 8:44 AM, Stefan Roese wrote: This patch enables 32bit PPC's (with 36bit physical address space, e.g. IBM/AMCC PPC44x) to run with more than 2GB of RAM. Mostly its just replacing types (unsigned long -> phys_addr_t). should the commit header really be >= 4G. I don't think there is any issue with 2-4G support as it stands. Tested on an AMCC Katmai with 4GB of DDR2. Signed-off-by: Stefan Roese <[EMAIL PROTECTED]> - k ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
[PATCH] powerpc: Fix problems with 32bit PPC's running with more than 2GB of RAM
This patch enables 32bit PPC's (with 36bit physical address space, e.g. IBM/AMCC PPC44x) to run with more than 2GB of RAM. Mostly its just replacing types (unsigned long -> phys_addr_t). Tested on an AMCC Katmai with 4GB of DDR2. Signed-off-by: Stefan Roese <[EMAIL PROTECTED]> --- arch/powerpc/mm/init_32.c |4 ++-- arch/powerpc/mm/mem.c |8 arch/powerpc/mm/mmu_decl.h |4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/arch/powerpc/mm/init_32.c b/arch/powerpc/mm/init_32.c index 1952b4d..325ccdd 100644 --- a/arch/powerpc/mm/init_32.c +++ b/arch/powerpc/mm/init_32.c @@ -56,8 +56,8 @@ DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); -unsigned long total_memory; -unsigned long total_lowmem; +phys_addr_t total_memory; +phys_addr_t total_lowmem; phys_addr_t memstart_addr = (phys_addr_t)~0ull; EXPORT_SYMBOL(memstart_addr); diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c index 51f82d8..55ef772 100644 --- a/arch/powerpc/mm/mem.c +++ b/arch/powerpc/mm/mem.c @@ -329,7 +329,7 @@ static int __init mark_nonram_nosave(void) void __init paging_init(void) { unsigned long total_ram = lmb_phys_mem_size(); - unsigned long top_of_ram = lmb_end_of_DRAM(); + phys_addr_t top_of_ram = lmb_end_of_DRAM(); unsigned long max_zone_pfns[MAX_NR_ZONES]; #ifdef CONFIG_PPC32 @@ -348,10 +348,10 @@ void __init paging_init(void) kmap_prot = PAGE_KERNEL; #endif /* CONFIG_HIGHMEM */ - printk(KERN_DEBUG "Top of RAM: 0x%lx, Total RAM: 0x%lx\n", - top_of_ram, total_ram); + printk(KERN_DEBUG "Top of RAM: 0x%llx, Total RAM: 0x%lx\n", + (u64)top_of_ram, total_ram); printk(KERN_DEBUG "Memory hole size: %ldMB\n", - (top_of_ram - total_ram) >> 20); + (long int)((top_of_ram - total_ram) >> 20)); memset(max_zone_pfns, 0, sizeof(max_zone_pfns)); #ifdef CONFIG_HIGHMEM max_zone_pfns[ZONE_DMA] = lowmem_end_addr >> PAGE_SHIFT; diff --git a/arch/powerpc/mm/mmu_decl.h b/arch/powerpc/mm/mmu_decl.h index 0480225..4e46c63 100644 --- a/arch/powerpc/mm/mmu_decl.h +++ b/arch/powerpc/mm/mmu_decl.h @@ -49,8 +49,8 @@ extern unsigned int num_tlbcam_entries; extern unsigned long ioremap_bot; extern unsigned long __max_low_memory; extern phys_addr_t __initial_memory_limit_addr; -extern unsigned long total_memory; -extern unsigned long total_lowmem; +extern phys_addr_t total_memory; +extern phys_addr_t total_lowmem; extern phys_addr_t memstart_addr; extern phys_addr_t lowmem_end_addr; -- 1.5.6.2 ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev