Skip to content

Commit 5b73f54

Browse files
committed
[nrf noup] boards: Added nrf54h20dk/nrf54h20/cpuapp/iron/mcuboot/b0
This is one of the solutions for adding an appropriate memory map in case mcuboot and NSIB are to be used. Signed-off-by: Artur Hadasz <[email protected]>
1 parent 684fe9d commit 5b73f54

9 files changed

+247
-3
lines changed

boards/nordic/nrf54h20dk/Kconfig.defconfig

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,10 @@ config FLASH_LOAD_OFFSET
2727
default 0x2c000 if !USE_DT_CODE_PARTITION
2828

2929
endif # BOARD_NRF54H20DK_NRF54H20_CPUAPP_IRON
30+
31+
if BOARD_NRF54H20DK_NRF54H20_CPUAPP_IRON_MCUBOOT_B0
32+
33+
config ROM_START_OFFSET
34+
default 0x800 if BOOTLOADER_MCUBOOT || (MCUBOOT && SECURE_BOOT)
35+
36+
endif # BOARD_NRF54H20DK_NRF54H20_CPUAPP_IRON_MCUBOOT_B0

boards/nordic/nrf54h20dk/Kconfig.nrf54h20dk

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@
33

44
config BOARD_NRF54H20DK
55
select SOC_NRF54H20_CPUAPP if (BOARD_NRF54H20DK_NRF54H20_CPUAPP || \
6-
BOARD_NRF54H20DK_NRF54H20_CPUAPP_IRON)
6+
BOARD_NRF54H20DK_NRF54H20_CPUAPP_IRON || \
7+
BOARD_NRF54H20DK_NRF54H20_CPUAPP_IRON_MCUBOOT_B0)
78
select SOC_NRF54H20_CPURAD if (BOARD_NRF54H20DK_NRF54H20_CPURAD || \
89
BOARD_NRF54H20DK_NRF54H20_CPURAD_IRON)
910
select SOC_NRF54H20_CPUPPR if (BOARD_NRF54H20DK_NRF54H20_CPUPPR || \
1011
BOARD_NRF54H20DK_NRF54H20_CPUPPR_XIP)
1112
select SOC_NRF54H20_CPUFLPR if (BOARD_NRF54H20DK_NRF54H20_CPUFLPR || \
1213
BOARD_NRF54H20DK_NRF54H20_CPUFLPR_XIP)
1314
select SOC_NRF54H20_IRON if (BOARD_NRF54H20DK_NRF54H20_CPUAPP_IRON || \
14-
BOARD_NRF54H20DK_NRF54H20_CPURAD_IRON)
15+
BOARD_NRF54H20DK_NRF54H20_CPURAD_IRON || \
16+
BOARD_NRF54H20DK_NRF54H20_CPUAPP_IRON_MCUBOOT_B0)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Copyright (c) 2025 Nordic Semiconductor ASA
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
config SECURE_BOOT_APPCORE
5+
default y if BOARD_NRF54H20DK_NRF54H20_CPUAPP_IRON_MCUBOOT_B0
6+
7+
choice BOOTLOADER
8+
default BOOTLOADER_MCUBOOT if BOARD_NRF54H20DK_NRF54H20_CPUAPP_IRON_MCUBOOT_B0
9+
endchoice

boards/nordic/nrf54h20dk/board.cmake

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ include(${ZEPHYR_BASE}/boards/common/nrfutil.board.cmake)
55
if(CONFIG_BOARD_NRF54H20DK_NRF54H20_CPUAPP OR
66
CONFIG_BOARD_NRF54H20DK_NRF54H20_CPURAD OR
77
CONFIG_BOARD_NRF54H20DK_NRF54H20_CPUAPP_IRON OR
8-
CONFIG_BOARD_NRF54H20DK_NRF54H20_CPURAD_IRON)
8+
CONFIG_BOARD_NRF54H20DK_NRF54H20_CPURAD_IRON OR
9+
CONFIG_BOARD_NRF54H20DK_NRF54H20_CPUAPP_IRON_MCUBOOT_B0)
910
if(CONFIG_SOC_NRF54H20_CPUAPP)
1011
set(JLINKSCRIPTFILE ${CMAKE_CURRENT_LIST_DIR}/support/nrf54h20_cpuapp.JLinkScript)
1112
else()

