The Matter project gets stuck at the MCU boot stage after adapting the nRF54L15 to the GD25WQ32E

1.Official development board with MX25R6435F, showing normal Matter project startup logs.

[00:00:00.531,831] spi_nor: mx25r6435f@0: 8 MiBy flash

[00:00:00.534,013] mcuboot: Starting bootloader

[00:00:00.534,543] mcuboot: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3

[00:00:00.534,668] mcuboot: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3

[00:00:00.534,673] mcuboot: Boot source: none

[00:00:00.534,843] mcuboot: Image index: 0, Swap type: none

mrs:~$ *** Booting My Application v9.1.0-868d3758095a ***

*** Using nRF Connect SDK v2.9.0-7787b2649840 ***

*** Using Zephyr OS v3.7.99-1f8f3dc29142 ***


2.Private hardware with GD25WQ32E, startup logs of the same Matter project:


00:00:10.256,250] <inf> spi_nor: GD25WQ32E@0: 4 MiBy flash
[00:00:10.256,264] <inf> mcuboot: Starting bootloader
[00:00:10.256,795] <inf> mcuboot: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
[00:00:10.256,921] <inf> mcuboot: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
[00:00:10.256,926] <inf> mcuboot: Boot source: none
[00:00:10.257,098] <inf> mcuboot: Image index: 0, Swap type: none

3.The modifications for adapting to the GD25WQ32E are as follows:


3.1 nrf54l_05_10_15_cpuapp_common.dtsi

&spi00 {
status = "okay";
cs-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
pinctrl-0 = <&spi00_default>;
pinctrl-1 = <&spi00_sleep>;
pinctrl-names = "default", "sleep";

gd25wq32: GD25WQ32E@0 {
compatible = "jedec,spi-nor";
status = "okay";
reg = <0>;
spi-max-frequency = <32000000>;
jedec-id = [c8 65 16];
sfdp-bfp = [
e5 20 f1 ff ff ff ff 01 44 eb 08 6b 08 3b 42 bb
ee ff ff ff ff ff 00 ff ff ff 00 ff 0c 20 0f 52
10 d8 00 ff 63 92 fd fe 83 2f 26 46 ec 82 18 44
7a 75 7a 75 04 bd d5 5c 00 06 64 00 08 10 00 00
];
size = <33554432>;
has-dpd;
t-enter-dpd = <10000>;
t-exit-dpd = <35000>;
};
};

3.2 pm_static_nrf54l15dk_nrf54l15_cpuapp.yml
external_flash (0x400000 - 4096kB):
+--------------------------------------------------+
+---0x0: mcuboot_secondary (0x164000 - 1424kB)-----+
| 0x0: mcuboot_secondary_pad (0x800 - 2kB) |
| 0x800: mcuboot_secondary_app (0x163800 - 1422kB) |
+--------------------------------------------------+
| 0x164000: external_flash (0x29c000 - 2672kB) |
+--------------------------------------------------+

flash_primary (0x17d000 - 1524kB):
+---------------------------------------------------+
| 0x0: mcuboot (0xd000 - 52kB) |
+---0xd000: mcuboot_primary (0x164000 - 1424kB)-----+
| 0xd000: mcuboot_pad (0x800 - 2kB) |
+---0xd800: mcuboot_primary_app (0x163800 - 1422kB)-+
| 0xd800: app (0x163800 - 1422kB) |
+---------------------------------------------------+
| 0x171000: factory_data (0x2000 - 8kB) |
| 0x173000: settings_storage (0xa000 - 40kB) |
+---------------------------------------------------+

otp (0x4fc - 1kB):
+-----------------------------+
| 0xffd500: otp (0x4fc - 1kB) |
+-----------------------------+

sram_primary (0x40000 - 256kB):
+--------------------------------------------+
| 0x20000000: sram_primary (0x40000 - 256kB) |
+--------------------------------------------+

3.3 sysbuild/mcuboot/boards/nrf54l15dk_nrf54l15_cpuapp.conf
CONFIG_BOOT_MAX_IMG_SECTORS=512
CONFIG_SPI_NOR_FLASH_LAYOUT_PAGE_SIZE=4096

4. SFDP info

