Hi,
We are trying to make an i.MXRT1176 boot on a QuadSPI NOR Flash IS25WP256 on a custom board. We connected the memory the same way it is done on the MIMXRT1170EVK eval board (pins GPIO_SD_B2_05 to 11). We also set the boot pins in the same state as on the eval board.
I wrote a simple "Hello world" application running on the M7 core. This application boots correctly on the eval board, but it does not boot on our custom board. The only difference between the 2 boards is the memory which is 32MB on our custom board, 16MB on the eval board.
So, I modified the FCFB (programmed @ 0x400 in Flash memory) this way:
davidjaouen_1-1770200704754.png
I changed the Flash size to 32MB and the read command in the LUT to use the read command with 32-bit address (instead of 24-bit address sufficient for the Flash memory on the eval board).
Despite those changes, the i.MXRT does not boot on our custom board.
So, I had a look to the bus signals.
The boot ROM reads the FCFB (512 bytes) correctly from the Flash memory and does some configuration (write enable, set read parameter, read status register). This is done with a clock at 30MHz as documented in the RM.
After this, the boot ROM does 4 read accesses of 64 bytes each with a clock at 133MHz (this confirms the boot ROM read the FCFB and applied the settings). But, it reads the memory at addresses 0x0000, 0x0040, 0x0080 and 0x00C0. These are the last accesses the boot ROM does and the M7 core does not boot. I connected a JLink probe to the M7 core and saw the boot ROM is stuck in an infinite loop at 0x223104.
I expected the boot ROM read the IVT table located at 0x1000 so it can load the application code and start its execution.
I tried to change the clock frequency to 30MHz (instead of 133MHz). The boot ROM does the 4 last read accesses at 30MHz, but the application still not boot.
What am I doing wrong?
I'm getting stuck, any help will be appreciated
David
Hello @davidjaouen,
It seems the issue may be related to the debugger, as execution is getting stuck at address 0x223104, which is referenced in the Reset section of this page. Please terminate the debug session, then clean and rebuild the project. After that, try running the application without entering debug mode and let me know your results.
BR
Habib
Hi Habib,
Thanks for your answer.
Unfortunately, I disconnected the debugger probe from the board and did a hardware reset but the i.MXRT still does not boot from Flash memory.
Any other ideas?
Regards,
David
Hi Habib,
We finally made our custom board boot on QSPI Flash. The problem was the BOOT_CFG1[1] pin that was high level instead of a low level. So, the boot ROM tried to start an encrypted image but our image is not encrypted.
Thanks for your help.
David
Hi @Habib_MS ,
I am facing the same issue where the target stays at 0x002231FC after reset/debug launch. However, if I power-cycle the board, the application boots and runs normally from QSPI flash.
I am using:
From my observations, the issue appears only during debugger reset/debug startup and not during standalone boot.
Could you please suggest the proper reset/debug configuration or workaround to resolve this issue?
Awaiting your response.
Regards,
Nagendra Kumar S