xref: /wlan-driver/fw-api/hw/qca6490/v1/reo_get_queue_stats_status.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1 /*
2  * Copyright (c) 2019 The Linux Foundation. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for
5  * any purpose with or without fee is hereby granted, provided that the
6  * above copyright notice and this permission notice appear in all
7  * copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16  * PERFORMANCE OF THIS SOFTWARE.
17  */
18 
19 //
20 // DO NOT EDIT!  This file is automatically generated
21 //               These definitions are tied to a particular hardware layout
22 
23 
24 #ifndef _REO_GET_QUEUE_STATS_STATUS_H_
25 #define _REO_GET_QUEUE_STATS_STATUS_H_
26 #if !defined(__ASSEMBLER__)
27 #endif
28 
29 #include "uniform_reo_status_header.h"
30 
31 // ################ START SUMMARY #################
32 //
33 //	Dword	Fields
34 //	0-1	struct uniform_reo_status_header status_header;
35 //	2	ssn[11:0], current_index[19:12], reserved_2[31:20]
36 //	3	pn_31_0[31:0]
37 //	4	pn_63_32[31:0]
38 //	5	pn_95_64[31:0]
39 //	6	pn_127_96[31:0]
40 //	7	last_rx_enqueue_timestamp[31:0]
41 //	8	last_rx_dequeue_timestamp[31:0]
42 //	9	rx_bitmap_31_0[31:0]
43 //	10	rx_bitmap_63_32[31:0]
44 //	11	rx_bitmap_95_64[31:0]
45 //	12	rx_bitmap_127_96[31:0]
46 //	13	rx_bitmap_159_128[31:0]
47 //	14	rx_bitmap_191_160[31:0]
48 //	15	rx_bitmap_223_192[31:0]
49 //	16	rx_bitmap_255_224[31:0]
50 //	17	current_mpdu_count[6:0], current_msdu_count[31:7]
51 //	18	reserved_18[3:0], timeout_count[9:4], forward_due_to_bar_count[15:10], duplicate_count[31:16]
52 //	19	frames_in_order_count[23:0], bar_received_count[31:24]
53 //	20	mpdu_frames_processed_count[31:0]
54 //	21	msdu_frames_processed_count[31:0]
55 //	22	total_processed_byte_count[31:0]
56 //	23	late_receive_mpdu_count[11:0], window_jump_2k[15:12], hole_count[31:16]
57 //	24	reserved_24a[27:0], looping_count[31:28]
58 //
59 // ################ END SUMMARY #################
60 
61 #define NUM_OF_DWORDS_REO_GET_QUEUE_STATS_STATUS 25
62 
63 struct reo_get_queue_stats_status {
64     struct            uniform_reo_status_header                       status_header;
65              uint32_t ssn                             : 12, //[11:0]
66                       current_index                   :  8, //[19:12]
67                       reserved_2                      : 12; //[31:20]
68              uint32_t pn_31_0                         : 32; //[31:0]
69              uint32_t pn_63_32                        : 32; //[31:0]
70              uint32_t pn_95_64                        : 32; //[31:0]
71              uint32_t pn_127_96                       : 32; //[31:0]
72              uint32_t last_rx_enqueue_timestamp       : 32; //[31:0]
73              uint32_t last_rx_dequeue_timestamp       : 32; //[31:0]
74              uint32_t rx_bitmap_31_0                  : 32; //[31:0]
75              uint32_t rx_bitmap_63_32                 : 32; //[31:0]
76              uint32_t rx_bitmap_95_64                 : 32; //[31:0]
77              uint32_t rx_bitmap_127_96                : 32; //[31:0]
78              uint32_t rx_bitmap_159_128               : 32; //[31:0]
79              uint32_t rx_bitmap_191_160               : 32; //[31:0]
80              uint32_t rx_bitmap_223_192               : 32; //[31:0]
81              uint32_t rx_bitmap_255_224               : 32; //[31:0]
82              uint32_t current_mpdu_count              :  7, //[6:0]
83                       current_msdu_count              : 25; //[31:7]
84              uint32_t reserved_18                     :  4, //[3:0]
85                       timeout_count                   :  6, //[9:4]
86                       forward_due_to_bar_count        :  6, //[15:10]
87                       duplicate_count                 : 16; //[31:16]
88              uint32_t frames_in_order_count           : 24, //[23:0]
89                       bar_received_count              :  8; //[31:24]
90              uint32_t mpdu_frames_processed_count     : 32; //[31:0]
91              uint32_t msdu_frames_processed_count     : 32; //[31:0]
92              uint32_t total_processed_byte_count      : 32; //[31:0]
93              uint32_t late_receive_mpdu_count         : 12, //[11:0]
94                       window_jump_2k                  :  4, //[15:12]
95                       hole_count                      : 16; //[31:16]
96              uint32_t reserved_24a                    : 28, //[27:0]
97                       looping_count                   :  4; //[31:28]
98 };
99 
100 /*
101 
102 struct uniform_reo_status_header status_header
103 
104 			Consumer: SW
105 
106 			Producer: REO
107 
108 
109 
110 			Details that can link this status with the original
111 			command. It also contains info on how long REO took to
112 			execute this command.
113 
114 ssn
115 
116 			Starting Sequence number of the session, this changes
117 			whenever window moves. (can be filled by SW then maintained
118 			by REO)
119 
120 			<legal all>
121 
122 current_index
123 
124 			Points to last forwarded packet
125 
126 			<legal all>
127 
128 reserved_2
129 
130 			<legal 0>
131 
132 pn_31_0
133 
134 
135 			<legal all>
136 
137 pn_63_32
138 
139 			Bits [63:32] of the PN number.
140 
141 			<legal all>
142 
143 pn_95_64
144 
145 			Bits [95:64] of the PN number.
146 
147 			<legal all>
148 
149 pn_127_96
150 
151 			Bits [127:96] of the PN number.
152 
153 			<legal all>
154 
155 last_rx_enqueue_timestamp
156 
157 			Timestamp of arrival of the last MPDU for this queue
158 
159 			<legal all>
160 
161 last_rx_dequeue_timestamp
162 
163 			Timestamp of forwarding an MPDU
164 
165 
166 
167 			If the queue is empty when a frame gets received, this
168 			time shall be initialized to the 'enqueue' timestamp
169 
170 
171 
172 			Used for aging
173 
174 			<legal all>
175 
176 rx_bitmap_31_0
177 
178 			When a bit is set, the corresponding frame is currently
179 			held in the re-order queue.
180 
181 			The bitmap  is Fully managed by HW.
182 
183 			SW shall init this to 0, and then never ever change it
184 
185 			<legal all>
186 
187 rx_bitmap_63_32
188 
189 			See Rx_bitmap_31_0 description
190 
191 			<legal all>
192 
193 rx_bitmap_95_64
194 
195 			See Rx_bitmap_31_0 description
196 
197 			<legal all>
198 
199 rx_bitmap_127_96
200 
201 			See Rx_bitmap_31_0 description
202 
203 			<legal all>
204 
205 rx_bitmap_159_128
206 
207 			See Rx_bitmap_31_0 description
208 
209 			<legal all>
210 
211 rx_bitmap_191_160
212 
213 			See Rx_bitmap_31_0 description
214 
215 			<legal all>
216 
217 rx_bitmap_223_192
218 
219 			See Rx_bitmap_31_0 description
220 
221 			<legal all>
222 
223 rx_bitmap_255_224
224 
225 			See Rx_bitmap_31_0 description
226 
227 			<legal all>
228 
229 current_mpdu_count
230 
231 			The number of MPDUs in the queue.
232 
233 
234 
235 			<legal all>
236 
237 current_msdu_count
238 
239 			The number of MSDUs in the queue.
240 
241 			<legal all>
242 
243 reserved_18
244 
245 			<legal 0>
246 
247 timeout_count
248 
249 			The number of times that REO started forwarding frames
250 			even though there is a hole in the bitmap. Forwarding reason
251 			is Timeout
252 
253 
254 
255 			The counter saturates and freezes at 0x3F
256 
257 
258 
259 			<legal all>
260 
261 forward_due_to_bar_count
262 
263 			The number of times that REO started forwarding frames
264 			even though there is a hole in the bitmap. Forwarding reason
265 			is reception of BAR frame.
266 
267 
268 
269 			The counter saturates and freezes at 0x3F
270 
271 
272 
273 			<legal all>
274 
275 duplicate_count
276 
277 			The number of duplicate frames that have been detected
278 
279 			<legal all>
280 
281 frames_in_order_count
282 
283 			The number of frames that have been received in order
284 			(without a hole that prevented them from being forwarded
285 			immediately)
286 
287 
288 
289 			This corresponds to the Reorder opcodes:
290 
291 			'FWDCUR' and 'FWD BUF'
292 
293 
294 
295 			<legal all>
296 
297 bar_received_count
298 
299 			The number of times a BAR frame is received.
300 
301 
302 
303 			This corresponds to the Reorder opcodes with 'DROP'
304 
305 
306 
307 			The counter saturates and freezes at 0xFF
308 
309 			<legal all>
310 
311 mpdu_frames_processed_count
312 
313 			The total number of MPDU frames that have been processed
314 			by REO. This includes the duplicates.
315 
316 
317 
318 			<legal all>
319 
320 msdu_frames_processed_count
321 
322 			The total number of MSDU frames that have been processed
323 			by REO. This includes the duplicates.
324 
325 
326 
327 			<legal all>
328 
329 total_processed_byte_count
330 
331 			An approximation of the number of bytes received for
332 			this queue.
333 
334 
335 
336 			In 64 byte units
337 
338 			<legal all>
339 
340 late_receive_mpdu_count
341 
342 			The number of MPDUs received after the window had
343 			already moved on. The 'late' sequence window is defined as
344 			(Window SSN - 256) - (Window SSN - 1)
345 
346 
347 
348 			This corresponds with Out of order detection in
349 			duplicate detect FSM
350 
351 
352 
353 			The counter saturates and freezes at 0xFFF
354 
355 
356 
357 			<legal all>
358 
359 window_jump_2k
360 
361 			The number of times the window moved more then 2K
362 
363 
364 
365 			The counter saturates and freezes at 0xF
366 
367 
368 
369 			(Note: field name can not start with number: previous
370 			2k_window_jump)
371 
372 
373 
374 			<legal all>
375 
376 hole_count
377 
378 			The number of times a hole was created in the receive
379 			bitmap.
380 
381 
382 
383 			This corresponds to the Reorder opcodes with 'QCUR'
384 
385 
386 
387 			<legal all>
388 
389 reserved_24a
390 
391 			<legal 0>
392 
393 looping_count
394 
395 			A count value that indicates the number of times the
396 			producer of entries into this Ring has looped around the
397 			ring.
398 
399 			At initialization time, this value is set to 0. On the
400 			first loop, this value is set to 1. After the max value is
401 			reached allowed by the number of bits for this field, the
402 			count value continues with 0 again.
403 
404 
405 
406 			In case SW is the consumer of the ring entries, it can
407 			use this field to figure out up to where the producer of
408 			entries has created new entries. This eliminates the need to
409 			check where the head pointer' of the ring is located once
410 			the SW starts processing an interrupt indicating that new
411 			entries have been put into this ring...
412 
413 
414 
415 			Also note that SW if it wants only needs to look at the
416 			LSB bit of this count value.
417 
418 			<legal all>
419 */
420 
421 
422  /* EXTERNAL REFERENCE : struct uniform_reo_status_header status_header */
423 
424 
425 /* Description		REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_STATUS_NUMBER
426 
427 			Consumer: SW , DEBUG
428 
429 			Producer: REO
430 
431 
432 
433 			The value in this field is equal to value of the
434 			'REO_CMD_Number' field the REO command
435 
436 
437 
438 			This field helps to correlate the statuses with the REO
439 			commands.
440 
441 
442 
443 			<legal all>
444 */
445 #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_STATUS_NUMBER_OFFSET 0x00000000
446 #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_STATUS_NUMBER_LSB 0
447 #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_STATUS_NUMBER_MASK 0x0000ffff
448 
449 /* Description		REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_CMD_EXECUTION_TIME
450 
451 			Consumer: DEBUG
452 
453 			Producer: REO
454 
455 
456 
457 			The amount of time REO took to excecute the command.
458 			Note that this time does not include the duration of the
459 			command waiting in the command ring, before the execution
460 			started.
461 
462 
463 
464 			In us.
465 
466 
467 
468 			<legal all>
469 */
470 #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_CMD_EXECUTION_TIME_OFFSET 0x00000000
471 #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_CMD_EXECUTION_TIME_LSB 16
472 #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_CMD_EXECUTION_TIME_MASK 0x03ff0000
473 
474 /* Description		REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_CMD_EXECUTION_STATUS
475 
476 			Consumer: DEBUG
477 
478 			Producer: REO
479 
480 
481 
482 			Execution status of the command.
483 
484 
485 
486 			<enum 0 reo_successful_execution> Command has
487 			successfully be executed
488 
489 			<enum 1 reo_blocked_execution> Command could not be
490 			executed as the queue or cache was blocked
491 
492 			<enum 2 reo_failed_execution> Command has encountered
493 			problems when executing, like the queue descriptor not being
494 			valid. None of the status fields in the entire STATUS TLV
495 			are valid.
496 
497 			<enum 3 reo_resource_blocked> Command is NOT  executed
498 			because one or more descriptors were blocked. This is SW
499 			programming mistake.
500 
501 			None of the status fields in the entire STATUS TLV are
502 			valid.
503 
504 
505 
506 			<legal  0-3>
507 */
508 #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_OFFSET 0x00000000
509 #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_LSB 26
510 #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MASK 0x0c000000
511 
512 /* Description		REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_RESERVED_0A
513 
514 			<legal 0>
515 */
516 #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_RESERVED_0A_OFFSET 0x00000000
517 #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_RESERVED_0A_LSB   28
518 #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_RESERVED_0A_MASK  0xf0000000
519 
520 /* Description		REO_GET_QUEUE_STATS_STATUS_1_STATUS_HEADER_TIMESTAMP
521 
522 			Timestamp at the moment that this status report is
523 			written.
524 
525 
526 
527 			<legal all>
528 */
529 #define REO_GET_QUEUE_STATS_STATUS_1_STATUS_HEADER_TIMESTAMP_OFFSET  0x00000004
530 #define REO_GET_QUEUE_STATS_STATUS_1_STATUS_HEADER_TIMESTAMP_LSB     0
531 #define REO_GET_QUEUE_STATS_STATUS_1_STATUS_HEADER_TIMESTAMP_MASK    0xffffffff
532 
533 /* Description		REO_GET_QUEUE_STATS_STATUS_2_SSN
534 
535 			Starting Sequence number of the session, this changes
536 			whenever window moves. (can be filled by SW then maintained
537 			by REO)
538 
539 			<legal all>
540 */
541 #define REO_GET_QUEUE_STATS_STATUS_2_SSN_OFFSET                      0x00000008
542 #define REO_GET_QUEUE_STATS_STATUS_2_SSN_LSB                         0
543 #define REO_GET_QUEUE_STATS_STATUS_2_SSN_MASK                        0x00000fff
544 
545 /* Description		REO_GET_QUEUE_STATS_STATUS_2_CURRENT_INDEX
546 
547 			Points to last forwarded packet
548 
549 			<legal all>
550 */
551 #define REO_GET_QUEUE_STATS_STATUS_2_CURRENT_INDEX_OFFSET            0x00000008
552 #define REO_GET_QUEUE_STATS_STATUS_2_CURRENT_INDEX_LSB               12
553 #define REO_GET_QUEUE_STATS_STATUS_2_CURRENT_INDEX_MASK              0x000ff000
554 
555 /* Description		REO_GET_QUEUE_STATS_STATUS_2_RESERVED_2
556 
557 			<legal 0>
558 */
559 #define REO_GET_QUEUE_STATS_STATUS_2_RESERVED_2_OFFSET               0x00000008
560 #define REO_GET_QUEUE_STATS_STATUS_2_RESERVED_2_LSB                  20
561 #define REO_GET_QUEUE_STATS_STATUS_2_RESERVED_2_MASK                 0xfff00000
562 
563 /* Description		REO_GET_QUEUE_STATS_STATUS_3_PN_31_0
564 
565 
566 			<legal all>
567 */
568 #define REO_GET_QUEUE_STATS_STATUS_3_PN_31_0_OFFSET                  0x0000000c
569 #define REO_GET_QUEUE_STATS_STATUS_3_PN_31_0_LSB                     0
570 #define REO_GET_QUEUE_STATS_STATUS_3_PN_31_0_MASK                    0xffffffff
571 
572 /* Description		REO_GET_QUEUE_STATS_STATUS_4_PN_63_32
573 
574 			Bits [63:32] of the PN number.
575 
576 			<legal all>
577 */
578 #define REO_GET_QUEUE_STATS_STATUS_4_PN_63_32_OFFSET                 0x00000010
579 #define REO_GET_QUEUE_STATS_STATUS_4_PN_63_32_LSB                    0
580 #define REO_GET_QUEUE_STATS_STATUS_4_PN_63_32_MASK                   0xffffffff
581 
582 /* Description		REO_GET_QUEUE_STATS_STATUS_5_PN_95_64
583 
584 			Bits [95:64] of the PN number.
585 
586 			<legal all>
587 */
588 #define REO_GET_QUEUE_STATS_STATUS_5_PN_95_64_OFFSET                 0x00000014
589 #define REO_GET_QUEUE_STATS_STATUS_5_PN_95_64_LSB                    0
590 #define REO_GET_QUEUE_STATS_STATUS_5_PN_95_64_MASK                   0xffffffff
591 
592 /* Description		REO_GET_QUEUE_STATS_STATUS_6_PN_127_96
593 
594 			Bits [127:96] of the PN number.
595 
596 			<legal all>
597 */
598 #define REO_GET_QUEUE_STATS_STATUS_6_PN_127_96_OFFSET                0x00000018
599 #define REO_GET_QUEUE_STATS_STATUS_6_PN_127_96_LSB                   0
600 #define REO_GET_QUEUE_STATS_STATUS_6_PN_127_96_MASK                  0xffffffff
601 
602 /* Description		REO_GET_QUEUE_STATS_STATUS_7_LAST_RX_ENQUEUE_TIMESTAMP
603 
604 			Timestamp of arrival of the last MPDU for this queue
605 
606 			<legal all>
607 */
608 #define REO_GET_QUEUE_STATS_STATUS_7_LAST_RX_ENQUEUE_TIMESTAMP_OFFSET 0x0000001c
609 #define REO_GET_QUEUE_STATS_STATUS_7_LAST_RX_ENQUEUE_TIMESTAMP_LSB   0
610 #define REO_GET_QUEUE_STATS_STATUS_7_LAST_RX_ENQUEUE_TIMESTAMP_MASK  0xffffffff
611 
612 /* Description		REO_GET_QUEUE_STATS_STATUS_8_LAST_RX_DEQUEUE_TIMESTAMP
613 
614 			Timestamp of forwarding an MPDU
615 
616 
617 
618 			If the queue is empty when a frame gets received, this
619 			time shall be initialized to the 'enqueue' timestamp
620 
621 
622 
623 			Used for aging
624 
625 			<legal all>
626 */
627 #define REO_GET_QUEUE_STATS_STATUS_8_LAST_RX_DEQUEUE_TIMESTAMP_OFFSET 0x00000020
628 #define REO_GET_QUEUE_STATS_STATUS_8_LAST_RX_DEQUEUE_TIMESTAMP_LSB   0
629 #define REO_GET_QUEUE_STATS_STATUS_8_LAST_RX_DEQUEUE_TIMESTAMP_MASK  0xffffffff
630 
631 /* Description		REO_GET_QUEUE_STATS_STATUS_9_RX_BITMAP_31_0
632 
633 			When a bit is set, the corresponding frame is currently
634 			held in the re-order queue.
635 
636 			The bitmap  is Fully managed by HW.
637 
638 			SW shall init this to 0, and then never ever change it
639 
640 			<legal all>
641 */
642 #define REO_GET_QUEUE_STATS_STATUS_9_RX_BITMAP_31_0_OFFSET           0x00000024
643 #define REO_GET_QUEUE_STATS_STATUS_9_RX_BITMAP_31_0_LSB              0
644 #define REO_GET_QUEUE_STATS_STATUS_9_RX_BITMAP_31_0_MASK             0xffffffff
645 
646 /* Description		REO_GET_QUEUE_STATS_STATUS_10_RX_BITMAP_63_32
647 
648 			See Rx_bitmap_31_0 description
649 
650 			<legal all>
651 */
652 #define REO_GET_QUEUE_STATS_STATUS_10_RX_BITMAP_63_32_OFFSET         0x00000028
653 #define REO_GET_QUEUE_STATS_STATUS_10_RX_BITMAP_63_32_LSB            0
654 #define REO_GET_QUEUE_STATS_STATUS_10_RX_BITMAP_63_32_MASK           0xffffffff
655 
656 /* Description		REO_GET_QUEUE_STATS_STATUS_11_RX_BITMAP_95_64
657 
658 			See Rx_bitmap_31_0 description
659 
660 			<legal all>
661 */
662 #define REO_GET_QUEUE_STATS_STATUS_11_RX_BITMAP_95_64_OFFSET         0x0000002c
663 #define REO_GET_QUEUE_STATS_STATUS_11_RX_BITMAP_95_64_LSB            0
664 #define REO_GET_QUEUE_STATS_STATUS_11_RX_BITMAP_95_64_MASK           0xffffffff
665 
666 /* Description		REO_GET_QUEUE_STATS_STATUS_12_RX_BITMAP_127_96
667 
668 			See Rx_bitmap_31_0 description
669 
670 			<legal all>
671 */
672 #define REO_GET_QUEUE_STATS_STATUS_12_RX_BITMAP_127_96_OFFSET        0x00000030
673 #define REO_GET_QUEUE_STATS_STATUS_12_RX_BITMAP_127_96_LSB           0
674 #define REO_GET_QUEUE_STATS_STATUS_12_RX_BITMAP_127_96_MASK          0xffffffff
675 
676 /* Description		REO_GET_QUEUE_STATS_STATUS_13_RX_BITMAP_159_128
677 
678 			See Rx_bitmap_31_0 description
679 
680 			<legal all>
681 */
682 #define REO_GET_QUEUE_STATS_STATUS_13_RX_BITMAP_159_128_OFFSET       0x00000034
683 #define REO_GET_QUEUE_STATS_STATUS_13_RX_BITMAP_159_128_LSB          0
684 #define REO_GET_QUEUE_STATS_STATUS_13_RX_BITMAP_159_128_MASK         0xffffffff
685 
686 /* Description		REO_GET_QUEUE_STATS_STATUS_14_RX_BITMAP_191_160
687 
688 			See Rx_bitmap_31_0 description
689 
690 			<legal all>
691 */
692 #define REO_GET_QUEUE_STATS_STATUS_14_RX_BITMAP_191_160_OFFSET       0x00000038
693 #define REO_GET_QUEUE_STATS_STATUS_14_RX_BITMAP_191_160_LSB          0
694 #define REO_GET_QUEUE_STATS_STATUS_14_RX_BITMAP_191_160_MASK         0xffffffff
695 
696 /* Description		REO_GET_QUEUE_STATS_STATUS_15_RX_BITMAP_223_192
697 
698 			See Rx_bitmap_31_0 description
699 
700 			<legal all>
701 */
702 #define REO_GET_QUEUE_STATS_STATUS_15_RX_BITMAP_223_192_OFFSET       0x0000003c
703 #define REO_GET_QUEUE_STATS_STATUS_15_RX_BITMAP_223_192_LSB          0
704 #define REO_GET_QUEUE_STATS_STATUS_15_RX_BITMAP_223_192_MASK         0xffffffff
705 
706 /* Description		REO_GET_QUEUE_STATS_STATUS_16_RX_BITMAP_255_224
707 
708 			See Rx_bitmap_31_0 description
709 
710 			<legal all>
711 */
712 #define REO_GET_QUEUE_STATS_STATUS_16_RX_BITMAP_255_224_OFFSET       0x00000040
713 #define REO_GET_QUEUE_STATS_STATUS_16_RX_BITMAP_255_224_LSB          0
714 #define REO_GET_QUEUE_STATS_STATUS_16_RX_BITMAP_255_224_MASK         0xffffffff
715 
716 /* Description		REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MPDU_COUNT
717 
718 			The number of MPDUs in the queue.
719 
720 
721 
722 			<legal all>
723 */
724 #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MPDU_COUNT_OFFSET      0x00000044
725 #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MPDU_COUNT_LSB         0
726 #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MPDU_COUNT_MASK        0x0000007f
727 
728 /* Description		REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MSDU_COUNT
729 
730 			The number of MSDUs in the queue.
731 
732 			<legal all>
733 */
734 #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MSDU_COUNT_OFFSET      0x00000044
735 #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MSDU_COUNT_LSB         7
736 #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MSDU_COUNT_MASK        0xffffff80
737 
738 /* Description		REO_GET_QUEUE_STATS_STATUS_18_RESERVED_18
739 
740 			<legal 0>
741 */
742 #define REO_GET_QUEUE_STATS_STATUS_18_RESERVED_18_OFFSET             0x00000048
743 #define REO_GET_QUEUE_STATS_STATUS_18_RESERVED_18_LSB                0
744 #define REO_GET_QUEUE_STATS_STATUS_18_RESERVED_18_MASK               0x0000000f
745 
746 /* Description		REO_GET_QUEUE_STATS_STATUS_18_TIMEOUT_COUNT
747 
748 			The number of times that REO started forwarding frames
749 			even though there is a hole in the bitmap. Forwarding reason
750 			is Timeout
751 
752 
753 
754 			The counter saturates and freezes at 0x3F
755 
756 
757 
758 			<legal all>
759 */
760 #define REO_GET_QUEUE_STATS_STATUS_18_TIMEOUT_COUNT_OFFSET           0x00000048
761 #define REO_GET_QUEUE_STATS_STATUS_18_TIMEOUT_COUNT_LSB              4
762 #define REO_GET_QUEUE_STATS_STATUS_18_TIMEOUT_COUNT_MASK             0x000003f0
763 
764 /* Description		REO_GET_QUEUE_STATS_STATUS_18_FORWARD_DUE_TO_BAR_COUNT
765 
766 			The number of times that REO started forwarding frames
767 			even though there is a hole in the bitmap. Forwarding reason
768 			is reception of BAR frame.
769 
770 
771 
772 			The counter saturates and freezes at 0x3F
773 
774 
775 
776 			<legal all>
777 */
778 #define REO_GET_QUEUE_STATS_STATUS_18_FORWARD_DUE_TO_BAR_COUNT_OFFSET 0x00000048
779 #define REO_GET_QUEUE_STATS_STATUS_18_FORWARD_DUE_TO_BAR_COUNT_LSB   10
780 #define REO_GET_QUEUE_STATS_STATUS_18_FORWARD_DUE_TO_BAR_COUNT_MASK  0x0000fc00
781 
782 /* Description		REO_GET_QUEUE_STATS_STATUS_18_DUPLICATE_COUNT
783 
784 			The number of duplicate frames that have been detected
785 
786 			<legal all>
787 */
788 #define REO_GET_QUEUE_STATS_STATUS_18_DUPLICATE_COUNT_OFFSET         0x00000048
789 #define REO_GET_QUEUE_STATS_STATUS_18_DUPLICATE_COUNT_LSB            16
790 #define REO_GET_QUEUE_STATS_STATUS_18_DUPLICATE_COUNT_MASK           0xffff0000
791 
792 /* Description		REO_GET_QUEUE_STATS_STATUS_19_FRAMES_IN_ORDER_COUNT
793 
794 			The number of frames that have been received in order
795 			(without a hole that prevented them from being forwarded
796 			immediately)
797 
798 
799 
800 			This corresponds to the Reorder opcodes:
801 
802 			'FWDCUR' and 'FWD BUF'
803 
804 
805 
806 			<legal all>
807 */
808 #define REO_GET_QUEUE_STATS_STATUS_19_FRAMES_IN_ORDER_COUNT_OFFSET   0x0000004c
809 #define REO_GET_QUEUE_STATS_STATUS_19_FRAMES_IN_ORDER_COUNT_LSB      0
810 #define REO_GET_QUEUE_STATS_STATUS_19_FRAMES_IN_ORDER_COUNT_MASK     0x00ffffff
811 
812 /* Description		REO_GET_QUEUE_STATS_STATUS_19_BAR_RECEIVED_COUNT
813 
814 			The number of times a BAR frame is received.
815 
816 
817 
818 			This corresponds to the Reorder opcodes with 'DROP'
819 
820 
821 
822 			The counter saturates and freezes at 0xFF
823 
824 			<legal all>
825 */
826 #define REO_GET_QUEUE_STATS_STATUS_19_BAR_RECEIVED_COUNT_OFFSET      0x0000004c
827 #define REO_GET_QUEUE_STATS_STATUS_19_BAR_RECEIVED_COUNT_LSB         24
828 #define REO_GET_QUEUE_STATS_STATUS_19_BAR_RECEIVED_COUNT_MASK        0xff000000
829 
830 /* Description		REO_GET_QUEUE_STATS_STATUS_20_MPDU_FRAMES_PROCESSED_COUNT
831 
832 			The total number of MPDU frames that have been processed
833 			by REO. This includes the duplicates.
834 
835 
836 
837 			<legal all>
838 */
839 #define REO_GET_QUEUE_STATS_STATUS_20_MPDU_FRAMES_PROCESSED_COUNT_OFFSET 0x00000050
840 #define REO_GET_QUEUE_STATS_STATUS_20_MPDU_FRAMES_PROCESSED_COUNT_LSB 0
841 #define REO_GET_QUEUE_STATS_STATUS_20_MPDU_FRAMES_PROCESSED_COUNT_MASK 0xffffffff
842 
843 /* Description		REO_GET_QUEUE_STATS_STATUS_21_MSDU_FRAMES_PROCESSED_COUNT
844 
845 			The total number of MSDU frames that have been processed
846 			by REO. This includes the duplicates.
847 
848 
849 
850 			<legal all>
851 */
852 #define REO_GET_QUEUE_STATS_STATUS_21_MSDU_FRAMES_PROCESSED_COUNT_OFFSET 0x00000054
853 #define REO_GET_QUEUE_STATS_STATUS_21_MSDU_FRAMES_PROCESSED_COUNT_LSB 0
854 #define REO_GET_QUEUE_STATS_STATUS_21_MSDU_FRAMES_PROCESSED_COUNT_MASK 0xffffffff
855 
856 /* Description		REO_GET_QUEUE_STATS_STATUS_22_TOTAL_PROCESSED_BYTE_COUNT
857 
858 			An approximation of the number of bytes received for
859 			this queue.
860 
861 
862 
863 			In 64 byte units
864 
865 			<legal all>
866 */
867 #define REO_GET_QUEUE_STATS_STATUS_22_TOTAL_PROCESSED_BYTE_COUNT_OFFSET 0x00000058
868 #define REO_GET_QUEUE_STATS_STATUS_22_TOTAL_PROCESSED_BYTE_COUNT_LSB 0
869 #define REO_GET_QUEUE_STATS_STATUS_22_TOTAL_PROCESSED_BYTE_COUNT_MASK 0xffffffff
870 
871 /* Description		REO_GET_QUEUE_STATS_STATUS_23_LATE_RECEIVE_MPDU_COUNT
872 
873 			The number of MPDUs received after the window had
874 			already moved on. The 'late' sequence window is defined as
875 			(Window SSN - 256) - (Window SSN - 1)
876 
877 
878 
879 			This corresponds with Out of order detection in
880 			duplicate detect FSM
881 
882 
883 
884 			The counter saturates and freezes at 0xFFF
885 
886 
887 
888 			<legal all>
889 */
890 #define REO_GET_QUEUE_STATS_STATUS_23_LATE_RECEIVE_MPDU_COUNT_OFFSET 0x0000005c
891 #define REO_GET_QUEUE_STATS_STATUS_23_LATE_RECEIVE_MPDU_COUNT_LSB    0
892 #define REO_GET_QUEUE_STATS_STATUS_23_LATE_RECEIVE_MPDU_COUNT_MASK   0x00000fff
893 
894 /* Description		REO_GET_QUEUE_STATS_STATUS_23_WINDOW_JUMP_2K
895 
896 			The number of times the window moved more then 2K
897 
898 
899 
900 			The counter saturates and freezes at 0xF
901 
902 
903 
904 			(Note: field name can not start with number: previous
905 			2k_window_jump)
906 
907 
908 
909 			<legal all>
910 */
911 #define REO_GET_QUEUE_STATS_STATUS_23_WINDOW_JUMP_2K_OFFSET          0x0000005c
912 #define REO_GET_QUEUE_STATS_STATUS_23_WINDOW_JUMP_2K_LSB             12
913 #define REO_GET_QUEUE_STATS_STATUS_23_WINDOW_JUMP_2K_MASK            0x0000f000
914 
915 /* Description		REO_GET_QUEUE_STATS_STATUS_23_HOLE_COUNT
916 
917 			The number of times a hole was created in the receive
918 			bitmap.
919 
920 
921 
922 			This corresponds to the Reorder opcodes with 'QCUR'
923 
924 
925 
926 			<legal all>
927 */
928 #define REO_GET_QUEUE_STATS_STATUS_23_HOLE_COUNT_OFFSET              0x0000005c
929 #define REO_GET_QUEUE_STATS_STATUS_23_HOLE_COUNT_LSB                 16
930 #define REO_GET_QUEUE_STATS_STATUS_23_HOLE_COUNT_MASK                0xffff0000
931 
932 /* Description		REO_GET_QUEUE_STATS_STATUS_24_RESERVED_24A
933 
934 			<legal 0>
935 */
936 #define REO_GET_QUEUE_STATS_STATUS_24_RESERVED_24A_OFFSET            0x00000060
937 #define REO_GET_QUEUE_STATS_STATUS_24_RESERVED_24A_LSB               0
938 #define REO_GET_QUEUE_STATS_STATUS_24_RESERVED_24A_MASK              0x0fffffff
939 
940 /* Description		REO_GET_QUEUE_STATS_STATUS_24_LOOPING_COUNT
941 
942 			A count value that indicates the number of times the
943 			producer of entries into this Ring has looped around the
944 			ring.
945 
946 			At initialization time, this value is set to 0. On the
947 			first loop, this value is set to 1. After the max value is
948 			reached allowed by the number of bits for this field, the
949 			count value continues with 0 again.
950 
951 
952 
953 			In case SW is the consumer of the ring entries, it can
954 			use this field to figure out up to where the producer of
955 			entries has created new entries. This eliminates the need to
956 			check where the head pointer' of the ring is located once
957 			the SW starts processing an interrupt indicating that new
958 			entries have been put into this ring...
959 
960 
961 
962 			Also note that SW if it wants only needs to look at the
963 			LSB bit of this count value.
964 
965 			<legal all>
966 */
967 #define REO_GET_QUEUE_STATS_STATUS_24_LOOPING_COUNT_OFFSET           0x00000060
968 #define REO_GET_QUEUE_STATS_STATUS_24_LOOPING_COUNT_LSB              28
969 #define REO_GET_QUEUE_STATS_STATUS_24_LOOPING_COUNT_MASK             0xf0000000
970 
971 
972 #endif // _REO_GET_QUEUE_STATS_STATUS_H_
973