Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Arm Trusted Firmware
Commits
2512d048
"vscode:/vscode.git/clone" did not exist on "915b0e46f275d19e66f8ad7762edc4fcb28967e6"
Commit
2512d048
authored
Jun 02, 2021
by
Madhukar Pappireddy
Committed by
TrustedFirmware Code Review
Jun 02, 2021
Browse files
Merge "feat(plat/imx8m): add SiP call for secondary boot" into integration
parents
203d48ad
9ce232fe
Changes
5
Show whitespace changes
Inline
Side-by-side
plat/imx/common/imx_sip_handler.c
View file @
2512d048
...
...
@@ -14,6 +14,7 @@
#include <common/runtime_svc.h>
#include <imx_sip_svc.h>
#include <lib/el3_runtime/context_mgmt.h>
#include <lib/mmio.h>
#include <sci/sci.h>
#if defined(PLAT_imx8qm) || defined(PLAT_imx8qx)
...
...
@@ -145,6 +146,37 @@ int imx_misc_set_temp_handler(uint32_t smc_fid,
#endif
/* defined(PLAT_imx8qm) || defined(PLAT_imx8qx) */
#if defined(PLAT_imx8mm) || defined(PLAT_imx8mq)
int
imx_src_handler
(
uint32_t
smc_fid
,
u_register_t
x1
,
u_register_t
x2
,
u_register_t
x3
,
void
*
handle
)
{
uint32_t
val
;
switch
(
x1
)
{
case
IMX_SIP_SRC_SET_SECONDARY_BOOT
:
if
(
x2
!=
0U
)
{
mmio_setbits_32
(
IMX_SRC_BASE
+
SRC_GPR10_OFFSET
,
SRC_GPR10_PERSIST_SECONDARY_BOOT
);
}
else
{
mmio_clrbits_32
(
IMX_SRC_BASE
+
SRC_GPR10_OFFSET
,
SRC_GPR10_PERSIST_SECONDARY_BOOT
);
}
break
;
case
IMX_SIP_SRC_IS_SECONDARY_BOOT
:
val
=
mmio_read_32
(
IMX_SRC_BASE
+
SRC_GPR10_OFFSET
);
return
!!
(
val
&
SRC_GPR10_PERSIST_SECONDARY_BOOT
);
default:
return
SMC_UNK
;
};
return
0
;
}
#endif
/* defined(PLAT_imx8mm) || defined(PLAT_imx8mq) */
static
uint64_t
imx_get_commit_hash
(
u_register_t
x2
,
u_register_t
x3
,
u_register_t
x4
)
...
...
plat/imx/common/imx_sip_svc.c
View file @
2512d048
...
...
@@ -47,6 +47,11 @@ static uintptr_t imx_sip_handler(unsigned int smc_fid,
return
imx_otp_handler
(
smc_fid
,
handle
,
x1
,
x2
);
case
IMX_SIP_MISC_SET_TEMP
:
SMC_RET1
(
handle
,
imx_misc_set_temp_handler
(
smc_fid
,
x1
,
x2
,
x3
,
x4
));
#endif
#if defined(PLAT_imx8mm) || defined(PLAT_imx8mq)
case
IMX_SIP_SRC
:
SMC_RET1
(
handle
,
imx_src_handler
(
smc_fid
,
x1
,
x2
,
x3
,
handle
));
break
;
#endif
case
IMX_SIP_BUILDINFO
:
SMC_RET1
(
handle
,
imx_buildinfo_handler
(
smc_fid
,
x1
,
x2
,
x3
,
x4
));
...
...
plat/imx/common/include/imx_sip_svc.h
View file @
2512d048
...
...
@@ -17,6 +17,10 @@
#define IMX_SIP_BUILDINFO 0xC2000003
#define IMX_SIP_BUILDINFO_GET_COMMITHASH 0x00
#define IMX_SIP_SRC 0xC2000005
#define IMX_SIP_SRC_SET_SECONDARY_BOOT 0x10
#define IMX_SIP_SRC_IS_SECONDARY_BOOT 0x11
#define IMX_SIP_GET_SOC_INFO 0xC2000006
#define IMX_SIP_WAKEUP_SRC 0xC2000009
...
...
@@ -38,6 +42,11 @@ int imx_soc_info_handler(uint32_t smc_fid, u_register_t x1,
u_register_t
x2
,
u_register_t
x3
);
#endif
#if defined(PLAT_imx8mm) || defined(PLAT_imx8mq)
int
imx_src_handler
(
uint32_t
smc_fid
,
u_register_t
x1
,
u_register_t
x2
,
u_register_t
x3
,
void
*
handle
);
#endif
#if (defined(PLAT_imx8qm) || defined(PLAT_imx8qx))
int
imx_cpufreq_handler
(
uint32_t
smc_fid
,
u_register_t
x1
,
u_register_t
x2
,
u_register_t
x3
);
...
...
plat/imx/imx8m/imx8mm/include/platform_def.h
View file @
2512d048
...
...
@@ -124,6 +124,8 @@
#define SRC_OTG1PHY_SCR U(0x20)
#define SRC_OTG2PHY_SCR U(0x24)
#define SRC_GPR1_OFFSET U(0x74)
#define SRC_GPR10_OFFSET U(0x98)
#define SRC_GPR10_PERSIST_SECONDARY_BOOT BIT(30)
#define SNVS_LPCR U(0x38)
#define SNVS_LPCR_SRTC_ENV BIT(0)
...
...
plat/imx/imx8m/imx8mq/include/platform_def.h
View file @
2512d048
...
...
@@ -103,6 +103,8 @@
#define SRC_OTG1PHY_SCR U(0x20)
#define SRC_OTG2PHY_SCR U(0x24)
#define SRC_GPR1_OFFSET U(0x74)
#define SRC_GPR10_OFFSET U(0x98)
#define SRC_GPR10_PERSIST_SECONDARY_BOOT BIT(30)
#define SNVS_LPCR U(0x38)
#define SNVS_LPCR_SRTC_ENV BIT(0)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment