CSUDMA_DST_CTRL (CSUDMA) Register

Zynq UltraScale+ Devices Register Reference (UG1087)

Document ID
UG1087
Release Date
2024-03-13
Revision
1.10

CSUDMA_DST_CTRL (CSUDMA) Register Description

Register NameCSUDMA_DST_CTRL
Offset Address0x000000080C
Absolute Address 0x00FFC8080C (CSUDMA)
Width32
TyperwNormal read/write
Reset Value0x803FFA00
DescriptionGeneral DST DMA Control

CSUDMA_DST_CTRL (CSUDMA) Register Bit-Field Summary

Field NameBitsTypeReset ValueDescription
SSS_FIFOTHRESH31:25rwNormal read/write0x40When the DST FIFO level is greater than or equal to this programmed value, the SSS interface signal, "data_out_fifo_level_hit" will be asserted. This mechanism can be used by the SSS to flow control data that is being looped back from the SRC DMA.
7h00: Reserved
etc
7h0F: Reserved
7h10: Threshold is 17 entries
etc
7h7A: Threshold is 123 entries
7h7B: Reserved
etc
7h7F: Reserved
Note that "7h10" is the minimum and "7h7A" is the max value that should be programmed
APB_ERR_RESP24rwNormal read/write0x0When an APB (register) access occurs to an unimplemented space (there is no register at that location), the resulting pslverr will be:
0: pslverr = 1b0
1: pslverr = 1b1
There is also a maskable interrupt , "INVALID_APB" that could be asserted, independent of what option is selected here.
ENDIANNESS23rwNormal read/write0x0When cleared (0), the DST_DMA will not change the outgoing AXI byte ordering
When set (1), the DST_DMA will flip the outgoing AXI byte locations before sending to the AXI interface as follows:
- Byte[3] -> Byte[0]
- Byte[2] -> Byte[1]
- Byte[1] -> Byte[2]
- Byte[0] -> Byte[3]
AXI_BRST_TYPE22rwNormal read/write0x0When cleared (0), the DST_DMA will issue INCR type bursts to memory
When set (1), the DST_DMA will issue AXI FIXED type bursts to memory
TIMEOUT_VAL21:10rwNormal read/write0xFFESet the timeout value for SRC DMA. There are 2 physical timers, qualified with TIMEOUT_EN, that will compare against this value:
1. Timeout counter starts to run when data is provided to the AXI write channel (memory) interface and backpressure is observed.
As soon as backpressure is removed, the timer is reset. When timer expires, it stops running.
2. Timeout counter runs whenever the DMA is active.
Whenever a data beat is provided by the SSS, the timer is reset. When timer expires, it stops running.
TIMEOUT_VAL field is interpreted as follows:
Final timeout value = TIMEOUT_VAL * timeout_prescale_period
where "timeout_prescale_period" is the period of the enable that is generated by the TIMEOUT_PRE.
Examples (prescaler set to maximum of 4096 clk (~2.5ns) cycles)
12h000: Final Timeout after 1 * (4096 * 2.5ns)] => 10.244 us
12h001: Final Timeout after 2 * (4096 * 2.5ns)] => 20.48 us
etc
12hFFE: Final Timeout after 4095*(4096 * 2.5ns) => 41.93.ms
12hFFF: Special function - Clears both Timers
Note that if PAUSE_MEM is asserted, timeout counter #1 will be paused and if PAUSE_STRM is asserted, timeout counter #2 will be paused.
Note that writing the value of 12hFFF will cause
both timers to be cleared.
FIFO_THRESH 9:2rwNormal read/write0x80DST_FIFO programmed watermark value. This is the FIFO theshold used to trigger the FIFO_THRESHOLD_HIT interrupt.
8h00: Threshold is 0 entries
8h01: Threshold is 1 entry
etc
8h80: Threshold is 128 entries
Note that the interrupt will be triggered when the FIFO hits this threshold, irrespective of whether it is on the way up or down.
PAUSE_STRM 1rwNormal read/write0x01: Temporarily stop the transfer of data to the internal DST data FIFO from the stream interface. This in effect will lead to the emptying of the DST FIFO.
0: DMA operates as usual. If previously PAUSED, it will continue on where it left off.
Note. H/W has no means to apply backpressure to the stream interface. If PAUSE_STRM is asserted, the DMA will drop the stream data. This makes PAUSE mode functionally equivalent to as if the fifo were full. The value of PAUSE_STRM may therefore be limited to debug/verification only.
PAUSE_MEM 0rwNormal read/write0x01: Temporarily stop the issuing of new write commands to memory. This in effect will eventually lead to the filling of the DST FIFO. Write memory commands that are already outstanding will continue to be processed, but no new write commands will be issued to memory while PAUSE_MEM is asserted.
0: DMA operates as usual. If previously PAUSED, it will continue on where it left off.