From abcc95393ac65023f0eb09424aec27d5505818bb Mon Sep 17 00:00:00 2001 From: Ye Li Date: Thu, 30 Nov 2017 01:23:56 -0600 Subject: [PATCH] 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 --- arch/arm/cpu/armv8/imx8/cpu.c | 2 +- arch/arm/cpu/armv8/imx8m/soc.c | 4 ++-- arch/arm/imx-common/sip.c | 3 ++- arch/arm/include/asm/imx-common/sys_proto.h | 2 +- 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 #include -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(®s); 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 -- 2.17.1