Uniformly use memstart_addr variable as the start address of physical memory in powerpc branch
PATCH 1/1 Uniformly use memstart_addr variable as the start address of physical memory in powerpc branch
[POWERPC]: Uniformly use memstart_addr as the start address of RAM
The variable: memstart_addr whose initial value is got from dts file is used as the start address of physical memory in PowerPC ARCH, although it is used in functions: mapin_ram(pgtable_32.c) and cam_mapin_ram(fsl_booke_mmu.c), however, in function: mmu_mapin_ram (ppc_mmu_32.c), use 0 as the start address of physical memory, so it is necessary to unify them: in mmu_mapin_ram, use memstart_addr as the start address of physical memory, instead of 0.
---
b/arch/powerpc/mm/ppc_mmu_32.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
arch/powerpc/mm/ppc_mmu_32.c +0 -0
@@ -98,7 +98,7 @@ unsigned long __init mmu_mapin_ram(void)
break; }
- setbat(2, KERNELBASE, 0, bl, _PAGE_RAM);
+ setbat(2, KERNELBASE, memstart_addr, bl, _PAGE_RAM);
done = (unsigned long)bat_addrs[2].limit - KERNELBASE + 1;
if ((done < tot) && !bat_addrs[3].limit) {
/* use BAT3 to cover a bit more */
@@ -106,7 +106,7 @@ unsigned long __init mmu_mapin_ram(void)
for (bl = 128<<10; bl < max_size; bl <<= 1)
if (bl * 2 > tot)
break;
- setbat(3, KERNELBASE+done, done, bl, _PAGE_RAM);
+ setbat(3, KERNELBASE+done, memstart_addr+done, bl, _PAGE_RAM);
done = (unsigned long)bat_addrs[3].limit - KERNELBASE + 1;
}Quoted 10 lines · Andrew Liu
[POWERPC]: Uniformly use
memstart_addras the start address of RAMThe variable:
memstart_addrwhose initial value is got from dts file is used as the start address of physical memory in PowerPC ARCH, although it is used in functions:mapin_ram(pgtable_32.c)andcam_mapin_ram(fsl_booke_mmu.c), however, in function:mmu_mapin_ram(ppc_mmu_32.c), use 0 as the start address of physical memory, so it is necessary to unify them: inmmu_mapin_ram, usememstart_addras the start address of physical memory, instead of 0.
Quoted 2 lines
Signed-off-by Andrew Liu <[email protected]>---
Do you have a case where this is non-zero for ppc_mmu_32? I left these alone because I wasn't aware of one (or if its reasonable).
- k
Quoted 13 lines · Kumar Gala
Quoted 10 lines · Andrew Liu
[POWERPC]: Uniformly use
memstart_addras the start address of RAMThe variable:
memstart_addrwhose initial value is got from dts file is used as the start address of physical memory in PowerPC ARCH, although it is used in functions:mapin_ram(pgtable_32.c)andcam_mapin_ram(fsl_booke_mmu.c), however, in function:mmu_mapin_ram(ppc_mmu_32.c), use 0 as the start address of physical memory, so it is necessary to unify them: inmmu_mapin_ram, usememstart_addras the start address of physical memory, instead of 0.
Quoted 5 lines
Quoted 2 lines
Signed-off-by Andrew Liu <[email protected]>---
Do you have a case where this is non-zero for
ppc_mmu_32? I left these alone because I wasn't aware of one (or if its reasonable).
No.
I submitted this patch just because in ppc branch, PPC_MEMSTART is used as the start address of physical memory uniformly, however, in powerpc branch, use memstart_addr and 0, although, almost for all boards which are in powerpc, they are equal, from the aspect of code consistency, I think it is necessary to
unify them.
You know we can't make sure in future the start address of all incoming boards' RAM is 0, especially, in AMP system, different cpu uses the different RAM area, definitely, the start address of some is not 0.
BRs,
Andrew
Quoted 3 lines
- k
Quoted 3 lines · Andrew Liu
You know we can't make sure in future the start address of all incoming boards' RAM is 0, especially, in AMP system, different cpu uses the different RAM area, definitely, the start address of some is not 0.
Any processor that uses ppc_mmu_32.c will have interrupt vectors in the 0 - 0x3000 region of memory and hence *must* have RAM starting at zero. In other words, that file is only used for "classic" 32-bit PowerPC processors, not for anything based on Book E or Power architecture v2.04 or later.
Paul.