dma_ip_drivers icon indicating copy to clipboard operation
dma_ip_drivers copied to clipboard

The XDMA did not work when I send big buffer

Open GitSoftwareNow opened this issue 1 year ago • 2 comments

[ 1862.197073] libxdma:xdma_xfer_submit: xfer 0x000000009e11f7b1,2048, s 0x1 timed out, ep 0x800. [ 1862.197096] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0x1fc18006 (id). [ 1862.197110] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x000000007e34bd2e) = 0x00000001 (status). [ 1862.197122] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000971a729a) = 0x00f83e1f (control) [ 1862.197135] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x000000002eee633a) = 0xef0701c0 (first_desc_lo) [ 1862.197147] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000701d88a0) = 0x00000000 (first_desc_hi) [ 1862.197159] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x000000004e7cddaf) = 0x00000001 (first_desc_adjacent). [ 1862.197172] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000d5b48b63) = 0x00000000 (completed_desc_count). [ 1862.197184] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x000000004c22db83) = 0x00f83e1e (interrupt_enable_mask) [ 1862.197200] libxdma:engine_status_dump: SG engine 0-C2H0-ST status: 0x00000001: BUSY [ 1862.197213] libxdma:transfer_abort: abort transfer 0x000000009e11f7b1, desc 2, engine desc queued 0. [ 1871.183753] libxdma:xdma_xfer_submit: xfer 0x000000009e11f7b1,2048, s 0x1 timed out, ep 0x800. [ 1871.183777] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0x1fc18006 (id). [ 1871.183791] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x000000007e34bd2e) = 0x00000001 (status). [ 1871.183803] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000971a729a) = 0x00f83e1f (control) [ 1871.183816] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x000000002eee633a) = 0xef070200 (first_desc_lo) [ 1871.183828] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000701d88a0) = 0x00000000 (first_desc_hi) [ 1871.183840] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x000000004e7cddaf) = 0x00000001 (first_desc_adjacent). [ 1871.183853] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000d5b48b63) = 0x00000000 (completed_desc_count). [ 1871.183865] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x000000004c22db83) = 0x00f83e1e (interrupt_enable_mask) [ 1871.183882] libxdma:engine_status_dump: SG engine 0-C2H0-ST status: 0x00000001: BUSY [ 1871.183895] libxdma:transfer_abort: abort transfer 0x000000009e11f7b1, desc 2, engine desc queued 0. [ 1881.600961] libxdma:xdma_xfer_submit: xfer 0x000000009e11f7b1,2048, s 0x1 timed out, ep 0x800. [ 1881.600986] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0x1fc18006 (id). [ 1881.600999] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x000000007e34bd2e) = 0x00000001 (status). [ 1881.601012] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000971a729a) = 0x00f83e1f (control) [ 1881.601025] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x000000002eee633a) = 0xef070240 (first_desc_lo) [ 1881.601037] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000701d88a0) = 0x00000000 (first_desc_hi) [ 1881.601049] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x000000004e7cddaf) = 0x00000000 (first_desc_adjacent). [ 1881.601061] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000d5b48b63) = 0x00000000 (completed_desc_count). [ 1881.601073] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x000000004c22db83) = 0x00f83e1e (interrupt_enable_mask) [ 1881.601089] libxdma:engine_status_dump: SG engine 0-C2H0-ST status: 0x00000001: BUSY [ 1881.601103] libxdma:transfer_abort: abort transfer 0x000000009e11f7b1, desc 1, engine desc queued 0. [ 3284.527090] libxdma:xdma_xfer_submit: xfer 0x0000000001a74a2f,2048, s 0x1 timed out, ep 0x800. [ 3284.539692] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3284.539696] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3284.539720] libxdma:engine_status_read: Failed to dump register [ 3284.539727] libxdma:xdma_xfer_submit: Failed to read engine status [ 3294.553913] libxdma:xdma_xfer_submit: xfer 0x0000000001a74a2f,2048, s 0x1 timed out, ep 0x800. [ 3294.566516] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3294.566519] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3294.566544] libxdma:engine_status_read: Failed to dump register [ 3294.566552] libxdma:xdma_xfer_submit: Failed to read engine status [ 3304.580948] libxdma:xdma_xfer_submit: xfer 0x0000000001a74a2f,2048, s 0x1 timed out, ep 0x800. [ 3304.593552] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3304.593557] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3304.593586] libxdma:engine_status_read: Failed to dump register [ 3304.593595] libxdma:xdma_xfer_submit: Failed to read engine status [ 3314.607738] libxdma:xdma_xfer_submit: xfer 0x0000000001a74a2f,2048, s 0x1 timed out, ep 0x800. [ 3314.620344] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3314.620351] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3314.620387] libxdma:engine_status_read: Failed to dump register [ 3314.620399] libxdma:xdma_xfer_submit: Failed to read engine status [ 3324.634758] libxdma:xdma_xfer_submit: xfer 0x0000000001a74a2f,2048, s 0x1 timed out, ep 0x800. [ 3324.647362] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3324.647369] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3324.647406] libxdma:engine_status_read: Failed to dump register [ 3324.647418] libxdma:xdma_xfer_submit: Failed to read engine status [ 3334.661953] libxdma:xdma_xfer_submit: xfer 0x0000000001a74a2f,2048, s 0x1 timed out, ep 0x800. [ 3334.674555] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3334.674565] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3334.674613] libxdma:engine_status_read: Failed to dump register [ 3334.674628] libxdma:xdma_xfer_submit: Failed to read engine status [ 3344.688782] libxdma:xdma_xfer_submit: xfer 0x0000000000d859e5,2048, s 0x1 timed out, ep 0x800. [ 3344.701384] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3344.701393] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3344.701442] libxdma:engine_status_read: Failed to dump register [ 3344.701460] libxdma:xdma_xfer_submit: Failed to read engine status [ 3354.715445] libxdma:xdma_xfer_submit: xfer 0x0000000000d859e5,2048, s 0x1 timed out, ep 0x800. [ 3354.728052] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3354.728066] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3354.728133] libxdma:engine_status_read: Failed to dump register [ 3354.728157] libxdma:xdma_xfer_submit: Failed to read engine status [ 3364.742361] libxdma:xdma_xfer_submit: xfer 0x0000000000d859e5,2048, s 0x1 timed out, ep 0x800. [ 3364.754969] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3364.754983] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3364.755049] libxdma:engine_status_read: Failed to dump register [ 3364.755073] libxdma:xdma_xfer_submit: Failed to read engine status [ 3374.769298] libxdma:xdma_xfer_submit: xfer 0x0000000000d859e5,2048, s 0x1 timed out, ep 0x800. [ 3374.781906] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3374.781921] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3374.781988] libxdma:engine_status_read: Failed to dump register [ 3374.782014] libxdma:xdma_xfer_submit: Failed to read engine status [ 3384.796109] libxdma:xdma_xfer_submit: xfer 0x00000000981075c0,2048, s 0x1 timed out, ep 0x800. [ 3384.808716] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3384.808730] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3384.808802] libxdma:engine_status_read: Failed to dump register [ 3384.808826] libxdma:xdma_xfer_submit: Failed to read engine status [ 3394.823007] libxdma:xdma_xfer_submit: xfer 0x00000000981075c0,2048, s 0x1 timed out, ep 0x800. [ 3394.835614] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3394.835628] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3394.835693] libxdma:engine_status_read: Failed to dump register [ 3394.835716] libxdma:xdma_xfer_submit: Failed to read engine status [ 3404.849919] libxdma:xdma_xfer_submit: xfer 0x00000000981075c0,2048, s 0x1 timed out, ep 0x800. [ 3404.862526] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3404.862540] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3404.862607] libxdma:engine_status_read: Failed to dump register [ 3404.862631] libxdma:xdma_xfer_submit: Failed to read engine status [ 3414.876848] libxdma:xdma_xfer_submit: xfer 0x00000000981075c0,2048, s 0x1 timed out, ep 0x800. [ 3414.889454] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3414.889468] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3414.889537] libxdma:engine_status_read: Failed to dump register [ 3414.889562] libxdma:xdma_xfer_submit: Failed to read engine status [ 3424.903761] libxdma:xdma_xfer_submit: xfer 0x00000000981075c0,2048, s 0x1 timed out, ep 0x800. [ 3424.916368] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3424.916382] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3424.916450] libxdma:engine_status_read: Failed to dump register [ 3424.916473] libxdma:xdma_xfer_submit: Failed to read engine status [ 3434.930672] libxdma:xdma_xfer_submit: xfer 0x00000000981075c0,2048, s 0x1 timed out, ep 0x800. [ 3434.943278] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3434.943292] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3434.943360] libxdma:engine_status_read: Failed to dump register [ 3434.943386] libxdma:xdma_xfer_submit: Failed to read engine status [ 3444.957571] libxdma:xdma_xfer_submit: xfer 0x00000000981075c0,2048, s 0x1 timed out, ep 0x800. [ 3444.970178] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3444.970192] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3444.970266] libxdma:engine_status_read: Failed to dump register [ 3444.970291] libxdma:xdma_xfer_submit: Failed to read engine status [ 3454.984499] libxdma:xdma_xfer_submit: xfer 0x00000000981075c0,2048, s 0x1 timed out, ep 0x800. [ 3454.997106] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3454.997120] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3454.997184] libxdma:engine_status_read: Failed to dump register [ 3454.997208] libxdma:xdma_xfer_submit: Failed to read engine status [ 3465.011397] libxdma:xdma_xfer_submit: xfer 0x00000000981075c0,2048, s 0x1 timed out, ep 0x800. [ 3465.024003] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3465.024018] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3465.024080] libxdma:engine_status_read: Failed to dump register [ 3465.024105] libxdma:xdma_xfer_submit: Failed to read engine status [ 3475.038396] libxdma:xdma_xfer_submit: xfer 0x00000000981075c0,2048, s 0x1 timed out, ep 0x800. [ 3475.051004] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3475.051018] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3475.051080] libxdma:engine_status_read: Failed to dump register [ 3475.051104] libxdma:xdma_xfer_submit: Failed to read engine status [ 3485.065218] libxdma:xdma_xfer_submit: xfer 0x00000000981075c0,2048, s 0x1 timed out, ep 0x800. [ 3485.077826] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3485.077840] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3485.077907] libxdma:engine_status_read: Failed to dump register [ 3485.077931] libxdma:xdma_xfer_submit: Failed to read engine status [ 3495.092221] libxdma:xdma_xfer_submit: xfer 0x00000000981075c0,2048, s 0x1 timed out, ep 0x800. [ 3495.104828] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3495.104841] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3495.104908] libxdma:engine_status_read: Failed to dump register [ 3495.104932] libxdma:xdma_xfer_submit: Failed to read engine status [ 3505.119032] libxdma:xdma_xfer_submit: xfer 0x00000000981075c0,2048, s 0x1 timed out, ep 0x800. [ 3505.131639] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3505.131653] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3505.131714] libxdma:engine_status_read: Failed to dump register [ 3505.131739] libxdma:xdma_xfer_submit: Failed to read engine status [ 3515.145955] libxdma:xdma_xfer_submit: xfer 0x00000000981075c0,2048, s 0x1 timed out, ep 0x800. [ 3515.158564] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3515.158578] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3515.158642] libxdma:engine_status_read: Failed to dump register [ 3515.158666] libxdma:xdma_xfer_submit: Failed to read engine status [ 3525.172873] libxdma:xdma_xfer_submit: xfer 0x00000000981075c0,2048, s 0x1 timed out, ep 0x800. [ 3525.185481] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3525.185494] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3525.185559] libxdma:engine_status_read: Failed to dump register [ 3525.185582] libxdma:xdma_xfer_submit: Failed to read engine status [ 3535.199790] libxdma:xdma_xfer_submit: xfer 0x00000000981075c0,2048, s 0x1 timed out, ep 0x800. [ 3535.212397] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3535.212410] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3535.212471] libxdma:engine_status_read: Failed to dump register [ 3535.212497] libxdma:xdma_xfer_submit: Failed to read engine status [ 3545.226786] libxdma:xdma_xfer_submit: xfer 0x00000000981075c0,2048, s 0x1 timed out, ep 0x800. [ 3545.239393] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3545.239407] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3545.239473] libxdma:engine_status_read: Failed to dump register [ 3545.239498] libxdma:xdma_xfer_submit: Failed to read engine status [ 3555.253599] libxdma:xdma_xfer_submit: xfer 0x00000000981075c0,2048, s 0x1 timed out, ep 0x800. [ 3555.266206] libxdma:engine_reg_dump: 0-C2H0-ST: ioread32(0x00000000866b043a) = 0xffffffff (id). [ 3555.266221] libxdma:engine_reg_dump: 0-C2H0-ST: engine id missing, 0xfff00000 exp. & 0xfff00000 = 0x1fc00000 [ 3555.266286] libxdma:engine_status_read: Failed to dump register [ 3555.266309] libxdma:xdma_xfer_submit: Failed to read engine status

GitSoftwareNow avatar Nov 07 '24 02:11 GitSoftwareNow

Are you using streams and TLAST? There are some bugs with it, that generate unexpected TLAST during transmission. You may try https://github.com/Xilinx/dma_ip_drivers/issues/91#issuecomment-2316828753.

mabl avatar Nov 12 '24 05:11 mabl

First three xdma_xfer_submit timeouts you see are probably because of too small timeout value (compared to transaction size, which is big as you mentioned) or because of #311. It's impossible to say from logs which one is your case. Increase the timeout value and/or pull the attached to #311 fix to solve this part of issue. Next timeouts followed by 0xffffffff are because of #317. Update your Vivado to 2019.1 or newer and upgrade XDMA IP to solve this part of issue.

I also should mention that I'm successfully using XDMA from 2021.1 with @alonbl's patch set in AXI Stream mode and have no problems for more than a year now. So with all available patches it is rock solid. Good luck with your project!

dmitrym1 avatar Jan 17 '25 15:01 dmitrym1