AnsweredAssumed Answered

i.MX6 SPI Flash boot

Question asked by Neil Turner on Mar 9, 2017
Latest reply on Mar 10, 2017 by Neil Turner



I am developing a 'bare metal' project based on the  SCM-i.MX 6Q which internally has a 10Mbyte SPI flash device wired to ESCPI1.


I am trying to build a small boot image to program into the SPI flash which I want the boot ROM code to load and run from OCRAM. Are there any restrictions as to where the boot ROM code will load an image? According to page 382 of the i.MX6 Reference Manual, OCRAM above address 0x00907000 is shown as 'Free Area' so I am hoping I can load and execute a small program in this area. Is this allowed by the Boot ROM code? 


So far I have created the image containing an IVT which gets programmed at offset 0x400 from the base of the SPI Flash, I have also defined the boot data to load the image at address 0x00917000. (I have written my own flash programmer and can see this is correctly programmed into the flash).


When I power cycle the board, it does not boot, but if I attach with a jtag debugger (without loading a program) I can see that the boot ROM has loaded the first 4K of the SPI flash into OCRAM at address 0x00907000 (which is supposed to be free memory!) but has done nothing else. The memory where my program should be (0x0091700) is uninitialized. 


Should this work or am I trying to do something which is not allowed by the boot ROM code?