STM32H7S78-DK + Infineon S28HS512T: erase reports success, but write times out polling WIP
I’m using an Infineon SEMPER NOR flash (JEDEC manufacturer ID 0x34; S28HS512T) with the STM32H7S78-DK XSPI2 interface. The bootloader uses STM32 External Memory Manager’s SFDP NOR driver, configured as EXTMEM_LINK_CONFIG_8LINES. The device has a hybrid sector map, and I’m updating mapped sectors from firmware stored on an SD card.
The updater compares each logical sector, erases sectors marked for update, then writes the corresponding firmware data. Block-protection setup reports success: CLPEF (0x82), writes to CFR3V and STR1V (0x71), and a DYB unprotect write (0xE1) all return HAL_OK.
For sector index 33, at address 0x00040000, size 262144 bytes, erase returns EXTMEM_OK (the measured duration was 0 ms). The subsequent write fails before any page-program command is sent: the driver’s initial WIP poll times out after 5 seconds.
FW erase begin idx=33 logical=0x00040000 cmd=0x00040000 size=262144
FW erase end idx=33 ... status=0 elapsed_ms=0
FW write begin idx=33 addr=0x00040000 ... bytes=262144
XSPI poll fail cmd=0x05 addr=0x00000000 timeout=5000
match=0x00 mask=0x01 hal=3 err=0x00000001
dr=0x00000041 im=1 am=0 dm=16777216
NOR WIP config cmd=0x05 addr=0x00 bit=0 polarity=0
FW write end idx=33 status=-3 elapsed_ms=5001
The poll expects status bit 0 to be zero, but the captured data register value is 0x41. I’m unsure whether the driver is using the correct status-read command, protocol, and WIP interpretation for this SEMPER device after initialization, or whether the erase command’s apparent success is misleading.
What is the recommended STM32 External Memory Manager/SFDP configuration and command sequence for polling WIP and programming this SEMPER flash in this XSPI mode? Is there a known limitation or required configuration for SEMPER status-register access or hybrid-sector erase/program operations?
I’m able to read the memory via Mapped Mode
