Hi everyone,
I'm developing a Matter device on the nRF54L15 platform using NCS 2.9.0. When commissioning the device via HomePod and iPhone, the device unexpectedly reboots during the commissioning process.
Issue Description:
When I enable T-FM (build with */_ns), the device hits a Secure Fault and resets during communication handling ReadRequest messages. However, if I disable the T-FM, the commissioning process completes normally without reboots.
Here is a snippet of the error log around the reboot:
E: ***** SECURE FAULT *****
E: Address: 0x2b
E: Attribution unit violation
E: r0/a1: 0x20010c30 r1/a2: 0x20036a28 r2/a3: 0x00000000
E: r3/a4: 0x00000000 r12/ip: 0x20036b20 r14/lr: 0x000c55e5
E: xpsr: 0x81000000
E: Faulting instruction address (r15/pc): 0x000c560c
E: >>> ZEPHYR FATAL ERROR 41: Unknown error on CPU 0
E: Current thread: 0x2001f0e8 (unknown)
E: Resetting system
Suspected Cause:
I suspect the issue is related to the partition table configuration for secure and non-secure regions. It looks like some memory regions may not be configured correctly or overlap, causing attribution faults in TF-M during secure commission operations.
Pm_static.yml:
Here is the relevant part of my partition table (addresses in hex):
mcuboot: 0x0 - 0xD000
mcuboot_pad: 0xD000 - 0xE000
tfm: 0xE000 - 0x2E000
app: 0x2E000 - 0x109000
factory_data: 0x109000 - 0x10A000
settings_storage: 0x10A000 - 0x11A000
fillter_storage: 0x11A000 - 0x175000
tfm_storage: 0x175000 - 0x17D000
mcuboot_secondary_pad: 0x0-0x1000(external_flash)
mcuboot_secondary_app:0x1000-FC000(external_flash)
filling_storage:0xFC000-0x100000(external_flash)
Request for Help:
Could someone please help review my partition table and configuration?
Any suggestions or best practices for partitioning on nRF54L15 with Matter + TF-M?
Thanks in advance for your help!