@@ -44,8 +44,14 @@ typedef union
44
44
* descriptors toggles each time the ring tail pointer wraps.
45
45
*/
46
46
uint_reg_t gen : 1 ;
47
+ /**
48
+ * For devices with EDMA reorder support, this field allows the
49
+ * descriptor to select the egress FIFO. The associated DMA ring must
50
+ * have ALLOW_EFIFO_SEL enabled.
51
+ */
52
+ uint_reg_t efifo_sel : 6 ;
47
53
/** Reserved. Must be zero. */
48
- uint_reg_t r0 : 7 ;
54
+ uint_reg_t r0 : 1 ;
49
55
/** Checksum generation enabled for this transfer. */
50
56
uint_reg_t csum : 1 ;
51
57
/**
@@ -110,7 +116,8 @@ typedef union
110
116
uint_reg_t notif : 1 ;
111
117
uint_reg_t ns : 1 ;
112
118
uint_reg_t csum : 1 ;
113
- uint_reg_t r0 : 7 ;
119
+ uint_reg_t r0 : 1 ;
120
+ uint_reg_t efifo_sel : 6 ;
114
121
uint_reg_t gen : 1 ;
115
122
#endif
116
123
@@ -126,14 +133,16 @@ typedef union
126
133
/** Reserved. */
127
134
uint_reg_t __reserved_1 : 3 ;
128
135
/**
129
- * Instance ID. For devices that support more than one mPIPE instance,
130
- * this field indicates the buffer owner. If the INST field does not
131
- * match the mPIPE's instance number when a packet is egressed, buffers
132
- * with HWB set will be returned to the other mPIPE instance.
136
+ * Instance ID. For devices that support automatic buffer return between
137
+ * mPIPE instances, this field indicates the buffer owner. If the INST
138
+ * field does not match the mPIPE's instance number when a packet is
139
+ * egressed, buffers with HWB set will be returned to the other mPIPE
140
+ * instance. Note that not all devices support multi-mPIPE buffer
141
+ * return. The MPIPE_EDMA_INFO.REMOTE_BUFF_RTN_SUPPORT bit indicates
142
+ * whether the INST field in the buffer descriptor is populated by iDMA
143
+ * hardware.
133
144
*/
134
- uint_reg_t inst : 1 ;
135
- /** Reserved. */
136
- uint_reg_t __reserved_2 : 1 ;
145
+ uint_reg_t inst : 2 ;
137
146
/**
138
147
* Always set to one by hardware in iDMA packet descriptors. For eDMA,
139
148
* indicates whether the buffer will be released to the buffer stack
@@ -166,8 +175,7 @@ typedef union
166
175
uint_reg_t c : 2 ;
167
176
uint_reg_t size : 3 ;
168
177
uint_reg_t hwb : 1 ;
169
- uint_reg_t __reserved_2 : 1 ;
170
- uint_reg_t inst : 1 ;
178
+ uint_reg_t inst : 2 ;
171
179
uint_reg_t __reserved_1 : 3 ;
172
180
uint_reg_t stack_idx : 5 ;
173
181
uint_reg_t __reserved_0 : 6 ;
@@ -408,7 +416,10 @@ typedef union
408
416
/**
409
417
* Sequence number applied when packet is distributed. Classifier
410
418
* selects which sequence number is to be applied by writing the 13-bit
411
- * SQN-selector into this field.
419
+ * SQN-selector into this field. For devices that support EXT_SQN (as
420
+ * indicated in IDMA_INFO.EXT_SQN_SUPPORT), the GP_SQN can be extended to
421
+ * 32-bits via the IDMA_CTL.EXT_SQN register. In this case the
422
+ * PACKET_SQN will be reduced to 32 bits.
412
423
*/
413
424
uint_reg_t gp_sqn : 16 ;
414
425
/**
@@ -451,14 +462,16 @@ typedef union
451
462
/** Reserved. */
452
463
uint_reg_t __reserved_5 : 3 ;
453
464
/**
454
- * Instance ID. For devices that support more than one mPIPE instance,
455
- * this field indicates the buffer owner. If the INST field does not
456
- * match the mPIPE's instance number when a packet is egressed, buffers
457
- * with HWB set will be returned to the other mPIPE instance.
465
+ * Instance ID. For devices that support automatic buffer return between
466
+ * mPIPE instances, this field indicates the buffer owner. If the INST
467
+ * field does not match the mPIPE's instance number when a packet is
468
+ * egressed, buffers with HWB set will be returned to the other mPIPE
469
+ * instance. Note that not all devices support multi-mPIPE buffer
470
+ * return. The MPIPE_EDMA_INFO.REMOTE_BUFF_RTN_SUPPORT bit indicates
471
+ * whether the INST field in the buffer descriptor is populated by iDMA
472
+ * hardware.
458
473
*/
459
- uint_reg_t inst : 1 ;
460
- /** Reserved. */
461
- uint_reg_t __reserved_6 : 1 ;
474
+ uint_reg_t inst : 2 ;
462
475
/**
463
476
* Always set to one by hardware in iDMA packet descriptors. For eDMA,
464
477
* indicates whether the buffer will be released to the buffer stack
@@ -491,8 +504,7 @@ typedef union
491
504
uint_reg_t c : 2 ;
492
505
uint_reg_t size : 3 ;
493
506
uint_reg_t hwb : 1 ;
494
- uint_reg_t __reserved_6 : 1 ;
495
- uint_reg_t inst : 1 ;
507
+ uint_reg_t inst : 2 ;
496
508
uint_reg_t __reserved_5 : 3 ;
497
509
uint_reg_t stack_idx : 5 ;
498
510
uint_reg_t __reserved_4 : 6 ;
0 commit comments