Using the RT1176, we are trying to configure an external NOR flash device as a primary boot memory attached to FlexSPI2 (PortA). The external flash NOR device we are using (IS25WP128-JBLE) is identical to the one on the i.MX RT1170 Evaluation Kit. Using the Secure Provisioning Tool (SPT), we can partially initialize the NOR flash using blhost and flashloader which appears to read the NOR flash, but its actually not fully functioning. We can successfully run the SPT “Test the configuration” utility, but that doesn’t seem to indicate the NOR is fully functioning. In other words, the tool fails to erase the NOR flash due to the erase block size being unknown and the FCB "tag" value doesn't match. We’ve spent many weeks reading documentation and forums but cannot get the RT1176 to boot and run our application. It appears the boot memory configuration parameters aren’t correct although we think we have followed all the documentation.
We have however figured out a hack that allows us to read, write, erase, and program an image to our external NOR flash (screenshots attached). The hack involves using the EVK board to generate an fcb.bin file using the Secure Provisioning Tool’s “Convert to FCB” utility, which we then write to our electronics implementation. We then tweak the boot memory configuration parameters to match our memory configuration and then re-generate another fcb.bin using our electronics implementation(see attached schematic). After this, we then can successfully read, write, erase, and program an image onto our external flash NOR installed on our electronic implementation. However, after a power cycle, the RT1176 is unable to boot our application. It appears that the configuration is still incorrect; the bootloader can’t find the image, or the FlexSPI2 to external flash configuration is incorrect.
Here are some notable configurations for our setup:
- We have blown the “FLEXSPI_INSTANCE” e-fuse so that the FLEXSPI2 is selected.
- We have blown the “FLEXSPI_PIN_GROUP_SEL” e-fuse so that the secondary pins are used.
- We have blown the "BT_FUSE_SEL" e-fuse so that we boot from fuse options
- All configuration override GPIO pins are disconnected.
- We have placed our application image at address offset 0x3000.