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.

CCS/PROCESSOR-SDK-AM437X: RTOS/AM437x: QSPI programming issue using starterware template

Part Number: PROCESSOR-SDK-AM437X
Other Parts Discussed in Thread: AM4377

Tool/software: Code Composer Studio

Hi experts,


II have a AM4377 based custom hardware with MX25L51245G flash, using qspi_lib.c from pdk_am437x_1_0_15\packages\ti\starterware\library\qspilib as code template.

After adapting Manufacturer ID for identification and changing the command values I am able to read from flash and write in memory mapped mode and TX config mode.

The Macronix flash offers a lot functionality (commands), only some of them are relevant for us. I started with sector erase, which is very similar to block erase (working in my setup).

But this fails; data is not committed or available after writing/power up, and setting the sector content to '1' as described in the Macronix manual doesn't happen.

The only difference between the two commands is the command identifer - so I expected this should work immediately.

I know that communication between AM437x and QSPI flash is based on SFI memory-mapped interface (SFI_MM_IF) - a kind of abstraction layer !?

Parsing qspi_lib.c, I have difficulties to understand the usage of qspiTxCmd_t{} structure elements, on which the command & data transfer to QSPI is relying.

Is there any example or a more detailed description explaining what needs to be set into elements .frameLength and .wordLength when using a specific command ?

What about length if data needs to be transferred? Do I need other mechanisms than SFI_MM_IF to control my flash device? 

I am afraid I'll get more problems when using more specific commands...

Regards, Thomas