STM32N6: Black screen after HAL_NVIC_SystemReset() — FSBL not booting, works fine after NRST/power cycle
STM32N6: Black screen after HAL_NVIC_SystemReset() — FSBL not booting, works fine after NRST/power cycle
Gövde:
Hello,
I have a bootloader (FSBL) and a separate application on anSTM32N645L0, running from external XSPI NOR flash MX25UM25645GXDI00 in memory-mapped XIP mode (Octal DTR).
Setup:
- FSBL configures the external flash into Octal DTR mode (volatile CR) at every boot and shows update/bootloader graphics on the display
- The application runs its own graphics
- To enter bootloader mode from the application, call
HAL_NVIC_SystemReset()
Problem:
After HAL_NVIC_SystemReset(), the device stays on a black screen — the FSBL graphics never appear. However, if I reset via the NRST button or a full power cycle, everything boots normally.
What I suspect:
Since the N6 is flashless, BootROM must read the FSBL from external flash in standard SPI mode. My theory is that after a software reset the flash chip stays in Octal DTR mode (it doesn't lose power), so BootROM cannot read the FSBL at all.
Questions:
- Is the correct fix to send the flash software reset sequence (0x66/0x99 in the current protocol) and de-init the XSPI before calling
HAL_NVIC_SystemReset()? Can you share an example function? - Does BootROM on the N6 perform any flash reset itself, or does it strictly assume the flash is in its power-on state?
Toolchain: [STM32CubeIDE 1.19 / CubeMX ], HAL version [x.y], board: [custom / STM32N6570-DK]
Thanks!
