Commit 7697eff4 authored by Håkon Amundsen's avatar Håkon Amundsen Committed by Fabio Baltieri
Browse files

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: default avatarHåkon Amundsen <haakon.amundsen@nordicsemi.no>
parent 78a61579
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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

+7 −0
Original line number Diff line number Diff line
@@ -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;