]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
imx9: allow to bootaux Mcore with input address
authorYe Li <ye.li@nxp.com>
Fri, 28 Apr 2023 04:08:36 +0000 (12:08 +0800)
committerStefano Babic <sbabic@denx.de>
Sun, 21 May 2023 14:54:41 +0000 (16:54 +0200)
Currently bootaux only supports to boot M33 core from TCM. Since ATF
has changed to use x2 parameter for M33 image address, update the
bootaux command to use input address, so we can support boot from
any possilbe address like TCM, DDR, Flexspi NOR.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
arch/arm/mach-imx/imx9/imx_bootaux.c

index 3b6662aeb814b041d685d93a2f5b2911b208cce7..256e6fa1c5406ab87cb933398ae812271b9cef44 100644 (file)
@@ -34,17 +34,13 @@ int arch_auxiliary_core_down(u32 core_id)
 int arch_auxiliary_core_up(u32 core_id, ulong addr)
 {
        struct arm_smccc_res res;
-       u32 stack, pc;
 
        if (!addr)
                return -EINVAL;
 
-       stack = *(u32 *)addr;
-       pc = *(u32 *)(addr + 4);
+       printf("## Starting auxiliary core addr = 0x%08lX...\n", addr);
 
-       printf("## Starting auxiliary core stack = 0x%08X, pc = 0x%08X...\n", stack, pc);
-
-       arm_smccc_smc(IMX_SIP_SRC, IMX_SIP_SRC_M4_START, 0, 0,
+       arm_smccc_smc(IMX_SIP_SRC, IMX_SIP_SRC_M4_START, addr, 0,
                      0, 0, 0, 0, &res);
 
        return 0;
@@ -129,5 +125,5 @@ U_BOOT_CMD(
        "Start auxiliary core",
        "<address> [<core>]\n"
        "   - start auxiliary core [<core>] (default 0),\n"
-       "     at address <address>\n"
+       "     at address <address> of auxiliary core view\n"
 );