Dear all,
I am working on customer board using MIMXRT1052CVL5B for supervisor application. This board using Qflash W25Q256JV (via FlexSPI config) for bootting.
I am using IAR Embedded Workbench IDE 9.20.4. Config macro: XIP_EXTERNAL_FLASH=1, XIP_BOOT_HEADER_ENABLE=1, XIP_BOOT_HEADER_DCD_ENABLE=1.
To reduce cost, i want using this Qflash W25Q256JV to read/write user data config. However, I don't know how to do it?
Thanks for your help.
Solved! Go to Solution.
Hi,
Thanks for your reply.
Firstly, your proposal is able to make it, next, it needs to relocate the FlexSPI driver into the internal RAM prior to reading or writing the data section, I'd like to suggest you refer to the polling_transfer (~\boards\evkbimxrt1050\driver_examples\flexspi\nor\polling_transfer) in the SDK library.
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,
Thank you for your interest in NXP Semiconductor products and for the opportunity to serve you.
According to your reply, it seems like you want to modify the hyperflash_config to fit the W25Q256JV on your custom board.
const flexspi_nor_config_t qspiflash_config = {
.memConfig =
{
.tag = FLEXSPI_CFG_BLK_TAG,
.version = FLEXSPI_CFG_BLK_VERSION,
.readSampleClksrc=kFlexSPIReadSampleClk_LoopbackFromDqsPad,
.csHoldTime = 3u,
.csSetupTime = 3u,
.sflashPadType = kSerialFlash_4Pads,
.serialClkFreq = kFlexSpiSerialClk_100MHz,
.sflashA1Size = 32u * 1024u * 1024u,
.lookupTable =
{
// Read LUTs
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x18),
FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 0x06, READ_SDR, FLEXSPI_4PAD, 0x04),
},
},
.pageSize = 256u,
.sectorSize = 4u * 1024u,
.blockSize = 64u * 1024u,
.isUniformBlockSize = false,
};
If yes, please use the below code to replace the hyperflash_config.
To be prudent, I'd like to know whether your custom board contains the SDRAM prior to sharing some advice for modifying the linker file.
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 jeremyzhou, thanks for your reply.
My custom board contains SDRAM: IS42S16160J-6BLI. I've modified XIP file like your suggest.
Hi,
Thanks for your reply and clarification.
Regarding the ICF file, it needs just modify the size of the flash is enough, just below figure shows.
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.
-------------------------------------------------------------------------------
Thanks for your advice.
Assume my program has maximum length to address 0x602F_FFFF, i want using from address 0x6030_0000 to save supervisor application's data. But i don't read/write this data.
Hi,
Thanks for your reply.
Firstly, your proposal is able to make it, next, it needs to relocate the FlexSPI driver into the internal RAM prior to reading or writing the data section, I'd like to suggest you refer to the polling_transfer (~\boards\evkbimxrt1050\driver_examples\flexspi\nor\polling_transfer) in the SDK library.
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.
-------------------------------------------------------------------------------
I was solved the problem by modify linker's IAR to relocate FlexSPI driver to internal ram.
Thanks so much to @jeremyzhou
My code is large, therefore it needs to relocate the FlexSPI driver into the external RAM.
Can you instruct me modify linker to relocate FlexSPI driver into the external RAM.
Hi,
Thanks for your reply.
1) Can you instruct me modify linker to relocate FlexSPI driver into the external RAM.
-- Just as I mentioned in the previous reply, there's a polling_transfer demo (~\boards\evkbimxrt1050\driver_examples\flexspi\nor\polling_transfer) in the SDK library, you can refer to the linker file of the demo to learn the FlexSPI driver into either internal or external RAM.
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.
-------------------------------------------------------------------------------