Hello,
I use a MIMXRT1064 (to be changed to the 1060 later).
I see that in many (if not all) SDK examples the module 'fsl_flexspi_nor_boot' in included, and it seems to contain the header that is needed to boot from QSPI.
My question is: If I build a program with this module and the proper preprocessor definitions, is that enough to be able to boot from QSPI if the program is programmed at the expected location?
Solved! Go to Solution.
The short answer to your original question is "yes". I will preface what I'm saying by noting that I've only worked with the RT1052 and its eval board, not the RT1064; I am assuming that the RT1060 EVK also defaults to HyperFlash operation. The SDK examples for the RT1050 EVKB are all built to be loaded into and run out of HyperFlash. To boot and run from a QSPI flash, you just need to alter the flexspi_nor_config_t structure that appears in the boot header that's built into the image. (On the EVKB, you would also need to solder and de-solder a number of 0402 jumpers.) For what it's worth, I've attached the file I'm presently using with my custom RT1050 board which uses the same QSPI flash device that's present on the EVKB. In my preprocessor macros, I include these settings:
USE_QSPI
XIP_EXTERNAL_FLASH=1
XIP_BOOT_HEADER_ENABLE=1
XIP_BOOT_HEADER_DCD_ENABLE=1
SKIP_SYSCLK_INIT
The first macro is one that I created and inserted into my NOR config file to select between QSPI and HyperFlash. The next two you want to define if you're booting and running out of flash. The last two you want to define if you also want to include DCD data, for instance if you're initializing SDRAM and the necessary PLLs for that at boot time.
David R.
The short answer to your original question is "yes". I will preface what I'm saying by noting that I've only worked with the RT1052 and its eval board, not the RT1064; I am assuming that the RT1060 EVK also defaults to HyperFlash operation. The SDK examples for the RT1050 EVKB are all built to be loaded into and run out of HyperFlash. To boot and run from a QSPI flash, you just need to alter the flexspi_nor_config_t structure that appears in the boot header that's built into the image. (On the EVKB, you would also need to solder and de-solder a number of 0402 jumpers.) For what it's worth, I've attached the file I'm presently using with my custom RT1050 board which uses the same QSPI flash device that's present on the EVKB. In my preprocessor macros, I include these settings:
USE_QSPI
XIP_EXTERNAL_FLASH=1
XIP_BOOT_HEADER_ENABLE=1
XIP_BOOT_HEADER_DCD_ENABLE=1
SKIP_SYSCLK_INIT
The first macro is one that I created and inserted into my NOR config file to select between QSPI and HyperFlash. The next two you want to define if you're booting and running out of flash. The last two you want to define if you also want to include DCD data, for instance if you're initializing SDRAM and the necessary PLLs for that at boot time.
David R.
Fantastic. Thanks a lot, just like I suspected.
Hi Tamir Michael ,
Thank you for your interest in NXP Semiconductor products and for the opportunity to serve you.
In the attachment, it presents how to set the macros to support the XIP as Fig 1 shows, so please refer to the attachment for details.
Have a great day,
TIC
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------
Hi,
Thanks. I was asking this question because I encountered quite some threads dealing with this issue, and application notes too. So you're saying that tools like "elftosb" patch binaries that do not contain this header to be able to boot from QSPI, and that if those binaries are linked with the header module the usage of "elftosb" is redundant?