diff --git a/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/app.overlay b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/app.overlay new file mode 100644 index 000000000000..fbbb883929b1 --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/app.overlay @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "app_common.dtsi" + +/ { + hid_dev_0: hid_dev_0 { + compatible = "zephyr,hid-device"; + label = "HID0"; + protocol-code = "mouse"; + in-polling-period-us = <125>; + in-report-size = <64>; + }; +}; diff --git a/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/app_common.dtsi b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/app_common.dtsi new file mode 100644 index 000000000000..87686842eb2c --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/app_common.dtsi @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +/* Application does not use cpuflpr core. Assign whole RRAM to cpuapp. */ +&cpuapp_rram { + reg = < 0x0 DT_SIZE_K(2036) >; +}; + +/ { + /* Disable pwmleds and redefine them to align configuration with CAF LEDs requirements. */ + /delete-node/ pwmleds; + + pwmleds0 { + compatible = "pwm-leds"; + status = "okay"; + + pwm_led0: led_pwm_0 { + status = "okay"; + pwms = <&pwm20 0 PWM_MSEC(20) PWM_POLARITY_NORMAL>; + label = "LED System State"; + }; + }; + + pwmleds1 { + compatible = "pwm-leds"; + status = "okay"; + + pwm_led1: led_pwm_1 { + status = "okay"; + pwms = <&pwm21 0 PWM_MSEC(20) PWM_POLARITY_NORMAL>; + label = "LED Conn State"; + }; + }; +}; + +&pwm20 { + status = "okay"; + pinctrl-0 = <&pwm20_default_alt>; + pinctrl-1 = <&pwm20_sleep_alt>; + pinctrl-names = "default", "sleep"; +}; + +&pwm21 { + status = "okay"; + pinctrl-0 = <&pwm21_default_alt>; + pinctrl-1 = <&pwm21_sleep_alt>; + pinctrl-names = "default", "sleep"; +}; + +&pinctrl { + pwm20_default_alt: pwm20_default_alt { + group1 { + psels = ; + }; + }; + + pwm20_sleep_alt: pwm20_sleep_alt { + group1 { + psels = ; + low-power-enable; + }; + }; + + pwm21_default_alt: pwm21_default_alt { + group1 { + psels = ; + }; + }; + + pwm21_sleep_alt: pwm21_sleep_alt { + group1 { + psels = ; + low-power-enable; + }; + }; +}; diff --git a/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/app_llvm.overlay b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/app_llvm.overlay new file mode 100644 index 000000000000..fbbb883929b1 --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/app_llvm.overlay @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "app_common.dtsi" + +/ { + hid_dev_0: hid_dev_0 { + compatible = "zephyr,hid-device"; + label = "HID0"; + protocol-code = "mouse"; + in-polling-period-us = <125>; + in-report-size = <64>; + }; +}; diff --git a/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/app_release.overlay b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/app_release.overlay new file mode 100644 index 000000000000..7caeb0d45ea5 --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/app_release.overlay @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "app_common.dtsi" + +/ { + hid_dev_0: hid_dev_0 { + compatible = "zephyr,hid-device"; + label = "HID0"; + protocol-code = "mouse"; + in-polling-period-us = <125>; + in-report-size = <64>; + }; +}; + +/* For nRF54L, watchdog status is disabled by default. Needs to be enabled in DTS overlay. */ +&wdt31 { + status = "okay"; +}; diff --git a/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/buttons_def.h b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/buttons_def.h new file mode 100644 index 000000000000..77b68b4f91c2 --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/buttons_def.h @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include + +/* This configuration file is included only once from button module and holds + * information about pins forming keyboard matrix. + */ + +/* This structure enforces the header file is included only once in the build. + * Violating this requirement triggers a multiple definition error at link time. + */ +const struct {} buttons_def_include_once; + +static const struct gpio_pin col[] = {}; + +static const struct gpio_pin row[] = { + { .port = 1, .pin = DT_GPIO_PIN(DT_NODELABEL(button0), gpios) }, + { .port = 1, .pin = DT_GPIO_PIN(DT_NODELABEL(button1), gpios) }, + { .port = 1, .pin = DT_GPIO_PIN(DT_NODELABEL(button2), gpios) }, + { .port = 0, .pin = DT_GPIO_PIN(DT_NODELABEL(button3), gpios) }, +}; diff --git a/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/click_detector_def.h b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/click_detector_def.h new file mode 100644 index 000000000000..f8dadda3b84a --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/click_detector_def.h @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include + +/* This configuration file is included only once from click_detector module + * and holds information about click detector configuration. + */ + +/* This structure enforces the header file is included only once in the build. + * Violating this requirement triggers a multiple definition error at link time. + */ +const struct {} click_detector_def_include_once; + +static const struct click_detector_config click_detector_config[] = { +#if CONFIG_DESKTOP_BLE_PEER_CONTROL + { + .key_id = CONFIG_DESKTOP_BLE_PEER_CONTROL_BUTTON, + .consume_button_event = false, + }, +#endif /* CONFIG_DESKTOP_BLE_PEER_CONTROL */ +}; diff --git a/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/hid_keyboard_leds_def.h b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/hid_keyboard_leds_def.h new file mode 100644 index 000000000000..9f3a247783aa --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/hid_keyboard_leds_def.h @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "hid_keyboard_leds.h" + +/* This configuration file is included only once from hid_state module and holds + * information about LEDs associated with HID keyboard LEDs report. + */ + +/* This structure enforces the header file is included only once in the build. + * Violating this requirement triggers a multiple definition error at link time. + */ +const struct {} hid_keyboard_leds_def_include_once; + +static const struct led_effect keyboard_led_on = LED_EFFECT_LED_ON(LED_COLOR(255, 255, 255)); +static const struct led_effect keyboard_led_off = LED_EFFECT_LED_OFF(); + +/* Map HID keyboard LEDs to application LED IDs. */ +static const uint8_t keyboard_led_map[] = { +}; diff --git a/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/hid_keymap_def.h b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/hid_keymap_def.h new file mode 100644 index 000000000000..7eee8b2a647a --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/hid_keymap_def.h @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "hid_keymap.h" +#include + +/* This configuration file is included only once from hid_state module and holds + * information about mapping between buttons and generated reports. + */ + +/* This structure enforces the header file is included only once in the build. + * Violating this requirement triggers a multiple definition error at link time. + */ +const struct {} hid_keymap_def_include_once; + +/* + * HID keymap. The Consumer Control keys are defined in section 15 of + * the HID Usage Tables document under the following URL: + * https://www.usb.org/sites/default/files/hut1_12.pdf + */ +static const struct hid_keymap hid_keymap[] = { + /* Intentionally left empty. nRF54LM20 DK by default uses all 4 buttons + * only to control generating motion. + */ +}; diff --git a/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/images/mcuboot/app.overlay b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/images/mcuboot/app.overlay new file mode 100644 index 000000000000..c5537ec935be --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/images/mcuboot/app.overlay @@ -0,0 +1,10 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +/* Application does not use cpuflpr core. Assign whole RRAM to cpuapp. */ +&cpuapp_rram { + reg = < 0x0 DT_SIZE_K(2036) >; +}; diff --git a/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/images/mcuboot/mcuboot_private.pem b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/images/mcuboot/mcuboot_private.pem new file mode 100644 index 000000000000..ab69670680cb --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/images/mcuboot/mcuboot_private.pem @@ -0,0 +1,3 @@ +-----BEGIN PRIVATE KEY----- +MC4CAQAwBQYDK2VwBCIEIFhR5tisVfxfoqS17OebTkJe5elwdsQj4tTAcGfz0r/r +-----END PRIVATE KEY----- diff --git a/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/images/mcuboot/prj.conf b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/images/mcuboot/prj.conf new file mode 100644 index 000000000000..4fe418552c8b --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_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_MAX_IMG_SECTORS=256 +CONFIG_BOOT_BOOTSTRAP=n + +CONFIG_BOOT_VERSION_CMP_USE_BUILD_NUMBER=y + +CONFIG_FLASH=y + +# The following features will be enabled once they are available +# - HW memory protection with FPROTECT library +# - Watchdog functionality +CONFIG_FPROTECT=n +CONFIG_BOOT_WATCHDOG_FEED=n + +# Temporarily replace the HW crypto driver with SW driver until the HW driver is available. +CONFIG_PSA_CRYPTO_DRIVER_CRACEN=n +CONFIG_PSA_CRYPTO_DRIVER_OBERON=y + +# Reduce memory consumption +CONFIG_BOOT_BANNER=n +CONFIG_NCS_BOOT_BANNER=n +CONFIG_SYS_CLOCK_EXISTS=n +CONFIG_CLOCK_CONTROL=n +CONFIG_NRF_GRTC_TIMER=n +CONFIG_NRF_GRTC_START_SYSCOUNTER=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/nrf54lm20dk_nrf54lm20a_cpuapp/images/mcuboot/prj_llvm.conf b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/images/mcuboot/prj_llvm.conf new file mode 100644 index 000000000000..2281c4b3139d --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/images/mcuboot/prj_llvm.conf @@ -0,0 +1,51 @@ +# +# Copyright (c) 2025 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# +CONFIG_SIZE_OPTIMIZATIONS_AGGRESSIVE=y + +CONFIG_HW_STACK_PROTECTION=y + +CONFIG_MAIN_STACK_SIZE=10240 +CONFIG_BOOT_MAX_IMG_SECTORS=256 +CONFIG_BOOT_BOOTSTRAP=n + +CONFIG_BOOT_VERSION_CMP_USE_BUILD_NUMBER=y + +CONFIG_FLASH=y + +# The following features will be enabled once they are available +# - HW memory protection with FPROTECT library +# - Watchdog functionality +CONFIG_FPROTECT=n +CONFIG_BOOT_WATCHDOG_FEED=n + +# Temporarily replace the HW crypto driver with SW driver until the HW driver is available. +CONFIG_PSA_CRYPTO_DRIVER_CRACEN=n +CONFIG_PSA_CRYPTO_DRIVER_OBERON=y + +# Reduce memory consumption +CONFIG_BOOT_BANNER=n +CONFIG_NCS_BOOT_BANNER=n +CONFIG_SYS_CLOCK_EXISTS=n +CONFIG_CLOCK_CONTROL=n +CONFIG_NRF_GRTC_TIMER=n +CONFIG_NRF_GRTC_START_SYSCOUNTER=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 + +# Link Time Optimization (LTO) is not supported for the LLVM toolchain variant. +CONFIG_LTO=n +CONFIG_ISR_TABLES_LOCAL_DECLARATION=n + +# Improve debugging experience by disabling reset on fatal error +CONFIG_RESET_ON_FATAL_ERROR=n diff --git a/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/images/mcuboot/prj_release.conf b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/images/mcuboot/prj_release.conf new file mode 100644 index 000000000000..2ae15547ac3d --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/images/mcuboot/prj_release.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_MAX_IMG_SECTORS=256 +CONFIG_BOOT_BOOTSTRAP=n + +CONFIG_BOOT_VERSION_CMP_USE_BUILD_NUMBER=y + +CONFIG_FLASH=y + +# The following features will be enabled once they are available +# - HW memory protection with FPROTECT library +# - Watchdog functionality +CONFIG_FPROTECT=n +CONFIG_BOOT_WATCHDOG_FEED=n + +# Temporarily replace the HW crypto driver with SW driver until the HW driver is available. +CONFIG_PSA_CRYPTO_DRIVER_CRACEN=n +CONFIG_PSA_CRYPTO_DRIVER_OBERON=y + +CONFIG_RESET_ON_FATAL_ERROR=y + +# Reduce memory consumption +CONFIG_BOOT_BANNER=n +CONFIG_NCS_BOOT_BANNER=n +CONFIG_SYS_CLOCK_EXISTS=n +CONFIG_CLOCK_CONTROL=n +CONFIG_NRF_GRTC_TIMER=n +CONFIG_NRF_GRTC_START_SYSCOUNTER=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/nrf54lm20dk_nrf54lm20a_cpuapp/led_state_def.h b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/led_state_def.h new file mode 100644 index 000000000000..76aa1cd81809 --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/led_state_def.h @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "led_state.h" +#include + +/* This configuration file is included only once from led_state module and holds + * information about LED effect associated with each state. + */ + +/* This structure enforces the header file is included only once in the build. + * Violating this requirement triggers a multiple definition error at link time. + */ +const struct {} led_state_def_include_once; + + +/* Map function to LED ID */ +static const uint8_t led_map[LED_ID_COUNT] = { + [LED_ID_SYSTEM_STATE] = 0, + [LED_ID_PEER_STATE] = 1 +}; + +static const struct led_effect led_system_state_effect[LED_SYSTEM_STATE_COUNT] = { + [LED_SYSTEM_STATE_IDLE] = LED_EFFECT_LED_ON(LED_COLOR(255, 255, 255)), + [LED_SYSTEM_STATE_CHARGING] = LED_EFFECT_LED_ON(LED_COLOR(255, 255, 255)), + [LED_SYSTEM_STATE_ERROR] = LED_EFFECT_LED_BLINK(200, LED_COLOR(255, 255, 255)), +}; + +static const struct led_effect led_peer_state_effect[LED_PEER_COUNT][LED_PEER_STATE_COUNT] = { + { + [LED_PEER_STATE_DISCONNECTED] = LED_EFFECT_LED_OFF(), + [LED_PEER_STATE_CONNECTED] = LED_EFFECT_LED_ON(LED_COLOR(100, 100, 100)), + [LED_PEER_STATE_PEER_SEARCH] = LED_EFFECT_LED_BREATH(1000, LED_COLOR(100, 100, 100)), + [LED_PEER_STATE_CONFIRM_SELECT] = LED_EFFECT_LED_BLINK(50, LED_COLOR(100, 100, 100)), + [LED_PEER_STATE_CONFIRM_ERASE] = LED_EFFECT_LED_BLINK(25, LED_COLOR(100, 100, 100)), + [LED_PEER_STATE_ERASE_ADV] = LED_EFFECT_LED_BREATH(100, LED_COLOR(100, 100, 100)), + }, +}; diff --git a/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/pm_static.yml b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/pm_static.yml new file mode 100644 index 000000000000..0a157fee4a97 --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/pm_static.yml @@ -0,0 +1,47 @@ +app: + address: 0x7800 + region: flash_primary + size: 0xf8800 +mcuboot: + address: 0x0 + region: flash_primary + size: 0x7000 +mcuboot_pad: + address: 0x7000 + region: flash_primary + size: 0x800 +mcuboot_primary: + address: 0x7000 + orig_span: &id001 + - app + - mcuboot_pad + region: flash_primary + size: 0xf9000 + span: *id001 +mcuboot_primary_app: + address: 0x7800 + orig_span: &id002 + - app + region: flash_primary + size: 0xf8800 + span: *id002 +mcuboot_secondary: + address: 0x100000 + orig_span: &id003 + - mcuboot_secondary_pad + - mcuboot_secondary_app + region: flash_primary + size: 0xf9000 + span: *id003 +mcuboot_secondary_pad: + region: flash_primary + address: 0x100000 + size: 0x800 +mcuboot_secondary_app: + region: flash_primary + address: 0x100800 + size: 0xf8800 +settings_storage: + address: 0x1f9000 + region: flash_primary + size: 0x4000 diff --git a/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/pm_static_llvm.yml b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/pm_static_llvm.yml new file mode 100644 index 000000000000..e8f49431bcde --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/pm_static_llvm.yml @@ -0,0 +1,47 @@ +app: + address: 0x9800 + region: flash_primary + size: 0xf7800 +mcuboot: + address: 0x0 + region: flash_primary + size: 0x9000 +mcuboot_pad: + address: 0x9000 + region: flash_primary + size: 0x800 +mcuboot_primary: + address: 0x9000 + orig_span: &id001 + - app + - mcuboot_pad + region: flash_primary + size: 0xf8000 + span: *id001 +mcuboot_primary_app: + address: 0x9800 + orig_span: &id002 + - app + region: flash_primary + size: 0xf7800 + span: *id002 +mcuboot_secondary: + address: 0x101000 + orig_span: &id003 + - mcuboot_secondary_pad + - mcuboot_secondary_app + region: flash_primary + size: 0xf8000 + span: *id003 +mcuboot_secondary_pad: + region: flash_primary + address: 0x101000 + size: 0x800 +mcuboot_secondary_app: + region: flash_primary + address: 0x101800 + size: 0xf7800 +settings_storage: + address: 0x1f9000 + region: flash_primary + size: 0x4000 diff --git a/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/pm_static_release.yml b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/pm_static_release.yml new file mode 100644 index 000000000000..0a157fee4a97 --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/pm_static_release.yml @@ -0,0 +1,47 @@ +app: + address: 0x7800 + region: flash_primary + size: 0xf8800 +mcuboot: + address: 0x0 + region: flash_primary + size: 0x7000 +mcuboot_pad: + address: 0x7000 + region: flash_primary + size: 0x800 +mcuboot_primary: + address: 0x7000 + orig_span: &id001 + - app + - mcuboot_pad + region: flash_primary + size: 0xf9000 + span: *id001 +mcuboot_primary_app: + address: 0x7800 + orig_span: &id002 + - app + region: flash_primary + size: 0xf8800 + span: *id002 +mcuboot_secondary: + address: 0x100000 + orig_span: &id003 + - mcuboot_secondary_pad + - mcuboot_secondary_app + region: flash_primary + size: 0xf9000 + span: *id003 +mcuboot_secondary_pad: + region: flash_primary + address: 0x100000 + size: 0x800 +mcuboot_secondary_app: + region: flash_primary + address: 0x100800 + size: 0xf8800 +settings_storage: + address: 0x1f9000 + region: flash_primary + size: 0x4000 diff --git a/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/port_state_def.h b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/port_state_def.h new file mode 100644 index 000000000000..1b4906e1477f --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/port_state_def.h @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include + +#include "port_state.h" + +/* This configuration file is included only once from board module and holds + * information about default pin states set while board is on and off. + */ + +/* This structure enforces the header file is included only once in the build. + * Violating this requirement triggers a multiple definition error at link time. + */ +const struct {} port_state_def_include_once; + + +static const struct port_state port_state_on[] = { +}; + +static const struct port_state port_state_off[] = { +}; diff --git a/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/prj.conf b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/prj.conf new file mode 100644 index 000000000000..80987e29a376 --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/prj.conf @@ -0,0 +1,149 @@ +# +# Copyright (c) 2025 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# +################################################################################ +# Application Configuration + +CONFIG_DESKTOP_INIT_LOG_MOTION_EVENT=n +CONFIG_DESKTOP_INIT_LOG_HID_REPORT_EVENT=n +CONFIG_DESKTOP_INIT_LOG_HID_REPORT_SENT_EVENT=n +CONFIG_CAF_INIT_LOG_KEEP_ALIVE_EVENTS=n + +CONFIG_DESKTOP_ROLE_HID_PERIPHERAL=y +CONFIG_DESKTOP_PERIPHERAL_TYPE_MOUSE=y +CONFIG_DESKTOP_DEVICE_PID=0x52DE +CONFIG_DESKTOP_HID_BOOT_INTERFACE_MOUSE=y + +# Application supports 2 HID subscribers: HID over GATT (BLE) and a single USB HID instance +CONFIG_DESKTOP_HID_STATE_SUBSCRIBER_COUNT=2 + +CONFIG_DESKTOP_MOTION_BUTTONS_ENABLE=y +CONFIG_DESKTOP_MOTION_BUTTONS_UP_KEY_ID=0 +CONFIG_DESKTOP_MOTION_BUTTONS_DOWN_KEY_ID=3 +CONFIG_DESKTOP_MOTION_BUTTONS_LEFT_KEY_ID=2 +CONFIG_DESKTOP_MOTION_BUTTONS_RIGHT_KEY_ID=1 + +CONFIG_CAF_BUTTONS=y +CONFIG_CAF_BUTTONS_POLARITY_INVERSED=y +CONFIG_CAF_BUTTONS_PM_KEEP_ALIVE=n + +CONFIG_CAF_CLICK_DETECTOR=y + +CONFIG_CAF_LEDS=y + +CONFIG_DESKTOP_USB_ENABLE=y +# Enable the only USB stack that supports USBHS +CONFIG_DESKTOP_USB_STACK_NEXT=y + +CONFIG_DESKTOP_BLE_USE_DEFAULT_ID=y + +CONFIG_DESKTOP_BLE_PEER_CONTROL=y +CONFIG_DESKTOP_BLE_PEER_CONTROL_BUTTON=0x0000 +CONFIG_DESKTOP_BLE_PEER_ERASE_ON_START=y + +CONFIG_DESKTOP_BLE_SECURITY_FAIL_TIMEOUT_S=10 +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 + +# START of workaround for issue NCSDK-33313 +# Disable CRACEN for all but RNG and switch to software crypto. +CONFIG_PSA_CRYPTO_DRIVER_OBERON=y +CONFIG_PSA_CRYPTO_DRIVER_CRACEN=y + +CONFIG_PSA_USE_CRACEN_CIPHER_DRIVER=n +CONFIG_PSA_USE_CRACEN_AEAD_DRIVER=n +CONFIG_PSA_USE_CRACEN_HASH_DRIVER=n +CONFIG_PSA_USE_CRACEN_MAC_DRIVER=n +CONFIG_PSA_USE_CRACEN_KEY_AGREEMENT_DRIVER=n +CONFIG_PSA_USE_CRACEN_ASYMMETRIC_ENCRYPTION_DRIVER=n +CONFIG_PSA_USE_CRACEN_KEY_MANAGEMENT_DRIVER=n +CONFIG_PSA_USE_CRACEN_KEY_DERIVATION_DRIVER=n +CONFIG_PSA_USE_CRACEN_PAKE_DRIVER=n +CONFIG_PSA_USE_CRACEN_ASYMMETRIC_SIGNATURE_DRIVER=n +# END of workaround for issue NCSDK-33313 + +################################################################################ +# Zephyr Configuration + +CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=3584 +CONFIG_ISR_STACK_SIZE=2560 +CONFIG_MAIN_STACK_SIZE=2816 +CONFIG_BT_RX_STACK_SIZE=2048 +CONFIG_BT_HCI_TX_STACK_SIZE_WITH_PROMPT=y +CONFIG_BT_HCI_TX_STACK_SIZE=1536 +CONFIG_IDLE_STACK_SIZE=512 + +CONFIG_BOOT_BANNER=n +CONFIG_NCS_BOOT_BANNER=n + +CONFIG_NUM_COOP_PRIORITIES=10 +CONFIG_NUM_PREEMPT_PRIORITIES=11 + +CONFIG_HEAP_MEM_POOL_SIZE=2560 + +CONFIG_SYS_CLOCK_TICKS_PER_SEC=1000 +CONFIG_SYSTEM_CLOCK_NO_WAIT=y + +CONFIG_HW_STACK_PROTECTION=y +CONFIG_RESET_ON_FATAL_ERROR=n + +CONFIG_GPIO=y + +CONFIG_REBOOT=y + +CONFIG_SPEED_OPTIMIZATIONS=y + +CONFIG_PWM=y + +CONFIG_LED=y +CONFIG_LED_PWM=y + +CONFIG_STREAM_FLASH=y +CONFIG_IMG_MANAGER=y +CONFIG_MCUBOOT_IMG_MANAGER=y + +# The UDC DWC2 DMA support is experimental. Disable the feature to improve USB stability. Since nRF +# Desktop uses only small HID reports (size < 64 bytes), the DMA doesn't improve performance. +CONFIG_UDC_DWC2_DMA=n + +CONFIG_BT_MAX_PAIRED=2 +CONFIG_BT_ID_MAX=3 + +CONFIG_BT_CTLR_SDC_LLPM=y +CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=y + +# Workaround for the MPSL assert issue. +# This assert occurs when the HFCLK is not ready within the timeframe expected by MPSL. +CONFIG_MPSL_USE_EXTERNAL_CLOCK_CONTROL=y + +# External FLASH is not used by the application. Disable the driver. +CONFIG_SPI_NOR=n + +# Assign RRAM write buffer size to ensure short write slots. Trying to allocate long write slots +# while maintaining a BLE connection with short interval and no connection latency may lead to +# timeouts in flash_sync_mpsl. +CONFIG_NRF_RRAM_WRITE_BUFFER_SIZE=8 + +################################################################################ + +CONFIG_ASSERT=y +CONFIG_ASSERT_LEVEL=2 + +# nRF54LM20 DK uses UART for logs. +CONFIG_SERIAL=y +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y + +CONFIG_LOG=y +CONFIG_LOG_BACKEND_UART=y +CONFIG_LOG_BACKEND_SHOW_COLOR=n +CONFIG_LOG_BACKEND_FORMAT_TIMESTAMP=n +CONFIG_LOG_MODE_DEFERRED=y +CONFIG_LOG_PRINTK=y +CONFIG_LOG_BUFFER_SIZE=4096 +CONFIG_LOG_PROCESS_THREAD_STACK_SIZE=1024 diff --git a/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/prj_llvm.conf b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/prj_llvm.conf new file mode 100644 index 000000000000..346a156a38fd --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/prj_llvm.conf @@ -0,0 +1,153 @@ +# +# Copyright (c) 2025 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# +################################################################################ +# Application Configuration + +CONFIG_DESKTOP_INIT_LOG_MOTION_EVENT=n +CONFIG_DESKTOP_INIT_LOG_HID_REPORT_EVENT=n +CONFIG_DESKTOP_INIT_LOG_HID_REPORT_SENT_EVENT=n +CONFIG_CAF_INIT_LOG_KEEP_ALIVE_EVENTS=n + +CONFIG_DESKTOP_ROLE_HID_PERIPHERAL=y +CONFIG_DESKTOP_PERIPHERAL_TYPE_MOUSE=y +CONFIG_DESKTOP_DEVICE_PID=0x52DE +CONFIG_DESKTOP_HID_BOOT_INTERFACE_MOUSE=y + +# Application supports 2 HID subscribers: HID over GATT (BLE) and a single USB HID instance +CONFIG_DESKTOP_HID_STATE_SUBSCRIBER_COUNT=2 + +CONFIG_DESKTOP_MOTION_BUTTONS_ENABLE=y +CONFIG_DESKTOP_MOTION_BUTTONS_UP_KEY_ID=0 +CONFIG_DESKTOP_MOTION_BUTTONS_DOWN_KEY_ID=3 +CONFIG_DESKTOP_MOTION_BUTTONS_LEFT_KEY_ID=2 +CONFIG_DESKTOP_MOTION_BUTTONS_RIGHT_KEY_ID=1 + +CONFIG_CAF_BUTTONS=y +CONFIG_CAF_BUTTONS_POLARITY_INVERSED=y +CONFIG_CAF_BUTTONS_PM_KEEP_ALIVE=n + +CONFIG_CAF_CLICK_DETECTOR=y + +CONFIG_CAF_LEDS=y + +CONFIG_DESKTOP_USB_ENABLE=y +# Enable the only USB stack that supports USBHS +CONFIG_DESKTOP_USB_STACK_NEXT=y + +CONFIG_DESKTOP_BLE_USE_DEFAULT_ID=y + +CONFIG_DESKTOP_BLE_PEER_CONTROL=y +CONFIG_DESKTOP_BLE_PEER_CONTROL_BUTTON=0x0000 +CONFIG_DESKTOP_BLE_PEER_ERASE_ON_START=y + +CONFIG_DESKTOP_BLE_SECURITY_FAIL_TIMEOUT_S=10 +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 + +# START of workaround for issue NCSDK-33313 +# Disable CRACEN for all but RNG and switch to software crypto. +CONFIG_PSA_CRYPTO_DRIVER_OBERON=y +CONFIG_PSA_CRYPTO_DRIVER_CRACEN=y + +CONFIG_PSA_USE_CRACEN_CIPHER_DRIVER=n +CONFIG_PSA_USE_CRACEN_AEAD_DRIVER=n +CONFIG_PSA_USE_CRACEN_HASH_DRIVER=n +CONFIG_PSA_USE_CRACEN_MAC_DRIVER=n +CONFIG_PSA_USE_CRACEN_KEY_AGREEMENT_DRIVER=n +CONFIG_PSA_USE_CRACEN_ASYMMETRIC_ENCRYPTION_DRIVER=n +CONFIG_PSA_USE_CRACEN_KEY_MANAGEMENT_DRIVER=n +CONFIG_PSA_USE_CRACEN_KEY_DERIVATION_DRIVER=n +CONFIG_PSA_USE_CRACEN_PAKE_DRIVER=n +CONFIG_PSA_USE_CRACEN_ASYMMETRIC_SIGNATURE_DRIVER=n +# END of workaround for issue NCSDK-33313 + +################################################################################ +# Zephyr Configuration + +CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=3584 +CONFIG_ISR_STACK_SIZE=2560 +CONFIG_MAIN_STACK_SIZE=2816 +CONFIG_BT_RX_STACK_SIZE=2048 +CONFIG_BT_HCI_TX_STACK_SIZE_WITH_PROMPT=y +CONFIG_BT_HCI_TX_STACK_SIZE=1536 +CONFIG_IDLE_STACK_SIZE=512 + +CONFIG_BOOT_BANNER=n +CONFIG_NCS_BOOT_BANNER=n + +CONFIG_NUM_COOP_PRIORITIES=10 +CONFIG_NUM_PREEMPT_PRIORITIES=11 + +CONFIG_HEAP_MEM_POOL_SIZE=2560 + +CONFIG_SYS_CLOCK_TICKS_PER_SEC=1000 +CONFIG_SYSTEM_CLOCK_NO_WAIT=y + +CONFIG_HW_STACK_PROTECTION=y +CONFIG_RESET_ON_FATAL_ERROR=n + +CONFIG_GPIO=y + +CONFIG_REBOOT=y + +CONFIG_SPEED_OPTIMIZATIONS=y + +# Link Time Optimization (LTO) is not supported for the LLVM toolchain variant. +CONFIG_LTO=n +CONFIG_ISR_TABLES_LOCAL_DECLARATION=n + +CONFIG_PWM=y + +CONFIG_LED=y +CONFIG_LED_PWM=y + +CONFIG_STREAM_FLASH=y +CONFIG_IMG_MANAGER=y +CONFIG_MCUBOOT_IMG_MANAGER=y + +# The UDC DWC2 DMA support is experimental. Disable the feature to improve USB stability. Since nRF +# Desktop uses only small HID reports (size < 64 bytes), the DMA doesn't improve performance. +CONFIG_UDC_DWC2_DMA=n + +CONFIG_BT_MAX_PAIRED=2 +CONFIG_BT_ID_MAX=3 + +CONFIG_BT_CTLR_SDC_LLPM=y +CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=y + +# Workaround for the MPSL assert issue. +# This assert occurs when the HFCLK is not ready within the timeframe expected by MPSL. +CONFIG_MPSL_USE_EXTERNAL_CLOCK_CONTROL=y + +# External FLASH is not used by the application. Disable the driver. +CONFIG_SPI_NOR=n + +# Assign RRAM write buffer size to ensure short write slots. Trying to allocate long write slots +# while maintaining a BLE connection with short interval and no connection latency may lead to +# timeouts in flash_sync_mpsl. +CONFIG_NRF_RRAM_WRITE_BUFFER_SIZE=8 + +################################################################################ + +CONFIG_ASSERT=y +CONFIG_ASSERT_LEVEL=2 + +# nRF54LM20 DK uses UART for logs. +CONFIG_SERIAL=y +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y + +CONFIG_LOG=y +CONFIG_LOG_BACKEND_UART=y +CONFIG_LOG_BACKEND_SHOW_COLOR=n +CONFIG_LOG_BACKEND_FORMAT_TIMESTAMP=n +CONFIG_LOG_MODE_DEFERRED=y +CONFIG_LOG_PRINTK=y +CONFIG_LOG_BUFFER_SIZE=4096 +CONFIG_LOG_PROCESS_THREAD_STACK_SIZE=1024 diff --git a/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/prj_release.conf b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/prj_release.conf new file mode 100644 index 000000000000..f1a594480d18 --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/prj_release.conf @@ -0,0 +1,134 @@ +# +# Copyright (c) 2025 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# +################################################################################ +# Application Configuration + +CONFIG_DESKTOP_ROLE_HID_PERIPHERAL=y +CONFIG_DESKTOP_PERIPHERAL_TYPE_MOUSE=y +CONFIG_DESKTOP_DEVICE_PID=0x52DE +CONFIG_DESKTOP_HID_BOOT_INTERFACE_MOUSE=y + +# Application supports 2 HID subscribers: HID over GATT (BLE) and a single USB HID instance +CONFIG_DESKTOP_HID_STATE_SUBSCRIBER_COUNT=2 + +CONFIG_DESKTOP_MOTION_BUTTONS_ENABLE=y +CONFIG_DESKTOP_MOTION_BUTTONS_UP_KEY_ID=0 +CONFIG_DESKTOP_MOTION_BUTTONS_DOWN_KEY_ID=3 +CONFIG_DESKTOP_MOTION_BUTTONS_LEFT_KEY_ID=2 +CONFIG_DESKTOP_MOTION_BUTTONS_RIGHT_KEY_ID=1 + +CONFIG_CAF_BUTTONS=y +CONFIG_CAF_BUTTONS_POLARITY_INVERSED=y +CONFIG_CAF_BUTTONS_PM_KEEP_ALIVE=n + +CONFIG_CAF_CLICK_DETECTOR=y + +CONFIG_CAF_LEDS=y + +CONFIG_DESKTOP_USB_ENABLE=y +# Enable the only USB stack that supports USBHS +CONFIG_DESKTOP_USB_STACK_NEXT=y + +CONFIG_DESKTOP_BLE_PEER_CONTROL=y +CONFIG_DESKTOP_BLE_PEER_CONTROL_BUTTON=0x0000 +CONFIG_DESKTOP_BLE_PEER_ERASE_ON_START=y + +CONFIG_DESKTOP_BLE_SECURITY_FAIL_TIMEOUT_S=10 +CONFIG_DESKTOP_BLE_LOW_LATENCY_LOCK=y + +CONFIG_DESKTOP_WATCHDOG_ENABLE=y +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 + +# START of workaround for issue NCSDK-33313 +# Disable CRACEN for all but RNG and switch to software crypto. +CONFIG_PSA_CRYPTO_DRIVER_OBERON=y +CONFIG_PSA_CRYPTO_DRIVER_CRACEN=y + +CONFIG_PSA_USE_CRACEN_CIPHER_DRIVER=n +CONFIG_PSA_USE_CRACEN_AEAD_DRIVER=n +CONFIG_PSA_USE_CRACEN_HASH_DRIVER=n +CONFIG_PSA_USE_CRACEN_MAC_DRIVER=n +CONFIG_PSA_USE_CRACEN_KEY_AGREEMENT_DRIVER=n +CONFIG_PSA_USE_CRACEN_ASYMMETRIC_ENCRYPTION_DRIVER=n +CONFIG_PSA_USE_CRACEN_KEY_MANAGEMENT_DRIVER=n +CONFIG_PSA_USE_CRACEN_KEY_DERIVATION_DRIVER=n +CONFIG_PSA_USE_CRACEN_PAKE_DRIVER=n +CONFIG_PSA_USE_CRACEN_ASYMMETRIC_SIGNATURE_DRIVER=n +# END of workaround for issue NCSDK-33313 + +################################################################################ +# Zephyr Configuration + +CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=3584 +CONFIG_ISR_STACK_SIZE=2560 +CONFIG_MAIN_STACK_SIZE=2816 +CONFIG_BT_RX_STACK_SIZE=2048 +CONFIG_BT_HCI_TX_STACK_SIZE_WITH_PROMPT=y +CONFIG_BT_HCI_TX_STACK_SIZE=1536 +CONFIG_IDLE_STACK_SIZE=512 + +CONFIG_BOOT_BANNER=n +CONFIG_NCS_BOOT_BANNER=n + +CONFIG_NUM_COOP_PRIORITIES=10 +CONFIG_NUM_PREEMPT_PRIORITIES=11 + +CONFIG_HEAP_MEM_POOL_SIZE=2560 + +CONFIG_SYS_CLOCK_TICKS_PER_SEC=1000 +CONFIG_SYSTEM_CLOCK_NO_WAIT=y + +CONFIG_HW_STACK_PROTECTION=n +CONFIG_RESET_ON_FATAL_ERROR=n + +CONFIG_GPIO=y + +CONFIG_REBOOT=y + +CONFIG_SPEED_OPTIMIZATIONS=y + +CONFIG_PWM=y + +CONFIG_LED=y +CONFIG_LED_PWM=y + +CONFIG_STREAM_FLASH=y +CONFIG_IMG_MANAGER=y +CONFIG_MCUBOOT_IMG_MANAGER=y + +# The UDC DWC2 DMA support is experimental. Disable the feature to improve USB stability. Since nRF +# Desktop uses only small HID reports (size < 64 bytes), the DMA doesn't improve performance. +CONFIG_UDC_DWC2_DMA=n + +CONFIG_BT_MAX_PAIRED=2 +CONFIG_BT_ID_MAX=3 + +CONFIG_BT_CTLR_SDC_LLPM=y +CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=y + +# Workaround for the MPSL assert issue. +# This assert occurs when the HFCLK is not ready within the timeframe expected by MPSL. +CONFIG_MPSL_USE_EXTERNAL_CLOCK_CONTROL=y + +# External FLASH is not used by the application. Disable the driver. +CONFIG_SPI_NOR=n + +# Assign RRAM write buffer size to ensure short write slots. Trying to allocate long write slots +# while maintaining a BLE connection with short interval and no connection latency may lead to +# timeouts in flash_sync_mpsl. +CONFIG_NRF_RRAM_WRITE_BUFFER_SIZE=8 + +################################################################################ +# Disable unused features + +CONFIG_SERIAL=n +CONFIG_CONSOLE=n +CONFIG_UART_CONSOLE=n +CONFIG_USE_SEGGER_RTT=n diff --git a/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/sysbuild.conf b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/sysbuild.conf new file mode 100644 index 000000000000..d003b6bc2942 --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/sysbuild.conf @@ -0,0 +1,16 @@ +# +# Copyright (c) 2025 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# +################################################################################ + +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" + +# Temporarily use the SW crypto in the MCUboot bootloader and the verification key storage +# without KMU. +SB_CONFIG_MCUBOOT_SIGNATURE_USING_KMU=n diff --git a/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/sysbuild_llvm.conf b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/sysbuild_llvm.conf new file mode 100644 index 000000000000..d003b6bc2942 --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/sysbuild_llvm.conf @@ -0,0 +1,16 @@ +# +# Copyright (c) 2025 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# +################################################################################ + +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" + +# Temporarily use the SW crypto in the MCUboot bootloader and the verification key storage +# without KMU. +SB_CONFIG_MCUBOOT_SIGNATURE_USING_KMU=n diff --git a/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/sysbuild_release.conf b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/sysbuild_release.conf new file mode 100644 index 000000000000..d003b6bc2942 --- /dev/null +++ b/applications/nrf_desktop/configuration/nrf54lm20dk_nrf54lm20a_cpuapp/sysbuild_release.conf @@ -0,0 +1,16 @@ +# +# Copyright (c) 2025 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# +################################################################################ + +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" + +# Temporarily use the SW crypto in the MCUboot bootloader and the verification key storage +# without KMU. +SB_CONFIG_MCUBOOT_SIGNATURE_USING_KMU=n diff --git a/applications/nrf_desktop/sample.yaml b/applications/nrf_desktop/sample.yaml index c6e7a0208b2b..9ec9137364c7 100644 --- a/applications/nrf_desktop/sample.yaml +++ b/applications/nrf_desktop/sample.yaml @@ -31,10 +31,12 @@ tests: applications.nrf_desktop.zdebug.uart: platform_allow: - nrf54h20dk/nrf54h20/cpuapp + - nrf54lm20dk/nrf54lm20a/cpuapp - nrf54lm20pdk/nrf54lm20a/cpuapp - nrf54lm20pdk@0.2.0/nrf54lm20a/cpuapp integration_platforms: - nrf54h20dk/nrf54h20/cpuapp + - nrf54lm20dk/nrf54lm20a/cpuapp - nrf54lm20pdk/nrf54lm20a/cpuapp - nrf54lm20pdk@0.2.0/nrf54lm20a/cpuapp harness: console @@ -221,6 +223,7 @@ tests: - nrf54l15dk/nrf54l05/cpuapp - nrf54l15dk/nrf54l10/cpuapp - nrf54l15dk/nrf54l15/cpuapp + - nrf54lm20dk/nrf54lm20a/cpuapp - nrf54lm20pdk/nrf54lm20a/cpuapp - nrf54lm20pdk@0.2.0/nrf54lm20a/cpuapp integration_platforms: @@ -238,6 +241,7 @@ tests: - nrf54l15dk/nrf54l05/cpuapp - nrf54l15dk/nrf54l10/cpuapp - nrf54l15dk/nrf54l15/cpuapp + - nrf54lm20dk/nrf54lm20a/cpuapp - nrf54lm20pdk/nrf54lm20a/cpuapp - nrf54lm20pdk@0.2.0/nrf54lm20a/cpuapp extra_args: FILE_SUFFIX=release @@ -306,8 +310,10 @@ tests: applications.nrf_desktop.zdebug.llvm.uart: toolchain_allow: llvm integration_platforms: + - nrf54lm20dk/nrf54lm20a/cpuapp - nrf54lm20pdk/nrf54lm20a/cpuapp platform_allow: + - nrf54lm20dk/nrf54lm20a/cpuapp - nrf54lm20pdk/nrf54lm20a/cpuapp extra_args: FILE_SUFFIX=llvm harness: console