DMA transfer descriptor configuration.
When the source or destination address increment is enabled, the addresses stored into the configuration structure must correspond to the end of the transfer.
#include <dma.h>
Data Fields | |
enum dma_beat_size | beat_size |
Beat size is configurable as 8-bit, 16-bit, or 32-bit. More... | |
enum dma_block_action | block_action |
Action taken when a block transfer is completed. More... | |
uint16_t | block_transfer_count |
It is the number of beats in a block. More... | |
bool | descriptor_valid |
Descriptor valid flag used to identify whether a descriptor is valid or not. More... | |
uint32_t | destination_address |
Transfer destination address. More... | |
bool | dst_increment_enable |
Used for enabling the destination address increment. More... | |
enum dma_event_output_selection | event_output_selection |
This is used to generate an event on specific transfer action in a channel. More... | |
uint32_t | next_descriptor_address |
Set to zero for static descriptors. More... | |
uint32_t | source_address |
Transfer source address. More... | |
bool | src_increment_enable |
Used for enabling the source address increment. More... | |
enum dma_step_selection | step_selection |
This bit selects whether the source or destination address is using the step size settings. More... | |
enum dma_address_increment_stepsize | step_size |
The step size for source/destination address increment. More... | |
enum dma_beat_size dma_descriptor_config::beat_size |
Beat size is configurable as 8-bit, 16-bit, or 32-bit.
Referenced by config_dma_for_capture(), config_dma_for_wave(), configure_dma(), configure_dma_aes_rd(), configure_dma_aes_wr(), configure_dma_channel_0(), configure_dma_channel_1(), dma_descriptor_create(), dma_descriptor_get_config_defaults(), setup_dma_descriptor(), setup_transfer_descriptor(), setup_transfer_descriptor_rx(), and setup_transfer_descriptor_tx().
enum dma_block_action dma_descriptor_config::block_action |
Action taken when a block transfer is completed.
Referenced by configure_dma_channel_0(), configure_dma_channel_1(), dma_descriptor_create(), and dma_descriptor_get_config_defaults().
uint16_t dma_descriptor_config::block_transfer_count |
It is the number of beats in a block.
This count value is decremented by one after each beat data transfer.
Referenced by config_dma_for_capture(), config_dma_for_wave(), configure_dma(), configure_dma_aes_rd(), configure_dma_aes_wr(), configure_dma_channel_0(), configure_dma_channel_1(), dma_descriptor_create(), dma_descriptor_get_config_defaults(), setup_dma_descriptor(), setup_transfer_descriptor(), setup_transfer_descriptor_rx(), and setup_transfer_descriptor_tx().
bool dma_descriptor_config::descriptor_valid |
Descriptor valid flag used to identify whether a descriptor is valid or not.
Referenced by dma_descriptor_create(), and dma_descriptor_get_config_defaults().
uint32_t dma_descriptor_config::destination_address |
Transfer destination address.
Referenced by config_dma_for_capture(), config_dma_for_wave(), configure_dma(), configure_dma_aes_rd(), configure_dma_aes_wr(), configure_dma_channel_0(), configure_dma_channel_1(), dma_descriptor_create(), dma_descriptor_get_config_defaults(), setup_dma_descriptor(), setup_transfer_descriptor(), setup_transfer_descriptor_rx(), and setup_transfer_descriptor_tx().
bool dma_descriptor_config::dst_increment_enable |
Used for enabling the destination address increment.
Referenced by config_dma_for_wave(), configure_dma_aes_wr(), configure_dma_channel_0(), configure_dma_channel_1(), dma_descriptor_create(), dma_descriptor_get_config_defaults(), setup_dma_descriptor(), setup_transfer_descriptor(), and setup_transfer_descriptor_tx().
enum dma_event_output_selection dma_descriptor_config::event_output_selection |
This is used to generate an event on specific transfer action in a channel.
Supported only in four lower channels.
Referenced by dma_descriptor_create(), and dma_descriptor_get_config_defaults().
uint32_t dma_descriptor_config::next_descriptor_address |
Set to zero for static descriptors.
This must have a valid memory address for linked descriptors.
Referenced by configure_dma(), configure_dma_channel_0(), configure_dma_channel_1(), dma_descriptor_create(), dma_descriptor_get_config_defaults(), and setup_transfer_descriptor().
uint32_t dma_descriptor_config::source_address |
Transfer source address.
Referenced by config_dma_for_capture(), config_dma_for_wave(), configure_dma(), configure_dma_aes_rd(), configure_dma_aes_wr(), configure_dma_channel_0(), configure_dma_channel_1(), dma_descriptor_create(), dma_descriptor_get_config_defaults(), setup_dma_descriptor(), setup_transfer_descriptor(), setup_transfer_descriptor_rx(), and setup_transfer_descriptor_tx().
bool dma_descriptor_config::src_increment_enable |
Used for enabling the source address increment.
Referenced by config_dma_for_capture(), configure_dma(), configure_dma_aes_rd(), configure_dma_channel_0(), configure_dma_channel_1(), dma_descriptor_create(), dma_descriptor_get_config_defaults(), setup_dma_descriptor(), setup_transfer_descriptor(), and setup_transfer_descriptor_rx().
enum dma_step_selection dma_descriptor_config::step_selection |
This bit selects whether the source or destination address is using the step size settings.
Referenced by config_dma_for_capture(), configure_dma_channel_0(), configure_dma_channel_1(), dma_descriptor_create(), and dma_descriptor_get_config_defaults().
enum dma_address_increment_stepsize dma_descriptor_config::step_size |
The step size for source/destination address increment.
The next address is calculated as next_addr = addr + (2^step_size * beat size).
Referenced by configure_dma_channel_0(), configure_dma_channel_1(), dma_descriptor_create(), and dma_descriptor_get_config_defaults().