cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
MuzamilFarid
Adventurer
Adventurer
531 Views
Registered: ‎04-12-2020

axi dma internal error

hello every one

 

i am working with AXI DMA

i am configuring registers in vhdl using state machine

strange thing is DMA does not assert Tready signal unless i constantly write length register on every handshake(Awvalid/Wvalid). If i write only one time and stop any more transactions on axi write channel then DMA only takes in 4 beats and t ready signal is permanently low. If i constantly write length register then DMA takes in the streaming data coming from my own stream IP which is just a counter. It generates some fixed number of data beats and asserts T last signal on last one and then starts again. DMA transfers all the data in the Block ram ( for simplicity i am using a block ram). After the whole transfer is complete i read the status register and it shows me the DMA is halted and DMA internal error bit goes to high and also the IOC_irq and Err_irq bit goes to high as well. If some one can shed some light on what could be wrong here

thank you 

0 Kudos
3 Replies
dgisselq
Scholar
Scholar
450 Views
Registered: ‎05-21-2015

@MuzamilFarid,

This sounds like a known problem in the S2MM engine: it needs to be prevented from accepting data into the engine prior to configuration.  Otherwise it will accept four data values in and you've seen the rest.  So, in spite of the fact that TREADY is high, you'll need to make certain nothing transfers until the core has been configured for the transfer.

Dan

0 Kudos
tamas.kiss
Contributor
Contributor
234 Views
Registered: ‎04-30-2019

@dgisselq 

What do you mean by "make certain nothing transfers until the core has been configured for the transfer"

I'm having a similar issue. I have posted about it here, but unfortunately no one has answered.

 

Tamás

 

0 Kudos
dgisselq
Scholar
Scholar
220 Views
Registered: ‎05-21-2015

@tamas.kiss ,

I can respond to that question there with what I know.

Dan

0 Kudos