Skip to main content
Visitor II
November 20, 2025
Question

STM32N6570-DK boot from external flash error

  • November 20, 2025
  • 8 replies
  • 364 views

Hello,

I’m working with an STM32N6570-DK, and I’m trying to run a very simple LED-blinking application as part of the FSBL.

When I debug the project using STM32CubeIDE, everything works correctly and the LED blinks as expected.

Next, I want to flash the FSBL application to the external flash, so I generated the header using the following command:

STM32_SigningTool_CLI.exe -bin N6test_FSBL.bin -nk -of 0x80000000 -t fsbl -o N6test_FSBL-trusted.bin -hv 2.3 -dump N6test_FSBL-trusted.bin

I then put the board into DEV mode, connected with STM32CubeProgrammer, and flashed the image at address 0x70000000.

After disconnecting, switching to FLASH mode, and resetting the board, nothing happens. The LED does not blink.

Does anyone know what I might be missing or misconfiguring?

Thanks for your help.

    This topic has been closed for replies.

    8 replies

    Technical Moderator
    November 20, 2025

    Hello @lou_v, and welcome to ST Community,

    I suggest you refer to this article by Bruno, which explains the steps needed to execute from flash and the required configuration very well: How to execute code from the external serial NOR using the STM32N6 

    Best regards,

    lou_vAuthor
    Visitor II
    November 20, 2025

    Hello @STackPointer64 ,

    Thank you for your answer and for the link to Bruno’s article.

    I think I may not have explained my issue clearly enough.
    What I want is to place my application directly inside the FSBL, and have the ROM code load the FSBL into RAM at boot, so that the application runs immediately afterward.

    In other words, I am not trying to execute my code from external flash.
    I want to keep the usual FSBL flow, but include a very simple LED-blink application inside it, and have the boot ROM copy the FSBL to RAM and execute it as expected.

    I followed the standard FSBL generation process, the image works when debugging under STM32CubeIDE, but after flashing the trusted FSBL image, nothing runs (no LED blink).

    Do you know what could prevent the FSBL from being copied and executed properly by the ROM code? Or any specific configuration that must be set when embedding an application inside the FSBL?

    Thanks again for your help.

    Technical Moderator
    November 24, 2025

    Hello @lou_v,

    Are you signing your binary after it is built in STM32CubeIDE? Because I saw that you already have a post-build command that signs your binary after each build, so you might be signing it twice.

    If not, I managed to make it work the way you wanted by following these steps:

    1. Build the application. Inside the debug folder, I find a signed binary thanks to the post-build command.
    2. Put the board in dev mode (BOOT1 switch position: 2-3; BOOT0 switch position does not matter) and plug the board in.
    3. Connect using STM32CubeProgrammer.
    4. Open the External Loader from the icon in the bottom left corner, search for the STM32N6 external loader for the Discovery board for NOR FLASH, not NAND FLASH.
    5. Select the signed binary in the "Erasing & Programming" tab, set the address to 0x70000000, and check the "Verify programming" box.
    6. Start programming.
    7. Unplug the board, set the boot mode to boot from external Flash (BOOT0 switch position: 1-2; BOOT1 switch position: 1-2).
    8. Plug the board back in, and it works.

    Please compare these steps with yours and let me know if this solves your issue.

    Best regards,

    Technical Moderator
    November 24, 2025

    Additionally, the correct article you are looking for is by Bruno. It explains the details about Load and Run mode using FSBL: How to create an STM32N6 FSBL load and run 

    Explorer II
    November 26, 2025

    Hi I am having the exact same problem!

    I have followed Brunos explanation to the letter but nothing runs from Flash.

    I have tried almost every STM32N6570-DK example with the same results.

    All the examples run in debug mode from STM32CubeX IDE without a problem.

    I can load prebuilt fsbl and Appl binaries into flash and these do boot OK so there must be something wrong with the build process of the fsbl.

    If you are able to build and load the examples and have them boot from flash then there has to be some option in the build/link options that must be set for this to work?

    I have spent a lot of hours trying to get this to work and every reference always points to the same documentation that I have spent hours pouring over and keep coming up with the same result.

    How can this problem be resolved????

    Technical Moderator
    November 26, 2025

    @digilog,  were there any errors encountered during the firmware programming? Did you use the appropriate external loader? Have you tried following the steps I mentioned above?

    Visitor II
    November 26, 2025

    STM32_SigningTool_CLI.exe - align -bin N6test_FSBL.bin -nk -of 0x80000000 -t fsbl -o N6test_FSBL-trusted.bin -hv 2.3 -dump N6test_FSBL-trusted.bin

     

    Use this command

    Visitor II
    November 26, 2025

    If you are using STM32_SigningTool_CLI.exe version 2.21.0 you must use -align.

    Explorer II
    November 27, 2025

    Yes I finally came across a document that mentioned using -align when using STM32_SigningTool_CLI.exe version 2.21.0 and this seems to have solved the problem.

    Using the STM32N6570-DK kit for the first time and installing all the latest versions of tools did not go well with most of the documentation and example code posted online!