summaryrefslogtreecommitdiff
path: root/arch/powerpc/cpu
diff options
context:
space:
mode:
authorChristophe Leroy <[email protected]>2023-05-04 10:20:35 +0200
committerChristophe Leroy <[email protected]>2023-05-04 12:40:47 +0200
commitbebb8dfabc3af9eeca4283000571a7400cb88c71 (patch)
tree4c413546004d4f9987ce292d63ff3846f0e02857 /arch/powerpc/cpu
parentfdd243d81bcf5e7fdc8cc7b5060c0c6ed60c5c81 (diff)
powerpc: mpc8xx: Reorganise init RAM
Using SMC relocation microcode patch or USB-SOF microcode patch will disable DPRAM memory from 0x2000 to 0x2400 and from 0x2f00 to 0x3000. At the time being, init RAM is setup to use 0x2800-0x2e00, but the stack pointer goes beyond 0x2800 and even beyond 0x2400. For the time being we are not going to use any microcode patch that uses memory about 0x3000, so reorganise setup to use: - 0x2800 - 0x2e00 for init malloc and global data and CPM buffers - 0x3000 - 0x3c00 for init stack For more details about CPM dual port ram, see commit b1d62424cb ("powerpc: mpc8xx: redistribute data in CPM dpram") Signed-off-by: Christophe Leroy <[email protected]>
Diffstat (limited to 'arch/powerpc/cpu')
-rw-r--r--arch/powerpc/cpu/mpc8xx/start.S8
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/powerpc/cpu/mpc8xx/start.S b/arch/powerpc/cpu/mpc8xx/start.S
index 0aa73fca125..78429515ae2 100644
--- a/arch/powerpc/cpu/mpc8xx/start.S
+++ b/arch/powerpc/cpu/mpc8xx/start.S
@@ -141,14 +141,16 @@ in_flash:
mtspr DER, r2
/* set up the stack on top of internal DPRAM */
- lis r3, (CFG_SYS_INIT_RAM_ADDR + CFG_SYS_INIT_RAM_SIZE)@h
- ori r3, r3, (CFG_SYS_INIT_RAM_ADDR + CFG_SYS_INIT_RAM_SIZE)@l
+ lis r3, CFG_SYS_INIT_SP@h
+ ori r3, r3, CFG_SYS_INIT_SP@l
stw r0, -4(r3)
stw r0, -8(r3)
addi r1, r3, -8
+ lis r3, (CFG_SYS_INIT_RAM_ADDR + CFG_SYS_INIT_RAM_SIZE)@h
+ ori r3, r3, (CFG_SYS_INIT_RAM_ADDR + CFG_SYS_INIT_RAM_SIZE)@l
+
bl board_init_f_alloc_reserve
- addi r1, r3, -8
/* Zeroise the CPM dpram */
lis r4, CONFIG_SYS_IMMR@h