Dear NXP,
I am following up on a pretty old question of myself:
https://community.nxp.com/t5/i-MX-RT/imx-rt-1021-custom-board-use-flash-on-FlexSPI-B/td-p/1495752
I got caught up in other priorities and didn't really have time to give this topic enough attention. But, we're back on that topic now, and we are still kind of in the same situation. I have a hard time figuring out how to proceed.
The goal: use a secondary flash as "eeprom", so that we don't have to bother with running code in ITC sram.
Background: Currently we are running code in ITC sram in order to use a part of flash as eeprom. It's rather cumbersome, because we also compile our app with "position independent code" compiler flag (in order to run the app in two different locations on flash). Position independent combined with dealing with code running in ITC sram complicates things a bit, I'll spare the details, but, that's the reason we prefer to move aware from the necessity of running code in ITC sram.
As I glanced at this topic (using secondary flash) before, and was a bit lost in space immediately, I was hoping for some extra guidance from NXP support.
Let's say :
- we have a custom PCB, and a secondary flash is properly wired up to FlexSPI B.
- I can run SDK examples without a problem on our board.
Could you somewhat guide me through the process? Is there an SDK example that :
- will run from the 1024 internal flash, AND
- do ANYHTING (read/write/erase) on our flash wired up to FlexSPI B?
If you could provide me an SDK example that meets those requirements, then I have a working starting point, which makes it a whole lot easier to try stuff and start to learn. Now, when I am trying to reverse engineer the nor_flash SDK examples, I mostly get lost in stuff I know close to nothing about.
Many thanks in advance !
解決済! 解決策の投稿を見る。
Dear @bp1979
Hope you are doing fine and thanks a lot for your patience on this community thread.
I found a couple of threads on our community that might be of your interest because they are pretty related and very well explained. Please take a look on them and let me know if you have some more questions about it.
Thread 1:
https://community.nxp.com/t5/i-MX-RT/Using-2nd-flexSPI-not-boot-device-to-store-NVM-data/m-p/1284876
Thread 2:
I will stay tuned to your feedback if they were helpful. Also if it is not what you were looking for, on google I suggest you to type "victorjimenez flexspi nxp community" and take a view in all the threads that exist, because they are all related to this one.
Best Regards.
Pablo Avalos.
@PabloAvalosI don't see how I am targetting the flash connected to SPI B. Where can I see this example interacts with the FlexSPI B instead of the internal flash of the 1024 (connected to FlexSPI A?
@PabloAvalosI don't think you understand my question.
- I want to EXECUTE from RT1204's internal flash (FlexSPI port A1).
- I want to read/write/erase from/to EXTERNAL flash (FlexSPI port B1).
- Eventually, I do NOT want to EXECUTE code from RAM (but for this SDK example it's fine if that's still the case)
I tried to modify the SDK example by simply replacing kFLEXSPI_PortA1 with kFLEXSPI_PortB1.
When I then rerun the SDK example, it faults (IBUSERR) on configuring the eDMA.
Hope you can help me out in this quest
Additional info:
- this flash is connected to FlexSPI B: https://www.issi.com/WW/pdf/25LP032-64A-B.pdf
- I mux the pin for FlexSPI port B1: FlexSPI_B_DQS to GPIO_SD_B0_05. This is the only pin which seems to be muxed for FlexSPI port A. So I assume the rest will be OK by default.
- I wonder if the DMA transfer SDK examples adds anything at all over the nor polling SDK example. I tried the nor polling SDK example as well, but it fails on configuring the flash.
@PabloAvalosany chance you can help me on this or any advice how to get support here? thx a lot for anything you can do
Dear @bp1979
Hope you are doing fine and thanks a lot for your patience on this community thread.
I found a couple of threads on our community that might be of your interest because they are pretty related and very well explained. Please take a look on them and let me know if you have some more questions about it.
Thread 1:
https://community.nxp.com/t5/i-MX-RT/Using-2nd-flexSPI-not-boot-device-to-store-NVM-data/m-p/1284876
Thread 2:
I will stay tuned to your feedback if they were helpful. Also if it is not what you were looking for, on google I suggest you to type "victorjimenez flexspi nxp community" and take a view in all the threads that exist, because they are all related to this one.
Best Regards.
Pablo Avalos.
@PabloAvalosThanks a lot, useful links. Problem is not solved, but reading back my initial post and the comment which was given back in the day regarding the schematics start to make a lot more sense now!!
I think we have an issue with the FlexSPI A dsq pin. We also use that very same pin as CS for FlexSPI B. We think that this is the problem. I'll open a new ticket, to investigate if there is a solution possible without having to adjust hardware....
Dear @bp1979
Base on what you said, and as following up from your previous thread, as your secondary flash hardware from FlexSPI B is now working, you may follow the example for RT1024 (flexspi_nor_edma_transfer) to write, erase and read from that external flash as shown here:
Then, if you are using MCUXpresso and you program your RT1024 with the LPC-Link2 or USB, via CMSIS-DAP (that it is the default debug method), you will be able to flash on the internal memory and debug to see registers, values, etc.
Hope this information helps you, please let me know if you still have more questions. I am happy to assist you.
Best Regards.
Pablo Avalos.
wrong answer