[U-Boot] [PATCH 1/3] mach-imx: Adding new argument for SIP call interface
Patrick Wildt
patrick at blueri.se
Mon Oct 21 17:12:08 UTC 2019
On Mon, Oct 21, 2019 at 05:58:49PM +0200, Anatolij Gustschin wrote:
> From: Ye Li <ye.li at nxp.com>
>
> 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 at nxp.com>
> ---
> arch/arm/include/asm/mach-imx/sys_proto.h | 3 ++-
> arch/arm/mach-imx/imx_bootaux.c | 4 ++--
> arch/arm/mach-imx/sip.c | 4 +++-
> drivers/misc/imx8/fuse.c | 2 +-
> 4 files changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arm/include/asm/mach-imx/sys_proto.h b/arch/arm/include/asm/mach-imx/sys_proto.h
> index aa66fdc88f..139a7638c1 100644
> --- a/arch/arm/include/asm/mach-imx/sys_proto.h
> +++ b/arch/arm/include/asm/mach-imx/sys_proto.h
> @@ -143,7 +143,8 @@ 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);
> unsigned long call_imx_sip_ret2(unsigned long id, unsigned long reg0,
> unsigned long *reg1, unsigned long reg2,
> unsigned long reg3);
> diff --git a/arch/arm/mach-imx/imx_bootaux.c b/arch/arm/mach-imx/imx_bootaux.c
> index 18d7e6819c..3d9422d5a2 100644
> --- a/arch/arm/mach-imx/imx_bootaux.c
> +++ b/arch/arm/mach-imx/imx_bootaux.c
> @@ -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;
>
> diff --git a/arch/arm/mach-imx/sip.c b/arch/arm/mach-imx/sip.c
> index 968e7cf309..fca520c671 100644
> --- a/arch/arm/mach-imx/sip.c
> +++ b/arch/arm/mach-imx/sip.c
> @@ -7,7 +7,8 @@
> #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 +16,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(®s);
>
> diff --git a/drivers/misc/imx8/fuse.c b/drivers/misc/imx8/fuse.c
> index 2f2fad2c17..1309215d4d 100644
> --- a/drivers/misc/imx8/fuse.c
> +++ b/drivers/misc/imx8/fuse.c
> @@ -74,7 +74,7 @@ int fuse_prog(u32 bank, u32 word, u32 val)
> }
>
> return call_imx_sip(FSL_SIP_OTP_WRITE, (unsigned long)word,
> - (unsigned long)val, 0);
> + (unsigned long)val, 0, 0);
> }
>
> int fuse_override(u32 bank, u32 word, u32 val)
> --
> 2.17.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot
Reviewed-by: Patrick Wildt <patrick at blueri.se>
More information about the U-Boot
mailing list