From ad792aa70023126b9056cf95bc256f8ab4c6ae99 Mon Sep 17 00:00:00 2001 From: Kamil Kasperczyk Date: Fri, 25 Jul 2025 12:54:17 +0200 Subject: [PATCH] samples: Fixed 54L10 configuration for Matter and Thread The memory layout for 54L10 in Matter and Thread samples is invalid. This commit fixes it, adds known issue and release note entry Signed-off-by: Kamil Kasperczyk --- .../getting_started/hw_requirements.rst | 14 +++++------- .../releases_and_maturity/known_issues.rst | 8 +++++++ .../releases/release-notes-changelog.rst | 3 +++ .../boards/nrf54l15dk_nrf54l10_cpuapp.overlay | 2 +- .../pm_static_nrf54l15dk_nrf54l10_cpuapp.yml | 22 ++++++++----------- .../boards/nrf54l15dk_nrf54l10_cpuapp.overlay | 2 +- .../boards/nrf54l15dk_nrf54l10_cpuapp.overlay | 2 +- .../pm_static_nrf54l15dk_nrf54l10_cpuapp.yml | 22 ++++++++----------- .../boards/nrf54l15dk_nrf54l10_cpuapp.overlay | 2 +- .../boards/nrf54l15dk_nrf54l10_cpuapp.overlay | 2 +- .../pm_static_nrf54l15dk_nrf54l10_cpuapp.yml | 22 ++++++++----------- .../boards/nrf54l15dk_nrf54l10_cpuapp.overlay | 2 +- .../boards/nrf54l15dk_nrf54l10_cpuapp.overlay | 2 +- .../boards/nrf54l15dk_nrf54l10_cpuapp.overlay | 2 +- 14 files changed, 52 insertions(+), 55 deletions(-) diff --git a/doc/nrf/protocols/matter/getting_started/hw_requirements.rst b/doc/nrf/protocols/matter/getting_started/hw_requirements.rst index e6b86ca0929a..5098f1c48e18 100644 --- a/doc/nrf/protocols/matter/getting_started/hw_requirements.rst +++ b/doc/nrf/protocols/matter/getting_started/hw_requirements.rst @@ -723,15 +723,13 @@ For more information about configuration of memory layouts in Matter, see :ref:` +=========================================+=====================+===================+=====================+=================+===================+ | Bootloader (mcuboot) | 0 kB (0x0) | 52 kB (0xD000) |- |- |- | +-----------------------------------------+---------------------+-------------------+---------------------+-----------------+-------------------+ - | Application (mcuboot_primary/app) | 52 kB (0xD000) | 924 kB (0xE7000) | mcuboot_pad | 52 kB (0xD000) | 4 kB (0x1000) | + | Application (mcuboot_primary/app) | 52 kB (0xD000) | 916 kB (0xE5000) | mcuboot_pad | 52 kB (0xD000) | 4 kB (0x1000) | | | | +---------------------+-----------------+-------------------+ - | | | | mcuboot_primary_app | 56 kB (0xE000) | 920 kB (0xE6000) | + | | | | mcuboot_primary_app | 56 kB (0xE000) | 912 kB (0xE4000) | +-----------------------------------------+---------------------+-------------------+---------------------+-----------------+-------------------+ - | Factory data (factory_data) | 976 kB (0xF4000) | 4 kB (0x1000) |- |- |- | + | Factory data (factory_data) | 968 kB (0xF2000) | 4 kB (0x1000) |- |- |- | +-----------------------------------------+---------------------+-------------------+---------------------+-----------------+-------------------+ - | Non-volatile storage (settings_storage) | 980 kB (0xF5000) | 40 kB (0xA000) |- |- |- | - +-----------------------------------------+---------------------+-------------------+---------------------+-----------------+-------------------+ - | Reserved area (reserved) | 1020 kB (0xFF000) | 2 kB (0x800) |- |- |- | + | Non-volatile storage (settings_storage) | 972 kB (0xF3000) | 40 kB (0xA000) |- |- |- | +-----------------------------------------+---------------------+-------------------+---------------------+-----------------+-------------------+ Application core SRAM primary (size: 0x30000 = 192 kB) @@ -747,9 +745,9 @@ For more information about configuration of memory layouts in Matter, see :ref:` +-----------------------------------------+------------------+-------------------+---------------------+-----------------+-----------------+ | Partition | Offset | Size | Partition elements | Element offset | Element size | +=========================================+==================+===================+=====================+=================+=================+ - | Application DFU (mcuboot_secondary) | 0 kB (0x0) | 924 kB (0xE7000) |- |- |- | + | Application DFU (mcuboot_secondary) | 0 kB (0x0) | 916 kB (0xE5000) |- |- |- | +-----------------------------------------+------------------+-------------------+---------------------+-----------------+-----------------+ - | Free space (external_flash) | 924 kB (0xE7000) | 7268 kB (0x719000)|- |- |- | + | Free space (external_flash) | 916 kB (0xE5000) | 7276 kB (0x71B000)|- |- |- | +-----------------------------------------+------------------+-------------------+---------------------+-----------------+-----------------+ .. diff --git a/doc/nrf/releases_and_maturity/known_issues.rst b/doc/nrf/releases_and_maturity/known_issues.rst index 8e8c0ccbec40..960b20fffa3c 100644 --- a/doc/nrf/releases_and_maturity/known_issues.rst +++ b/doc/nrf/releases_and_maturity/known_issues.rst @@ -594,6 +594,14 @@ KRKNWK-20019: The identify time does not update for the endpoint 1 in the Matter **Workaround:** Remove the identify cluster from the :file:`.zap` file, as this cluster is optional for the aggregator endpoint type. +.. rst-class:: v3-0-2 v3-0-1 v3-0-0 v2-9-0-nRF54H20-1 v2-9-2 v2-9-1 v2-9-0 + +KRKNWK-20562: The memory layout for the nRF54L10 target is invalid + The declared non-volatile memory layout is 10 kB greater than the actual size. + In case of using the memory area out of bounds, the device might crash or behave unexpectedly. + + **Workaround:** Change the nRF54L10 memory layout to end at ``0xFD000`` address. + .. rst-class:: v3-0-1 v3-0-0 KRKNWK-20308: The ``MyCluster.xml`` file example in the :ref:`ug_matter_creating_custom_cluster` user guide does not contain the ``ExtendedCommandResponse`` command diff --git a/doc/nrf/releases_and_maturity/releases/release-notes-changelog.rst b/doc/nrf/releases_and_maturity/releases/release-notes-changelog.rst index f69d1ecd405b..77ce94cba285 100644 --- a/doc/nrf/releases_and_maturity/releases/release-notes-changelog.rst +++ b/doc/nrf/releases_and_maturity/releases/release-notes-changelog.rst @@ -578,6 +578,9 @@ Matter samples * :kconfig:option:`CONFIG_CHIP_ICD_ACTIVE_MODE_THRESHOLD` from ``300`` to ``0`` ms for SIT devices. * :kconfig:option:`CONFIG_CHIP_ICD_FAST_POLLING_INTERVAL` from ``200`` to ``500`` ms. + * The memory layout for the ``nrf54l15dk/nrf54l10/cpuapp`` board target, as the previous one was invalid and allowed to access memory area out of bounds. + The maximum size of the non-volatile area was changed from 1022 kB to 1012 kB, the application partition size was decreased by 8 kB, and the reserved partition was removed. + * :ref:`matter_light_switch_sample`: * Updated the testing steps to use the proper commands for groupcast binding. diff --git a/samples/matter/manufacturer_specific/boards/nrf54l15dk_nrf54l10_cpuapp.overlay b/samples/matter/manufacturer_specific/boards/nrf54l15dk_nrf54l10_cpuapp.overlay index 7367ea5ea514..6785516c5c26 100644 --- a/samples/matter/manufacturer_specific/boards/nrf54l15dk_nrf54l10_cpuapp.overlay +++ b/samples/matter/manufacturer_specific/boards/nrf54l15dk_nrf54l10_cpuapp.overlay @@ -17,7 +17,7 @@ // restore full RRAM and SRAM space - by default some parts are dedicated to FLRP &cpuapp_rram { - reg = <0x0 DT_SIZE_K(1022)>; + reg = <0x0 DT_SIZE_K(1012)>; }; &cpuapp_sram { diff --git a/samples/matter/manufacturer_specific/pm_static_nrf54l15dk_nrf54l10_cpuapp.yml b/samples/matter/manufacturer_specific/pm_static_nrf54l15dk_nrf54l10_cpuapp.yml index b30199aabd01..a4ccdb2eeac1 100644 --- a/samples/matter/manufacturer_specific/pm_static_nrf54l15dk_nrf54l10_cpuapp.yml +++ b/samples/matter/manufacturer_specific/pm_static_nrf54l15dk_nrf54l10_cpuapp.yml @@ -9,7 +9,7 @@ mcuboot_pad: app: address: 0xE000 region: flash_primary - size: 0xE6000 + size: 0xE4000 mcuboot_primary: orig_span: &id001 - mcuboot_pad @@ -17,33 +17,29 @@ mcuboot_primary: span: *id001 address: 0xD000 region: flash_primary - size: 0xE7000 + size: 0xE5000 mcuboot_primary_app: orig_span: &id002 - app span: *id002 address: 0xE000 region: flash_primary - size: 0xE6000 + size: 0xE4000 factory_data: - address: 0xF4000 + address: 0xF2000 region: flash_primary size: 0x1000 settings_storage: - address: 0xF5000 + address: 0xF3000 region: flash_primary size: 0xA000 -reserved: - address: 0xFF000 - region: flash_primary - size: 0x800 mcuboot_secondary: address: 0x0 orig_span: &id003 - mcuboot_secondary_pad - mcuboot_secondary_app region: external_flash - size: 0xE7000 + size: 0xE5000 span: *id003 mcuboot_secondary_pad: region: external_flash @@ -52,9 +48,9 @@ mcuboot_secondary_pad: mcuboot_secondary_app: region: external_flash address: 0x1000 - size: 0xE6000 + size: 0xE4000 external_flash: - address: 0xE7000 - size: 0x719000 + address: 0xE5000 + size: 0x71B000 device: MX25R64 region: external_flash diff --git a/samples/matter/manufacturer_specific/sysbuild/mcuboot/boards/nrf54l15dk_nrf54l10_cpuapp.overlay b/samples/matter/manufacturer_specific/sysbuild/mcuboot/boards/nrf54l15dk_nrf54l10_cpuapp.overlay index 9f9b02da0301..50c0ff06a6b3 100644 --- a/samples/matter/manufacturer_specific/sysbuild/mcuboot/boards/nrf54l15dk_nrf54l10_cpuapp.overlay +++ b/samples/matter/manufacturer_specific/sysbuild/mcuboot/boards/nrf54l15dk_nrf54l10_cpuapp.overlay @@ -12,7 +12,7 @@ // restore full RRAM and SRAM space - by default some parts are dedicated to FLRP &cpuapp_rram { - reg = <0x0 DT_SIZE_K(1022)>; + reg = <0x0 DT_SIZE_K(1012)>; }; &cpuapp_sram { diff --git a/samples/matter/smoke_co_alarm/boards/nrf54l15dk_nrf54l10_cpuapp.overlay b/samples/matter/smoke_co_alarm/boards/nrf54l15dk_nrf54l10_cpuapp.overlay index 3b74b803d113..0b70e0861d90 100644 --- a/samples/matter/smoke_co_alarm/boards/nrf54l15dk_nrf54l10_cpuapp.overlay +++ b/samples/matter/smoke_co_alarm/boards/nrf54l15dk_nrf54l10_cpuapp.overlay @@ -18,7 +18,7 @@ // restore full RRAM and SRAM space - by default some parts are dedicated to FLRP &cpuapp_rram { - reg = <0x0 DT_SIZE_K(1022)>; + reg = <0x0 DT_SIZE_K(1012)>; }; &cpuapp_sram { diff --git a/samples/matter/smoke_co_alarm/pm_static_nrf54l15dk_nrf54l10_cpuapp.yml b/samples/matter/smoke_co_alarm/pm_static_nrf54l15dk_nrf54l10_cpuapp.yml index b30199aabd01..a4ccdb2eeac1 100644 --- a/samples/matter/smoke_co_alarm/pm_static_nrf54l15dk_nrf54l10_cpuapp.yml +++ b/samples/matter/smoke_co_alarm/pm_static_nrf54l15dk_nrf54l10_cpuapp.yml @@ -9,7 +9,7 @@ mcuboot_pad: app: address: 0xE000 region: flash_primary - size: 0xE6000 + size: 0xE4000 mcuboot_primary: orig_span: &id001 - mcuboot_pad @@ -17,33 +17,29 @@ mcuboot_primary: span: *id001 address: 0xD000 region: flash_primary - size: 0xE7000 + size: 0xE5000 mcuboot_primary_app: orig_span: &id002 - app span: *id002 address: 0xE000 region: flash_primary - size: 0xE6000 + size: 0xE4000 factory_data: - address: 0xF4000 + address: 0xF2000 region: flash_primary size: 0x1000 settings_storage: - address: 0xF5000 + address: 0xF3000 region: flash_primary size: 0xA000 -reserved: - address: 0xFF000 - region: flash_primary - size: 0x800 mcuboot_secondary: address: 0x0 orig_span: &id003 - mcuboot_secondary_pad - mcuboot_secondary_app region: external_flash - size: 0xE7000 + size: 0xE5000 span: *id003 mcuboot_secondary_pad: region: external_flash @@ -52,9 +48,9 @@ mcuboot_secondary_pad: mcuboot_secondary_app: region: external_flash address: 0x1000 - size: 0xE6000 + size: 0xE4000 external_flash: - address: 0xE7000 - size: 0x719000 + address: 0xE5000 + size: 0x71B000 device: MX25R64 region: external_flash diff --git a/samples/matter/smoke_co_alarm/sysbuild/mcuboot/boards/nrf54l15dk_nrf54l10_cpuapp.overlay b/samples/matter/smoke_co_alarm/sysbuild/mcuboot/boards/nrf54l15dk_nrf54l10_cpuapp.overlay index 0552388c2baf..4caa76c3587a 100644 --- a/samples/matter/smoke_co_alarm/sysbuild/mcuboot/boards/nrf54l15dk_nrf54l10_cpuapp.overlay +++ b/samples/matter/smoke_co_alarm/sysbuild/mcuboot/boards/nrf54l15dk_nrf54l10_cpuapp.overlay @@ -12,7 +12,7 @@ // restore full RRAM and SRAM space - by default some parts are dedicated to FLRP &cpuapp_rram { - reg = <0x0 DT_SIZE_K(1022)>; + reg = <0x0 DT_SIZE_K(1012)>; }; &cpuapp_sram { diff --git a/samples/matter/template/boards/nrf54l15dk_nrf54l10_cpuapp.overlay b/samples/matter/template/boards/nrf54l15dk_nrf54l10_cpuapp.overlay index d1ef8beb65ff..2d5905d95e6c 100644 --- a/samples/matter/template/boards/nrf54l15dk_nrf54l10_cpuapp.overlay +++ b/samples/matter/template/boards/nrf54l15dk_nrf54l10_cpuapp.overlay @@ -17,7 +17,7 @@ // restore full RRAM and SRAM space - by default some parts are dedicated to FLRP &cpuapp_rram { - reg = <0x0 DT_SIZE_K(1022)>; + reg = <0x0 DT_SIZE_K(1012)>; }; &cpuapp_sram { diff --git a/samples/matter/template/pm_static_nrf54l15dk_nrf54l10_cpuapp.yml b/samples/matter/template/pm_static_nrf54l15dk_nrf54l10_cpuapp.yml index b30199aabd01..a4ccdb2eeac1 100644 --- a/samples/matter/template/pm_static_nrf54l15dk_nrf54l10_cpuapp.yml +++ b/samples/matter/template/pm_static_nrf54l15dk_nrf54l10_cpuapp.yml @@ -9,7 +9,7 @@ mcuboot_pad: app: address: 0xE000 region: flash_primary - size: 0xE6000 + size: 0xE4000 mcuboot_primary: orig_span: &id001 - mcuboot_pad @@ -17,33 +17,29 @@ mcuboot_primary: span: *id001 address: 0xD000 region: flash_primary - size: 0xE7000 + size: 0xE5000 mcuboot_primary_app: orig_span: &id002 - app span: *id002 address: 0xE000 region: flash_primary - size: 0xE6000 + size: 0xE4000 factory_data: - address: 0xF4000 + address: 0xF2000 region: flash_primary size: 0x1000 settings_storage: - address: 0xF5000 + address: 0xF3000 region: flash_primary size: 0xA000 -reserved: - address: 0xFF000 - region: flash_primary - size: 0x800 mcuboot_secondary: address: 0x0 orig_span: &id003 - mcuboot_secondary_pad - mcuboot_secondary_app region: external_flash - size: 0xE7000 + size: 0xE5000 span: *id003 mcuboot_secondary_pad: region: external_flash @@ -52,9 +48,9 @@ mcuboot_secondary_pad: mcuboot_secondary_app: region: external_flash address: 0x1000 - size: 0xE6000 + size: 0xE4000 external_flash: - address: 0xE7000 - size: 0x719000 + address: 0xE5000 + size: 0x71B000 device: MX25R64 region: external_flash diff --git a/samples/matter/template/sysbuild/mcuboot/boards/nrf54l15dk_nrf54l10_cpuapp.overlay b/samples/matter/template/sysbuild/mcuboot/boards/nrf54l15dk_nrf54l10_cpuapp.overlay index 0552388c2baf..4caa76c3587a 100644 --- a/samples/matter/template/sysbuild/mcuboot/boards/nrf54l15dk_nrf54l10_cpuapp.overlay +++ b/samples/matter/template/sysbuild/mcuboot/boards/nrf54l15dk_nrf54l10_cpuapp.overlay @@ -12,7 +12,7 @@ // restore full RRAM and SRAM space - by default some parts are dedicated to FLRP &cpuapp_rram { - reg = <0x0 DT_SIZE_K(1022)>; + reg = <0x0 DT_SIZE_K(1012)>; }; &cpuapp_sram { diff --git a/samples/openthread/cli/boards/nrf54l15dk_nrf54l10_cpuapp.overlay b/samples/openthread/cli/boards/nrf54l15dk_nrf54l10_cpuapp.overlay index fc528bf841f5..05ae766ced0b 100644 --- a/samples/openthread/cli/boards/nrf54l15dk_nrf54l10_cpuapp.overlay +++ b/samples/openthread/cli/boards/nrf54l15dk_nrf54l10_cpuapp.overlay @@ -6,7 +6,7 @@ // restore full RRAM and SRAM space - by default some parts are dedicated to FLPR &cpuapp_rram { - reg = <0x0 DT_SIZE_K(1022)>; + reg = <0x0 DT_SIZE_K(1012)>; }; &cpuapp_sram { diff --git a/samples/openthread/coprocessor/boards/nrf54l15dk_nrf54l10_cpuapp.overlay b/samples/openthread/coprocessor/boards/nrf54l15dk_nrf54l10_cpuapp.overlay index 574464f654a9..4023c16391f3 100644 --- a/samples/openthread/coprocessor/boards/nrf54l15dk_nrf54l10_cpuapp.overlay +++ b/samples/openthread/coprocessor/boards/nrf54l15dk_nrf54l10_cpuapp.overlay @@ -18,7 +18,7 @@ // restore full RRAM and SRAM space - by default some parts are dedicated to FLPR &cpuapp_rram { - reg = <0x0 DT_SIZE_K(1022)>; + reg = <0x0 DT_SIZE_K(1012)>; }; &cpuapp_sram {