Hi ,
I am using IMXRT1170 board.
How can I access the external QSPI flash memory from address 0x31000000? In My application I am getting bus fault when I was trying access the particular address.
My application is working up to 0x30F00000 address.
Please let me know. How to configure ...?
Thanks In advance.
Hello,
Just two questions.
Is the correct size of the flash configured in the Register FLEXSPI_FLSHCR0?
Is the MPU configured correctly for the FlexSPI Memory mapping?
Regards
Hi @Nagaveni ,
Thank you for your interest in the NXP MIMXRT product, I would like to provide service for you.
What's the flash size you are using? Whether it can support up to 1000000 or not?
If you are using the MIMXRT1170-EVK board, the onboard flash is the IS25WP128-JBLE.This is the 128Mbit, which size is 0X1000000, it means the accessable range is 0X30000000 to 0X30FFFFFF.
That's why you can't access 0X31000000, as your flash can't support it.
Wish it helps you!
Best Regards,
Kerry
Hi Kerry,
We have custom board of IMXRT1172 and falsh size is 512Mbits(IS25WP512M-JLLE). please let me know how to configure to access of 0x31000000 addresse
Hi Keery ,
Thank You for your response,
I have changed the size as you suggested But still I am getting same Bus fault
Please let me know if any changes required,
Thanks In Advance
Hi @Nagaveni ,
I know why you meet this issues, it is related 3B/4B read commander, as your accessed memory is larger, you need to use the 4Byte address, you can refer to this blog:
https://www.cnblogs.com/henjay724/p/13374775.html
You need to use the 4FRD to replace the FRD.
Please try to use 4byte commander to access it again.
If you still have issues about it, please kindly let me know.
Best Regards,
Kerry
Hi Keery,
Thank you for your response,
I Converted 3B to 4B by modifying cutomLUT of flash as per the data sheet IS25WP512M-JLLE
Modified evkmimxrt1170_flexspi_nor_config.c by replacing 0xEb with 0xEC and 0x18 with 0x20
The strcture flexspi_device_config_t deviceconfig In flexspi_nor_polling_transfer.c is modified as below
In flexspi_nor_polling_transfer.c , CustomLUT is modified by replacing 0x03 with 0x13
replaced 0x0B with 0x0C
Replaced 0xEB with 0xEC
replaced 0xD7 with 0x21
I tried modifing as above , still Unable to access the 0x31000000 address, please let me know if I missed any steps,
Thanks In advance
Hi @Nagaveni ,
Thanks for your updated information.
You mentioned: still Unable to access the 0x31000000 address
How do you access it? Use the code or AHB read the address directly in the IDE?
What about the erase to the high address range? I mean:
flexspi_nor_flash_erase_sector
Whether it returns success or not?
You also can share some screen about your issues, it will help me to check it.
If you still have issues about it, I also need to apply for one flash which you are using to test it.
But, it may need more time, as I lack the chip now, and we also will in the Chinese spring Festival Holiday, I may help you to test it after Feb. 19.
Thanks a lot for your understanding.
Best Regards,
Kerry