summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYe Li <ye.li@nxp.com>2017-11-30 01:23:56 -0600
committerYe Li <ye.li@nxp.com>2017-11-30 03:08:58 -0600
commitabcc95393ac65023f0eb09424aec27d5505818bb (patch)
tree583e4ac6663d16594a6d78d5eddc145451f429ea
parent5d48b34348957ac7484b5c60eeebbf4dbeab336f (diff)
MLK-17044-1 imx-common: Adding new argument for SIP call interface
Need to pass total 5 arguments for SIP HAB call, so update the interface to add new argument. Signed-off-by: Ye Li <ye.li@nxp.com>
-rw-r--r--arch/arm/cpu/armv8/imx8/cpu.c2
-rw-r--r--arch/arm/cpu/armv8/imx8m/soc.c4
-rw-r--r--arch/arm/imx-common/sip.c3
-rw-r--r--arch/arm/include/asm/imx-common/sys_proto.h2
4 files changed, 6 insertions, 5 deletions
diff --git a/arch/arm/cpu/armv8/imx8/cpu.c b/arch/arm/cpu/armv8/imx8/cpu.c
index cc2d96eca7..586ac6f743 100644
--- a/arch/arm/cpu/armv8/imx8/cpu.c
+++ b/arch/arm/cpu/armv8/imx8/cpu.c
@@ -688,7 +688,7 @@ static void acquire_buildinfo(void)
}
/* Get ARM Trusted Firmware commit id */
- atf_commit = call_imx_sip(FSL_SIP_BUILDINFO, FSL_SIP_BUILDINFO_GET_COMMITHASH, 0, 0);
+ atf_commit = call_imx_sip(FSL_SIP_BUILDINFO, FSL_SIP_BUILDINFO_GET_COMMITHASH, 0, 0, 0);
if (atf_commit == 0xffffffff) {
debug("ATF does not support build info\n");
atf_commit = 0x30; /* Display 0, 0 ascii is 0x30 */
diff --git a/arch/arm/cpu/armv8/imx8m/soc.c b/arch/arm/cpu/armv8/imx8m/soc.c
index 79cf1ead04..5b17b3363c 100644
--- a/arch/arm/cpu/armv8/imx8m/soc.c
+++ b/arch/arm/cpu/armv8/imx8m/soc.c
@@ -298,14 +298,14 @@ int arch_auxiliary_core_up(u32 core_id, ulong boot_private_data)
writel(pc, M4_BOOTROM_BASE_ADDR + 4);
/* Enable M4 */
- call_imx_sip(FSL_SIP_SRC, FSL_SIP_SRC_M4_START, 0, 0);
+ call_imx_sip(FSL_SIP_SRC, FSL_SIP_SRC_M4_START, 0, 0, 0);
return 0;
}
int arch_auxiliary_core_check_up(u32 core_id)
{
- return call_imx_sip(FSL_SIP_SRC, FSL_SIP_SRC_M4_STARTED, 0, 0);
+ return call_imx_sip(FSL_SIP_SRC, FSL_SIP_SRC_M4_STARTED, 0, 0, 0);
}
#endif
diff --git a/arch/arm/imx-common/sip.c b/arch/arm/imx-common/sip.c
index 72db30cc0a..6c37eddc87 100644
--- a/arch/arm/imx-common/sip.c
+++ b/arch/arm/imx-common/sip.c
@@ -7,7 +7,7 @@
#include <common.h>
#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 call_imx_sip(unsigned long id, unsigned long reg0, 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, unsigned long r
regs.regs[1] = reg0;
regs.regs[2] = reg1;
regs.regs[3] = reg2;
+ regs.regs[4] = reg3;
smc_call(&regs);
diff --git a/arch/arm/include/asm/imx-common/sys_proto.h b/arch/arm/include/asm/imx-common/sys_proto.h
index c2c1a81227..431e297145 100644
--- a/arch/arm/include/asm/imx-common/sys_proto.h
+++ b/arch/arm/include/asm/imx-common/sys_proto.h
@@ -87,6 +87,6 @@ int arch_auxiliary_core_up(u32 core_id, ulong boot_private_data);
int arch_auxiliary_core_check_up(u32 core_id);
#ifdef CONFIG_ARM64
-unsigned long call_imx_sip(unsigned long id, unsigned long reg0, unsigned long reg1, unsigned long reg2);
+unsigned long call_imx_sip(unsigned long id, unsigned long reg0, unsigned long reg1, unsigned long reg2, unsigned long reg3);
#endif
#endif