open-power/snap

dma_fsm_q stuck at ST_DMA_WRITE_REQ

Closed this issue · 4 comments

Hey @ThomasFuchs ,

I am running CAPI2.0 simulation on SNAP with our AFU. The AFU is going to issue AXI read and write with the following attributes, which is burst length 1, size 8 bytes, burst type incremental.

   axi_arburst        = 2'b01;
   axi_awburst        = 2'b01;
   axi_arcache        = 4'b0010;
   axi_awcache        = 4'b0010;
   axi_arsize         = 3'b011;
   axi_awsize         = 3'b011;
   axi_arlen[7:4]     = 4'b0;
   axi_awlen[7:4]     = 4'b0;

Then seems like the dma status machine in snap core stuck at status ST_DMA_WRITE_REQ, which leads to PSL only received XLATE command for some read commands, but no DMA_READ received. Finally, AXI will be stuck because some of the read don't have response from the snap core.

In the following waveform, read request at address 1A73040 and all succeeded reads don't get response because dma_fsm_q is trapped into the ST_DMA_WRITE_REQ status and never make back to ST_DMA_READ_REQ.

21a22396b115b3ac

Could you please take a look at the waveform in the following path to see if it is a valid issue in snap DMA engine?

/afs/bb/u/shgoupf/vol0/nvdla_debug/20180824_011642

Please note that this issue persist even if I applied the fix from branch add_again_hdl_helloworld.

Thanks a lot.

Thanks Thomas on wrapping up the quick fix. After applying the changes in branch Issue_801, the read is no longer blocked.

Reopen it, because the code is not yet in the master.

The dma_fsm_q is problems to handle a lot of short AXI write requests. It could be, that the dma_wtag_q pointer looks to early to the next UTAG inside write_ctrl_q and hangs. Fix is in branch Issue_801

Close the issue, because the fix is now in master