31 #ifndef DESCRIPTOR_REGS_H_
32 #define DESCRIPTOR_REGS_H_
36 #define DESCRIPTOR_READ_ADDRESS_REG (0x0)
37 #define DESCRIPTOR_WRITE_ADDRESS_REG (0x4)
38 #define DESCRIPTOR_LENGTH_REG (0x8)
39 #define DESCRIPTOR_CONTROL_STANDARD_REG (0xC)
40 #define DESCRIPTOR_SEQUENCE_NUMBER_REG (0xC)
41 #define DESCRIPTOR_READ_BURST_REG (0xE)
42 #define DESCRIPTOR_WRITE_BURST_REG (0xF)
43 #define DESCRIPTOR_READ_STRIDE_REG (0x10)
44 #define DESCRIPTOR_WRITE_STRIDE_REG (0x12)
45 #define DESCRIPTOR_READ_ADDRESS_HIGH_REG (0x14)
46 #define DESCRIPTOR_WRITE_ADDRESS_HIGH_REG (0x18)
47 #define DESCRIPTOR_CONTROL_ENHANCED_REG (0x1C)
51 #define DESCRIPTOR_SEQUENCE_NUMBER_MASK (0xFFFF)
52 #define DESCRIPTOR_SEQUENCE_NUMBER_OFFSET (0)
53 #define DESCRIPTOR_READ_BURST_COUNT_MASK (0x00FF0000)
54 #define DESCRIPTOR_READ_BURST_COUNT_OFFSET (16)
55 #define DESCRIPTOR_WRITE_BURST_COUNT_MASK (0xFF000000)
56 #define DESCRIPTOR_WRITE_BURST_COUNT_OFFSET (24)
60 #define DESCRIPTOR_READ_STRIDE_MASK (0xFFFF)
61 #define DESCRIPTOR_READ_STRIDE_OFFSET (0)
62 #define DESCRIPTOR_WRITE_STRIDE_MASK (0xFFFF0000)
63 #define DESCRIPTOR_WRITE_STRIDE_OFFSET (16)
67 #define DESCRIPTOR_CONTROL_TRANSMIT_CHANNEL_MASK (0xFF)
68 #define DESCRIPTOR_CONTROL_TRANSMIT_CHANNEL_OFFSET (0)
69 #define DESCRIPTOR_CONTROL_GENERATE_SOP_MASK (1<<8)
70 #define DESCRIPTOR_CONTROL_GENERATE_SOP_OFFSET (8)
71 #define DESCRIPTOR_CONTROL_GENERATE_EOP_MASK (1<<9)
72 #define DESCRIPTOR_CONTROL_GENERATE_EOP_OFFSET (9)
73 #define DESCRIPTOR_CONTROL_PARK_READS_MASK (1<<10)
74 #define DESCRIPTOR_CONTROL_PARK_READS_OFFSET (10)
75 #define DESCRIPTOR_CONTROL_PARK_WRITES_MASK (1<<11)
76 #define DESCRIPTOR_CONTROL_PARK_WRITES_OFFSET (11)
77 #define DESCRIPTOR_CONTROL_END_ON_EOP_MASK (1<<12)
78 #define DESCRIPTOR_CONTROL_END_ON_EOP_OFFSET (12)
79 #define DESCRIPTOR_CONTROL_TRANSFER_COMPLETE_IRQ_MASK (1<<14)
80 #define DESCRIPTOR_CONTROL_TRANSFER_COMPLETE_IRQ_OFFSET (14)
81 #define DESCRIPTOR_CONTROL_EARLY_TERMINATION_IRQ_MASK (1<<15)
82 #define DESCRIPTOR_CONTROL_EARLY_TERMINATION_IRQ_OFFSET (15)
83 #define DESCRIPTOR_CONTROL_ERROR_IRQ_MASK (0xFF<<16) // the read master will use this as the transmit error, the dispatcher will use this to generate an interrupt if any of the error bits are asserted by the write master
84 #define DESCRIPTOR_CONTROL_ERROR_IRQ_OFFSET (16)
85 #define DESCRIPTOR_CONTROL_EARLY_DONE_ENABLE_MASK (1<<24)
86 #define DESCRIPTOR_CONTROL_EARLY_DONE_ENABLE_OFFSET (24)
87 #define DESCRIPTOR_CONTROL_GO_MASK (1<<31) // at a minimum you always have to write '1' to this bit as it commits the descriptor to the dispatcher
88 #define DESCRIPTOR_CONTROL_GO_OFFSET (31)