Skip to content

Commit 0718a14

Browse files
committed
applications: nrf_desktop: nrf54h20: migrate to ironside se
Updated the nrf54h20dk/nrf54h20/cpuapp and nrf54h20dk/nrf54h20/cpurad board target configurations in the nRF Desktop application to align them with the new nRF54H20 SW architecture that is based on the IronSide SE. Added the MCUboot bootloader configuration and replaced the default nRF54H20 partition map with the custom application-optimized memory map. The updated configuration is the first step towards the complete feature migration. The following features are disabled and not yet supported: - MCUmgr DFU with the Bluetooth transport - Config Channel DFU with both the USB and Bluetooth transports - DVFS - S2RAM in dongle configurations Ref: NCSDK-34151 Signed-off-by: Kamil Piszczek <Kamil.Piszczek@nordicsemi.no>
1 parent 771e0fa commit 0718a14

File tree

16 files changed

+209
-108
lines changed

16 files changed

+209
-108
lines changed

applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/app_common.dtsi

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
/*
2-
* Copyright (c) 2024 Nordic Semiconductor ASA
2+
* Copyright (c) 2024-2025 Nordic Semiconductor ASA
33
*
44
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
55
*/
66

7+
#include "memory_map.dtsi"
8+
79
/ {
810
/* Redefine leds to fit CAF requirements. */
911
/delete-node/ leds;
@@ -51,25 +53,22 @@
5153
label = "Green LED 3";
5254
};
5355
};
54-
55-
aliases {
56-
nrfdesktop-dvfs-clock = &cpuapp_hsfll;
57-
};
5856
};
5957

