mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 17:44:19 +00:00
Merge changes from topic "rmmd-graceful-exit" into integration
* changes: fix(rmmd): remove the assert check for RMM_BASE fix(std_svc): continue boot if rmmd_setup fails fix(rmmd): ignore SMC FID when RMM image is not present fix(rmmd): fail gracefully if RME is not enabled fix(rmmd): handle RMMD manifest loading failure
This commit is contained in:
commit
a4e2a9f16d
2 changed files with 12 additions and 6 deletions
|
@ -202,19 +202,23 @@ int rmmd_setup(void)
|
|||
int rc;
|
||||
|
||||
/* Make sure RME is supported. */
|
||||
assert(is_feat_rme_present());
|
||||
if (is_feat_rme_present() == 0U) {
|
||||
/* Mark the RMM boot as failed for all the CPUs */
|
||||
rmm_boot_failed = true;
|
||||
return -ENOTSUP;
|
||||
}
|
||||
|
||||
rmm_ep_info = bl31_plat_get_next_image_ep_info(REALM);
|
||||
if (rmm_ep_info == NULL) {
|
||||
if ((rmm_ep_info == NULL) || (rmm_ep_info->pc == 0)) {
|
||||
WARN("No RMM image provided by BL2 boot loader, Booting "
|
||||
"device without RMM initialization. SMCs destined for "
|
||||
"RMM will return SMC_UNK\n");
|
||||
|
||||
/* Mark the boot as failed for all the CPUs */
|
||||
rmm_boot_failed = true;
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
/* Under no circumstances will this parameter be 0 */
|
||||
assert(rmm_ep_info->pc == RMM_BASE);
|
||||
|
||||
/* Initialise an entrypoint to set up the CPU context */
|
||||
ep_attr = EP_REALM;
|
||||
if ((read_sctlr_el3() & SCTLR_EE_BIT) != 0U) {
|
||||
|
@ -239,6 +243,8 @@ int rmmd_setup(void)
|
|||
rc = plat_rmmd_load_manifest(manifest);
|
||||
if (rc != 0) {
|
||||
ERROR("Error loading RMM Boot Manifest (%i)\n", rc);
|
||||
/* Mark the boot as failed for all the CPUs */
|
||||
rmm_boot_failed = true;
|
||||
return rc;
|
||||
}
|
||||
flush_dcache_range((uintptr_t)shared_buf_base, shared_buf_size);
|
||||
|
|
|
@ -66,7 +66,7 @@ static int32_t std_svc_setup(void)
|
|||
|
||||
#if ENABLE_RME
|
||||
if (rmmd_setup() != 0) {
|
||||
ret = 1;
|
||||
WARN("RMMD setup failed. Continuing boot.\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue