This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM437x RTOS QSPI flash 4-byte addressing

Configuration:

H/W: AM437x IDK (TMDXIDK437X) using Macronix MX66L51235FMI-10G 512Mbit QSPI flash

S/W: CCS 6.1.2.00015, am437x PDK 1.0.4, SYS/BIOS 6.45.1.29

Hello,

I am using the AM437x IDK to develop a SYS/BIOS application requiring access to the full 64MB address space offered by the on-board QSPI flash. I am experiencing problems with using the supplied flash driver to access memory addresses higher than 16MB (i.e. requiring 4-byte addressing).

For example, taking the supplied example project 'QSPI_BasicExample_idkAM437x_armExampleProject' and modifying the project to perform its test read/write operations at 16MB offset (instead of 0MB offset) results in invalid data being returned.

Changes made to the project to produce this error state are as follows:

(main_qspi_flash_read_write.c)

//unsigned int addrValue = 0x000000U;
unsigned int addrValue = 0x1000000U;

//unsigned int blockNumber = 0U; /* Block number */
unsigned int blockNumber = 256U; /* Block number */

(.cfg)

/* Define the base address of the 1 Meg page the peripheral resides in. */
var peripheralBaseAddr = 0x31000000;

/* Configure the corresponding MMU page descriptor accordingly */
Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
peripheralBaseAddr,
peripheralAttrs);

Are there any issues which  would prevent me using the SYS/BIOS driver in this manner? I am able to successfully access the entire address space of the device using the equivalent Starterware driver.

Thank you in advance for your input.

David