60-
&cpusec_cpuapp_ipc {
61-
status = "okay";
58+
/* Define the necessary aliases for the application image partitions. */
59+
slot0_partition: &cpuapp_slot0_partition {
60+
label = "image-0";
6261
};
6362

64-
&cpusec_bellboard {
65-
status = "okay";
63+
slot1_partition: &cpuapp_slot1_partition {
64+
label = "image-1";
6665
};
6766

68-
/* Shrink ppr partition as ppr core is not used and extend app core code partition. */
69-
&cpuppr_code_partition {
70-
reg = < 0xf8000 DT_SIZE_K(32) >;
67+
/* Remove the undefined property value from the disabled VPR cores to prevent build errors. */
68+
&cpuflpr_vpr {
69+
/delete-property/ source-memory;
7170
};
7271

73-
&cpuapp_slot0_partition {
74-
reg = < 0xa6000 DT_SIZE_K(328) >;
72+
&cpuppr_vpr {
73+
/delete-property/ source-memory;
7574
};
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor ASA
3+
*
4+
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
*/
6+
7+
#include "../../memory_map.dtsi"
8+
9+
/* The nRF54H20 DK defines memory map using DTS.
10+
* Assign the bootloader partition to the MCUboot image.
11+
*/
12+
/ {
13+
chosen {
14+
zephyr,code-partition = &boot_partition;
15+
};
16+
};
17+
18+
/* Define the necessary aliases for the application image partitions. */
19+
boot_partition: &cpuapp_boot_partition {
20+
label = "mcuboot";
21+
};
22+
23+
slot0_partition: &cpux_slot0_partition {
24+
label = "image-0";
25+
};
26+
27+
slot1_partition: &cpux_slot1_partition {
28+
label = "image-1";
29+
};
30+
31+
/* Remove the undefined property value from the disabled VPR cores to prevent build errors. */
32+
&cpuflpr_vpr {
33+
/delete-property/ source-memory;
34+
};
35+
36+
&cpuppr_vpr {
37+
/delete-property/ source-memory;
38+
};
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MC4CAQAwBQYDK2VwBCIEIFe3odXpEgmHpGsRmLZkC9FS+DMxKO5yi6BmKTctX05/
3+
-----END PRIVATE KEY-----
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#
2+
# Copyright (c) 2025 Nordic Semiconductor ASA
3+
#
4+
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
#
6+
CONFIG_SIZE_OPTIMIZATIONS=y
7+
8+
CONFIG_HW_STACK_PROTECTION=y
9+
CONFIG_MAIN_STACK_SIZE=10240
10+
CONFIG_BOOT_BOOTSTRAP=n
11+
12+
CONFIG_BOOT_VERSION_CMP_USE_BUILD_NUMBER=y
13+
14+
CONFIG_FLASH=y
15+
# CONFIG_FPROTECT is not supported yet on the nRF54H20 SoC.
16+
17+
# Configure Zephyr system power management
18+
CONFIG_PM=y
19+
CONFIG_PM_S2RAM=y
20+
CONFIG_PM_S2RAM_CUSTOM_MARKING=y
21+
22+
# Reduce memory consumption
23+
CONFIG_BOOT_BANNER=n
24+
CONFIG_NCS_BOOT_BANNER=n
25+
CONFIG_CLOCK_CONTROL=n
26+
CONFIG_SPI_NOR=n
27+
CONFIG_GPIO=n
28+
CONFIG_SERIAL=n
29+
CONFIG_CONSOLE=n
30+
CONFIG_UART_CONSOLE=n
31+
CONFIG_PRINTK=n
32+
CONFIG_USE_SEGGER_RTT=n
33+
34+
# Use minimal C library instead of the Picolib
35+
CONFIG_MINIMAL_LIBC=y
36+
37+
# Activate Link Time Optimization (LTO)
38+
CONFIG_LTO=y
39+
CONFIG_ISR_TABLES_LOCAL_DECLARATION=y
40+
41+
# Improve debugging experience by disabling reset on fatal error
42+
CONFIG_RESET_ON_FATAL_ERROR=n
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor ASA
3+
*
4+
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
*/
6+
7+
&mram1x {
8+
/delete-node/ partitions;
9+
10+
/* Redefine the "partitions" DTS node. */
11+
partitions {
12+
compatible = "fixed-partitions";
13+
#address-cells = <1>;
14+
#size-cells = <1>;
15+
16+
cpuapp_boot_partition: partition@30000 {
17+
reg = <0x30000 DT_SIZE_K(32)>;
18+
};
19+
20+
cpux_slot0_partition: partition@38000 {
21+
reg = <0x38000 DT_SIZE_K(800)>;
22+
};
23+
24+
cpuapp_slot0_partition: subpartition@38000 {
25+
reg = <0x38000 DT_SIZE_K(580)>;
26+
};
27+
28+
cpurad_slot0_partition: subpartition@c9000 {
29+
reg = <0x98000 DT_SIZE_K(220)>;
30+
};
31+
32+
cpux_slot1_partition: partition@100000 {
33+
reg = <0x100000 DT_SIZE_K(800)>;
34+
};
35+
36+
cpuapp_slot1_partition: subpartition@100000 {
37+
reg = <0x100000 DT_SIZE_K(580)>;
38+
};
39+
40+
cpurad_slot1_partition: subpartition@191000 {
41+
reg = <0x164000 DT_SIZE_K(220)>;
42+
};
43+
44+
storage_partition: partition@1c8000 {
45+
reg = <0x1c8000 DT_SIZE_K(40)>;
46+
};
47+
48+
periphconf_partition: partition@1d2000 {
49+
reg = <0x1d2000 DT_SIZE_K(8)>;
50+
};
51+
};
52+
};

applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/prj.conf

Lines changed: 4 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2024 Nordic Semiconductor ASA
2+
# Copyright (c) 2024-2025 Nordic Semiconductor ASA
33
#
44
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
55
#
@@ -41,9 +41,6 @@ CONFIG_DESKTOP_USB_STACK_NEXT=y
4141
CONFIG_DESKTOP_BLE_ADV_CTRL_ENABLE=y
4242
CONFIG_DESKTOP_BLE_ADV_CTRL_SUSPEND_ON_USB=y
4343

44-
CONFIG_DESKTOP_DFU_MCUMGR_ENABLE=y
45-
CONFIG_CAF_INIT_LOG_BLE_SMP_TRANSFER_EVENTS=n
46-
4744
# The LLPM must be explicitly enabled, as the Bluetooth Controller
4845
# is not part of the main application.
4946
CONFIG_CAF_BLE_USE_LLPM=y
@@ -59,7 +56,9 @@ CONFIG_DESKTOP_BLE_LOW_LATENCY_LOCK=y
5956

6057
CONFIG_DESKTOP_CONFIG_CHANNEL_ENABLE=y
6158
CONFIG_DESKTOP_CONFIG_CHANNEL_OUT_REPORT=y
62-
CONFIG_DESKTOP_CONFIG_CHANNEL_DFU_ENABLE=y
59+
60+
# Temporarily disable unsupported features.
61+
CONFIG_DESKTOP_DVFS=n
6362

6463
################################################################################
6564
# Zephyr Configuration
@@ -101,28 +100,6 @@ CONFIG_UDC_DWC2_DMA=n
101100
CONFIG_BT_MAX_PAIRED=2
102101
CONFIG_BT_ID_MAX=3
103102

104-
105-
# Enable MCUmgr Bluetooth transport
106-
CONFIG_MCUMGR_TRANSPORT_BT=y
107-
CONFIG_MCUMGR_TRANSPORT_BT_PERM_RW_ENCRYPT=y
108-
109-
# Allow for large Bluetooth data packets.
110-
CONFIG_BT_L2CAP_TX_MTU=498
111-
CONFIG_BT_BUF_ACL_RX_SIZE=502
112-
CONFIG_BT_BUF_ACL_TX_SIZE=251
113-
114-
# Enable the MCUmgr Packet Reassembly feature over Bluetooth and its configuration dependencies.
115-
# MCUmgr buffer size is optimized to fit one SMP packet divided into five Bluetooth Write Commands,
116-
# transmitted with the maximum possible MTU value: 498 bytes.
117-
CONFIG_MCUMGR_TRANSPORT_BT_REASSEMBLY=y
118-
CONFIG_MCUMGR_TRANSPORT_NETBUF_SIZE=2475
119-
CONFIG_MCUMGR_TRANSPORT_WORKQUEUE_STACK_SIZE=4096
120-
121-
# Allow a DFU host to retrieve information about the number and size of MCUmgr buffers.
122-
# The nRF Connect Device Manager uses this information to speed up the DFU.
123-
CONFIG_MCUMGR_GRP_OS=y
124-
CONFIG_MCUMGR_GRP_OS_MCUMGR_PARAMS=y
125-
126103
# Configure Zephyr system power management
127104
CONFIG_PM=y
128105
CONFIG_PM_S2RAM=y
@@ -150,6 +127,3 @@ CONFIG_LOG_PROCESS_THREAD_STACK_SIZE=1024
150127

151128
################################################################################
152129
# DFU configuration
153-
154-
CONFIG_SUIT=y
155-
CONFIG_SUIT_DFU_CANDIDATE_PROCESSING_MINIMAL=y

applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/prj_dongle.conf

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,9 @@ CONFIG_DESKTOP_BLE_NEW_PEER_SCAN_ON_BOOT=y
4141
CONFIG_DESKTOP_BLE_PEER_ERASE=y
4242

4343
CONFIG_DESKTOP_CONFIG_CHANNEL_ENABLE=y
44-
CONFIG_DESKTOP_CONFIG_CHANNEL_DFU_ENABLE=y
44+
45+
# Temporarily disable unsupported features.
46+
CONFIG_DESKTOP_DVFS=n
4547

4648
################################################################################
4749
# Zephyr Configuration
@@ -84,9 +86,9 @@ CONFIG_BT_PRIVACY=y
8486
CONFIG_BT_BUF_ACL_TX_SIZE=35
8587

8688
# Configure Zephyr system power management
89+
# The S2RAM (CONFIG_PM_S2RAM) is not supported for this configuration
90+
# and enabling it will cause the usage fault.
8791
CONFIG_PM=y
88-
CONFIG_PM_S2RAM=y
89-
CONFIG_PM_S2RAM_CUSTOM_MARKING=y
9092

9193
################################################################################
9294
# Debug logs configuration
@@ -107,9 +109,3 @@ CONFIG_LOG_MODE_DEFERRED=y
107109
CONFIG_LOG_PRINTK=y
108110
CONFIG_LOG_BUFFER_SIZE=4096
109111
CONFIG_LOG_PROCESS_THREAD_STACK_SIZE=1024
110-
111-
################################################################################
112-
# DFU configuration
113-
114-
CONFIG_SUIT=y
115-
CONFIG_SUIT_DFU_CANDIDATE_PROCESSING_MINIMAL=y

applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/prj_release.conf

Lines changed: 4 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2024 Nordic Semiconductor ASA
2+
# Copyright (c) 2024-2025 Nordic Semiconductor ASA
33
#
44
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
55
#
@@ -36,8 +36,6 @@ CONFIG_DESKTOP_USB_STACK_NEXT=y
3636
CONFIG_DESKTOP_BLE_ADV_CTRL_ENABLE=y
3737
CONFIG_DESKTOP_BLE_ADV_CTRL_SUSPEND_ON_USB=y
3838

39-
CONFIG_DESKTOP_DFU_MCUMGR_ENABLE=y
40-
4139
# The LLPM must be explicitly enabled, as the Bluetooth Controller
4240
# is not part of the main application.
4341
CONFIG_CAF_BLE_USE_LLPM=y
@@ -54,7 +52,9 @@ CONFIG_DESKTOP_FAILSAFE_ENABLE=y
5452

5553
CONFIG_DESKTOP_CONFIG_CHANNEL_ENABLE=y
5654
CONFIG_DESKTOP_CONFIG_CHANNEL_OUT_REPORT=y
57-
CONFIG_DESKTOP_CONFIG_CHANNEL_DFU_ENABLE=y
55+
56+
# Temporarily disable unsupported features.
57+
CONFIG_DESKTOP_DVFS=n
5858

5959
################################################################################
6060
# Zephyr Configuration
@@ -95,28 +95,6 @@ CONFIG_UDC_DWC2_DMA=n
9595
CONFIG_BT_MAX_PAIRED=2
9696
CONFIG_BT_ID_MAX=3
9797

98-
99-
# Enable MCUmgr Bluetooth transport
100-
CONFIG_MCUMGR_TRANSPORT_BT=y
101-
CONFIG_MCUMGR_TRANSPORT_BT_PERM_RW_ENCRYPT=y
102-
103-
# Allow for large Bluetooth data packets.
104-
CONFIG_BT_L2CAP_TX_MTU=498
105-
CONFIG_BT_BUF_ACL_RX_SIZE=502
106-
CONFIG_BT_BUF_ACL_TX_SIZE=251
107-
108-
# Enable the MCUmgr Packet Reassembly feature over Bluetooth and its configuration dependencies.
109-
# MCUmgr buffer size is optimized to fit one SMP packet divided into five Bluetooth Write Commands,
110-
# transmitted with the maximum possible MTU value: 498 bytes.
111-
CONFIG_MCUMGR_TRANSPORT_BT_REASSEMBLY=y
112-
CONFIG_MCUMGR_TRANSPORT_NETBUF_SIZE=2475
113-
CONFIG_MCUMGR_TRANSPORT_WORKQUEUE_STACK_SIZE=4096
114-
115-
# Allow a DFU host to retrieve information about the number and size of MCUmgr buffers.
116-
# The nRF Connect Device Manager uses this information to speed up the DFU.
117-
CONFIG_MCUMGR_GRP_OS=y
118-
CONFIG_MCUMGR_GRP_OS_MCUMGR_PARAMS=y
119-
12098
# Configure Zephyr system power management
12199
CONFIG_PM=y
122100
CONFIG_PM_S2RAM=y
@@ -128,9 +106,3 @@ CONFIG_PM_S2RAM_CUSTOM_MARKING=y
128106
CONFIG_SERIAL=n
129107
CONFIG_CONSOLE=n
130108
CONFIG_UART_CONSOLE=n
131-
132-
################################################################################
133-
# DFU configuration
134-
135-
CONFIG_SUIT=y
136-
CONFIG_SUIT_DFU_CANDIDATE_PROCESSING_MINIMAL=y

applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/prj_release_dongle.conf

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ CONFIG_DESKTOP_WATCHDOG_ENABLE=y
4040
CONFIG_DESKTOP_FAILSAFE_ENABLE=y
4141

4242
CONFIG_DESKTOP_CONFIG_CHANNEL_ENABLE=y
43-
CONFIG_DESKTOP_CONFIG_CHANNEL_DFU_ENABLE=y
43+
44+
# Temporarily disable unsupported features.
45+
CONFIG_DESKTOP_DVFS=n
4446

4547
################################################################################
4648
# Zephyr Configuration
@@ -83,19 +85,13 @@ CONFIG_BT_PRIVACY=y
8385
CONFIG_BT_BUF_ACL_TX_SIZE=35
8486

8587
# Configure Zephyr system power management
88+
# The S2RAM (CONFIG_PM_S2RAM) is not supported for this configuration
89+
# and enabling it will cause the usage fault.
8690
CONFIG_PM=y
87-
CONFIG_PM_S2RAM=y
88-
CONFIG_PM_S2RAM_CUSTOM_MARKING=y
8991

9092
################################################################################
9193
# Disable unused features
9294

9395
CONFIG_SERIAL=n
9496
CONFIG_CONSOLE=n
9597
CONFIG_UART_CONSOLE=n
96-
97-
################################################################################
98-
# DFU configuration
99-
100-
CONFIG_SUIT=y
101-
CONFIG_SUIT_DFU_CANDIDATE_PROCESSING_MINIMAL=y

0 commit comments

Comments
 (0)