Typedef descriptor_t
typedef struct packed { /// Flags for this request. Currently, the following are defined: /// bit 0 set to trigger an irq on completion, unset to not be notified /// bits 2:1 burst type for source, fixed: 00, incr: 01, wrap: 10 /// bits 4:3 burst type for destination, fixed: 00, incr: 01, wrap: 10 /// for a description of these modes, check AXI-Pulp documentation /// bit 5 set to decouple reads and writes in the backend /// bit 6 set to serialize requests. Not setting might violate AXI spec /// bit 7 set to deburst (each burst is split into own transfer) /// for a more thorough description, refer to the iDMA backend documentation /// bits 11:8 Bitfield for AXI cache attributes for the source /// bits 15:12 Bitfield for AXI cache attributes for the destination /// bits of the bitfield (refer to AXI-Pulp for a description): /// bit 0: cache bufferable /// bit 1: cache modifiable /// bit 2: cache read alloc /// bit 3: cache write alloc /// bits 23:16 AXI ID used for the transfer /// bits 31:24 unused/reserved logic [31:0] flags; /// length of request in bytes logic [31:0] length; /// address of next descriptor, 0xFFFF_FFFF_FFFF_FFFF for last descriptor in chain addr_t next; /// source address to copy from addr_t src_addr; /// destination address to copy to addr_t dest_addr; } descriptor_t;
Descriptor layout