MLK-18159-9 mach-imx: Adding new argument for SIP call interface
authorYe Li <ye.li@nxp.com>
Wed, 11 Apr 2018 03:06:26 +0000 (20:06 -0700)
committerYe Li <ye.li@nxp.com>
Fri, 24 May 2019 08:47:07 +0000 (01:47 -0700)
Need to pass total 5 arguments for SIP HAB call on i.MX8MQ, so
update the interface to add new argument.

Signed-off-by: Ye Li <ye.li@nxp.com>
arch/arm/include/asm/mach-imx/sys_proto.h
arch/arm/mach-imx/imx_bootaux.c
arch/arm/mach-imx/sip.c

index d0f866b..4de1c16 100644 (file)
@@ -133,5 +133,5 @@ int mxs_wait_mask_set(struct mxs_register_32 *reg, u32 mask, u32 timeout);
 int mxs_wait_mask_clr(struct mxs_register_32 *reg, u32 mask, u32 timeout);
 
 unsigned long call_imx_sip(unsigned long id, unsigned long reg0,
-                          unsigned long reg1, unsigned long reg2);
+                          unsigned long reg1, unsigned long reg2, unsigned long reg3);
 #endif
index 18d7e68..3d9422d 100644 (file)
@@ -26,7 +26,7 @@ int arch_auxiliary_core_up(u32 core_id, ulong boot_private_data)
 
        /* Enable M4 */
 #ifdef CONFIG_IMX8M
-       call_imx_sip(IMX_SIP_SRC, IMX_SIP_SRC_M4_START, 0, 0);
+       call_imx_sip(IMX_SIP_SRC, IMX_SIP_SRC_M4_START, 0, 0, 0);
 #else
        clrsetbits_le32(SRC_BASE_ADDR + SRC_M4_REG_OFFSET,
                        SRC_M4C_NON_SCLR_RST_MASK, SRC_M4_ENABLE_MASK);
@@ -38,7 +38,7 @@ int arch_auxiliary_core_up(u32 core_id, ulong boot_private_data)
 int arch_auxiliary_core_check_up(u32 core_id)
 {
 #ifdef CONFIG_IMX8M
-       return call_imx_sip(IMX_SIP_SRC, IMX_SIP_SRC_M4_STARTED, 0, 0);
+       return call_imx_sip(IMX_SIP_SRC, IMX_SIP_SRC_M4_STARTED, 0, 0, 0);
 #else
        unsigned int val;
 
index 813c2ae..8654be9 100644 (file)
@@ -7,7 +7,7 @@
 #include <asm/arch/sys_proto.h>
 
 unsigned long call_imx_sip(unsigned long id, unsigned long reg0,
-                          unsigned long reg1, unsigned long reg2)
+                          unsigned long reg1, unsigned long reg2, unsigned long reg3)
 {
        struct pt_regs regs;
 
@@ -15,6 +15,7 @@ unsigned long call_imx_sip(unsigned long id, unsigned long reg0,
        regs.regs[1] = reg0;
        regs.regs[2] = reg1;
        regs.regs[3] = reg2;
+       regs.regs[4] = reg3;
 
        smc_call(&regs);