Zephyr API Documentation  3.6.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
dma_block_config Struct Reference

DMA block configuration structure. More...

#include <dma.h>

Data Fields

uint32_t source_address
 block starting address at source
 
uint32_t dest_address
 block starting address at destination
 
uint32_t source_gather_interval
 Address adjustment at gather boundary.
 
uint32_t dest_scatter_interval
 Address adjustment at scatter boundary.
 
uint16_t dest_scatter_count
 Continuous transfer count between scatter boundaries.
 
uint16_t source_gather_count
 Continuous transfer count between gather boundaries.
 
uint32_t block_size
 Number of bytes to be transferred for this block.
 
struct dma_block_confignext_block
 Pointer to next block in a transfer list.
 
uint16_t source_gather_en: 1
 Enable source gathering when set to 1.
 
uint16_t dest_scatter_en: 1
 Enable destination scattering when set to 1.
 
uint16_t source_addr_adj: 2
 Source address adjustment option.
 
uint16_t dest_addr_adj: 2
 Destination address adjustment.
 
uint16_t source_reload_en: 1
 Reload source address at the end of block transfer.
 
uint16_t dest_reload_en: 1
 Reload destination address at the end of block transfer.
 
uint16_t fifo_mode_control: 4
 FIFO fill before starting transfer, HW specific meaning.
 
uint16_t flow_control_mode: 1
 Transfer flow control mode.
 

Detailed Description

DMA block configuration structure.

Aside from source address, destination address, and block size many of these options are hardware and driver dependent.

Field Documentation

◆ block_size

uint32_t dma_block_config::block_size

Number of bytes to be transferred for this block.

◆ dest_addr_adj

uint16_t dma_block_config::dest_addr_adj

Destination address adjustment.

  • 0b00 increment
  • 0b01 decrement
  • 0b10 no change

◆ dest_address

uint32_t dma_block_config::dest_address

block starting address at destination

◆ dest_reload_en

uint16_t dma_block_config::dest_reload_en

Reload destination address at the end of block transfer.

◆ dest_scatter_count

uint16_t dma_block_config::dest_scatter_count

Continuous transfer count between scatter boundaries.

◆ dest_scatter_en

uint16_t dma_block_config::dest_scatter_en

Enable destination scattering when set to 1.

◆ dest_scatter_interval

uint32_t dma_block_config::dest_scatter_interval

Address adjustment at scatter boundary.

◆ fifo_mode_control

uint16_t dma_block_config::fifo_mode_control

FIFO fill before starting transfer, HW specific meaning.

◆ flow_control_mode

uint16_t dma_block_config::flow_control_mode

Transfer flow control mode.

  • 0b0 source request service upon data availability
  • 0b1 source request postponed until destination request happens

◆ next_block

struct dma_block_config* dma_block_config::next_block

Pointer to next block in a transfer list.

◆ source_addr_adj

uint16_t dma_block_config::source_addr_adj

Source address adjustment option.

  • 0b00 increment
  • 0b01 decrement
  • 0b10 no change

◆ source_address

uint32_t dma_block_config::source_address

block starting address at source

◆ source_gather_count

uint16_t dma_block_config::source_gather_count

Continuous transfer count between gather boundaries.

◆ source_gather_en

uint16_t dma_block_config::source_gather_en

Enable source gathering when set to 1.

◆ source_gather_interval

uint32_t dma_block_config::source_gather_interval

Address adjustment at gather boundary.

◆ source_reload_en

uint16_t dma_block_config::source_reload_en

Reload source address at the end of block transfer.


The documentation for this struct was generated from the following file: