Skip to contentSkip to conversation

Uniformly use memstart_addr variable as the start address of physical memory in powerpc branch

PATCH In review Andrew Liu 3 participants 4 messages May 21, 2008 PowerPC

lore
Share & tools
lore

Andrew Liu

author
#0 lore raw

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
index cef9f15..f133c6e 100644
@@ -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;
	}
#1 lore raw
Quoted 10 lines · Andrew Liu

[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.

Quoted 2 lines

---

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

author
#2 lore raw
Quoted 13 lines · Kumar Gala
Quoted 10 lines · Andrew Liu

[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.

Quoted 5 lines
Quoted 2 lines

---

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

#3 lore raw
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.