*** Booting nRF Connect SDK v2.9.0-7787b2649840 ***
*** Using Zephyr OS v3.7.99-1f8f3dc29142 ***
mx25r6435f@0: SFDP v 1.6 AP ff with 3 PH
PH0: ff00 rev 1.6: 16 DW @ 30
Summary of BFP content:
DTR Clocking not supported
Addressing: 3-Byte only
4-KiBy erase: uniform
Support QSPI XIP
Support 1-1-1
Support 1-1-2: instr 3Bh, 0 mode clocks, 8 waits
Support 1-1-4: instr 6Bh, 0 mode clocks, 8 waits
Support 1-2-2: instr BBh, 0 mode clocks, 4 waits
Support 1-4-4: instr EBh, 2 mode clocks, 4 waits
Flash density: 8388608 bytes
ET1: instr 20h for 4096 By; typ 48 ms, max 384 ms
ET2: instr 52h for 32768 By; typ 240 ms, max 1920 ms
ET3: instr D8h for 65536 By; typ 480 ms, max 3840 ms
Chip erase: typ 52000 ms, max 312000 ms
Byte program: type 32 + 1 * B us, max 192 + 6 * B us
Page program: typ 896 us, max 5376 us
Page program size: 256 By
Suspend: B0h ; Resume: 30h
DPD: Enter B9h, exit ABh ; delay 40000 ns ; poll 0x3d
HOLD or RESET Disable: unsupported
QER: 2
0-4-4 Mode methods: entry 0x9 ; exit 0x2f
4-4-4 Mode sequences: enable 0x00 ; disable 0x0
Soft Reset and Rescue Sequence support: 0x10
Status Register 1 support: 0x70
size = <67108864> bits;
sfdp-bfp = [
e5 20 f1 ff ff ff ff 03 44 eb 08 6b 08 3b 04 bb
ee ff ff ff ff ff 00 ff ff ff 00 ff 0c 20 0f 52
10 d8 00 ff 23 72 f5 00 82 ed 04 cc 44 83 48 44
30 b0 30 b0 f7 c4 d5 5c 00 be 29 ff f0 d0 ff ff
];
PH1: ffc2 rev 1.0: 4 DW @ 110
sfdp-ffc2 = [
00 36 50 16 9d f9 c0 64 fe cf ff ff ff ff ff ff
];
PH2: ff84 rev 1.0: 2 DW @ c0
sfdp-ff84 = [
00 00 f0 ff ff ff ff ff
];
jedec-id = [c2 28 17];


*** Booting nRF Connect SDK v2.9.0-7787b2649840 ***

*** Using Zephyr OS v3.7.99-1f8f3dc29142 ***

mx25r6435f@0: SFDP v 1.6 AP ff with 2 PH

PH0: ff00 rev 1.6: 16 DW @ 30

Summary of BFP content:

DTR Clocking not supported

Addressing: 3-Byte only

4-KiBy erase: uniform

Support QSPI XIP

Support 1-1-1

Support 1-1-2: instr 3Bh, 0 mode clocks, 8 waits

Support 1-1-4: instr 6Bh, 0 mode clocks, 8 waits

Support 1-2-2: instr BBh, 2 mode clocks, 2 waits

Support 1-4-4: instr EBh, 2 mode clocks, 4 waits

Flash density: 4194304 bytes

ET1: instr 20h for 4096 By; typ 112 ms, max 896 ms

ET2: instr 52h for 32768 By; typ 304 ms, max 2432 ms

ET3: instr D8h for 65536 By; typ 512 ms, max 4096 ms

Chip erase: typ 28000 ms, max 224000 ms

Byte program: type 72 + 5 * B us, max 576 + 40 * B us

Page program: typ 1024 us, max 8192 us

Page program size: 256 By

Suspend: 75h ; Resume: 7Ah

DPD: Enter B9h, exit ABh ; delay 30000 ns ; poll 0x01

HOLD or RESET Disable: unsupported

QER: 6

0-4-4 Mode methods: entry 0x4 ; exit 0x01

4-4-4 Mode sequences: enable 0x00 ; disable 0x0

Soft Reset and Rescue Sequence support: 0x10

Status Register 1 support: 0x08

size = bits;

sfdp-bfp = [

e5 20 f1 ff ff ff ff 01 44 eb 08 6b 08 3b 42 bb

ee ff ff ff ff ff 00 ff ff ff 00 ff 0c 20 0f 52

10 d8 00 ff 63 92 fd fe 83 2f 26 46 ec 82 18 44

7a 75 7a 75 04 bd d5 5c 00 06 64 00 08 10 00 00

];

PH1: ffc8 rev 1.0: 3 DW @ 90

sfdp-ffc8 = [

00 36 50 16 9e f9 77 64 fc cb ff ff

];

jedec-id = [c8 65 16];

It seems that the boot has already recognized the GD25WQ32E, but what additional settings are needed to ensure the correct jump?

Parents Reply Children
No Data
Related