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:
Håkon Amundsen 2025-06-23 07:09:46 +02:00 committed by Fabio Baltieri
parent 78a61579d8
commit 7697eff4fb
2 changed files with 14 additions and 0 deletions

View File

@ -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

View File

@ -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;