Buffer Descriptor Format

Zynq UltraScale+ Device Technical Reference Manual (UG1085)

Document ID
UG1085
Release Date
2023-12-21
Revision
2.4 English

The buffer descriptor (BD) format used in scatter gather (SG) mode is shown in Table: Buffer Descriptor Format. Both the SRC and DST implement the same format descriptor with a few exceptions. Similar words are implemented in the control registers, which can be used in simple DMA mode. By dividing the descriptor into 32-bit words and implementing them on the control registers, a consistent view is provided in both simple and SG mode.

Table 19-3:      Buffer Descriptor Format

Word Number

Field Name

Size (bytes)

Bits

Description

0

ADDR LSB

4

[31:0]

Lower 32 bits of the address pointing to the data/payload buffer.

1

ADDR MSB

4

[11:0]

Upper 12 bits of the address pointing to the data/payload buffer.

[31:12]

Reserved

2

SIZE

4

[29:0]

Buffer size in bytes (1 G = 230)

[31:30]

Reserved

3

CNTL

4

[0]

Coherency:

0: AXI transactions generated to process the descriptor payload are marked non-coherent.

1: AXI transactions generated to process the descriptor payload are marked coherent.

Note:   This bit has no effect for the FPD DMA controller.

[1]

DSCR element type:

Each descriptor can be viewed as a 128/256-bit descriptor.

0: Current descriptor size is 128 bits (linear)

1: Current descriptor size is 256 bits (linked-list)

[2]

INTR

0: Completion interrupt is not required

1 (SRC-side): Interrupt is set at the completion of this element. Completion indicates that data is read, but it could be in the DMA buffer (and not yet written to destination).

1 (DST-side): Interrupt is set at the completion of this element. Completion indicates that data is written to the destination location and BRESP is received.

[4:3]

CMD

This field is valid only on a SRC descriptor and is reserved on a DST descriptor.

00: Next DSCR is valid, the DMA channel continues with scatter-gather operation (in this case). Software must ensure that the next descriptor is valid.

01: Pause after completing this descriptor. Software can use this command to pause the DMA operation and update the descriptors. Once software is done updating the descriptors, it can resume the channel from where it paused. If software has updated a descriptor to new location, it can resume the channel and tell it to fetch the descriptor from the new location. Pause mode allows software to keep the state of the channel and avoid the enable sequence.

10: STOP after completing this descriptor. Once the DMA channel detects STOP, it finishes the current descriptor payload transfer and goes to IDLE. Any subsequent transfer requires the software to follow an enable sequence. STOP does not preserve the state of the channel.

11: Reserved.

[31:5]

Reserved.

4

NEXT ADDR LSB

4

[31:0]

Lower 32 bits of the NEXT descriptor address. This field exists only if the DSCR element type is set as 1.

5

NEXT ADDR MSB

4

[11:0]

Upper 12 bits of the NEXT descriptor address.

[31:12]

Reserved

This field exists only if the DSCR element type is set as 1.

6

Reserved

4

[31:0]

Reserved

This field exists only if the DSCR element type is set as 1.

7

Reserved

4

[31:0]

Reserved

This field exists only if the DSCR element type is set as 1.