AnsweredAssumed Answered

GPMI- Where does my recieved data end up?

Question asked by Brian Norman on May 16, 2014

I'm working on an iMX6 GPMI interface to an asynchronous NAND flash.  Taking baby steps, I have been able to issue a reset to the chip and now I'm trying to read it's id.  The ID is 5 bytes long and when i set up the dma chain, I see that it actually respond with the right id, but the data is never moved to my buffer.  I see the last byte in the GPMI_DATA register, and if i change my dma number of bytes to recieve to 4, i see the first 4 bytes so i know that the GPMI is recieving the data from the NAND.  Also, the GPMI_STAT shows that the fifo is empty(bit2).  So, where did my data go?

I set the GPMI_PAYLOAD to point to a static local variable, made sure it was word aligned, but nothing shows up there.  I had some difficulties initially until i realized that the address registers all needed to be actual addresses, not the mapped address i am used to looking at, but once i changed all addresses by the offset that they are mapped to, my DMA command word chains work great.  I'm puzzled because my DMA Read commands work fine, i used a similar local variable to store all my commands and just point the DMA buffer to them, with the offset.  It appears that the DMA write isn't working. 

Any suggestions, am i even looking at the right place?  What could cause my DMA write to not write, but not report any errors?

Outcomes