boards/nordic/nrf54h20dk/board.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ board:
1111
cpucluster: cpuflpr
1212
- name: iron
1313
cpucluster: cpuapp
14+
variants:
15+
- name: mcuboot
16+
variants:
17+
- name: b0
1418
- name: iron
1519
cpucluster: cpurad
1620
revision:
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor ASA
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
/* This file is to be merged with the original memory_map.dtsi in the future.
8+
* The following nodes will be replaced:
9+
*/
10+
/delete-node/ &cpuapp_cpusec_ipc_shm;
11+
/delete-node/ &cpuapp_cpusys_ipc_shm;
12+
/delete-node/ &cpurad_cpusec_ipc_shm;
13+
/delete-node/ &cpurad_cpusys_ipc_shm;
14+
/delete-node/ &cpusec_cpuapp_ipc_shm;
15+
/delete-node/ &cpusec_cpurad_ipc_shm;
16+
/delete-node/ &cpusys_cpuapp_ipc_shm;
17+
/delete-node/ &cpusys_cpurad_ipc_shm;
18+
/delete-node/ &cpuapp_rw_partitions;
19+
/delete-node/ &cpuapp_rx_partitions;
20+
/delete-node/ &cpurad_rx_partitions;
21+
22+
/ {
23+
reserved-memory {
24+
cpuapp_cpusys_ipc_shm: memory@2f88f600 {
25+
reg = <0x2f88f600 0x80>;
26+
};
27+
28+
cpusys_cpuapp_ipc_shm: memory@2f88f680 {
29+
reg = <0x2f88f680 0x80>;
30+
};
31+
32+
cpurad_cpusys_ipc_shm: memory@2f88f700 {
33+
reg = <0x2f88f700 0x80>;
34+
};
35+
36+
cpusys_cpurad_ipc_shm: memory@2f88f780 {
37+
reg = <0x2f88f780 0x80>;
38+
};
39+
40+
cpusec_cpurad_ipc_shm: memory@2f88f800 {
41+
reg = <0x2f88f800 0x80>;
42+
};
43+
44+
cpurad_ironside_se_event_report: memory@2f88f880 {
45+
reg = <0x2f88f880 0x100>;
46+
};
47+
48+
cpurad_ironside_se_boot_report: memory@2f88f980 {
49+
reg = <0x2f88f980 0x200>;
50+
};
51+
52+
cpusec_cpuapp_ipc_shm: memory@2f88fb80 {
53+
reg = <0x2f88fb80 0x80>;
54+
};
55+
56+
cpuapp_ironside_se_event_report: memory@2f88fc00 {
57+
reg = <0x2f88fc00 0x100>;
58+
};
59+
60+
cpuapp_ironside_se_boot_report: memory@2f88fd00 {
61+
reg = <0x2f88fd00 0x200>;
62+
};
63+
};
64+
};
65+
66+
&mram1x {
67+
partitions {
68+
compatible = "fixed-partitions";
69+
#address-cells = <1>;
70+
#size-cells = <1>;
71+
72+
cpuapp_b0_partition: partition@2c000 {
73+
reg = <0x2c000 DT_SIZE_K(62)>;
74+
};
75+
76+
cpuapp_provision_partition: partition@3b800 {
77+
reg = <0x3b800 DT_SIZE_K(2)>;
78+
};
79+
80+
cpuapp_boot_partition: partition@3c000 {
81+
reg = <0x3c000 DT_SIZE_K(64)>;
82+
};
83+
84+
cpuapp_boot_slot1_partition: partition@4c000 {
85+
reg = <0x4c000 DT_SIZE_K(64)>;
86+
};
87+
88+
cpuapp_slot0_partition: partition@5c000 {
89+
reg = <0x5c000 DT_SIZE_K(336)>;
90+
};
91+
92+
cpurad_slot0_partition: partition@b0000 {
93+
reg = <0xb0000 DT_SIZE_K(272)>;
94+
};
95+
96+
cpuppr_code_partition: partition@f4000 {
97+
reg = <0xf4000 DT_SIZE_K(64)>;
98+
};
99+
100+
cpuflpr_code_partition: partition@104000 {
101+
reg = <0x104000 DT_SIZE_K(48)>;
102+
};
103+
104+
cpuapp_slot1_partition: partition@110000 {
105+
reg = <0x110000 DT_SIZE_K(336)>;
106+
};
107+
108+
cpurad_slot1_partition: partition@164000 {
109+
reg = <0x164000 DT_SIZE_K(272)>;
110+
};
111+
112+
storage_partition: partition@1a8000 {
113+
reg = <0x1a8000 DT_SIZE_K(40)>;
114+
};
115+
};
116+
};
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor ASA
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#include "nrf54h20dk_nrf54h20_cpuapp.dts"
8+
#include "nrf54h20dk_nrf54h20-ipc_conf_iron.dtsi"
9+
#include "nrf54h20dk_nrf54h20-memory_map_iron_mcuboot_b0.dtsi"
10+
11+
/delete-node/ &cpusec_cpurad_ipc;
12+
13+
/ {
14+
chosen {
15+
zephyr,code-partition = &slot0_partition;
16+
zephyr,uart-mcumgr = &uart136;
17+
};
18+
};
19+
20+
&cpusec_bellboard {
21+
status = "okay";
22+
};
23+
24+
&cpusec_cpuapp_ipc {
25+
mbox-names = "tx", "rx";
26+
status = "okay";
27+
};
28+
29+
b0_partition: &cpuapp_b0_partition {
30+
label = "b0";
31+
};
32+
33+
provision_partition: &cpuapp_provision_partition {
34+
label = "provision";
35+
};
36+
37+
boot_partition: &cpuapp_boot_partition {
38+
label = "mcuboot";
39+
};
40+
41+
boot_partition_slot1: &cpuapp_boot_slot1_partition {
42+
label = "mcuboot-image-1";
43+
};
44+
45+
slot0_partition: &cpuapp_slot0_partition {
46+
label = "image-0";
47+
};
48+
49+
slot1_partition: &cpuapp_slot1_partition {
50+
label = "image-1";
51+
};
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Copyright (c) 2025 Nordic Semiconductor ASA
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
identifier: nrf54h20dk/nrf54h20/cpuapp/iron/b0
5+
name: nRF54H20-DK-nRF54H20-Application (IRONside compatible) (revision 0.9.0)
6+
type: mcu
7+
arch: arm
8+
toolchain:
9+
- gnuarmemb
10+
- xtools
11+
- zephyr
12+
sysbuild: true
13+
ram: 256
14+
flash: 480
15+
supported:
16+
- adc
17+
- can
18+
- counter
19+
- gpio
20+
- i2c
21+
- pwm
22+
- retained_mem
23+
- spi
24+
- watchdog
25+
- usbd
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Copyright (c) 2025 Nordic Semiconductor ASA
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
# Enable UART driver
5+
CONFIG_SERIAL=y
6+
7+
# Enable console
8+
CONFIG_CONSOLE=y
9+
CONFIG_UART_CONSOLE=y
10+
11+
# Enable MPU
12+
CONFIG_ARM_MPU=y
13+
14+
# Enable hardware stack protection
15+
CONFIG_HW_STACK_PROTECTION=y
16+
17+
# MPU-based null-pointer dereferencing detection cannot be applied
18+
# as the (0x0 - 0x400) region is unmapped for this target.
19+
CONFIG_NULL_POINTER_EXCEPTION_DETECTION_NONE=y
20+
21+
# Enable cache
22+
CONFIG_CACHE_MANAGEMENT=y
23+
CONFIG_EXTERNAL_CACHE=y
24+
25+
# Enable GPIO
26+
CONFIG_GPIO=y
27+
28+
# UICR generation is not supported, and when reintroduced will not use nrf-regtool.
29+
CONFIG_NRF_REGTOOL_GENERATE_UICR=n

0 commit comments

Comments
 (0)