soc: nrf54h: don't boot radio core if VTOR is not programmed
Booting the radio core when it is not programmed will typically cause a reset loop. This can happen when programming multiple images to a device, and the app core image is programmed before the radio core. With this change we avoid the reset loop in that case. Signed-off-by: Håkon Amundsen <haakon.amundsen@nordicsemi.no>
This commit is contained in:
parent
78a61579d8
commit
7697eff4fb
@ -78,6 +78,13 @@ config SOC_NRF54H20_CPURAD_ENABLE
|
||||
Radiocore, and also power will be requested to the Radiocore
|
||||
subsystem. The Radiocore will then start executing instructions.
|
||||
|
||||
config SOC_NRF54H20_CPURAD_ENABLE_CHECK_VTOR
|
||||
bool "Check VTOR before booting Radio core"
|
||||
default y
|
||||
depends on SOC_NRF54H20_CPURAD_ENABLE
|
||||
help
|
||||
Verify that VTOR is not 0xFFFFFFFF before booting the Radiocore.
|
||||
|
||||
config SOC_NRF54H20_CPURAD
|
||||
select SOC_NRF54H20_CPURAD_COMMON
|
||||
|
||||
|
||||
@ -203,6 +203,13 @@ void soc_late_init_hook(void)
|
||||
CONFIG_ROM_START_OFFSET);
|
||||
#endif
|
||||
|
||||
if (IS_ENABLED(CONFIG_SOC_NRF54H20_CPURAD_ENABLE_CHECK_VTOR) &&
|
||||
sys_read32((mem_addr_t)radiocore_address) == 0xFFFFFFFFUL) {
|
||||
LOG_ERR("Radiocore is not programmed, it will not be started");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/* Don't wait as this is not yet supported. */
|
||||
bool cpu_wait = false;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user