From bf2b39c4827386fa9ebeb70a45dd21bafcfc18dc Mon Sep 17 00:00:00 2001 From: Kamil Piszczek Date: Fri, 5 Sep 2025 13:28:37 +0200 Subject: [PATCH] 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 Ref: NCSDK-34151 Signed-off-by: Kamil Piszczek --- .../app_common.dtsi | 30 +++++----- .../images/mcuboot/app.overlay | 36 +++++++++++ .../images/mcuboot/mcuboot_private.pem | 3 + .../images/mcuboot/prj.conf | 51 ++++++++++++++++ .../images/mcuboot/prj_dongle.conf | 51 ++++++++++++++++ .../images/mcuboot/prj_release.conf | 50 ++++++++++++++++ .../images/mcuboot/prj_release_dongle.conf | 50 ++++++++++++++++ .../memory_map.dtsi | 60 +++++++++++++++++++ .../nrf54h20dk_nrf54h20_cpuapp/prj.conf | 36 ++--------- .../prj_dongle.conf | 11 ++-- .../prj_release.conf | 38 ++---------- .../prj_release_dongle.conf | 11 ++-- .../nrf54h20dk_nrf54h20_cpuapp/sysbuild.conf | 8 ++- .../sysbuild_dongle.conf | 6 ++ .../sysbuild_release.conf | 8 ++- .../sysbuild_release_dongle.conf | 6 ++ .../images/ipc_radio/app.overlay | 15 +++++ .../images/ipc_radio/prj.conf | 7 +-- .../images/ipc_radio/prj_release.conf | 7 +-- scripts/quarantine.yaml | 6 -- 20 files changed, 380 insertions(+), 110 deletions(-) create mode 100644 applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/app.overlay create mode 100644 applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/mcuboot_private.pem create mode 100644 applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/prj.conf create mode 100644 applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/prj_dongle.conf create mode 100644 applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/prj_release.conf create mode 100644 applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/prj_release_dongle.conf create mode 100644 applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/memory_map.dtsi create mode 100644 applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpurad/images/ipc_radio/app.overlay diff --git a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/app_common.dtsi b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/app_common.dtsi index e743fe116dfc..f6e901453ed9 100644 --- a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/app_common.dtsi +++ b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/app_common.dtsi @@ -1,9 +1,11 @@ /* - * Copyright (c) 2024 Nordic Semiconductor ASA + * Copyright (c) 2024-2025 Nordic Semiconductor ASA * * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause */ +#include "memory_map.dtsi" + / { /* Redefine leds to fit CAF requirements. */ /delete-node/ leds; @@ -51,25 +53,25 @@ label = "Green LED 3"; }; }; - - aliases { - nrfdesktop-dvfs-clock = &cpuapp_hsfll; - }; }; -&cpusec_cpuapp_ipc { - status = "okay"; +/* Define the necessary aliases for the MCUboot slots that will be used by the DFU transports. + * Due to the build system limitation, the allowed size of the application image (configured by + * the code partition DTS node) is incorrectly increased by the size allocated for the radio image. + */ +slot0_partition: &cpuapp_slot0_partition { + label = "image-0"; }; -&cpusec_bellboard { - status = "okay"; +slot1_partition: &cpuapp_slot1_partition { + label = "image-1"; }; -/* Shrink ppr partition as ppr core is not used and extend app core code partition. */ -&cpuppr_code_partition { - reg = < 0xf8000 DT_SIZE_K(32) >; +/* Remove the undefined property value from the disabled VPR cores to prevent build errors. */ +&cpuflpr_vpr { + /delete-property/ source-memory; }; -&cpuapp_slot0_partition { - reg = < 0xa6000 DT_SIZE_K(328) >; +&cpuppr_vpr { + /delete-property/ source-memory; }; diff --git a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/app.overlay b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/app.overlay new file mode 100644 index 000000000000..6219102df240 --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/app.overlay @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "../../memory_map.dtsi" + +/* The nRF54H20 DK defines memory map using DTS. + * Assign the bootloader partition to the MCUboot image. + */ +/ { + chosen { + zephyr,code-partition = &cpuapp_boot_partition; + }; +}; + +/* Define the necessary aliases for the DTS partition nodes that contain the application and + * radio images. + */ +slot0_partition: &cpuapp_slot0_partition { + label = "image-0"; +}; + +slot1_partition: &cpuapp_slot1_partition { + label = "image-1"; +}; + +/* Remove the undefined property value from the disabled VPR cores to prevent build errors. */ +&cpuflpr_vpr { + /delete-property/ source-memory; +}; + +&cpuppr_vpr { + /delete-property/ source-memory; +}; diff --git a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/mcuboot_private.pem b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/mcuboot_private.pem new file mode 100644 index 000000000000..32ca7259d2c2 --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/mcuboot_private.pem @@ -0,0 +1,3 @@ +-----BEGIN PRIVATE KEY----- +MC4CAQAwBQYDK2VwBCIEIFe3odXpEgmHpGsRmLZkC9FS+DMxKO5yi6BmKTctX05/ +-----END PRIVATE KEY----- diff --git a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/prj.conf b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/prj.conf new file mode 100644 index 000000000000..3c1e6c678484 --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/prj.conf @@ -0,0 +1,51 @@ +# +# Copyright (c) 2025 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# +CONFIG_SIZE_OPTIMIZATIONS=y + +CONFIG_HW_STACK_PROTECTION=y +CONFIG_MAIN_STACK_SIZE=10240 +CONFIG_BOOT_BOOTSTRAP=n + +CONFIG_BOOT_VERSION_CMP_USE_BUILD_NUMBER=y + +CONFIG_FLASH=y +# CONFIG_FPROTECT is not supported yet on the nRF54H20 SoC + +# Configure Zephyr system power management +# The Zephyr system power management is used by the MCUboot bootloader to detect wake-up from +# S2RAM and redirect execution to the resume routine of the application image +CONFIG_PM=y +CONFIG_PM_S2RAM=y +CONFIG_PM_S2RAM_CUSTOM_MARKING=y + +# Enable HW cryptography in the MCUboot bootloader and its dependencies +# The PSA operations are handled by the SDFW Service Framework (SDFW) +# that is enabled with the CONFIG_PSA_SSF_CRYPTO_CLIENT Kconfig option. +CONFIG_NRF_SECURITY=y +CONFIG_MULTITHREADING=y +CONFIG_PSA_SSF_CRYPTO_CLIENT=y + +# Reduce memory consumption +CONFIG_BOOT_BANNER=n +CONFIG_NCS_BOOT_BANNER=n +CONFIG_CLOCK_CONTROL=n +CONFIG_SPI_NOR=n +CONFIG_GPIO=n +CONFIG_SERIAL=n +CONFIG_CONSOLE=n +CONFIG_UART_CONSOLE=n +CONFIG_PRINTK=n +CONFIG_USE_SEGGER_RTT=n + +# Use minimal C library instead of the Picolib +CONFIG_MINIMAL_LIBC=y + +# Activate Link Time Optimization (LTO) +CONFIG_LTO=y +CONFIG_ISR_TABLES_LOCAL_DECLARATION=y + +# Improve debugging experience by disabling reset on fatal error +CONFIG_RESET_ON_FATAL_ERROR=n diff --git a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/prj_dongle.conf b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/prj_dongle.conf new file mode 100644 index 000000000000..3c1e6c678484 --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/prj_dongle.conf @@ -0,0 +1,51 @@ +# +# Copyright (c) 2025 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# +CONFIG_SIZE_OPTIMIZATIONS=y + +CONFIG_HW_STACK_PROTECTION=y +CONFIG_MAIN_STACK_SIZE=10240 +CONFIG_BOOT_BOOTSTRAP=n + +CONFIG_BOOT_VERSION_CMP_USE_BUILD_NUMBER=y + +CONFIG_FLASH=y +# CONFIG_FPROTECT is not supported yet on the nRF54H20 SoC + +# Configure Zephyr system power management +# The Zephyr system power management is used by the MCUboot bootloader to detect wake-up from +# S2RAM and redirect execution to the resume routine of the application image +CONFIG_PM=y +CONFIG_PM_S2RAM=y +CONFIG_PM_S2RAM_CUSTOM_MARKING=y + +# Enable HW cryptography in the MCUboot bootloader and its dependencies +# The PSA operations are handled by the SDFW Service Framework (SDFW) +# that is enabled with the CONFIG_PSA_SSF_CRYPTO_CLIENT Kconfig option. +CONFIG_NRF_SECURITY=y +CONFIG_MULTITHREADING=y +CONFIG_PSA_SSF_CRYPTO_CLIENT=y + +# Reduce memory consumption +CONFIG_BOOT_BANNER=n +CONFIG_NCS_BOOT_BANNER=n +CONFIG_CLOCK_CONTROL=n +CONFIG_SPI_NOR=n +CONFIG_GPIO=n +CONFIG_SERIAL=n +CONFIG_CONSOLE=n +CONFIG_UART_CONSOLE=n +CONFIG_PRINTK=n +CONFIG_USE_SEGGER_RTT=n + +# Use minimal C library instead of the Picolib +CONFIG_MINIMAL_LIBC=y + +# Activate Link Time Optimization (LTO) +CONFIG_LTO=y +CONFIG_ISR_TABLES_LOCAL_DECLARATION=y + +# Improve debugging experience by disabling reset on fatal error +CONFIG_RESET_ON_FATAL_ERROR=n diff --git a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/prj_release.conf b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/prj_release.conf new file mode 100644 index 000000000000..e4c7fbb76e43 --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/prj_release.conf @@ -0,0 +1,50 @@ +# +# Copyright (c) 2025 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# +CONFIG_SIZE_OPTIMIZATIONS=y + +CONFIG_HW_STACK_PROTECTION=y +CONFIG_MAIN_STACK_SIZE=10240 +CONFIG_BOOT_BOOTSTRAP=n + +CONFIG_BOOT_VERSION_CMP_USE_BUILD_NUMBER=y + +CONFIG_FLASH=y +# CONFIG_FPROTECT is not supported yet on the nRF54H20 SoC + +CONFIG_RESET_ON_FATAL_ERROR=y + +# Configure Zephyr system power management +# The Zephyr system power management is used by the MCUboot bootloader to detect wake-up from +# S2RAM and redirect execution to the resume routine of the application image +CONFIG_PM=y +CONFIG_PM_S2RAM=y +CONFIG_PM_S2RAM_CUSTOM_MARKING=y + +# Enable HW cryptography in the MCUboot bootloader and its dependencies +# The PSA operations are handled by the SDFW Service Framework (SDFW) +# that is enabled with the CONFIG_PSA_SSF_CRYPTO_CLIENT Kconfig option. +CONFIG_NRF_SECURITY=y +CONFIG_MULTITHREADING=y +CONFIG_PSA_SSF_CRYPTO_CLIENT=y + +# Reduce memory consumption +CONFIG_BOOT_BANNER=n +CONFIG_NCS_BOOT_BANNER=n +CONFIG_CLOCK_CONTROL=n +CONFIG_SPI_NOR=n +CONFIG_GPIO=n +CONFIG_SERIAL=n +CONFIG_CONSOLE=n +CONFIG_UART_CONSOLE=n +CONFIG_PRINTK=n +CONFIG_USE_SEGGER_RTT=n + +# Use minimal C library instead of the Picolib +CONFIG_MINIMAL_LIBC=y + +# Activate Link Time Optimization (LTO) +CONFIG_LTO=y +CONFIG_ISR_TABLES_LOCAL_DECLARATION=y diff --git a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/prj_release_dongle.conf b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/prj_release_dongle.conf new file mode 100644 index 000000000000..e4c7fbb76e43 --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/prj_release_dongle.conf @@ -0,0 +1,50 @@ +# +# Copyright (c) 2025 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# +CONFIG_SIZE_OPTIMIZATIONS=y + +CONFIG_HW_STACK_PROTECTION=y +CONFIG_MAIN_STACK_SIZE=10240 +CONFIG_BOOT_BOOTSTRAP=n + +CONFIG_BOOT_VERSION_CMP_USE_BUILD_NUMBER=y + +CONFIG_FLASH=y +# CONFIG_FPROTECT is not supported yet on the nRF54H20 SoC + +CONFIG_RESET_ON_FATAL_ERROR=y + +# Configure Zephyr system power management +# The Zephyr system power management is used by the MCUboot bootloader to detect wake-up from +# S2RAM and redirect execution to the resume routine of the application image +CONFIG_PM=y +CONFIG_PM_S2RAM=y +CONFIG_PM_S2RAM_CUSTOM_MARKING=y + +# Enable HW cryptography in the MCUboot bootloader and its dependencies +# The PSA operations are handled by the SDFW Service Framework (SDFW) +# that is enabled with the CONFIG_PSA_SSF_CRYPTO_CLIENT Kconfig option. +CONFIG_NRF_SECURITY=y +CONFIG_MULTITHREADING=y +CONFIG_PSA_SSF_CRYPTO_CLIENT=y + +# Reduce memory consumption +CONFIG_BOOT_BANNER=n +CONFIG_NCS_BOOT_BANNER=n +CONFIG_CLOCK_CONTROL=n +CONFIG_SPI_NOR=n +CONFIG_GPIO=n +CONFIG_SERIAL=n +CONFIG_CONSOLE=n +CONFIG_UART_CONSOLE=n +CONFIG_PRINTK=n +CONFIG_USE_SEGGER_RTT=n + +# Use minimal C library instead of the Picolib +CONFIG_MINIMAL_LIBC=y + +# Activate Link Time Optimization (LTO) +CONFIG_LTO=y +CONFIG_ISR_TABLES_LOCAL_DECLARATION=y diff --git a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/memory_map.dtsi b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/memory_map.dtsi new file mode 100644 index 000000000000..e3c28a73fe7f --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/memory_map.dtsi @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +&mram1x { + /delete-node/ partitions; + + /* Redefine the "partitions" DTS node. */ + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + /* Partitions belonging to the MRAM_10 memory block. + * The start of the MRAM_10 memory is reserved for internal IronSide SE firmware. + */ + + cpuapp_boot_partition: partition@30000 { + reg = <0x30000 DT_SIZE_K(24)>; + }; + + /* Due to the build system limitation, the allowed size of the application image + * (configured by the code partition DTS node) is incorrectly increased by the size + * allocated for the radio image. + */ + cpuapp_slot0_partition: partition@36000 { + reg = <0x36000 DT_SIZE_K(808)>; + }; + + cpurad_slot0_partition: partition@c9000 { + reg = <0xc9000 DT_SIZE_K(220)>; + }; + + /* Partitions belonging to the MRAM_11 memory block. */ + + /* Due to the build system limitation, the allowed size of the application image + * (configured by the code partition DTS node) is incorrectly increased by the size + * allocated for the radio image. + */ + cpuapp_slot1_partition: partition@100000 { + reg = <0x100000 DT_SIZE_K(808)>; + }; + + cpurad_slot1_partition: partition@193000 { + reg = <0x193000 DT_SIZE_K(220)>; + }; + + storage_partition: partition@1ca000 { + reg = <0x1ca000 DT_SIZE_K(40)>; + }; + + periphconf_partition: partition@1d4000 { + reg = <0x1d4000 DT_SIZE_K(8)>; + }; + + /* The end of the MRAM_11 memory is left unallocated. */ + }; +}; diff --git a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/prj.conf b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/prj.conf index a3f98e6da17a..e02311b50e2b 100644 --- a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/prj.conf +++ b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/prj.conf @@ -1,5 +1,5 @@ # -# Copyright (c) 2024 Nordic Semiconductor ASA +# Copyright (c) 2024-2025 Nordic Semiconductor ASA # # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # @@ -41,9 +41,6 @@ CONFIG_DESKTOP_USB_STACK_NEXT=y CONFIG_DESKTOP_BLE_ADV_CTRL_ENABLE=y CONFIG_DESKTOP_BLE_ADV_CTRL_SUSPEND_ON_USB=y -CONFIG_DESKTOP_DFU_MCUMGR_ENABLE=y -CONFIG_CAF_INIT_LOG_BLE_SMP_TRANSFER_EVENTS=n - # The LLPM must be explicitly enabled, as the Bluetooth Controller # is not part of the main application. CONFIG_CAF_BLE_USE_LLPM=y @@ -59,7 +56,11 @@ CONFIG_DESKTOP_BLE_LOW_LATENCY_LOCK=y CONFIG_DESKTOP_CONFIG_CHANNEL_ENABLE=y CONFIG_DESKTOP_CONFIG_CHANNEL_OUT_REPORT=y -CONFIG_DESKTOP_CONFIG_CHANNEL_DFU_ENABLE=y + +# Temporarily disable unsupported features. +CONFIG_DESKTOP_CONFIG_CHANNEL_DFU_ENABLE=n +CONFIG_DESKTOP_DFU_MCUMGR_ENABLE=n +CONFIG_DESKTOP_DVFS=n ################################################################################ # Zephyr Configuration @@ -101,28 +102,6 @@ CONFIG_UDC_DWC2_DMA=n CONFIG_BT_MAX_PAIRED=2 CONFIG_BT_ID_MAX=3 - -# Enable MCUmgr Bluetooth transport -CONFIG_MCUMGR_TRANSPORT_BT=y -CONFIG_MCUMGR_TRANSPORT_BT_PERM_RW_ENCRYPT=y - -# Allow for large Bluetooth data packets. -CONFIG_BT_L2CAP_TX_MTU=498 -CONFIG_BT_BUF_ACL_RX_SIZE=502 -CONFIG_BT_BUF_ACL_TX_SIZE=251 - -# Enable the MCUmgr Packet Reassembly feature over Bluetooth and its configuration dependencies. -# MCUmgr buffer size is optimized to fit one SMP packet divided into five Bluetooth Write Commands, -# transmitted with the maximum possible MTU value: 498 bytes. -CONFIG_MCUMGR_TRANSPORT_BT_REASSEMBLY=y -CONFIG_MCUMGR_TRANSPORT_NETBUF_SIZE=2475 -CONFIG_MCUMGR_TRANSPORT_WORKQUEUE_STACK_SIZE=4096 - -# Allow a DFU host to retrieve information about the number and size of MCUmgr buffers. -# The nRF Connect Device Manager uses this information to speed up the DFU. -CONFIG_MCUMGR_GRP_OS=y -CONFIG_MCUMGR_GRP_OS_MCUMGR_PARAMS=y - # Configure Zephyr system power management CONFIG_PM=y CONFIG_PM_S2RAM=y @@ -150,6 +129,3 @@ CONFIG_LOG_PROCESS_THREAD_STACK_SIZE=1024 ################################################################################ # DFU configuration - -CONFIG_SUIT=y -CONFIG_SUIT_DFU_CANDIDATE_PROCESSING_MINIMAL=y diff --git a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/prj_dongle.conf b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/prj_dongle.conf index 247be2c3e685..50c1f977da10 100644 --- a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/prj_dongle.conf +++ b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/prj_dongle.conf @@ -41,7 +41,10 @@ CONFIG_DESKTOP_BLE_NEW_PEER_SCAN_ON_BOOT=y CONFIG_DESKTOP_BLE_PEER_ERASE=y CONFIG_DESKTOP_CONFIG_CHANNEL_ENABLE=y -CONFIG_DESKTOP_CONFIG_CHANNEL_DFU_ENABLE=y + +# Temporarily disable unsupported features. +CONFIG_DESKTOP_CONFIG_CHANNEL_DFU_ENABLE=n +CONFIG_DESKTOP_DVFS=n ################################################################################ # Zephyr Configuration @@ -107,9 +110,3 @@ CONFIG_LOG_MODE_DEFERRED=y CONFIG_LOG_PRINTK=y CONFIG_LOG_BUFFER_SIZE=4096 CONFIG_LOG_PROCESS_THREAD_STACK_SIZE=1024 - -################################################################################ -# DFU configuration - -CONFIG_SUIT=y -CONFIG_SUIT_DFU_CANDIDATE_PROCESSING_MINIMAL=y diff --git a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/prj_release.conf b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/prj_release.conf index 7509e9b5d800..65e5b935609f 100644 --- a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/prj_release.conf +++ b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/prj_release.conf @@ -1,5 +1,5 @@ # -# Copyright (c) 2024 Nordic Semiconductor ASA +# Copyright (c) 2024-2025 Nordic Semiconductor ASA # # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # @@ -36,8 +36,6 @@ CONFIG_DESKTOP_USB_STACK_NEXT=y CONFIG_DESKTOP_BLE_ADV_CTRL_ENABLE=y CONFIG_DESKTOP_BLE_ADV_CTRL_SUSPEND_ON_USB=y -CONFIG_DESKTOP_DFU_MCUMGR_ENABLE=y - # The LLPM must be explicitly enabled, as the Bluetooth Controller # is not part of the main application. CONFIG_CAF_BLE_USE_LLPM=y @@ -54,7 +52,11 @@ CONFIG_DESKTOP_FAILSAFE_ENABLE=y CONFIG_DESKTOP_CONFIG_CHANNEL_ENABLE=y CONFIG_DESKTOP_CONFIG_CHANNEL_OUT_REPORT=y -CONFIG_DESKTOP_CONFIG_CHANNEL_DFU_ENABLE=y + +# Temporarily disable unsupported features. +CONFIG_DESKTOP_CONFIG_CHANNEL_DFU_ENABLE=n +CONFIG_DESKTOP_DFU_MCUMGR_ENABLE=n +CONFIG_DESKTOP_DVFS=n ################################################################################ # Zephyr Configuration @@ -95,28 +97,6 @@ CONFIG_UDC_DWC2_DMA=n CONFIG_BT_MAX_PAIRED=2 CONFIG_BT_ID_MAX=3 - -# Enable MCUmgr Bluetooth transport -CONFIG_MCUMGR_TRANSPORT_BT=y -CONFIG_MCUMGR_TRANSPORT_BT_PERM_RW_ENCRYPT=y - -# Allow for large Bluetooth data packets. -CONFIG_BT_L2CAP_TX_MTU=498 -CONFIG_BT_BUF_ACL_RX_SIZE=502 -CONFIG_BT_BUF_ACL_TX_SIZE=251 - -# Enable the MCUmgr Packet Reassembly feature over Bluetooth and its configuration dependencies. -# MCUmgr buffer size is optimized to fit one SMP packet divided into five Bluetooth Write Commands, -# transmitted with the maximum possible MTU value: 498 bytes. -CONFIG_MCUMGR_TRANSPORT_BT_REASSEMBLY=y -CONFIG_MCUMGR_TRANSPORT_NETBUF_SIZE=2475 -CONFIG_MCUMGR_TRANSPORT_WORKQUEUE_STACK_SIZE=4096 - -# Allow a DFU host to retrieve information about the number and size of MCUmgr buffers. -# The nRF Connect Device Manager uses this information to speed up the DFU. -CONFIG_MCUMGR_GRP_OS=y -CONFIG_MCUMGR_GRP_OS_MCUMGR_PARAMS=y - # Configure Zephyr system power management CONFIG_PM=y CONFIG_PM_S2RAM=y @@ -128,9 +108,3 @@ CONFIG_PM_S2RAM_CUSTOM_MARKING=y CONFIG_SERIAL=n CONFIG_CONSOLE=n CONFIG_UART_CONSOLE=n - -################################################################################ -# DFU configuration - -CONFIG_SUIT=y -CONFIG_SUIT_DFU_CANDIDATE_PROCESSING_MINIMAL=y diff --git a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/prj_release_dongle.conf b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/prj_release_dongle.conf index 0f4842230b78..319d696dc152 100644 --- a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/prj_release_dongle.conf +++ b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/prj_release_dongle.conf @@ -40,7 +40,10 @@ CONFIG_DESKTOP_WATCHDOG_ENABLE=y CONFIG_DESKTOP_FAILSAFE_ENABLE=y CONFIG_DESKTOP_CONFIG_CHANNEL_ENABLE=y -CONFIG_DESKTOP_CONFIG_CHANNEL_DFU_ENABLE=y + +# Temporarily disable unsupported features. +CONFIG_DESKTOP_CONFIG_CHANNEL_DFU_ENABLE=n +CONFIG_DESKTOP_DVFS=n ################################################################################ # Zephyr Configuration @@ -93,9 +96,3 @@ CONFIG_PM_S2RAM_CUSTOM_MARKING=y CONFIG_SERIAL=n CONFIG_CONSOLE=n CONFIG_UART_CONSOLE=n - -################################################################################ -# DFU configuration - -CONFIG_SUIT=y -CONFIG_SUIT_DFU_CANDIDATE_PROCESSING_MINIMAL=y diff --git a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/sysbuild.conf b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/sysbuild.conf index 12435fe84989..6589a6f64b9f 100644 --- a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/sysbuild.conf +++ b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/sysbuild.conf @@ -1,5 +1,5 @@ # -# Copyright (c) 2024 Nordic Semiconductor ASA +# Copyright (c) 2024-2025 Nordic Semiconductor ASA # # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # @@ -7,3 +7,9 @@ SB_CONFIG_NETCORE_IPC_RADIO=y SB_CONFIG_NETCORE_IPC_RADIO_BT_HCI_IPC=y + +SB_CONFIG_BOOTLOADER_MCUBOOT=y +SB_CONFIG_MCUBOOT_MODE_DIRECT_XIP=y +SB_CONFIG_BOOT_SIGNATURE_TYPE_ED25519=y +SB_CONFIG_BOOT_SIGNATURE_TYPE_PURE=y +SB_CONFIG_BOOT_SIGNATURE_KEY_FILE="\${APPLICATION_CONFIG_DIR}/images/mcuboot/mcuboot_private.pem" diff --git a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/sysbuild_dongle.conf b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/sysbuild_dongle.conf index 5b2aa85cfb10..23078b05661d 100644 --- a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/sysbuild_dongle.conf +++ b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/sysbuild_dongle.conf @@ -7,3 +7,9 @@ SB_CONFIG_NETCORE_IPC_RADIO=y SB_CONFIG_NETCORE_IPC_RADIO_BT_HCI_IPC=y + +SB_CONFIG_BOOTLOADER_MCUBOOT=y +SB_CONFIG_MCUBOOT_MODE_DIRECT_XIP=y +SB_CONFIG_BOOT_SIGNATURE_TYPE_ED25519=y +SB_CONFIG_BOOT_SIGNATURE_TYPE_PURE=y +SB_CONFIG_BOOT_SIGNATURE_KEY_FILE="\${APPLICATION_CONFIG_DIR}/images/mcuboot/mcuboot_private.pem" diff --git a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/sysbuild_release.conf b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/sysbuild_release.conf index 12435fe84989..6589a6f64b9f 100644 --- a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/sysbuild_release.conf +++ b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/sysbuild_release.conf @@ -1,5 +1,5 @@ # -# Copyright (c) 2024 Nordic Semiconductor ASA +# Copyright (c) 2024-2025 Nordic Semiconductor ASA # # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # @@ -7,3 +7,9 @@ SB_CONFIG_NETCORE_IPC_RADIO=y SB_CONFIG_NETCORE_IPC_RADIO_BT_HCI_IPC=y + +SB_CONFIG_BOOTLOADER_MCUBOOT=y +SB_CONFIG_MCUBOOT_MODE_DIRECT_XIP=y +SB_CONFIG_BOOT_SIGNATURE_TYPE_ED25519=y +SB_CONFIG_BOOT_SIGNATURE_TYPE_PURE=y +SB_CONFIG_BOOT_SIGNATURE_KEY_FILE="\${APPLICATION_CONFIG_DIR}/images/mcuboot/mcuboot_private.pem" diff --git a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/sysbuild_release_dongle.conf b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/sysbuild_release_dongle.conf index 5b2aa85cfb10..23078b05661d 100644 --- a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/sysbuild_release_dongle.conf +++ b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/sysbuild_release_dongle.conf @@ -7,3 +7,9 @@ SB_CONFIG_NETCORE_IPC_RADIO=y SB_CONFIG_NETCORE_IPC_RADIO_BT_HCI_IPC=y + +SB_CONFIG_BOOTLOADER_MCUBOOT=y +SB_CONFIG_MCUBOOT_MODE_DIRECT_XIP=y +SB_CONFIG_BOOT_SIGNATURE_TYPE_ED25519=y +SB_CONFIG_BOOT_SIGNATURE_TYPE_PURE=y +SB_CONFIG_BOOT_SIGNATURE_KEY_FILE="\${APPLICATION_CONFIG_DIR}/images/mcuboot/mcuboot_private.pem" diff --git a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpurad/images/ipc_radio/app.overlay b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpurad/images/ipc_radio/app.overlay new file mode 100644 index 000000000000..f4bd46fa995a --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpurad/images/ipc_radio/app.overlay @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "../../../nrf54h20dk_nrf54h20_cpuapp/memory_map.dtsi" + +slot0_partition: &cpurad_slot0_partition { + label = "image-0"; +}; + +slot1_partition: &cpurad_slot1_partition { + label = "image-1"; +}; diff --git a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpurad/images/ipc_radio/prj.conf b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpurad/images/ipc_radio/prj.conf index f79db4ee9d4a..5bf2e1c9b5d8 100644 --- a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpurad/images/ipc_radio/prj.conf +++ b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpurad/images/ipc_radio/prj.conf @@ -1,5 +1,5 @@ # -# Copyright (c) 2024 Nordic Semiconductor +# Copyright (c) 2024-2025 Nordic Semiconductor # # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # @@ -34,11 +34,6 @@ CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=y CONFIG_BT_CTLR_FILTER_ACCEPT_LIST=y CONFIG_BT_CTLR_PRIVACY=y -# Allow for large Bluetooth data packets. -CONFIG_BT_BUF_ACL_RX_SIZE=502 -CONFIG_BT_BUF_ACL_TX_SIZE=251 -CONFIG_BT_CTLR_DATA_LENGTH_MAX=251 - # Disable reset on fatal error for better debugging experience. CONFIG_RESET_ON_FATAL_ERROR=n diff --git a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpurad/images/ipc_radio/prj_release.conf b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpurad/images/ipc_radio/prj_release.conf index ce0f28e45220..2403c50a9b67 100644 --- a/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpurad/images/ipc_radio/prj_release.conf +++ b/applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpurad/images/ipc_radio/prj_release.conf @@ -1,5 +1,5 @@ # -# Copyright (c) 2024 Nordic Semiconductor +# Copyright (c) 2024-2025 Nordic Semiconductor # # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # @@ -34,11 +34,6 @@ CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=y CONFIG_BT_CTLR_FILTER_ACCEPT_LIST=y CONFIG_BT_CTLR_PRIVACY=y -# Allow for large Bluetooth data packets. -CONFIG_BT_BUF_ACL_RX_SIZE=502 -CONFIG_BT_BUF_ACL_TX_SIZE=251 -CONFIG_BT_CTLR_DATA_LENGTH_MAX=251 - # Improve firmware reliability. CONFIG_RESET_ON_FATAL_ERROR=y diff --git a/scripts/quarantine.yaml b/scripts/quarantine.yaml index a8ef6a55f3e4..42ef5cd1142e 100644 --- a/scripts/quarantine.yaml +++ b/scripts/quarantine.yaml @@ -70,12 +70,6 @@ - nrf54h20dk@0.9.0/nrf54h20/cpuapp comment: "Needs alignment to work with IronSide SE" -- scenarios: - - applications.nrf_desktop.* - platforms: - - nrf54h20dk@0.9.0/nrf54h20/cpuapp - comment: "Needs alignment to work with MCUBoot" - - scenarios: - drivers.counter.basic_api platforms: