1
0
mirror of https://xff.cz/git/u-boot/ synced 2025-09-30 06:51:28 +02:00

mach-imx: Adding new argument for SIP call interface

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>
[agust: fixed imx8m-power-domain build]
Signed-off-by: Anatolij Gustschin <agust@denx.de>
Reviewed-by: Patrick Wildt <patrick@blueri.se>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
This commit is contained in:
Ye Li
2019-10-26 16:24:03 +02:00
committed by Stefano Babic
parent 6dcc6cebcf
commit 264977d1c2
5 changed files with 12 additions and 7 deletions

View File

@@ -138,7 +138,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); 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 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 call_imx_sip_ret2(unsigned long id, unsigned long reg0,
unsigned long *reg1, unsigned long reg2, unsigned long *reg1, unsigned long reg2,
unsigned long reg3); unsigned long reg3);

View File

@@ -26,7 +26,7 @@ int arch_auxiliary_core_up(u32 core_id, ulong boot_private_data)
/* Enable M4 */ /* Enable M4 */
#ifdef CONFIG_IMX8M #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 #else
clrsetbits_le32(SRC_BASE_ADDR + SRC_M4_REG_OFFSET, clrsetbits_le32(SRC_BASE_ADDR + SRC_M4_REG_OFFSET,
SRC_M4C_NON_SCLR_RST_MASK, SRC_M4_ENABLE_MASK); 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) int arch_auxiliary_core_check_up(u32 core_id)
{ {
#ifdef CONFIG_IMX8M #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 #else
unsigned int val; unsigned int val;

View File

@@ -7,7 +7,8 @@
#include <asm/arch/sys_proto.h> #include <asm/arch/sys_proto.h>
unsigned long call_imx_sip(unsigned long id, unsigned long reg0, 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; 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[1] = reg0;
regs.regs[2] = reg1; regs.regs[2] = reg1;
regs.regs[3] = reg2; regs.regs[3] = reg2;
regs.regs[4] = reg3;
smc_call(&regs); smc_call(&regs);

View File

@@ -74,7 +74,7 @@ int fuse_prog(u32 bank, u32 word, u32 val)
} }
return call_imx_sip(FSL_SIP_OTP_WRITE, (unsigned long)word, 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) int fuse_override(u32 bank, u32 word, u32 val)

View File

@@ -37,7 +37,8 @@ static int imx8m_power_domain_on(struct power_domain *power_domain)
if (pdata->has_pd) if (pdata->has_pd)
power_domain_on(&pdata->pd); power_domain_on(&pdata->pd);
call_imx_sip(IMX_SIP_GPC, IMX_SIP_GPC_PM_DOMAIN, pdata->resource_id, 1); call_imx_sip(IMX_SIP_GPC, IMX_SIP_GPC_PM_DOMAIN,
pdata->resource_id, 1, 0);
return 0; return 0;
} }
@@ -51,7 +52,8 @@ static int imx8m_power_domain_off(struct power_domain *power_domain)
if (pdata->resource_id < 0) if (pdata->resource_id < 0)
return -EINVAL; return -EINVAL;
call_imx_sip(IMX_SIP_GPC, IMX_SIP_GPC_PM_DOMAIN, pdata->resource_id, 0); call_imx_sip(IMX_SIP_GPC, IMX_SIP_GPC_PM_DOMAIN,
pdata->resource_id, 0, 0);
if (pdata->has_pd) if (pdata->has_pd)
power_domain_off(&pdata->pd); power_domain_off(&pdata->pd);