1 /*
2  * Copyright (c) 2020, The Linux Foundation. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for any
5  * purpose with or without fee is hereby granted, provided that the above
6  * copyright notice and this permission notice appear in all copies.
7  *
8  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15  */
16 
17 #ifndef _TX_MSDU_EXTENSION_H_
18 #define _TX_MSDU_EXTENSION_H_
19 #if !defined(__ASSEMBLER__)
20 #endif
21 
22 
23 // ################ START SUMMARY #################
24 //
25 //	Dword	Fields
26 //	0	tso_enable[0], reserved_0a[6:1], tcp_flag[15:7], tcp_flag_mask[24:16], reserved_0b[31:25]
27 //	1	l2_length[15:0], ip_length[31:16]
28 //	2	tcp_seq_number[31:0]
29 //	3	ip_identification[15:0], udp_length[31:16]
30 //	4	checksum_offset[13:0], partial_checksum_en[14], reserved_4a[15], payload_start_offset[29:16], reserved_4b[31:30]
31 //	5	payload_end_offset[13:0], reserved_5a[15:14], wds[16], reserved_5b[31:17]
32 //	6	buf0_ptr_31_0[31:0]
33 //	7	buf0_ptr_39_32[7:0], reserved_7a[15:8], buf0_len[31:16]
34 //	8	buf1_ptr_31_0[31:0]
35 //	9	buf1_ptr_39_32[7:0], reserved_9a[15:8], buf1_len[31:16]
36 //	10	buf2_ptr_31_0[31:0]
37 //	11	buf2_ptr_39_32[7:0], reserved_11a[15:8], buf2_len[31:16]
38 //	12	buf3_ptr_31_0[31:0]
39 //	13	buf3_ptr_39_32[7:0], reserved_13a[15:8], buf3_len[31:16]
40 //	14	buf4_ptr_31_0[31:0]
41 //	15	buf4_ptr_39_32[7:0], reserved_15a[15:8], buf4_len[31:16]
42 //	16	buf5_ptr_31_0[31:0]
43 //	17	buf5_ptr_39_32[7:0], reserved_17a[15:8], buf5_len[31:16]
44 //
45 // ################ END SUMMARY #################
46 
47 #define NUM_OF_DWORDS_TX_MSDU_EXTENSION 18
48 
49 struct tx_msdu_extension {
50              uint32_t tso_enable                      :  1, //[0]
51                       reserved_0a                     :  6, //[6:1]
52                       tcp_flag                        :  9, //[15:7]
53                       tcp_flag_mask                   :  9, //[24:16]
54                       reserved_0b                     :  7; //[31:25]
55              uint32_t l2_length                       : 16, //[15:0]
56                       ip_length                       : 16; //[31:16]
57              uint32_t tcp_seq_number                  : 32; //[31:0]
58              uint32_t ip_identification               : 16, //[15:0]
59                       udp_length                      : 16; //[31:16]
60              uint32_t checksum_offset                 : 14, //[13:0]
61                       partial_checksum_en             :  1, //[14]
62                       reserved_4a                     :  1, //[15]
63                       payload_start_offset            : 14, //[29:16]
64                       reserved_4b                     :  2; //[31:30]
65              uint32_t payload_end_offset              : 14, //[13:0]
66                       reserved_5a                     :  2, //[15:14]
67                       wds                             :  1, //[16]
68                       reserved_5b                     : 15; //[31:17]
69              uint32_t buf0_ptr_31_0                   : 32; //[31:0]
70              uint32_t buf0_ptr_39_32                  :  8, //[7:0]
71                       reserved_7a                     :  8, //[15:8]
72                       buf0_len                        : 16; //[31:16]
73              uint32_t buf1_ptr_31_0                   : 32; //[31:0]
74              uint32_t buf1_ptr_39_32                  :  8, //[7:0]
75                       reserved_9a                     :  8, //[15:8]
76                       buf1_len                        : 16; //[31:16]
77              uint32_t buf2_ptr_31_0                   : 32; //[31:0]
78              uint32_t buf2_ptr_39_32                  :  8, //[7:0]
79                       reserved_11a                    :  8, //[15:8]
80                       buf2_len                        : 16; //[31:16]
81              uint32_t buf3_ptr_31_0                   : 32; //[31:0]
82              uint32_t buf3_ptr_39_32                  :  8, //[7:0]
83                       reserved_13a                    :  8, //[15:8]
84                       buf3_len                        : 16; //[31:16]
85              uint32_t buf4_ptr_31_0                   : 32; //[31:0]
86              uint32_t buf4_ptr_39_32                  :  8, //[7:0]
87                       reserved_15a                    :  8, //[15:8]
88                       buf4_len                        : 16; //[31:16]
89              uint32_t buf5_ptr_31_0                   : 32; //[31:0]
90              uint32_t buf5_ptr_39_32                  :  8, //[7:0]
91                       reserved_17a                    :  8, //[15:8]
92                       buf5_len                        : 16; //[31:16]
93 };
94 
95 /*
96 
97 tso_enable
98 
99 			Enable transmit segmentation offload <legal all>
100 
101 reserved_0a
102 
103 			FW will set to 0, MAC will ignore.  <legal 0>
104 
105 tcp_flag
106 
107 			TCP flags
108 
109 			{NS,CWR,ECE,URG,ACK,PSH, RST ,SYN,FIN}<legal all>
110 
111 tcp_flag_mask
112 
113 			TCP flag mask. Tcp_flag is inserted into the header
114 			based on the mask, if TSO is enabled
115 
116 reserved_0b
117 
118 			FW will set to 0, MAC will ignore.  <legal 0>
119 
120 l2_length
121 
122 			L2 length for the msdu, if TSO is enabled <legal all>
123 
124 ip_length
125 
126 			IP length for the msdu, if TSO is enabled <legal all>
127 
128 tcp_seq_number
129 
130 			Tcp_seq_number for the msdu, if TSO is enabled <legal
131 			all>
132 
133 ip_identification
134 
135 			IP_identification for the msdu, if TSO is enabled <legal
136 			all>
137 
138 udp_length
139 
140 			TXDMA is copies this field into MSDU START TLV
141 
142 checksum_offset
143 
144 			The calculated checksum from start offset to end offset
145 			will be added to the checksum at the offset given by this
146 			field<legal all>
147 
148 partial_checksum_en
149 
150 			Partial Checksum Enable Bit.
151 
152 			<legal 0-1>
153 
154 reserved_4a
155 
156 			<Legal 0>
157 
158 payload_start_offset
159 
160 			L4 checksum calculations will start fromt this offset
161 
162 			<Legal all>
163 
164 reserved_4b
165 
166 			<Legal 0>
167 
168 payload_end_offset
169 
170 			L4 checksum calculations will end at this offset.
171 
172 			<Legal all>
173 
174 reserved_5a
175 
176 			<Legal 0>
177 
178 wds
179 
180 			If set the current packet is 4-address frame.  Required
181 			because an aggregate can include some frames with 3 address
182 			format and other frames with 4 address format.  Used by the
183 			OLE during encapsulation.
184 
185 			Note: there is also global wds tx control in the
186 			TX_PEER_ENTRY
187 
188 			<legal all>
189 
190 reserved_5b
191 
192 			<Legal 0>
193 
194 buf0_ptr_31_0
195 
196 			Lower 32 bits of the first buffer pointer
197 
198 
199 
200 			NOTE: SW/FW manages the 'cookie' info related to this
201 			buffer together with the 'cookie' info for this
202 			MSDU_EXTENSION descriptor
203 
204 			<legal all>
205 
206 buf0_ptr_39_32
207 
208 			Upper 8 bits of the first buffer pointer <legal all>
209 
210 reserved_7a
211 
212 			<Legal 0>
213 
214 buf0_len
215 
216 			Length of the first buffer <legal all>
217 
218 buf1_ptr_31_0
219 
220 			Lower 32 bits of the second buffer pointer
221 
222 
223 
224 			NOTE: SW/FW manages the 'cookie' info related to this
225 			buffer together with the 'cookie' info for this
226 			MSDU_EXTENSION descriptor
227 
228 			<legal all>
229 
230 buf1_ptr_39_32
231 
232 			Upper 8 bits of the second buffer pointer <legal all>
233 
234 reserved_9a
235 
236 			<Legal 0>
237 
238 buf1_len
239 
240 			Length of the second buffer <legal all>
241 
242 buf2_ptr_31_0
243 
244 			Lower 32 bits of the third buffer pointer
245 
246 			NOTE: SW/FW manages the 'cookie' info related to this
247 			buffer together with the 'cookie' info for this
248 			MSDU_EXTENSION descriptor
249 
250 			<legal all>
251 
252 buf2_ptr_39_32
253 
254 			Upper 8 bits of the third buffer pointer <legal all>
255 
256 reserved_11a
257 
258 			<Legal 0>
259 
260 buf2_len
261 
262 			Length of the third buffer <legal all>
263 
264 buf3_ptr_31_0
265 
266 			Lower 32 bits of the fourth buffer pointer
267 
268 
269 
270 			NOTE: SW/FW manages the 'cookie' info related to this
271 			buffer together with the 'cookie' info for this
272 			MSDU_EXTENSION descriptor
273 
274 			 <legal all>
275 
276 buf3_ptr_39_32
277 
278 			Upper 8 bits of the fourth buffer pointer <legal all>
279 
280 reserved_13a
281 
282 			<Legal 0>
283 
284 buf3_len
285 
286 			Length of the fourth buffer <legal all>
287 
288 buf4_ptr_31_0
289 
290 			Lower 32 bits of the fifth buffer pointer
291 
292 
293 
294 			NOTE: SW/FW manages the 'cookie' info related to this
295 			buffer together with the 'cookie' info for this
296 			MSDU_EXTENSION descriptor
297 
298 			<legal all>
299 
300 buf4_ptr_39_32
301 
302 			Upper 8 bits of the fifth buffer pointer <legal all>
303 
304 reserved_15a
305 
306 			<Legal 0>
307 
308 buf4_len
309 
310 			Length of the fifth buffer <legal all>
311 
312 buf5_ptr_31_0
313 
314 			Lower 32 bits of the sixth buffer pointer
315 
316 
317 
318 			NOTE: SW/FW manages the 'cookie' info related to this
319 			buffer together with the 'cookie' info for this
320 			MSDU_EXTENSION descriptor
321 
322 			 <legal all>
323 
324 buf5_ptr_39_32
325 
326 			Upper 8 bits of the sixth buffer pointer <legal all>
327 
328 reserved_17a
329 
330 			<Legal 0>
331 
332 buf5_len
333 
334 			Length of the sixth buffer <legal all>
335 */
336 
337 
338 /* Description		TX_MSDU_EXTENSION_0_TSO_ENABLE
339 
340 			Enable transmit segmentation offload <legal all>
341 */
342 #define TX_MSDU_EXTENSION_0_TSO_ENABLE_OFFSET                        0x00000000
343 #define TX_MSDU_EXTENSION_0_TSO_ENABLE_LSB                           0
344 #define TX_MSDU_EXTENSION_0_TSO_ENABLE_MASK                          0x00000001
345 
346 /* Description		TX_MSDU_EXTENSION_0_RESERVED_0A
347 
348 			FW will set to 0, MAC will ignore.  <legal 0>
349 */
350 #define TX_MSDU_EXTENSION_0_RESERVED_0A_OFFSET                       0x00000000
351 #define TX_MSDU_EXTENSION_0_RESERVED_0A_LSB                          1
352 #define TX_MSDU_EXTENSION_0_RESERVED_0A_MASK                         0x0000007e
353 
354 /* Description		TX_MSDU_EXTENSION_0_TCP_FLAG
355 
356 			TCP flags
357 
358 			{NS,CWR,ECE,URG,ACK,PSH, RST ,SYN,FIN}<legal all>
359 */
360 #define TX_MSDU_EXTENSION_0_TCP_FLAG_OFFSET                          0x00000000
361 #define TX_MSDU_EXTENSION_0_TCP_FLAG_LSB                             7
362 #define TX_MSDU_EXTENSION_0_TCP_FLAG_MASK                            0x0000ff80
363 
364 /* Description		TX_MSDU_EXTENSION_0_TCP_FLAG_MASK
365 
366 			TCP flag mask. Tcp_flag is inserted into the header
367 			based on the mask, if TSO is enabled
368 */
369 #define TX_MSDU_EXTENSION_0_TCP_FLAG_MASK_OFFSET                     0x00000000
370 #define TX_MSDU_EXTENSION_0_TCP_FLAG_MASK_LSB                        16
371 #define TX_MSDU_EXTENSION_0_TCP_FLAG_MASK_MASK                       0x01ff0000
372 
373 /* Description		TX_MSDU_EXTENSION_0_RESERVED_0B
374 
375 			FW will set to 0, MAC will ignore.  <legal 0>
376 */
377 #define TX_MSDU_EXTENSION_0_RESERVED_0B_OFFSET                       0x00000000
378 #define TX_MSDU_EXTENSION_0_RESERVED_0B_LSB                          25
379 #define TX_MSDU_EXTENSION_0_RESERVED_0B_MASK                         0xfe000000
380 
381 /* Description		TX_MSDU_EXTENSION_1_L2_LENGTH
382 
383 			L2 length for the msdu, if TSO is enabled <legal all>
384 */
385 #define TX_MSDU_EXTENSION_1_L2_LENGTH_OFFSET                         0x00000004
386 #define TX_MSDU_EXTENSION_1_L2_LENGTH_LSB                            0
387 #define TX_MSDU_EXTENSION_1_L2_LENGTH_MASK                           0x0000ffff
388 
389 /* Description		TX_MSDU_EXTENSION_1_IP_LENGTH
390 
391 			IP length for the msdu, if TSO is enabled <legal all>
392 */
393 #define TX_MSDU_EXTENSION_1_IP_LENGTH_OFFSET                         0x00000004
394 #define TX_MSDU_EXTENSION_1_IP_LENGTH_LSB                            16
395 #define TX_MSDU_EXTENSION_1_IP_LENGTH_MASK                           0xffff0000
396 
397 /* Description		TX_MSDU_EXTENSION_2_TCP_SEQ_NUMBER
398 
399 			Tcp_seq_number for the msdu, if TSO is enabled <legal
400 			all>
401 */
402 #define TX_MSDU_EXTENSION_2_TCP_SEQ_NUMBER_OFFSET                    0x00000008
403 #define TX_MSDU_EXTENSION_2_TCP_SEQ_NUMBER_LSB                       0
404 #define TX_MSDU_EXTENSION_2_TCP_SEQ_NUMBER_MASK                      0xffffffff
405 
406 /* Description		TX_MSDU_EXTENSION_3_IP_IDENTIFICATION
407 
408 			IP_identification for the msdu, if TSO is enabled <legal
409 			all>
410 */
411 #define TX_MSDU_EXTENSION_3_IP_IDENTIFICATION_OFFSET                 0x0000000c
412 #define TX_MSDU_EXTENSION_3_IP_IDENTIFICATION_LSB                    0
413 #define TX_MSDU_EXTENSION_3_IP_IDENTIFICATION_MASK                   0x0000ffff
414 
415 /* Description		TX_MSDU_EXTENSION_3_UDP_LENGTH
416 
417 			TXDMA is copies this field into MSDU START TLV
418 */
419 #define TX_MSDU_EXTENSION_3_UDP_LENGTH_OFFSET                        0x0000000c
420 #define TX_MSDU_EXTENSION_3_UDP_LENGTH_LSB                           16
421 #define TX_MSDU_EXTENSION_3_UDP_LENGTH_MASK                          0xffff0000
422 
423 /* Description		TX_MSDU_EXTENSION_4_CHECKSUM_OFFSET
424 
425 			The calculated checksum from start offset to end offset
426 			will be added to the checksum at the offset given by this
427 			field<legal all>
428 */
429 #define TX_MSDU_EXTENSION_4_CHECKSUM_OFFSET_OFFSET                   0x00000010
430 #define TX_MSDU_EXTENSION_4_CHECKSUM_OFFSET_LSB                      0
431 #define TX_MSDU_EXTENSION_4_CHECKSUM_OFFSET_MASK                     0x00003fff
432 
433 /* Description		TX_MSDU_EXTENSION_4_PARTIAL_CHECKSUM_EN
434 
435 			Partial Checksum Enable Bit.
436 
437 			<legal 0-1>
438 */
439 #define TX_MSDU_EXTENSION_4_PARTIAL_CHECKSUM_EN_OFFSET               0x00000010
440 #define TX_MSDU_EXTENSION_4_PARTIAL_CHECKSUM_EN_LSB                  14
441 #define TX_MSDU_EXTENSION_4_PARTIAL_CHECKSUM_EN_MASK                 0x00004000
442 
443 /* Description		TX_MSDU_EXTENSION_4_RESERVED_4A
444 
445 			<Legal 0>
446 */
447 #define TX_MSDU_EXTENSION_4_RESERVED_4A_OFFSET                       0x00000010
448 #define TX_MSDU_EXTENSION_4_RESERVED_4A_LSB                          15
449 #define TX_MSDU_EXTENSION_4_RESERVED_4A_MASK                         0x00008000
450 
451 /* Description		TX_MSDU_EXTENSION_4_PAYLOAD_START_OFFSET
452 
453 			L4 checksum calculations will start fromt this offset
454 
455 			<Legal all>
456 */
457 #define TX_MSDU_EXTENSION_4_PAYLOAD_START_OFFSET_OFFSET              0x00000010
458 #define TX_MSDU_EXTENSION_4_PAYLOAD_START_OFFSET_LSB                 16
459 #define TX_MSDU_EXTENSION_4_PAYLOAD_START_OFFSET_MASK                0x3fff0000
460 
461 /* Description		TX_MSDU_EXTENSION_4_RESERVED_4B
462 
463 			<Legal 0>
464 */
465 #define TX_MSDU_EXTENSION_4_RESERVED_4B_OFFSET                       0x00000010
466 #define TX_MSDU_EXTENSION_4_RESERVED_4B_LSB                          30
467 #define TX_MSDU_EXTENSION_4_RESERVED_4B_MASK                         0xc0000000
468 
469 /* Description		TX_MSDU_EXTENSION_5_PAYLOAD_END_OFFSET
470 
471 			L4 checksum calculations will end at this offset.
472 
473 			<Legal all>
474 */
475 #define TX_MSDU_EXTENSION_5_PAYLOAD_END_OFFSET_OFFSET                0x00000014
476 #define TX_MSDU_EXTENSION_5_PAYLOAD_END_OFFSET_LSB                   0
477 #define TX_MSDU_EXTENSION_5_PAYLOAD_END_OFFSET_MASK                  0x00003fff
478 
479 /* Description		TX_MSDU_EXTENSION_5_RESERVED_5A
480 
481 			<Legal 0>
482 */
483 #define TX_MSDU_EXTENSION_5_RESERVED_5A_OFFSET                       0x00000014
484 #define TX_MSDU_EXTENSION_5_RESERVED_5A_LSB                          14
485 #define TX_MSDU_EXTENSION_5_RESERVED_5A_MASK                         0x0000c000
486 
487 /* Description		TX_MSDU_EXTENSION_5_WDS
488 
489 			If set the current packet is 4-address frame.  Required
490 			because an aggregate can include some frames with 3 address
491 			format and other frames with 4 address format.  Used by the
492 			OLE during encapsulation.
493 
494 			Note: there is also global wds tx control in the
495 			TX_PEER_ENTRY
496 
497 			<legal all>
498 */
499 #define TX_MSDU_EXTENSION_5_WDS_OFFSET                               0x00000014
500 #define TX_MSDU_EXTENSION_5_WDS_LSB                                  16
501 #define TX_MSDU_EXTENSION_5_WDS_MASK                                 0x00010000
502 
503 /* Description		TX_MSDU_EXTENSION_5_RESERVED_5B
504 
505 			<Legal 0>
506 */
507 #define TX_MSDU_EXTENSION_5_RESERVED_5B_OFFSET                       0x00000014
508 #define TX_MSDU_EXTENSION_5_RESERVED_5B_LSB                          17
509 #define TX_MSDU_EXTENSION_5_RESERVED_5B_MASK                         0xfffe0000
510 
511 /* Description		TX_MSDU_EXTENSION_6_BUF0_PTR_31_0
512 
513 			Lower 32 bits of the first buffer pointer
514 
515 
516 
517 			NOTE: SW/FW manages the 'cookie' info related to this
518 			buffer together with the 'cookie' info for this
519 			MSDU_EXTENSION descriptor
520 
521 			<legal all>
522 */
523 #define TX_MSDU_EXTENSION_6_BUF0_PTR_31_0_OFFSET                     0x00000018
524 #define TX_MSDU_EXTENSION_6_BUF0_PTR_31_0_LSB                        0
525 #define TX_MSDU_EXTENSION_6_BUF0_PTR_31_0_MASK                       0xffffffff
526 
527 /* Description		TX_MSDU_EXTENSION_7_BUF0_PTR_39_32
528 
529 			Upper 8 bits of the first buffer pointer <legal all>
530 */
531 #define TX_MSDU_EXTENSION_7_BUF0_PTR_39_32_OFFSET                    0x0000001c
532 #define TX_MSDU_EXTENSION_7_BUF0_PTR_39_32_LSB                       0
533 #define TX_MSDU_EXTENSION_7_BUF0_PTR_39_32_MASK                      0x000000ff
534 
535 /* Description		TX_MSDU_EXTENSION_7_RESERVED_7A
536 
537 			<Legal 0>
538 */
539 #define TX_MSDU_EXTENSION_7_RESERVED_7A_OFFSET                       0x0000001c
540 #define TX_MSDU_EXTENSION_7_RESERVED_7A_LSB                          8
541 #define TX_MSDU_EXTENSION_7_RESERVED_7A_MASK                         0x0000ff00
542 
543 /* Description		TX_MSDU_EXTENSION_7_BUF0_LEN
544 
545 			Length of the first buffer <legal all>
546 */
547 #define TX_MSDU_EXTENSION_7_BUF0_LEN_OFFSET                          0x0000001c
548 #define TX_MSDU_EXTENSION_7_BUF0_LEN_LSB                             16
549 #define TX_MSDU_EXTENSION_7_BUF0_LEN_MASK                            0xffff0000
550 
551 /* Description		TX_MSDU_EXTENSION_8_BUF1_PTR_31_0
552 
553 			Lower 32 bits of the second buffer pointer
554 
555 
556 
557 			NOTE: SW/FW manages the 'cookie' info related to this
558 			buffer together with the 'cookie' info for this
559 			MSDU_EXTENSION descriptor
560 
561 			<legal all>
562 */
563 #define TX_MSDU_EXTENSION_8_BUF1_PTR_31_0_OFFSET                     0x00000020
564 #define TX_MSDU_EXTENSION_8_BUF1_PTR_31_0_LSB                        0
565 #define TX_MSDU_EXTENSION_8_BUF1_PTR_31_0_MASK                       0xffffffff
566 
567 /* Description		TX_MSDU_EXTENSION_9_BUF1_PTR_39_32
568 
569 			Upper 8 bits of the second buffer pointer <legal all>
570 */
571 #define TX_MSDU_EXTENSION_9_BUF1_PTR_39_32_OFFSET                    0x00000024
572 #define TX_MSDU_EXTENSION_9_BUF1_PTR_39_32_LSB                       0
573 #define TX_MSDU_EXTENSION_9_BUF1_PTR_39_32_MASK                      0x000000ff
574 
575 /* Description		TX_MSDU_EXTENSION_9_RESERVED_9A
576 
577 			<Legal 0>
578 */
579 #define TX_MSDU_EXTENSION_9_RESERVED_9A_OFFSET                       0x00000024
580 #define TX_MSDU_EXTENSION_9_RESERVED_9A_LSB                          8
581 #define TX_MSDU_EXTENSION_9_RESERVED_9A_MASK                         0x0000ff00
582 
583 /* Description		TX_MSDU_EXTENSION_9_BUF1_LEN
584 
585 			Length of the second buffer <legal all>
586 */
587 #define TX_MSDU_EXTENSION_9_BUF1_LEN_OFFSET                          0x00000024
588 #define TX_MSDU_EXTENSION_9_BUF1_LEN_LSB                             16
589 #define TX_MSDU_EXTENSION_9_BUF1_LEN_MASK                            0xffff0000
590 
591 /* Description		TX_MSDU_EXTENSION_10_BUF2_PTR_31_0
592 
593 			Lower 32 bits of the third buffer pointer
594 
595 			NOTE: SW/FW manages the 'cookie' info related to this
596 			buffer together with the 'cookie' info for this
597 			MSDU_EXTENSION descriptor
598 
599 			<legal all>
600 */
601 #define TX_MSDU_EXTENSION_10_BUF2_PTR_31_0_OFFSET                    0x00000028
602 #define TX_MSDU_EXTENSION_10_BUF2_PTR_31_0_LSB                       0
603 #define TX_MSDU_EXTENSION_10_BUF2_PTR_31_0_MASK                      0xffffffff
604 
605 /* Description		TX_MSDU_EXTENSION_11_BUF2_PTR_39_32
606 
607 			Upper 8 bits of the third buffer pointer <legal all>
608 */
609 #define TX_MSDU_EXTENSION_11_BUF2_PTR_39_32_OFFSET                   0x0000002c
610 #define TX_MSDU_EXTENSION_11_BUF2_PTR_39_32_LSB                      0
611 #define TX_MSDU_EXTENSION_11_BUF2_PTR_39_32_MASK                     0x000000ff
612 
613 /* Description		TX_MSDU_EXTENSION_11_RESERVED_11A
614 
615 			<Legal 0>
616 */
617 #define TX_MSDU_EXTENSION_11_RESERVED_11A_OFFSET                     0x0000002c
618 #define TX_MSDU_EXTENSION_11_RESERVED_11A_LSB                        8
619 #define TX_MSDU_EXTENSION_11_RESERVED_11A_MASK                       0x0000ff00
620 
621 /* Description		TX_MSDU_EXTENSION_11_BUF2_LEN
622 
623 			Length of the third buffer <legal all>
624 */
625 #define TX_MSDU_EXTENSION_11_BUF2_LEN_OFFSET                         0x0000002c
626 #define TX_MSDU_EXTENSION_11_BUF2_LEN_LSB                            16
627 #define TX_MSDU_EXTENSION_11_BUF2_LEN_MASK                           0xffff0000
628 
629 /* Description		TX_MSDU_EXTENSION_12_BUF3_PTR_31_0
630 
631 			Lower 32 bits of the fourth buffer pointer
632 
633 
634 
635 			NOTE: SW/FW manages the 'cookie' info related to this
636 			buffer together with the 'cookie' info for this
637 			MSDU_EXTENSION descriptor
638 
639 			 <legal all>
640 */
641 #define TX_MSDU_EXTENSION_12_BUF3_PTR_31_0_OFFSET                    0x00000030
642 #define TX_MSDU_EXTENSION_12_BUF3_PTR_31_0_LSB                       0
643 #define TX_MSDU_EXTENSION_12_BUF3_PTR_31_0_MASK                      0xffffffff
644 
645 /* Description		TX_MSDU_EXTENSION_13_BUF3_PTR_39_32
646 
647 			Upper 8 bits of the fourth buffer pointer <legal all>
648 */
649 #define TX_MSDU_EXTENSION_13_BUF3_PTR_39_32_OFFSET                   0x00000034
650 #define TX_MSDU_EXTENSION_13_BUF3_PTR_39_32_LSB                      0
651 #define TX_MSDU_EXTENSION_13_BUF3_PTR_39_32_MASK                     0x000000ff
652 
653 /* Description		TX_MSDU_EXTENSION_13_RESERVED_13A
654 
655 			<Legal 0>
656 */
657 #define TX_MSDU_EXTENSION_13_RESERVED_13A_OFFSET                     0x00000034
658 #define TX_MSDU_EXTENSION_13_RESERVED_13A_LSB                        8
659 #define TX_MSDU_EXTENSION_13_RESERVED_13A_MASK                       0x0000ff00
660 
661 /* Description		TX_MSDU_EXTENSION_13_BUF3_LEN
662 
663 			Length of the fourth buffer <legal all>
664 */
665 #define TX_MSDU_EXTENSION_13_BUF3_LEN_OFFSET                         0x00000034
666 #define TX_MSDU_EXTENSION_13_BUF3_LEN_LSB                            16
667 #define TX_MSDU_EXTENSION_13_BUF3_LEN_MASK                           0xffff0000
668 
669 /* Description		TX_MSDU_EXTENSION_14_BUF4_PTR_31_0
670 
671 			Lower 32 bits of the fifth buffer pointer
672 
673 
674 
675 			NOTE: SW/FW manages the 'cookie' info related to this
676 			buffer together with the 'cookie' info for this
677 			MSDU_EXTENSION descriptor
678 
679 			<legal all>
680 */
681 #define TX_MSDU_EXTENSION_14_BUF4_PTR_31_0_OFFSET                    0x00000038
682 #define TX_MSDU_EXTENSION_14_BUF4_PTR_31_0_LSB                       0
683 #define TX_MSDU_EXTENSION_14_BUF4_PTR_31_0_MASK                      0xffffffff
684 
685 /* Description		TX_MSDU_EXTENSION_15_BUF4_PTR_39_32
686 
687 			Upper 8 bits of the fifth buffer pointer <legal all>
688 */
689 #define TX_MSDU_EXTENSION_15_BUF4_PTR_39_32_OFFSET                   0x0000003c
690 #define TX_MSDU_EXTENSION_15_BUF4_PTR_39_32_LSB                      0
691 #define TX_MSDU_EXTENSION_15_BUF4_PTR_39_32_MASK                     0x000000ff
692 
693 /* Description		TX_MSDU_EXTENSION_15_RESERVED_15A
694 
695 			<Legal 0>
696 */
697 #define TX_MSDU_EXTENSION_15_RESERVED_15A_OFFSET                     0x0000003c
698 #define TX_MSDU_EXTENSION_15_RESERVED_15A_LSB                        8
699 #define TX_MSDU_EXTENSION_15_RESERVED_15A_MASK                       0x0000ff00
700 
701 /* Description		TX_MSDU_EXTENSION_15_BUF4_LEN
702 
703 			Length of the fifth buffer <legal all>
704 */
705 #define TX_MSDU_EXTENSION_15_BUF4_LEN_OFFSET                         0x0000003c
706 #define TX_MSDU_EXTENSION_15_BUF4_LEN_LSB                            16
707 #define TX_MSDU_EXTENSION_15_BUF4_LEN_MASK                           0xffff0000
708 
709 /* Description		TX_MSDU_EXTENSION_16_BUF5_PTR_31_0
710 
711 			Lower 32 bits of the sixth buffer pointer
712 
713 
714 
715 			NOTE: SW/FW manages the 'cookie' info related to this
716 			buffer together with the 'cookie' info for this
717 			MSDU_EXTENSION descriptor
718 
719 			 <legal all>
720 */
721 #define TX_MSDU_EXTENSION_16_BUF5_PTR_31_0_OFFSET                    0x00000040
722 #define TX_MSDU_EXTENSION_16_BUF5_PTR_31_0_LSB                       0
723 #define TX_MSDU_EXTENSION_16_BUF5_PTR_31_0_MASK                      0xffffffff
724 
725 /* Description		TX_MSDU_EXTENSION_17_BUF5_PTR_39_32
726 
727 			Upper 8 bits of the sixth buffer pointer <legal all>
728 */
729 #define TX_MSDU_EXTENSION_17_BUF5_PTR_39_32_OFFSET                   0x00000044
730 #define TX_MSDU_EXTENSION_17_BUF5_PTR_39_32_LSB                      0
731 #define TX_MSDU_EXTENSION_17_BUF5_PTR_39_32_MASK                     0x000000ff
732 
733 /* Description		TX_MSDU_EXTENSION_17_RESERVED_17A
734 
735 			<Legal 0>
736 */
737 #define TX_MSDU_EXTENSION_17_RESERVED_17A_OFFSET                     0x00000044
738 #define TX_MSDU_EXTENSION_17_RESERVED_17A_LSB                        8
739 #define TX_MSDU_EXTENSION_17_RESERVED_17A_MASK                       0x0000ff00
740 
741 /* Description		TX_MSDU_EXTENSION_17_BUF5_LEN
742 
743 			Length of the sixth buffer <legal all>
744 */
745 #define TX_MSDU_EXTENSION_17_BUF5_LEN_OFFSET                         0x00000044
746 #define TX_MSDU_EXTENSION_17_BUF5_LEN_LSB                            16
747 #define TX_MSDU_EXTENSION_17_BUF5_LEN_MASK                           0xffff0000
748 
749 
750 #endif // _TX_MSDU_EXTENSION_H_
751