hi support team,
docs says we can program 54l15 external spi flash ,please refer to :https://docs.nordicsemi.com/bundle/nrfutil/page/nrfutil-device/guides/programming_external_memory.html
and i copied this :https://docs.nordicsemi.com/bundle/nrfutil/page/nrfutil-device/guides/programming_external_memory.html#example-for-spi-on-nrf54l15 as jason file:
{
"firmware_config": {
"peripheral": "SPIM00"
},
"pins": {
"sck": 65,
"csn": 69,
"io0": 66,
"io1": 68,
"io2": 67,
"io3": 64
},
"flash_size": 8388608,
"page_size": 4096,
"sck_frequency": 8000000,
"address_mode": "MODE24BIT"
}
and it tells us to using 0x10000000 address for file:

i tried , but find one problem, when i program hex to external flash the internal flash is erased:
1: C:\Users\William>arm-none-eabi-objcopy -I binary -O ihex --change-address 0x10000000 C:\ncs2\v3.1.0-preview4\nrf\samples\dfu\dfu_target\build\dfu_target\zephyr\zephyr.bin zephyr1.hex
2: C:\Users\William>nrfutil device --x-ext-mem-config-file C:\Users\William\Desktop\54L15.json program --firmware C:\Users\William\zephyr1.hex --options ext_mem_erase_mode=ERASE_RANGES_TOUCHED_BY_FIRMWARE,verify=VERIFY_READ
[00:00:03] ###### 100% [4/4 1057740301] Programmed
3. but i found out the internal flash 0f 54L15 is erased.
C:\Users\William>nrfutil device --x-ext-mem-config-file C:\Users\William\Desktop\54L15.json read --address 0
1057740301
0x00000000: FFFFFFFF |....|
C:\Users\William>nrfutil device read --address 0
1057740301
0x00000000: FFFFFFFF |....|
4. where extern spi flash is correct:
C:\Users\William>nrfutil device --x-ext-mem-config-file C:\Users\William\Desktop\54L15.json read --address 0x10000000 --bytes 256 --width 8
1057740301
0x10000000: 40 2A 00 20 31 F5 00 00 8F 66 01 00 1D F5 00 00 |@*. 1....f......|
0x10000010: 1D F5 00 00 1D F5 00 00 1D F5 00 00 00 00 00 00 |................|
0x10000020: 00 00 00 00 00 00 00 00 00 00 00 00 AD F6 00 00 |................|
0x10000030: 1D F5 00 00 00 00 00 00 49 F6 00 00 1D F5 00 00 |........I.......|
0x10000040: 71 F8 00 00 71 F8 00 00 71 F8 00 00 71 F8 00 00 |q...q...q...q...|
0x10000050: 71 F8 00 00 71 F8 00 00 71 F8 00 00 71 F8 00 00 |q...q...q...q...|
0x10000060: 71 F8 00 00 71 F8 00 00 71 F8 00 00 71 F8 00 00 |q...q...q...q...|
0x10000070: 71 F8 00 00 71 F8 00 00 71 F8 00 00 71 F8 00 00 |q...q...q...q...|
0x10000080: 71 F8 00 00 71 F8 00 00 71 F8 00 00 71 F8 00 00 |q...q...q...q...|
0x10000090: 71 F8 00 00 71 F8 00 00 71 F8 00 00 71 F8 00 00 |q...q...q...q...|
0x100000A0: 71 F8 00 00 71 F8 00 00 71 F8 00 00 71 F8 00 00 |q...q...q...q...|
0x100000B0: 71 F8 00 00 71 F8 00 00 71 F8 00 00 71 F8 00 00 |q...q...q...q...|
0x100000C0: 71 F8 00 00 71 F8 00 00 71 F8 00 00 71 F8 00 00 |q...q...q...q...|
0x100000D0: 71 F8 00 00 71 F8 00 00 71 F8 00 00 71 F8 00 00 |q...q...q...q...|
0x100000E0: 71 F8 00 00 71 F8 00 00 71 F8 00 00 71 F8 00 00 |q...q...q...q...|
0x100000F0: 71 F8 00 00 71 F8 00 00 71 F8 00 00 71 F8 00 00 |q...q...q...q...|
here is my zephyr1.hex:

so i guess one of my command parameter is not correct:
Regards,
William.