From 5e541005513b75382670034b486c093a017d7388 Mon Sep 17 00:00:00 2001 From: Tomasz Chyrowicz Date: Wed, 14 May 2025 14:04:35 +0200 Subject: [PATCH] boards: nrf54h20_iron: Allow radio updates Add necessary changes to provide a simple, updateable radio image. Signed-off-by: Tomasz Chyrowicz --- boards/nordic/nrf54h20dk/Kconfig.defconfig | 7 +++++++ .../nordic/nrf54h20dk/nrf54h20dk_nrf54h20_cpuapp_iron.dts | 8 ++++++++ .../nordic/nrf54h20dk/nrf54h20dk_nrf54h20_cpurad_iron.dts | 8 ++++++++ modules/Kconfig.mcuboot | 1 + soc/nordic/nrf54h/soc.c | 3 ++- 5 files changed, 26 insertions(+), 1 deletion(-) diff --git a/boards/nordic/nrf54h20dk/Kconfig.defconfig b/boards/nordic/nrf54h20dk/Kconfig.defconfig index 60c9345eb04..4023f3b0232 100644 --- a/boards/nordic/nrf54h20dk/Kconfig.defconfig +++ b/boards/nordic/nrf54h20dk/Kconfig.defconfig @@ -27,3 +27,10 @@ config FLASH_LOAD_OFFSET default 0x2c000 if !USE_DT_CODE_PARTITION endif # BOARD_NRF54H20DK_NRF54H20_CPUAPP_IRON + +if BOARD_NRF54H20DK_NRF54H20_CPURAD_IRON + +config ROM_START_OFFSET + default 0x800 if BOOTLOADER_MCUBOOT + +endif # BOARD_NRF54H20DK_NRF54H20_CPURAD_IRON diff --git a/boards/nordic/nrf54h20dk/nrf54h20dk_nrf54h20_cpuapp_iron.dts b/boards/nordic/nrf54h20dk/nrf54h20dk_nrf54h20_cpuapp_iron.dts index d455e200b0b..e822cf2c911 100644 --- a/boards/nordic/nrf54h20dk/nrf54h20dk_nrf54h20_cpuapp_iron.dts +++ b/boards/nordic/nrf54h20dk/nrf54h20dk_nrf54h20_cpuapp_iron.dts @@ -35,3 +35,11 @@ slot0_partition: &cpuapp_slot0_partition { slot1_partition: &cpuapp_slot1_partition { label = "image-1"; }; + +slot2_partition: &cpurad_slot0_partition { + label = "image-2"; +}; + +slot3_partition: &cpurad_slot1_partition { + label = "image-3"; +}; diff --git a/boards/nordic/nrf54h20dk/nrf54h20dk_nrf54h20_cpurad_iron.dts b/boards/nordic/nrf54h20dk/nrf54h20dk_nrf54h20_cpurad_iron.dts index 669143a79da..16b599f554e 100644 --- a/boards/nordic/nrf54h20dk/nrf54h20dk_nrf54h20_cpurad_iron.dts +++ b/boards/nordic/nrf54h20dk/nrf54h20dk_nrf54h20_cpurad_iron.dts @@ -19,3 +19,11 @@ mbox-names = "tx", "rx"; status = "okay"; }; + +slot0_partition: &cpurad_slot0_partition { + label = "image-0"; +}; + +slot1_partition: &cpurad_slot1_partition { + label = "image-1"; +}; diff --git a/modules/Kconfig.mcuboot b/modules/Kconfig.mcuboot index 2c4dbfa930d..c02ee43f5eb 100644 --- a/modules/Kconfig.mcuboot +++ b/modules/Kconfig.mcuboot @@ -227,6 +227,7 @@ config MCUBOOT_BOOTLOADER_MODE_DIRECT_XIP config MCUBOOT_BOOTLOADER_MODE_DIRECT_XIP_WITH_REVERT bool "MCUboot has been configured for DirectXIP with revert" + select MCUBOOT_BOOTUTIL_LIB select MCUBOOT_BOOTUTIL_LIB_FOR_DIRECT_XIP select MCUBOOT_BOOTLOADER_MODE_HAS_NO_DOWNGRADE select MCUBOOT_BOOTLOADER_NO_DOWNGRADE diff --git a/soc/nordic/nrf54h/soc.c b/soc/nordic/nrf54h/soc.c index c1849ab3a23..fd1117e0163 100644 --- a/soc/nordic/nrf54h/soc.c +++ b/soc/nordic/nrf54h/soc.c @@ -173,7 +173,8 @@ void soc_late_init_hook(void) void *radiocore_address = (void *)(DT_REG_ADDR(DT_GPARENT(DT_NODELABEL_CPURAD_SLOT0_PARTITION)) + - DT_REG_ADDR(DT_NODELABEL_CPURAD_SLOT0_PARTITION)); + DT_REG_ADDR(DT_NODELABEL_CPURAD_SLOT0_PARTITION) + + CONFIG_ROM_START_OFFSET); /* Don't wait as this is not yet supported. */ bool cpu_wait = false;