Direct Mode Register Control Examples

Figure 1. Single-Channel in Direct Mode
Table 1. Single-Channel Memory to AXI4-Stream Port in Direct Mode
Step Description Related Register
1 Set the channel input source from memory port. DMASG_CHANNEL_INPUT_CONFIG
Set bit 12 to 1.
2 Set the start memory address to read. DMASG_CHANNEL_INPUT_ADDRESS
3 Set the output of channel to AXI4-Stream output port. DMASG_CHANNEL_OUTPUT_CONFIG
Set bit 12 to 0.
4 Configure the AXI4-Stream output port. DMASG_CHANNEL_OUTPUT_STREAM
For a single-channel controller, port ID is 0.
5 Set the number of bytes to transfer. DMASG_CHANNEL_DIRECT_BYTES
6 Start the DMA in direct mode. DMASG_CHANNEL_STATUS
Set bit 0 to 1. If you use circular buffer mode, set bit 1 to 1.
Table 2. Single-Channel AXI4-Stream to Memory Port in Direct Mode
Step Description Related Register
1 Set the input of channel from AXI4-Stream port. DMASG_CHANNEL_INPUT_CONFIG
Set bit 12 to 0.
2 Configure the AXI4-Stream input port. DMASG_CHANNEL_INPUT_STREAM
For a single-channel controller, port ID is 0.
3 Set the output of channel to memory port. DMASG_CHANNEL_OUTPUT_STREAM
Set bit 12 to 1.
4 Set the start of memory address to write to. DMASG_CHANNEL_OUTPUT_ADDRESS
5 Set the number of bytes to transfer. DMASG_CHANNEL_DIRECT_BYTES
6 Start the DMA in direct mode. DMASG_CHANNEL_STATUS
Set bit 0 to 1. If you use circular buffer mode, set bit 1 to 1.
Table 3. Single-Channel Memory to Memory Port in Direct Mode
Step Description Related Register
1 Set the channel input source from memory port. DMASG_CHANNEL_INPUT_CONFIG
Set bit 12 to 1.
2 Set the start memory address to read. DMASG_CHANNEL_INPUT_ADDRESS
3 Set the output of channel to memory port. DMASG_CHANNEL_OUTPUT_CONFIG
Set bit 12 to 1.
4 Set the start of memory address to write to. DMASG_CHANNEL_OUTPUT_ADDRESS
5 Set the number of bytes to transfer. DMASG_CHANNEL_DIRECT_BYTES
6 Start the DMA in direct mode. DMASG_CHANNEL_STATUS
Set bit 0 to 1. If you use circular buffer mode, set bit 1 to 1.