UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
97 Views
Registered: ‎06-30-2017

kintex-7 KC705 XDMA Engine problem (repeat Tag request)

Hi, Xilinx:

  I use the kc705 board, vivado 2018.2,XDMA (pcie2.0*4, 128bit). 

I use the xdma for my nic card dma engine, i found it's always hang in H2C channel, so i use chipscope to debug it. i think i found the prblem, pls let me explain detail:

First, below pic is a normal request(no problem):

A: Descriptor data request, you can found request tag =6, data=8 dwords

B: Descriptor data returned, cpld tag = 6, data=8 dwords

C: DMA data request, they are splited three request:

 1: Tag = 7, len = 128 dwords
2: Tag = 8, len = 128 dwords
3: Tag = 9, len = 123 dwords

ok_dmareq.jpgNormal request

D: dma data returned cpld ,correspond before three request, they are:

1: Tag = 7, len = 510 bytes
2: Tag = 8, len = 512 bytes
3: Tag = 9, len = 492 bytes

below pic is the ila cpld data:

ok_dmacpld.jpgNormal data CPLD

 

Second, below pic is a problematic request:

A: Descriptor data request, you can found request tag =4, data=8 dwords

B: Descriptor data returned, cpld tag = 4, data=8 dwords

C: DMA data request, they are splited three request:

 1: Tag = 0f, len = 128 dwords
2: Tag = 06, len = 128 dwords
3: Tag = 0f, len = 123 dwords

The request 3, it's a bad request: because in the request 1, use the Tag 0f, but in this time, it have not cpld returned
in the other words: the Tag 0f have not release. so, the 0f Tag cannot use in request 3.

the tag is assignment by the dma engine,so the bug is come from the encryption hdl code, i cannot to change it.

hang_dmareq.jpgproblematic reauest

D: dma data returned cpld ,correspond before three request, they are:

1: Tag = 0f, len = 510 bytes
2: Tag = 06, len = 512 bytes
3: Tag = 0f, len = 492 bytes

This cpld data come from the pcie ip(128 bit), in this state, the dma engine become hang, in the other words: the h2c engine do not return the data from the cpld, i guess, it's dead, because the duplicate Tag(0f).

hang_cpld.jpgproblematic data cpld

The problem often start at a little data, and then a big data, then the h2c hang. for example, in my network card:

ping 192.168.4.1 (little data,about 68 bytes?)

ping -s 1492 192.168.4.1 (big data, about 1514 bytes)

Then the dma H2C channel hang.

 

The attach file is the problematic ila data, it can be loaded from the vivado to check.

0 Kudos