mqx vybrid qspi driver

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

mqx vybrid qspi driver

807 Views
ogj
Contributor IV

I am using the MQX V4.2 for the A5 core and having issues. My goal is to be able to boot the A5 core from the QSPI flash. The issue is I cannot read/write the flash device successfully. I'm using an Emcraft SOM which uses the Spansion S25FL512SDSBHV210 which is a close relative to the S25FL128 chip used on the tower board. I used the driver unmodified and also modified to do 32-bit addressing. Both drivers fail the same way. I start programming at the beginning of a sector, and they fail starting at offset 0x4C0. I've both a full read of the data programmed (~160KB), and just starting at offset 0x480 of the sector for 100 bytes - the data is incorrect. I know the flash can be programmed correctly because I can program and verify it with my Segger J Link which works independent of any code.

I'm sure most systems usually boot up using QSPI flash so I'm sure it somehow works. Any ideas?#mqx 4.2

Tags (2)
0 Kudos
5 Replies

584 Views
ogj
Contributor IV

In addition to the QUAD bit in the flash device configuration register needing to be set, DDR x4 would not work until I used digital learning. It's interesting that DDR x2 would work without it, but x4 would not. Perhaps there is an issue with the board layout of the OTS SOM I'm using.

0 Kudos

584 Views
ogj
Contributor IV

Found the problem. The Spansion/Cypress QSPI devices have a bit in the configuration register to select x1/x2 operation or x4 operation. The uboot driver from Timesys/Emcraft sets the bit (for x4 operation), but the MQX driver doesn't. I'm surprised that the MQX driver (V4.2.0) ever worked in x4 mode.

0 Kudos

584 Views
danielchen
NXP TechSupport
NXP TechSupport

Great to hear the good news, thanks for your sharing.

Regards

Daniel

0 Kudos

584 Views
ogj
Contributor IV

I've got the basic driver to work by isolating the MQX driver so I can use it without the "blot" of MQX. The goal is to get it working for DDR x4 reads. It works now using DDR x1 and x2 reads at 66MHz (haven't tried higher speeds). However I can't get x4 to work. The sequence I'm using (in the LUT table) is: 0x04EE, 0x2A20, 0x2EFF, 0x0C06, 0x3A80. The flash is a Spansion S25FL512S. I've tried 6, 7, and 8 dummy cycles, none of which work. Has anyone got a Spansion flash to work in DDR Quad (x4) I/O mode?

0 Kudos

584 Views
danielchen
NXP TechSupport
NXP TechSupport

Hi Ken:

Since DDR x1 and DDR x 2 can work, and DDR x3  and DDR X4 not work, I am doubting the hardware, could you please attach your schematics ?

Regards

Daniel

0 Kudos