summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorYe Li <ye.li@nxp.com>2019-05-07 00:06:17 -0700
committerYe Li <ye.li@nxp.com>2022-04-06 18:03:10 +0800
commit16d3e839a5c314c3ed63c1499e9faf9cfdedf99e (patch)
tree732f585836f05a3e26c1633eacab98f98bf2c1d7 /arch
parent2b576de79a6d7908751a5df424225ab4e86bd8ff (diff)
MLK-21485 imx8qm/qxp: Extend image size for bootaux M4
iMX8 has consective address for TCML and TCMU, so the M4 image size could exceed the TCML boundary and put its data section in TCMU. So change the size limitation in bootaux to 256KB to include TCMU. Signed-off-by: Ye Li <ye.li@nxp.com> Reviewed-by: Peng Fan <peng.fan@nxp.com> (cherry picked from commit cdc80200841055b949677ae8633c6d64fe0d0985) (cherry picked from commit 086aa956a8e2a98aeb601eba337d02e7ad5076dc) (cherry picked from commit f45a01724e1aba84d812f9f0339e80efb53757c2) (cherry picked from commit 3a0f8a54a5891007590e72b59bd883ed74dc83fd) (cherry picked from commit 6782cdb2e4c1e4ed84f3b73d777ff45281c26573)
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-imx/imx8/cpu.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/arm/mach-imx/imx8/cpu.c b/arch/arm/mach-imx/imx8/cpu.c
index 66419a87db3..3f66f643edb 100644
--- a/arch/arm/mach-imx/imx8/cpu.c
+++ b/arch/arm/mach-imx/imx8/cpu.c
@@ -115,7 +115,7 @@ int arch_auxiliary_core_up(u32 core_id, ulong boot_private_data)
{
sc_rsrc_t core_rsrc, mu_rsrc;
sc_faddr_t tcml_addr;
- u32 tcml_size = SZ_128K;
+ u32 tcm_size = SZ_256K; /* TCML + TCMU */
ulong addr;
@@ -137,7 +137,7 @@ int arch_auxiliary_core_up(u32 core_id, ulong boot_private_data)
addr = (sc_faddr_t)boot_private_data;
- if (addr >= tcml_addr && addr <= tcml_addr + tcml_size) {
+ if (addr >= tcml_addr && addr <= tcml_addr + tcm_size) {
printf("Wrong image address 0x%lx, should not in TCML\n",
addr);
return -EINVAL;
@@ -154,7 +154,7 @@ int arch_auxiliary_core_up(u32 core_id, ulong boot_private_data)
printf("Copy M4 image from 0x%lx to TCML 0x%lx\n", addr, (ulong)tcml_addr);
if (addr != tcml_addr)
- memcpy((void *)tcml_addr, (void *)addr, tcml_size);
+ memcpy((void *)tcml_addr, (void *)addr, tcm_size);
printf("Start M4 %u\n", core_id);
if (sc_pm_cpu_start(-1, core_rsrc, true, tcml_addr) != SC_ERR_NONE)
@@ -178,7 +178,7 @@ int arch_auxiliary_core_up(u32 core_id, ulong boot_private_data)
core_rsrc = SC_R_M4_0_PID0;
aux_core_ram = 0x34FE0000;
mu_rsrc = SC_R_M4_0_MU_1A;
- size = SZ_128K;
+ size = SZ_256K;
break;
case 1:
core_rsrc = SC_R_DSP;