mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
misc: scu_api: Add SCFW API to get the index of boot container set
Add SCFW API sc_misc_get_boot_container to get current boot container set index. The index value returns 1 for primary container set, 2 for secondary container set. Signed-off-by: Ye Li <ye.li@nxp.com> Reviewed-by: Peng Fan <peng.fan@nxp.com>
This commit is contained in:
parent
def88bce09
commit
dfbdaa66b7
3 changed files with 27 additions and 0 deletions
|
@ -115,6 +115,7 @@ struct sc_rpc_msg_s {
|
|||
#define MISC_FUNC_GET_TEMP 13U
|
||||
#define MISC_FUNC_GET_BOOT_DEV 16U
|
||||
#define MISC_FUNC_GET_BUTTON_STATUS 18U
|
||||
#define MISC_FUNC_GET_BOOT_CONTAINER 36U
|
||||
|
||||
/* PAD RPC */
|
||||
#define PAD_FUNC_UNKNOWN 0
|
||||
|
|
|
@ -82,6 +82,7 @@ int sc_misc_get_control(sc_ipc_t ipc, sc_rsrc_t resource, sc_ctrl_t ctrl,
|
|||
u32 *val);
|
||||
void sc_misc_get_boot_dev(sc_ipc_t ipc, sc_rsrc_t *boot_dev);
|
||||
void sc_misc_boot_status(sc_ipc_t ipc, sc_misc_boot_status_t status);
|
||||
int sc_misc_get_boot_container(sc_ipc_t ipc, u8 *idx);
|
||||
void sc_misc_build_info(sc_ipc_t ipc, u32 *build, u32 *commit);
|
||||
int sc_misc_otp_fuse_read(sc_ipc_t ipc, u32 word, u32 *val);
|
||||
int sc_misc_get_temp(sc_ipc_t ipc, sc_rsrc_t resource, sc_misc_temp_t temp,
|
||||
|
|
|
@ -374,6 +374,31 @@ void sc_misc_boot_status(sc_ipc_t ipc, sc_misc_boot_status_t status)
|
|||
__func__, status, RPC_R8(&msg));
|
||||
}
|
||||
|
||||
int sc_misc_get_boot_container(sc_ipc_t ipc, u8 *idx)
|
||||
{
|
||||
struct udevice *dev = gd->arch.scu_dev;
|
||||
int size = sizeof(struct sc_rpc_msg_s);
|
||||
struct sc_rpc_msg_s msg;
|
||||
int ret;
|
||||
|
||||
if (!dev)
|
||||
hang();
|
||||
|
||||
RPC_VER(&msg) = SC_RPC_VERSION;
|
||||
RPC_SIZE(&msg) = 1U;
|
||||
RPC_SVC(&msg) = (u8)SC_RPC_SVC_MISC;
|
||||
RPC_FUNC(&msg) = (u8)MISC_FUNC_GET_BOOT_CONTAINER;
|
||||
|
||||
ret = misc_call(dev, SC_FALSE, &msg, size, &msg, size);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
if (idx)
|
||||
*idx = (u8)RPC_U8(&msg, 0U);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sc_misc_build_info(sc_ipc_t ipc, u32 *build, u32 *commit)
|
||||
{
|
||||
struct udevice *dev = gd->arch.scu_dev;
|
||||
|
|
Loading…
Reference in a new issue