I am struggling to get my i.MXRT1170 to boot over the FLEXSPI2 interface and looking for help!
Our design will be using a HyperRAM on FLEXSPI1 and an SPI Flash chip on FLEXSPI2 as the boot device. We are at the prototype stage and have modified an IMXRT1170-EVK to include a Micron MT25QU256ABA chip connected to the FLEXSPI2 interface (by using the SD1 connections on the board). Our code can program and erase this chip quite successfully so I am confident the hardware is working. We have also blown the FLEXSPI_PIN_GROUP_SEL fuse so the boot code will configure the alternate pins for FLEXSPI2 during the boot (these are the same pins used by SD1 on the EVK). However after many days of effort we cannot get the RT1170 to boot from code programmed in this chip.
I should point out that I am pretty familiar with programming the IVT, flash config block etc. on IMX processors having done this several times before on previous projects (on i.MX6, i.MX8Nano and i.MX8Mini).
The following shows output from the debugger reading the contents of the flash SPI chip (accessing via it’s 0x60000000 AHB memory map address). As far as I can tell the Flash Config block, IVT and Boot Data block are located correctly.

If I reset the process and monitor the FLEXSPI signals I can see the boot code first read and check the 0x42464346 tag at address 0x400 it then reads the whole of the flash config block. After a short delay it then reads roughly 4kbytes and stops. Unfortunately I don’t have the logging facilities to be able to see what addresses it actually reads after the first access to 0x400, but I assume this 4K read is to access the IVT and Boot Data structures so I suspect there is something it does not like about them…..but I just cannot see it!
If I attach to the running target with my debugger at this point the processor appears to be looping in the boot rom code at address 0x223104.
0x22'30fa: 0xf24c 0x00b0 MOVW R0, #49328 ; 0xc0b0
0x22'30fe: 0xf2c4 0x00ca MOVT R0, #16586 ; 0x40ca
0x22'3102: 0x6801 LDR R1, [R0]
0x22'3104: 0xe7fe B.N 0x22'3104
0x22'3106: 0xf7de 0xb826 B.W 0x20'1156
0x22'310a: 0xf7de 0xb824 B.W 0x20'1156
0x22'310e: 0xb530 PUSH {R4, R5, LR}
If I examine the memory at 0x20250000 and above I can see no evidence that the boot code attempted to load the image into the OCRAM where it runs.
I am basically stuck at this point and would appreciate any ideas…