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;
"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"
);