cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Scholar
Scholar
640 Views
Registered: ‎06-20-2017

AXI Direct Memory Access: Determining width of buffer length register in SW

Jump to solution

I previously reported this a few years ago to Xilinx.

For the AXI Direct Memory Access IP, with scatter gather turned off (use case), there is a "Width of Buffer Length Register" field with a default of 14.

 

However, I see no evididence of this parameter being passed to xparameters.h. 

 

Either there should be a #define so that the maximum size of the buffer can be determined in software, or there should be a hard coded register in the IP so that this length can be determined.

 

The maximum transfer size seems to be 2**WOBLR-1.

 

But if the HW engineer updates it, how is the SW engineer supposed to know? 

 

BTW, if you exceed the maximum transfer size, the DMA interrupt code just hangs in SDK, without any indication.

This can clearly lead to wasted time and red herrings during code development, which means it will take Xilinx customers longer to get their products to development, and for Xilinx to realize volume revenue.  I know this is obvious to Xilinx, but I wanted to provide a justification here to raise the issue since I have seen no evidence of progress on this apparently small detail that can cause engineer-hours to be spent unnecessarily. 

 

0 Kudos
Reply
1 Solution

Accepted Solutions
Xilinx Employee
Xilinx Employee
588 Views
Registered: ‎10-04-2016

Hi @maps-mpls,

This parameter was added to xparameters.h. The AXI DMA IP added support for 64MB transfers in 2018.1 and the bare metal drivers were upgraded to use this parameter in 2018.2.

The parameter you are looking for in xparameters.h is XPAR_AXI_DMA_0_SG_LENGTH_WIDTH. The width applies in both simple mode and scatter gather mode.

Regards,

Deanna

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------

View solution in original post

0 Kudos
Reply
1 Reply
Xilinx Employee
Xilinx Employee
589 Views
Registered: ‎10-04-2016

Hi @maps-mpls,

This parameter was added to xparameters.h. The AXI DMA IP added support for 64MB transfers in 2018.1 and the bare metal drivers were upgraded to use this parameter in 2018.2.

The parameter you are looking for in xparameters.h is XPAR_AXI_DMA_0_SG_LENGTH_WIDTH. The width applies in both simple mode and scatter gather mode.

Regards,

Deanna

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------

View solution in original post

0 Kudos
Reply