powerpc: Fix problems with 32bit PPC's running with >= 4GB of RAM
This patch enables 32bit PPC's (with 36bit physical address space, e.g. IBM/AMCC PPC44x) to run with >= 4GB 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 <sr@denx.de> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
This commit is contained in:
@@ -57,8 +57,8 @@
|
|||||||
|
|
||||||
DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
|
DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
|
||||||
|
|
||||||
unsigned long total_memory;
|
phys_addr_t total_memory;
|
||||||
unsigned long total_lowmem;
|
phys_addr_t total_lowmem;
|
||||||
|
|
||||||
phys_addr_t memstart_addr = (phys_addr_t)~0ull;
|
phys_addr_t memstart_addr = (phys_addr_t)~0ull;
|
||||||
EXPORT_SYMBOL(memstart_addr);
|
EXPORT_SYMBOL(memstart_addr);
|
||||||
|
@@ -330,7 +330,7 @@ static int __init mark_nonram_nosave(void)
|
|||||||
void __init paging_init(void)
|
void __init paging_init(void)
|
||||||
{
|
{
|
||||||
unsigned long total_ram = lmb_phys_mem_size();
|
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];
|
unsigned long max_zone_pfns[MAX_NR_ZONES];
|
||||||
|
|
||||||
#ifdef CONFIG_PPC32
|
#ifdef CONFIG_PPC32
|
||||||
@@ -349,10 +349,10 @@ void __init paging_init(void)
|
|||||||
kmap_prot = PAGE_KERNEL;
|
kmap_prot = PAGE_KERNEL;
|
||||||
#endif /* CONFIG_HIGHMEM */
|
#endif /* CONFIG_HIGHMEM */
|
||||||
|
|
||||||
printk(KERN_DEBUG "Top of RAM: 0x%lx, Total RAM: 0x%lx\n",
|
printk(KERN_DEBUG "Top of RAM: 0x%llx, Total RAM: 0x%lx\n",
|
||||||
top_of_ram, total_ram);
|
(u64)top_of_ram, total_ram);
|
||||||
printk(KERN_DEBUG "Memory hole size: %ldMB\n",
|
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));
|
memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
|
||||||
#ifdef CONFIG_HIGHMEM
|
#ifdef CONFIG_HIGHMEM
|
||||||
max_zone_pfns[ZONE_DMA] = lowmem_end_addr >> PAGE_SHIFT;
|
max_zone_pfns[ZONE_DMA] = lowmem_end_addr >> PAGE_SHIFT;
|
||||||
|
@@ -49,8 +49,8 @@ extern unsigned int num_tlbcam_entries;
|
|||||||
extern unsigned long ioremap_bot;
|
extern unsigned long ioremap_bot;
|
||||||
extern unsigned long __max_low_memory;
|
extern unsigned long __max_low_memory;
|
||||||
extern phys_addr_t __initial_memory_limit_addr;
|
extern phys_addr_t __initial_memory_limit_addr;
|
||||||
extern unsigned long total_memory;
|
extern phys_addr_t total_memory;
|
||||||
extern unsigned long total_lowmem;
|
extern phys_addr_t total_lowmem;
|
||||||
extern phys_addr_t memstart_addr;
|
extern phys_addr_t memstart_addr;
|
||||||
extern phys_addr_t lowmem_end_addr;
|
extern phys_addr_t lowmem_end_addr;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user