Hello team,
We are started to design the bootloader for imxrt1064, in this we allocated 512KB of size for custom bootloader(0x70000000 to 0x70080000). By using the ROM API we planned to access the internal flash for write the firmware image. There is external NAND flash memory is connected with the Flexspi_A controller port A1. We ported file system with the NAND flash using Quadros OS, before the OS initialization, ROM AP1's are working fine, but after the OS got initialized, ROM APIs are not working, please let me know the reason behind this. At the same time I referred the SDK flexspi_nor_internal_polling_transfer source code, I tried to use this same code for access the NOR flash memory, but unfortunately I'm not able to intialize the flash memory(FlexSPI2), please let me know the reason behind this.
1) What is the other way to access the NOR flash memory(internal flash memory)?
2) Is there any other problem is causing due to both the memories are accessing flash port A1?
3) Does this operating system is disturbing the ROM bootloader location(0x0020001C)?
Thank you
Hi @saranbabu
I hope you are doing great!
I got some points to check my understanding:
#1: after the OS got initialized, ROM APIs are not working
Probably, the OS interruption (Systick interrrupt in most cases) is causing troubles when doing write operations. Please try to disable interrupts when using ROM API and test. Also if you could provide an screenshot of the problem could be helpful.
#2:I referred the SDK flexspi_nor_internal_polling_transfer source code, I tried to use this same code for access the NOR flash memory.
Ok, I double checked latest SDK 2.12.1 and the demo comes for FlexSPI2 interface on RT1064.
#3) What is the other way to access the NOR flash memory(internal flash memory)?
To write NOR flash from application , there are only two ways, that you already tested : ROM API and FlexSPI demos.
#4) Is there any other problem is causing due to both the memories are accessing flash port A1?
Here is where I want to check my understanding, the internal 4MB flash memory can only be connected to FlexSPI2. In other words you can not connect another memory to FlexSPI2. You only have FlexSPI port available for external memories.
#5 Does this operating system is disturbing the ROM bootloader location(0x0020001
As mentioned in @#1, we need to first take care of disabling interrupts. Also, you need to leave 64KB of OCRAM for ROM operation.
All the best,
Diego
Hello NXP Team,
Thanks for your input, I just disabled the interrupt before perform the ROM operation, now it is working fine.