From f3f92fbdcd2ec0463386c0f83d145a9ac85d41a3 Mon Sep 17 00:00:00 2001 From: Bjarki Arge Andreasen Date: Fri, 11 Jul 2025 16:53:09 +0200 Subject: [PATCH 1/5] MANIFEST: Update to include nrf pinctrl power domain refactor Update manifest to include nrf pinctrl power domain refactor and mcuboot fix for nrf54h20 iron varient. Signed-off-by: Bjarki Arge Andreasen --- west.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/west.yml b/west.yml index 564980bd6bdc..8e018d8d5896 100644 --- a/west.yml +++ b/west.yml @@ -65,7 +65,7 @@ manifest: # https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/zephyr/guides/modules.html - name: zephyr repo-path: sdk-zephyr - revision: 63febf7715f82807e3b70eb33b3365a7372412a8 + revision: pull/3042/head import: # In addition to the zephyr repository itself, NCS also # imports the contents of zephyr/west.yml at the above @@ -128,7 +128,7 @@ manifest: compare-by-default: true - name: mcuboot repo-path: sdk-mcuboot - revision: 4bfb139af4fadbc651ea61e27d21331834ce2307 + revision: pull/471/head path: bootloader/mcuboot - name: qcbor url: https://github.com/laurencelundblade/QCBOR From f2da4679c06700dd5bf0f9abf4c1a118aa61d1ba Mon Sep 17 00:00:00 2001 From: Bjarki Arge Andreasen Date: Tue, 15 Jul 2025 10:11:38 +0200 Subject: [PATCH 2/5] drivers: mspi: remove redundant gpd handling Manual handling of global power domains using gpd has been made redundant by power domain and pinctrl refactoring, and gpd has thus been removed. Remove gpd handling from mspi driver, as this is automatically done by pinctrl_apply_state() now. Signed-off-by: Bjarki Arge Andreasen --- drivers/mspi/mspi_sqspi.c | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/drivers/mspi/mspi_sqspi.c b/drivers/mspi/mspi_sqspi.c index 84998fcc8ab1..f349d03e771a 100644 --- a/drivers/mspi/mspi_sqspi.c +++ b/drivers/mspi/mspi_sqspi.c @@ -21,9 +21,6 @@ #include #include #endif -#if defined(CONFIG_SOC_NRF54H20_GPD) -#include -#endif #include LOG_MODULE_REGISTER(mspi_sqspi, CONFIG_MSPI_LOG_LEVEL); @@ -432,13 +429,6 @@ static int dev_pm_action_cb(const struct device *dev, return rc; } -#if defined(CONFIG_SOC_NRF54H20_GPD) - rc = nrf_gpd_retain_pins_set(dev_config->pcfg, false); - if (rc < 0) { - LOG_ERR("Cannot clear RETAIN for pins (%d)", rc); - return rc; - } -#endif nrf_sqspi_activate(&dev_config->sqspi); #if defined(CONFIG_SOC_SERIES_NRF54LX) nrf_memconf_ramblock_ret_enable_set(NRF_MEMCONF, @@ -452,13 +442,6 @@ static int dev_pm_action_cb(const struct device *dev, if (IS_ENABLED(CONFIG_PM_DEVICE) && action == PM_DEVICE_ACTION_SUSPEND) { -#if defined(CONFIG_SOC_NRF54H20_GPD) - rc = nrf_gpd_retain_pins_set(dev_config->pcfg, true); - if (rc < 0) { - LOG_ERR("Cannot set RETAIN for pins (%d)", rc); - return rc; - } -#endif rc = pinctrl_apply_state(dev_config->pcfg, PINCTRL_STATE_SLEEP); if (rc < 0) { From ceba5e06f9ff7b488953c5844918bbe7813bd84b Mon Sep 17 00:00:00 2001 From: Bjarki Arge Andreasen Date: Thu, 31 Jul 2025 14:29:09 +0200 Subject: [PATCH 3/5] samples: smp_svr: extend mcuboot_merged_slot.overlay The board overlay in bootloader/mcuboot for the nrf54h20dk/nrf54h20/cpuapp platform is required, but ignored as FILE_SUFFIX="merged_slot" matches the mcuboot_merged_slot.overlay in this sample instead. Copy the missing contents of the board overlay from bootloader/mcuboot to mcuboot_merged_slot.overlay Signed-off-by: Bjarki Arge Andreasen --- .../sysbuild/mcuboot_merged_slot.overlay | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/samples/zephyr/subsys/mgmt/mcumgr/smp_svr/sysbuild/mcuboot_merged_slot.overlay b/samples/zephyr/subsys/mgmt/mcumgr/smp_svr/sysbuild/mcuboot_merged_slot.overlay index 80537ee8643b..267c6263d9cb 100644 --- a/samples/zephyr/subsys/mgmt/mcumgr/smp_svr/sysbuild/mcuboot_merged_slot.overlay +++ b/samples/zephyr/subsys/mgmt/mcumgr/smp_svr/sysbuild/mcuboot_merged_slot.overlay @@ -11,3 +11,58 @@ zephyr,code-partition = &boot_partition; }; }; + +/* + * Copy required overlay for mcuboot from bootloader/mcuboot. + * + * Required as the overlay in bootloader/mcuboot is ignored due to + * FILE_SUFFIX="merged_slot" matching this overlay instead. + */ + +&gdpwr { + status = "disabled"; +}; + +&gdpwr_fast_active_0 { + status = "disabled"; +}; + +&gdpwr_fast_active_1 { + status = "disabled"; +}; + +&gdpwr_fast_main { + status = "disabled"; +}; + +&gdpwr_slow_active { + status = "disabled"; +}; + +&gdpwr_slow_main { + status = "disabled"; +}; + +&gpio_pad_group0 { + status = "disabled"; +}; + +&gpio_pad_group1 { + status = "disabled"; +}; + +&gpio_pad_group2 { + status = "disabled"; +}; + +&gpio_pad_group6 { + status = "disabled"; +}; + +&gpio_pad_group7 { + status = "disabled"; +}; + +&gpio_pad_group9 { + status = "disabled"; +}; From 1eed600484afabb66baef1045b802c9b75eab4c4 Mon Sep 17 00:00:00 2001 From: Bjarki Arge Andreasen Date: Thu, 31 Jul 2025 14:47:10 +0200 Subject: [PATCH 4/5] nrf_compress: decompression: mcuboot_update: adjust nrf54h20dk pd Adjust nrf54h20dk/nrf54h20/cpuapp overlay and conf to include required props from the overlay in bootloader/mcuboot. Specifically disabling power domains. Signed-off-by: Bjarki Arge Andreasen --- .../boards/nrf54h20dk_nrf54h20_cpuapp.conf | 4 ++ .../boards/nrf54h20dk_nrf54h20_cpuapp.overlay | 55 +++++++++++++++++++ 2 files changed, 59 insertions(+) diff --git a/tests/subsys/nrf_compress/decompression/mcuboot_update/sysbuild/mcuboot/boards/nrf54h20dk_nrf54h20_cpuapp.conf b/tests/subsys/nrf_compress/decompression/mcuboot_update/sysbuild/mcuboot/boards/nrf54h20dk_nrf54h20_cpuapp.conf index dd8a2f1f68e2..55c9b5607f1c 100644 --- a/tests/subsys/nrf_compress/decompression/mcuboot_update/sysbuild/mcuboot/boards/nrf54h20dk_nrf54h20_cpuapp.conf +++ b/tests/subsys/nrf_compress/decompression/mcuboot_update/sysbuild/mcuboot/boards/nrf54h20dk_nrf54h20_cpuapp.conf @@ -8,3 +8,7 @@ CONFIG_SPI_NOR=n CONFIG_FPROTECT=n CONFIG_BOOT_WATCHDOG_FEED=n + +# Power domains forced on by default on boot, no need +# to manage them in bootloader. +CONFIG_POWER_DOMAIN=n diff --git a/tests/subsys/nrf_compress/decompression/mcuboot_update/sysbuild/mcuboot/boards/nrf54h20dk_nrf54h20_cpuapp.overlay b/tests/subsys/nrf_compress/decompression/mcuboot_update/sysbuild/mcuboot/boards/nrf54h20dk_nrf54h20_cpuapp.overlay index 31d9b441aa51..6c30ddb34989 100644 --- a/tests/subsys/nrf_compress/decompression/mcuboot_update/sysbuild/mcuboot/boards/nrf54h20dk_nrf54h20_cpuapp.overlay +++ b/tests/subsys/nrf_compress/decompression/mcuboot_update/sysbuild/mcuboot/boards/nrf54h20dk_nrf54h20_cpuapp.overlay @@ -11,3 +11,58 @@ zephyr,code-partition = &boot_partition; }; }; + +/* + * Copy required overlay for mcuboot from bootloader/mcuboot. + * + * Required as the overlay in bootloader/mcuboot is ignored due to + * board overlay in this test. + */ + +&gdpwr { + status = "disabled"; +}; + +&gdpwr_fast_active_0 { + status = "disabled"; +}; + +&gdpwr_fast_active_1 { + status = "disabled"; +}; + +&gdpwr_fast_main { + status = "disabled"; +}; + +&gdpwr_slow_active { + status = "disabled"; +}; + +&gdpwr_slow_main { + status = "disabled"; +}; + +&gpio_pad_group0 { + status = "disabled"; +}; + +&gpio_pad_group1 { + status = "disabled"; +}; + +&gpio_pad_group2 { + status = "disabled"; +}; + +&gpio_pad_group6 { + status = "disabled"; +}; + +&gpio_pad_group7 { + status = "disabled"; +}; + +&gpio_pad_group9 { + status = "disabled"; +}; From f5f22e7dbe45d0cd4a01271408249f98931600c6 Mon Sep 17 00:00:00 2001 From: Bjarki Arge Andreasen Date: Thu, 7 Aug 2025 13:50:26 +0200 Subject: [PATCH 5/5] benchmarks: multicore: idle: select PM_DEVICE_RUNTIME The global power domains require PM_DEVICE to be power managed. Enable PM_DEVICE, and unselect the default, optional, not required PM_DEVICE_RUNTIME_ASYNC feature. Signed-off-by: Bjarki Arge Andreasen --- tests/benchmarks/multicore/idle/testcase.yaml | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tests/benchmarks/multicore/idle/testcase.yaml b/tests/benchmarks/multicore/idle/testcase.yaml index 5e48bde7b1a3..6bd404c5c917 100644 --- a/tests/benchmarks/multicore/idle/testcase.yaml +++ b/tests/benchmarks/multicore/idle/testcase.yaml @@ -103,6 +103,8 @@ tests: - CONFIG_FIRST_SLEEP_OFFSET=y - CONFIG_PM=y - CONFIG_PM_S2RAM=y + - CONFIG_PM_DEVICE=y + - CONFIG_PM_DEVICE_RUNTIME_ASYNC=n - CONFIG_POWEROFF=y - CONFIG_PM_S2RAM_CUSTOM_MARKING=y - CONFIG_CONSOLE=n @@ -110,6 +112,8 @@ tests: - CONFIG_SERIAL=n - CONFIG_GPIO=n - CONFIG_BOOT_BANNER=n + - remote_CONFIG_PM_DEVICE=y + - remote_CONFIG_PM_DEVICE_RUNTIME_ASYNC=n - remote_CONFIG_PM=y - remote_CONFIG_POWEROFF=y - remote_CONFIG_CONSOLE=n @@ -135,6 +139,8 @@ tests: - CONFIG_FIRST_SLEEP_OFFSET=y - CONFIG_PM=y - CONFIG_PM_S2RAM=y + - CONFIG_PM_DEVICE=y + - CONFIG_PM_DEVICE_RUNTIME_ASYNC=n - CONFIG_POWEROFF=y - CONFIG_PM_S2RAM_CUSTOM_MARKING=y - CONFIG_CONSOLE=n @@ -143,6 +149,8 @@ tests: - CONFIG_GPIO=n - CONFIG_BOOT_BANNER=n - CONFIG_FPU=y + - remote_CONFIG_PM_DEVICE=y + - remote_CONFIG_PM_DEVICE_RUNTIME_ASYNC=n - remote_CONFIG_PM=y - remote_CONFIG_POWEROFF=y - remote_CONFIG_CONSOLE=n @@ -168,6 +176,8 @@ tests: - CONFIG_FIRST_SLEEP_OFFSET=y - CONFIG_PM=y - CONFIG_PM_S2RAM=y + - CONFIG_PM_DEVICE=y + - CONFIG_PM_DEVICE_RUNTIME_ASYNC=n - CONFIG_POWEROFF=y - CONFIG_PM_S2RAM_CUSTOM_MARKING=y - CONFIG_CONSOLE=n @@ -175,6 +185,8 @@ tests: - CONFIG_SERIAL=n - CONFIG_GPIO=n - CONFIG_BOOT_BANNER=n + - remote_CONFIG_PM_DEVICE=y + - remote_CONFIG_PM_DEVICE_RUNTIME_ASYNC=n - remote_CONFIG_PM=y - remote_CONFIG_POWEROFF=y - remote_CONFIG_CONSOLE=n @@ -201,6 +213,8 @@ tests: - CONFIG_FIRST_SLEEP_OFFSET=y - CONFIG_PM=y - CONFIG_PM_S2RAM=y + - CONFIG_PM_DEVICE=y + - CONFIG_PM_DEVICE_RUNTIME_ASYNC=n - CONFIG_POWEROFF=y - CONFIG_PM_S2RAM_CUSTOM_MARKING=y - CONFIG_CONSOLE=n @@ -208,6 +222,8 @@ tests: - CONFIG_SERIAL=n - CONFIG_GPIO=n - CONFIG_BOOT_BANNER=n + - remote_CONFIG_PM_DEVICE=y + - remote_CONFIG_PM_DEVICE_RUNTIME_ASYNC=n - remote_CONFIG_PM=y - remote_CONFIG_POWEROFF=y - remote_CONFIG_CONSOLE=n @@ -234,6 +250,8 @@ tests: - CONFIG_FIRST_SLEEP_OFFSET=y - CONFIG_PM=y - CONFIG_PM_S2RAM=y + - CONFIG_PM_DEVICE=y + - CONFIG_PM_DEVICE_RUNTIME_ASYNC=n - CONFIG_POWEROFF=y - CONFIG_PM_S2RAM_CUSTOM_MARKING=y - CONFIG_CONSOLE=n @@ -241,6 +259,8 @@ tests: - CONFIG_SERIAL=n - CONFIG_GPIO=n - CONFIG_BOOT_BANNER=n + - remote_CONFIG_PM_DEVICE=y + - remote_CONFIG_PM_DEVICE_RUNTIME_ASYNC=n - remote_CONFIG_PM=y - remote_CONFIG_POWEROFF=y - remote_CONFIG_CONSOLE=n @@ -266,6 +286,8 @@ tests: - CONFIG_FIRST_SLEEP_OFFSET=y - CONFIG_PM=y - CONFIG_PM_S2RAM=y + - CONFIG_PM_DEVICE=y + - CONFIG_PM_DEVICE_RUNTIME_ASYNC=n - CONFIG_POWEROFF=y - CONFIG_PM_S2RAM_CUSTOM_MARKING=y - CONFIG_CONSOLE=n @@ -273,6 +295,8 @@ tests: - CONFIG_SERIAL=n - CONFIG_GPIO=n - CONFIG_BOOT_BANNER=n + - remote_CONFIG_PM_DEVICE=y + - remote_CONFIG_PM_DEVICE_RUNTIME_ASYNC=n - remote_CONFIG_PM=y - remote_CONFIG_POWEROFF=y - remote_CONFIG_CONSOLE=n @@ -299,6 +323,8 @@ tests: - CONFIG_FIRST_SLEEP_OFFSET=y - CONFIG_PM=y - CONFIG_PM_S2RAM=y + - CONFIG_PM_DEVICE=y + - CONFIG_PM_DEVICE_RUNTIME_ASYNC=n - CONFIG_POWEROFF=y - CONFIG_PM_S2RAM_CUSTOM_MARKING=y - CONFIG_CONSOLE=n @@ -306,6 +332,8 @@ tests: - CONFIG_SERIAL=n - CONFIG_GPIO=n - CONFIG_BOOT_BANNER=n + - remote_CONFIG_PM_DEVICE=y + - remote_CONFIG_PM_DEVICE_RUNTIME_ASYNC=n - remote_CONFIG_PM=y - remote_CONFIG_POWEROFF=y - remote_CONFIG_CONSOLE=n