diff options
author | Anson Huang <Anson.Huang@nxp.com> | 2017-11-03 18:39:24 +0800 |
---|---|---|
committer | Abel Vesa <abel.vesa@nxp.com> | 2018-06-11 10:08:40 +0300 |
commit | bf35eec4a53aa16bc6b03caa909930bbbd96c539 (patch) | |
tree | 6ef2fc2d4cf1dbbb2acad54177ff94448cc34b27 /plat/imx/common | |
parent | 7280cd36cc7ca6e3a3703ee3c03c9c582d937205 (diff) |
imx: imx8mq: add SOC info SIP support for i.MX8MQ
i.MX8MQ does NOT update revision info in ANATOP_DIGPROG
register, so the revision info needs to read from ROM,
for security reason, this needs to be done in ATF, so
add this SIP support for kernel.
The A0 chip's ROM version is located at 0x800, and B0
chip is located at 0x83c.
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Diffstat (limited to 'plat/imx/common')
-rw-r--r-- | plat/imx/common/include/fsl_sip.h | 3 | ||||
-rw-r--r-- | plat/imx/common/sip_svc.c | 4 |
2 files changed, 7 insertions, 0 deletions
diff --git a/plat/imx/common/include/fsl_sip.h b/plat/imx/common/include/fsl_sip.h index 306cdecc..458e19f6 100644 --- a/plat/imx/common/include/fsl_sip.h +++ b/plat/imx/common/include/fsl_sip.h @@ -32,4 +32,7 @@ #define FSL_SIP_SRC 0xc2000005 #define FSL_SIP_SRC_M4_START 0x00 #define FSL_SIP_SRC_M4_STARTED 0x01 + +#define FSL_SIP_GET_SOC_INFO 0xc2000006 + #endif diff --git a/plat/imx/common/sip_svc.c b/plat/imx/common/sip_svc.c index a5578a8c..34b15702 100644 --- a/plat/imx/common/sip_svc.c +++ b/plat/imx/common/sip_svc.c @@ -45,6 +45,7 @@ extern int imx_srtc_handler(uint32_t smc_fid, u_register_t x1, u_register_t x2, u_register_t x3, u_register_t x4); extern int lpddr4_dvfs_handler(uint32_t smc_fid, u_register_t x1, u_register_t x2, u_register_t x3); extern int imx_src_handler(uint32_t smc_fid, u_register_t x1, u_register_t x2, u_register_t x3); +extern int imx_soc_handler(uint32_t smc_fid, u_register_t x1, u_register_t x2, u_register_t x3); /* Setup i.MX platform specific services Services */ static int32_t plat_svc_setup(void) @@ -120,6 +121,9 @@ uintptr_t imx_svc_smc_handler(uint32_t smc_fid, case FSL_SIP_SRC: SMC_RET1(handle, imx_src_handler(smc_fid, x1, x2, x3)); break; + case FSL_SIP_GET_SOC_INFO: + SMC_RET1(handle, imx_soc_handler(smc_fid, x1, x2, x3)); + break; #endif #if (defined(PLAT_IMX8QM) || defined(PLAT_IMX8QXP)) case FSL_SIP_CPUFREQ: |