powerpc/mm/32: add base address to mmu_mapin_ram()
authorChristophe Leroy <christophe.leroy@c-s.fr>
Thu, 21 Feb 2019 19:08:38 +0000 (19:08 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Sat, 23 Feb 2019 10:04:31 +0000 (21:04 +1100)
At the time being, mmu_mapin_ram() always maps RAM from the beginning.
But some platforms like the WII have to map a second block of RAM.

This patch adds to mmu_mapin_ram() the base address of the block.
At the moment, only base address 0 is supported.

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/mm/40x_mmu.c
arch/powerpc/mm/44x_mmu.c
arch/powerpc/mm/8xx_mmu.c
arch/powerpc/mm/fsl_booke_mmu.c
arch/powerpc/mm/mmu_decl.h
arch/powerpc/mm/pgtable_32.c
arch/powerpc/mm/ppc_mmu_32.c

index 61ac468c87c66643df2db4c40e4da18d9098e61e..b9cf6f8764b0075ee5250b0aeb52ae9367f060f2 100644 (file)
@@ -93,7 +93,7 @@ void __init MMU_init_hw(void)
 #define LARGE_PAGE_SIZE_16M    (1<<24)
 #define LARGE_PAGE_SIZE_4M     (1<<22)
 
-unsigned long __init mmu_mapin_ram(unsigned long top)
+unsigned long __init mmu_mapin_ram(unsigned long base, unsigned long top)
 {
        unsigned long v, s, mapped;
        phys_addr_t p;
index ea2b9af08a48e924794c058321e2e83c72aecc3d..aad127acdbaaa662be29222a2f48d94290bc9883 100644 (file)
@@ -170,7 +170,7 @@ void __init MMU_init_hw(void)
        flush_instruction_cache();
 }
 
-unsigned long __init mmu_mapin_ram(unsigned long top)
+unsigned long __init mmu_mapin_ram(unsigned long base, unsigned long top)
 {
        unsigned long addr;
        unsigned long memstart = memstart_addr & ~(PPC_PIN_SIZE - 1);
index e95196fdc92b7b83e9cc9675ed9b8afea5f347ea..ce11cbaa25d8d9600a01e0dfdf4a72be81598507 100644 (file)
@@ -99,7 +99,7 @@ static void __init mmu_patch_cmp_limit(s32 *site, unsigned long mapped)
        modify_instruction_site(site, 0xffff, (unsigned long)__va(mapped) >> 16);
 }
 
-unsigned long __init mmu_mapin_ram(unsigned long top)
+unsigned long __init mmu_mapin_ram(unsigned long base, unsigned long top)
 {
        unsigned long mapped;
 
index 080d49b26c3a7d3b06326482f4f7b2d4402de5ad..210cbc1faf6389c50b8480c050cb0c40a474f70a 100644 (file)
@@ -221,7 +221,7 @@ unsigned long map_mem_in_cams(unsigned long ram, int max_cam_idx, bool dryrun)
 #error "LOWMEM_CAM_NUM must be less than NUM_TLBCAMS"
 #endif
 
-unsigned long __init mmu_mapin_ram(unsigned long top)
+unsigned long __init mmu_mapin_ram(unsigned long base, unsigned long top)
 {
        return tlbcam_addrs[tlbcam_index - 1].limit - PAGE_OFFSET + 1;
 }
index c4a717da65eb8d6b0c2419cdf06f1a647985c6e0..61730023dde36b1c8868f1eafa0d8f2313d996c7 100644 (file)
@@ -130,7 +130,7 @@ extern void wii_memory_fixups(void);
  */
 #ifdef CONFIG_PPC32
 extern void MMU_init_hw(void);
-extern unsigned long mmu_mapin_ram(unsigned long top);
+unsigned long mmu_mapin_ram(unsigned long base, unsigned long top);
 #endif
 
 #ifdef CONFIG_PPC_FSL_BOOK3E
index ded71126ce4c6784d1e8aad82fd51081e88ec44c..b4858818523ff7b2092fa4ed67b75110b3bf39ff 100644 (file)
@@ -258,15 +258,15 @@ void __init mapin_ram(void)
 
 #ifndef CONFIG_WII
        top = total_lowmem;
-       s = mmu_mapin_ram(top);
+       s = mmu_mapin_ram(0, top);
        __mapin_ram_chunk(s, top);
 #else
        if (!wii_hole_size) {
-               s = mmu_mapin_ram(total_lowmem);
+               s = mmu_mapin_ram(0, total_lowmem);
                __mapin_ram_chunk(s, total_lowmem);
        } else {
                top = wii_hole_start;
-               s = mmu_mapin_ram(top);
+               s = mmu_mapin_ram(0, top);
                __mapin_ram_chunk(s, top);
 
                top = memblock_end_of_DRAM();
index fb747bb0b3e4352f1ceeb3f163cf334f5c366124..2d4d4bf9a63d3a47f2f7edff23aa18738599667b 100644 (file)
@@ -73,7 +73,7 @@ unsigned long p_block_mapped(phys_addr_t pa)
        return 0;
 }
 
-unsigned long __init mmu_mapin_ram(unsigned long top)
+unsigned long __init mmu_mapin_ram(unsigned long base, unsigned long top)
 {
        unsigned long tot, bl, done;
        unsigned long max_size = (256<<20);