xref: /wlan-driver/fw-api/hw/qca6290/11ax/v2/rx_reo_queue.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2016-2018 The Linux Foundation. All rights reserved.
3*5113495bSYour Name  *
4*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for
5*5113495bSYour Name  * any purpose with or without fee is hereby granted, provided that the
6*5113495bSYour Name  * above copyright notice and this permission notice appear in all
7*5113495bSYour Name  * copies.
8*5113495bSYour Name  *
9*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10*5113495bSYour Name  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11*5113495bSYour Name  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12*5113495bSYour Name  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13*5113495bSYour Name  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14*5113495bSYour Name  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15*5113495bSYour Name  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16*5113495bSYour Name  * PERFORMANCE OF THIS SOFTWARE.
17*5113495bSYour Name  */
18*5113495bSYour Name 
19*5113495bSYour Name #ifndef _RX_REO_QUEUE_H_
20*5113495bSYour Name #define _RX_REO_QUEUE_H_
21*5113495bSYour Name #if !defined(__ASSEMBLER__)
22*5113495bSYour Name #endif
23*5113495bSYour Name 
24*5113495bSYour Name #include "uniform_descriptor_header.h"
25*5113495bSYour Name 
26*5113495bSYour Name // ################ START SUMMARY #################
27*5113495bSYour Name //
28*5113495bSYour Name //	Dword	Fields
29*5113495bSYour Name //	0	struct uniform_descriptor_header descriptor_header;
30*5113495bSYour Name //	1	receive_queue_number[15:0], reserved_1b[31:16]
31*5113495bSYour Name //	2	vld[0], associated_link_descriptor_counter[2:1], disable_duplicate_detection[3], soft_reorder_enable[4], ac[6:5], bar[7], rty[8], chk_2k_mode[9], oor_mode[10], ba_window_size[18:11], pn_check_needed[19], pn_shall_be_even[20], pn_shall_be_uneven[21], pn_handling_enable[22], pn_size[24:23], ignore_ampdu_flag[25], reserved_2b[31:26]
32*5113495bSYour Name //	3	svld[0], ssn[12:1], current_index[20:13], seq_2k_error_detected_flag[21], pn_error_detected_flag[22], reserved_3a[30:23], pn_valid[31]
33*5113495bSYour Name //	4	pn_31_0[31:0]
34*5113495bSYour Name //	5	pn_63_32[31:0]
35*5113495bSYour Name //	6	pn_95_64[31:0]
36*5113495bSYour Name //	7	pn_127_96[31:0]
37*5113495bSYour Name //	8	last_rx_enqueue_timestamp[31:0]
38*5113495bSYour Name //	9	last_rx_dequeue_timestamp[31:0]
39*5113495bSYour Name //	10	ptr_to_next_aging_queue_31_0[31:0]
40*5113495bSYour Name //	11	ptr_to_next_aging_queue_39_32[7:0], reserved_11a[31:8]
41*5113495bSYour Name //	12	ptr_to_previous_aging_queue_31_0[31:0]
42*5113495bSYour Name //	13	ptr_to_previous_aging_queue_39_32[7:0], reserved_13a[31:8]
43*5113495bSYour Name //	14	rx_bitmap_31_0[31:0]
44*5113495bSYour Name //	15	rx_bitmap_63_32[31:0]
45*5113495bSYour Name //	16	rx_bitmap_95_64[31:0]
46*5113495bSYour Name //	17	rx_bitmap_127_96[31:0]
47*5113495bSYour Name //	18	rx_bitmap_159_128[31:0]
48*5113495bSYour Name //	19	rx_bitmap_191_160[31:0]
49*5113495bSYour Name //	20	rx_bitmap_223_192[31:0]
50*5113495bSYour Name //	21	rx_bitmap_255_224[31:0]
51*5113495bSYour Name //	22	current_mpdu_count[6:0], current_msdu_count[31:7]
52*5113495bSYour Name //	23	reserved_23[3:0], timeout_count[9:4], forward_due_to_bar_count[15:10], duplicate_count[31:16]
53*5113495bSYour Name //	24	frames_in_order_count[23:0], bar_received_count[31:24]
54*5113495bSYour Name //	25	mpdu_frames_processed_count[31:0]
55*5113495bSYour Name //	26	msdu_frames_processed_count[31:0]
56*5113495bSYour Name //	27	total_processed_byte_count[31:0]
57*5113495bSYour Name //	28	late_receive_mpdu_count[11:0], window_jump_2k[15:12], hole_count[31:16]
58*5113495bSYour Name //	29	reserved_29[31:0]
59*5113495bSYour Name //	30	reserved_30[31:0]
60*5113495bSYour Name //	31	reserved_31[31:0]
61*5113495bSYour Name //
62*5113495bSYour Name // ################ END SUMMARY #################
63*5113495bSYour Name 
64*5113495bSYour Name #define NUM_OF_DWORDS_RX_REO_QUEUE 32
65*5113495bSYour Name 
66*5113495bSYour Name struct rx_reo_queue {
67*5113495bSYour Name     struct            uniform_descriptor_header                       descriptor_header;
68*5113495bSYour Name              uint32_t receive_queue_number            : 16, //[15:0]
69*5113495bSYour Name                       reserved_1b                     : 16; //[31:16]
70*5113495bSYour Name              uint32_t vld                             :  1, //[0]
71*5113495bSYour Name                       associated_link_descriptor_counter:  2, //[2:1]
72*5113495bSYour Name                       disable_duplicate_detection     :  1, //[3]
73*5113495bSYour Name                       soft_reorder_enable             :  1, //[4]
74*5113495bSYour Name                       ac                              :  2, //[6:5]
75*5113495bSYour Name                       bar                             :  1, //[7]
76*5113495bSYour Name                       rty                             :  1, //[8]
77*5113495bSYour Name                       chk_2k_mode                     :  1, //[9]
78*5113495bSYour Name                       oor_mode                        :  1, //[10]
79*5113495bSYour Name                       ba_window_size                  :  8, //[18:11]
80*5113495bSYour Name                       pn_check_needed                 :  1, //[19]
81*5113495bSYour Name                       pn_shall_be_even                :  1, //[20]
82*5113495bSYour Name                       pn_shall_be_uneven              :  1, //[21]
83*5113495bSYour Name                       pn_handling_enable              :  1, //[22]
84*5113495bSYour Name                       pn_size                         :  2, //[24:23]
85*5113495bSYour Name                       ignore_ampdu_flag               :  1, //[25]
86*5113495bSYour Name                       reserved_2b                     :  6; //[31:26]
87*5113495bSYour Name              uint32_t svld                            :  1, //[0]
88*5113495bSYour Name                       ssn                             : 12, //[12:1]
89*5113495bSYour Name                       current_index                   :  8, //[20:13]
90*5113495bSYour Name                       seq_2k_error_detected_flag      :  1, //[21]
91*5113495bSYour Name                       pn_error_detected_flag          :  1, //[22]
92*5113495bSYour Name                       reserved_3a                     :  8, //[30:23]
93*5113495bSYour Name                       pn_valid                        :  1; //[31]
94*5113495bSYour Name              uint32_t pn_31_0                         : 32; //[31:0]
95*5113495bSYour Name              uint32_t pn_63_32                        : 32; //[31:0]
96*5113495bSYour Name              uint32_t pn_95_64                        : 32; //[31:0]
97*5113495bSYour Name              uint32_t pn_127_96                       : 32; //[31:0]
98*5113495bSYour Name              uint32_t last_rx_enqueue_timestamp       : 32; //[31:0]
99*5113495bSYour Name              uint32_t last_rx_dequeue_timestamp       : 32; //[31:0]
100*5113495bSYour Name              uint32_t ptr_to_next_aging_queue_31_0    : 32; //[31:0]
101*5113495bSYour Name              uint32_t ptr_to_next_aging_queue_39_32   :  8, //[7:0]
102*5113495bSYour Name                       reserved_11a                    : 24; //[31:8]
103*5113495bSYour Name              uint32_t ptr_to_previous_aging_queue_31_0: 32; //[31:0]
104*5113495bSYour Name              uint32_t ptr_to_previous_aging_queue_39_32:  8, //[7:0]
105*5113495bSYour Name                       reserved_13a                    : 24; //[31:8]
106*5113495bSYour Name              uint32_t rx_bitmap_31_0                  : 32; //[31:0]
107*5113495bSYour Name              uint32_t rx_bitmap_63_32                 : 32; //[31:0]
108*5113495bSYour Name              uint32_t rx_bitmap_95_64                 : 32; //[31:0]
109*5113495bSYour Name              uint32_t rx_bitmap_127_96                : 32; //[31:0]
110*5113495bSYour Name              uint32_t rx_bitmap_159_128               : 32; //[31:0]
111*5113495bSYour Name              uint32_t rx_bitmap_191_160               : 32; //[31:0]
112*5113495bSYour Name              uint32_t rx_bitmap_223_192               : 32; //[31:0]
113*5113495bSYour Name              uint32_t rx_bitmap_255_224               : 32; //[31:0]
114*5113495bSYour Name              uint32_t current_mpdu_count              :  7, //[6:0]
115*5113495bSYour Name                       current_msdu_count              : 25; //[31:7]
116*5113495bSYour Name              uint32_t reserved_23                     :  4, //[3:0]
117*5113495bSYour Name                       timeout_count                   :  6, //[9:4]
118*5113495bSYour Name                       forward_due_to_bar_count        :  6, //[15:10]
119*5113495bSYour Name                       duplicate_count                 : 16; //[31:16]
120*5113495bSYour Name              uint32_t frames_in_order_count           : 24, //[23:0]
121*5113495bSYour Name                       bar_received_count              :  8; //[31:24]
122*5113495bSYour Name              uint32_t mpdu_frames_processed_count     : 32; //[31:0]
123*5113495bSYour Name              uint32_t msdu_frames_processed_count     : 32; //[31:0]
124*5113495bSYour Name              uint32_t total_processed_byte_count      : 32; //[31:0]
125*5113495bSYour Name              uint32_t late_receive_mpdu_count         : 12, //[11:0]
126*5113495bSYour Name                       window_jump_2k                  :  4, //[15:12]
127*5113495bSYour Name                       hole_count                      : 16; //[31:16]
128*5113495bSYour Name              uint32_t reserved_29                     : 32; //[31:0]
129*5113495bSYour Name              uint32_t reserved_30                     : 32; //[31:0]
130*5113495bSYour Name              uint32_t reserved_31                     : 32; //[31:0]
131*5113495bSYour Name };
132*5113495bSYour Name 
133*5113495bSYour Name /*
134*5113495bSYour Name 
135*5113495bSYour Name struct uniform_descriptor_header descriptor_header
136*5113495bSYour Name 
137*5113495bSYour Name 			Details about which module owns this struct.
138*5113495bSYour Name 
139*5113495bSYour Name 			Note that sub field Buffer_type shall be set to
140*5113495bSYour Name 			Receive_REO_queue_descriptor
141*5113495bSYour Name 
142*5113495bSYour Name receive_queue_number
143*5113495bSYour Name 
144*5113495bSYour Name 			Indicates the MPDU queue ID to which this MPDU link
145*5113495bSYour Name 			descriptor belongs
146*5113495bSYour Name 
147*5113495bSYour Name 			Used for tracking and debugging
148*5113495bSYour Name 
149*5113495bSYour Name 			<legal all>
150*5113495bSYour Name 
151*5113495bSYour Name reserved_1b
152*5113495bSYour Name 
153*5113495bSYour Name 			<legal 0>
154*5113495bSYour Name 
155*5113495bSYour Name vld
156*5113495bSYour Name 
157*5113495bSYour Name 			Valid bit indicating a session is established and the
158*5113495bSYour Name 			queue descriptor is valid(Filled by SW)
159*5113495bSYour Name 
160*5113495bSYour Name 			<legal all>
161*5113495bSYour Name 
162*5113495bSYour Name associated_link_descriptor_counter
163*5113495bSYour Name 
164*5113495bSYour Name 			Indicates which of the 3 link descriptor counters shall
165*5113495bSYour Name 			be incremented or decremented when link descriptors are
166*5113495bSYour Name 			added or removed from this flow queue.
167*5113495bSYour Name 
168*5113495bSYour Name 			MSDU link descriptors related with MPDUs stored in the
169*5113495bSYour Name 			re-order buffer shall also be included in this count.
170*5113495bSYour Name 
171*5113495bSYour Name 
172*5113495bSYour Name 
173*5113495bSYour Name 			<legal 0-2>
174*5113495bSYour Name 
175*5113495bSYour Name disable_duplicate_detection
176*5113495bSYour Name 
177*5113495bSYour Name 			When set, do not perform any duplicate detection.
178*5113495bSYour Name 
179*5113495bSYour Name 
180*5113495bSYour Name 
181*5113495bSYour Name 			<legal all>
182*5113495bSYour Name 
183*5113495bSYour Name soft_reorder_enable
184*5113495bSYour Name 
185*5113495bSYour Name 			When set, REO has been instructed to not perform the
186*5113495bSYour Name 			actual re-ordering of frames for this queue, but just to
187*5113495bSYour Name 			insert the reorder opcodes.
188*5113495bSYour Name 
189*5113495bSYour Name 
190*5113495bSYour Name 
191*5113495bSYour Name 			Note that this implies that REO is also not going to
192*5113495bSYour Name 			perform any MSDU level operations, and the entire MPDU (and
193*5113495bSYour Name 			thus pointer to the MSDU link descriptor) will be pushed to
194*5113495bSYour Name 			a destination ring that SW has programmed in a SW
195*5113495bSYour Name 			programmable configuration register in REO
196*5113495bSYour Name 
197*5113495bSYour Name 
198*5113495bSYour Name 
199*5113495bSYour Name 			<legal all>
200*5113495bSYour Name 
201*5113495bSYour Name ac
202*5113495bSYour Name 
203*5113495bSYour Name 			Indicates which access category the queue descriptor
204*5113495bSYour Name 			belongs to(filled by SW)
205*5113495bSYour Name 
206*5113495bSYour Name 			<legal all>
207*5113495bSYour Name 
208*5113495bSYour Name bar
209*5113495bSYour Name 
210*5113495bSYour Name 			Indicates if  BAR has been received (mostly used for
211*5113495bSYour Name 			debug purpose and this is filled by REO)
212*5113495bSYour Name 
213*5113495bSYour Name 			<legal all>
214*5113495bSYour Name 
215*5113495bSYour Name rty
216*5113495bSYour Name 
217*5113495bSYour Name 			Retry bit is checked if this bit is set.
218*5113495bSYour Name 
219*5113495bSYour Name 			<legal all>
220*5113495bSYour Name 
221*5113495bSYour Name chk_2k_mode
222*5113495bSYour Name 
223*5113495bSYour Name 			Indicates what type of operation is expected from Reo
224*5113495bSYour Name 			when the received frame SN falls within the 2K window
225*5113495bSYour Name 
226*5113495bSYour Name 
227*5113495bSYour Name 
228*5113495bSYour Name 			See REO MLD document for programming details.
229*5113495bSYour Name 
230*5113495bSYour Name 			<legal all>
231*5113495bSYour Name 
232*5113495bSYour Name oor_mode
233*5113495bSYour Name 
234*5113495bSYour Name 			Out of Order mode:
235*5113495bSYour Name 
236*5113495bSYour Name 			Indicates what type of operation is expected when the
237*5113495bSYour Name 			received frame falls within the OOR window.
238*5113495bSYour Name 
239*5113495bSYour Name 
240*5113495bSYour Name 
241*5113495bSYour Name 			See REO MLD document for programming details.
242*5113495bSYour Name 
243*5113495bSYour Name 			<legal all>
244*5113495bSYour Name 
245*5113495bSYour Name ba_window_size
246*5113495bSYour Name 
247*5113495bSYour Name 			Indicates the negotiated (window size + 1).
248*5113495bSYour Name 
249*5113495bSYour Name 			it can go up to Max of 256bits.
250*5113495bSYour Name 
251*5113495bSYour Name 
252*5113495bSYour Name 
253*5113495bSYour Name 			A value 255 means 256 bitmap, 63 means 64 bitmap, 0
254*5113495bSYour Name 			(means non-BA session, with window size of 0). The 3 values
255*5113495bSYour Name 			here are the main values validated, but other values should
256*5113495bSYour Name 			work as well.
257*5113495bSYour Name 
258*5113495bSYour Name 
259*5113495bSYour Name 
260*5113495bSYour Name 			A BA window size of 0 (=> one frame entry bitmat), means
261*5113495bSYour Name 			that there is NO RX_REO_QUEUE_EXT descriptor following this
262*5113495bSYour Name 			RX_REO_QUEUE STRUCT in memory
263*5113495bSYour Name 
264*5113495bSYour Name 
265*5113495bSYour Name 
266*5113495bSYour Name 			A BA window size of 1 - 105, means that there is 1
267*5113495bSYour Name 			RX_REO_QUEUE_EXT descriptor directly following this
268*5113495bSYour Name 			RX_REO_QUEUE STRUCT in memory.
269*5113495bSYour Name 
270*5113495bSYour Name 
271*5113495bSYour Name 
272*5113495bSYour Name 			A BA window size of 106 - 210, means that there are 2
273*5113495bSYour Name 			RX_REO_QUEUE_EXT descriptors directly following this
274*5113495bSYour Name 			RX_REO_QUEUE STRUCT in memory
275*5113495bSYour Name 
276*5113495bSYour Name 
277*5113495bSYour Name 
278*5113495bSYour Name 			A BA window size of 211 - 256, means that there are 3
279*5113495bSYour Name 			RX_REO_QUEUE_EXT descriptors directly following this
280*5113495bSYour Name 			RX_REO_QUEUE STRUCT in memory
281*5113495bSYour Name 
282*5113495bSYour Name 
283*5113495bSYour Name 
284*5113495bSYour Name 			<legal 0 - 255>
285*5113495bSYour Name 
286*5113495bSYour Name pn_check_needed
287*5113495bSYour Name 
288*5113495bSYour Name 			When set, REO shall perform the PN increment check
289*5113495bSYour Name 
290*5113495bSYour Name 			<legal all>
291*5113495bSYour Name 
292*5113495bSYour Name pn_shall_be_even
293*5113495bSYour Name 
294*5113495bSYour Name 			Field only valid when 'pn_check_needed' is set.
295*5113495bSYour Name 
296*5113495bSYour Name 
297*5113495bSYour Name 
298*5113495bSYour Name 			When set, REO shall confirm that the received PN number
299*5113495bSYour Name 			is not only incremented, but also always an even number
300*5113495bSYour Name 
301*5113495bSYour Name 			<legal all>
302*5113495bSYour Name 
303*5113495bSYour Name pn_shall_be_uneven
304*5113495bSYour Name 
305*5113495bSYour Name 			Field only valid when 'pn_check_needed' is set.
306*5113495bSYour Name 
307*5113495bSYour Name 
308*5113495bSYour Name 
309*5113495bSYour Name 			When set, REO shall confirm that the received PN number
310*5113495bSYour Name 			is not only incremented, but also always an uneven number
311*5113495bSYour Name 
312*5113495bSYour Name 			<legal all>
313*5113495bSYour Name 
314*5113495bSYour Name pn_handling_enable
315*5113495bSYour Name 
316*5113495bSYour Name 			Field only valid when 'pn_check_needed' is set.
317*5113495bSYour Name 
318*5113495bSYour Name 
319*5113495bSYour Name 
320*5113495bSYour Name 			When set, and REO detected a PN error, HW shall set the
321*5113495bSYour Name 			'pn_error_detected_flag'.
322*5113495bSYour Name 
323*5113495bSYour Name 			<legal all>
324*5113495bSYour Name 
325*5113495bSYour Name pn_size
326*5113495bSYour Name 
327*5113495bSYour Name 			Size of the PN field check.
328*5113495bSYour Name 
329*5113495bSYour Name 			Needed for wrap around handling...
330*5113495bSYour Name 
331*5113495bSYour Name 
332*5113495bSYour Name 
333*5113495bSYour Name 			<enum 0     pn_size_24>
334*5113495bSYour Name 
335*5113495bSYour Name 			<enum 1     pn_size_48>
336*5113495bSYour Name 
337*5113495bSYour Name 			<enum 2     pn_size_128>
338*5113495bSYour Name 
339*5113495bSYour Name 
340*5113495bSYour Name 
341*5113495bSYour Name 			<legal 0-2>
342*5113495bSYour Name 
343*5113495bSYour Name ignore_ampdu_flag
344*5113495bSYour Name 
345*5113495bSYour Name 			When set, REO shall ignore the ampdu_flag on the
346*5113495bSYour Name 			entrance descriptor for this queue.
347*5113495bSYour Name 
348*5113495bSYour Name 			<legal all>
349*5113495bSYour Name 
350*5113495bSYour Name reserved_2b
351*5113495bSYour Name 
352*5113495bSYour Name 			<legal 0>
353*5113495bSYour Name 
354*5113495bSYour Name svld
355*5113495bSYour Name 
356*5113495bSYour Name 			Sequence number in next field is valid one. It can be
357*5113495bSYour Name 			filled by SW if the want to fill in the any negotiated SSN,
358*5113495bSYour Name 			otherwise REO will fill the sequence number of first
359*5113495bSYour Name 			received packet and set this bit to 1.
360*5113495bSYour Name 
361*5113495bSYour Name 			<legal all>
362*5113495bSYour Name 
363*5113495bSYour Name ssn
364*5113495bSYour Name 
365*5113495bSYour Name 			Starting Sequence number of the session, this changes
366*5113495bSYour Name 			whenever window moves. (can be filled by SW then maintained
367*5113495bSYour Name 			by REO)
368*5113495bSYour Name 
369*5113495bSYour Name 			<legal all>
370*5113495bSYour Name 
371*5113495bSYour Name current_index
372*5113495bSYour Name 
373*5113495bSYour Name 			Points to last forwarded packet
374*5113495bSYour Name 
375*5113495bSYour Name 			<legal all>
376*5113495bSYour Name 
377*5113495bSYour Name seq_2k_error_detected_flag
378*5113495bSYour Name 
379*5113495bSYour Name 			Set by REO, can only be cleared by SW
380*5113495bSYour Name 
381*5113495bSYour Name 
382*5113495bSYour Name 
383*5113495bSYour Name 			When set, REO has detected a 2k error jump in the
384*5113495bSYour Name 			sequence number and from that moment forward, all new frames
385*5113495bSYour Name 			are forwarded directly to FW, without duplicate detect,
386*5113495bSYour Name 			reordering, etc.
387*5113495bSYour Name 
388*5113495bSYour Name 			<legal all>
389*5113495bSYour Name 
390*5113495bSYour Name pn_error_detected_flag
391*5113495bSYour Name 
392*5113495bSYour Name 			Set by REO, can only be cleared by SW
393*5113495bSYour Name 
394*5113495bSYour Name 
395*5113495bSYour Name 
396*5113495bSYour Name 			When set, REO has detected a PN error and from that
397*5113495bSYour Name 			moment forward, all new frames are forwarded directly to FW,
398*5113495bSYour Name 			without duplicate detect, reordering, etc.
399*5113495bSYour Name 
400*5113495bSYour Name 			<legal all>
401*5113495bSYour Name 
402*5113495bSYour Name reserved_3a
403*5113495bSYour Name 
404*5113495bSYour Name 			<legal 0>
405*5113495bSYour Name 
406*5113495bSYour Name pn_valid
407*5113495bSYour Name 
408*5113495bSYour Name 			PN number in next fields are valid. It can be filled by
409*5113495bSYour Name 			SW if it wants to fill in the any negotiated SSN, otherwise
410*5113495bSYour Name 			REO will fill the pn based on the first received packet and
411*5113495bSYour Name 			set this bit to 1.
412*5113495bSYour Name 
413*5113495bSYour Name 			<legal all>
414*5113495bSYour Name 
415*5113495bSYour Name pn_31_0
416*5113495bSYour Name 
417*5113495bSYour Name 
418*5113495bSYour Name 			<legal all>
419*5113495bSYour Name 
420*5113495bSYour Name pn_63_32
421*5113495bSYour Name 
422*5113495bSYour Name 			Bits [63:32] of the PN number.
423*5113495bSYour Name 
424*5113495bSYour Name 			<legal all>
425*5113495bSYour Name 
426*5113495bSYour Name pn_95_64
427*5113495bSYour Name 
428*5113495bSYour Name 			Bits [95:64] of the PN number.
429*5113495bSYour Name 
430*5113495bSYour Name 			<legal all>
431*5113495bSYour Name 
432*5113495bSYour Name pn_127_96
433*5113495bSYour Name 
434*5113495bSYour Name 			Bits [127:96] of the PN number.
435*5113495bSYour Name 
436*5113495bSYour Name 			<legal all>
437*5113495bSYour Name 
438*5113495bSYour Name last_rx_enqueue_timestamp
439*5113495bSYour Name 
440*5113495bSYour Name 			This timestamp is updated when an MPDU is received and
441*5113495bSYour Name 			accesses this Queue Descriptor. It does not include the
442*5113495bSYour Name 			access due to Command TLVs or Aging (which will be updated
443*5113495bSYour Name 			in Last_rx_dequeue_timestamp).
444*5113495bSYour Name 
445*5113495bSYour Name 			<legal all>
446*5113495bSYour Name 
447*5113495bSYour Name last_rx_dequeue_timestamp
448*5113495bSYour Name 
449*5113495bSYour Name 			This timestamp is used for Aging. When an MPDU or
450*5113495bSYour Name 			multiple MPDUs are forwarded, either due to window movement,
451*5113495bSYour Name 			bar, aging or command flush, this timestamp is updated. Also
452*5113495bSYour Name 			when the bitmap is all zero and the first time an MPDU is
453*5113495bSYour Name 			queued (opcode=QCUR), this timestamp is updated for aging.
454*5113495bSYour Name 
455*5113495bSYour Name 			<legal all>
456*5113495bSYour Name 
457*5113495bSYour Name ptr_to_next_aging_queue_31_0
458*5113495bSYour Name 
459*5113495bSYour Name 			Address  (address bits 31-0)of next RX_REO_QUEUE
460*5113495bSYour Name 			descriptor in the 'receive timestamp' ordered list.
461*5113495bSYour Name 
462*5113495bSYour Name 			From it the Position of this queue descriptor in the per
463*5113495bSYour Name 			AC aging waitlist  can be derived.
464*5113495bSYour Name 
465*5113495bSYour Name 			Value 0x0 indicates the 'NULL' pointer which implies
466*5113495bSYour Name 			that this is the last entry in the list.
467*5113495bSYour Name 
468*5113495bSYour Name 			<legal all>
469*5113495bSYour Name 
470*5113495bSYour Name ptr_to_next_aging_queue_39_32
471*5113495bSYour Name 
472*5113495bSYour Name 			Address  (address bits 39-32)of next RX_REO_QUEUE
473*5113495bSYour Name 			descriptor in the 'receive timestamp' ordered list.
474*5113495bSYour Name 
475*5113495bSYour Name 			From it the Position of this queue descriptor in the per
476*5113495bSYour Name 			AC aging waitlist  can be derived.
477*5113495bSYour Name 
478*5113495bSYour Name 			Value 0x0 indicates the 'NULL' pointer which implies
479*5113495bSYour Name 			that this is the last entry in the list.
480*5113495bSYour Name 
481*5113495bSYour Name 			<legal all>
482*5113495bSYour Name 
483*5113495bSYour Name reserved_11a
484*5113495bSYour Name 
485*5113495bSYour Name 			<legal 0>
486*5113495bSYour Name 
487*5113495bSYour Name ptr_to_previous_aging_queue_31_0
488*5113495bSYour Name 
489*5113495bSYour Name 			Address  (address bits 31-0)of next RX_REO_QUEUE
490*5113495bSYour Name 			descriptor in the 'receive timestamp' ordered list.
491*5113495bSYour Name 
492*5113495bSYour Name 			From it the Position of this queue descriptor in the per
493*5113495bSYour Name 			AC aging waitlist  can be derived.
494*5113495bSYour Name 
495*5113495bSYour Name 			Value 0x0 indicates the 'NULL' pointer which implies
496*5113495bSYour Name 			that this is the first entry in the list.
497*5113495bSYour Name 
498*5113495bSYour Name 			<legal all>
499*5113495bSYour Name 
500*5113495bSYour Name ptr_to_previous_aging_queue_39_32
501*5113495bSYour Name 
502*5113495bSYour Name 			Address  (address bits 39-32)of next RX_REO_QUEUE
503*5113495bSYour Name 			descriptor in the 'receive timestamp' ordered list.
504*5113495bSYour Name 
505*5113495bSYour Name 			From it the Position of this queue descriptor in the per
506*5113495bSYour Name 			AC aging waitlist  can be derived.
507*5113495bSYour Name 
508*5113495bSYour Name 			Value 0x0 indicates the 'NULL' pointer which implies
509*5113495bSYour Name 			that this is the first entry in the list.
510*5113495bSYour Name 
511*5113495bSYour Name 			<legal all>
512*5113495bSYour Name 
513*5113495bSYour Name reserved_13a
514*5113495bSYour Name 
515*5113495bSYour Name 			<legal 0>
516*5113495bSYour Name 
517*5113495bSYour Name rx_bitmap_31_0
518*5113495bSYour Name 
519*5113495bSYour Name 			When a bit is set, the corresponding frame is currently
520*5113495bSYour Name 			held in the re-order queue.
521*5113495bSYour Name 
522*5113495bSYour Name 			The bitmap  is Fully managed by HW.
523*5113495bSYour Name 
524*5113495bSYour Name 			SW shall init this to 0, and then never ever change it
525*5113495bSYour Name 
526*5113495bSYour Name 			<legal all>
527*5113495bSYour Name 
528*5113495bSYour Name rx_bitmap_63_32
529*5113495bSYour Name 
530*5113495bSYour Name 			See Rx_bitmap_31_0 description
531*5113495bSYour Name 
532*5113495bSYour Name 			<legal all>
533*5113495bSYour Name 
534*5113495bSYour Name rx_bitmap_95_64
535*5113495bSYour Name 
536*5113495bSYour Name 			See Rx_bitmap_31_0 description
537*5113495bSYour Name 
538*5113495bSYour Name 			<legal all>
539*5113495bSYour Name 
540*5113495bSYour Name rx_bitmap_127_96
541*5113495bSYour Name 
542*5113495bSYour Name 			See Rx_bitmap_31_0 description
543*5113495bSYour Name 
544*5113495bSYour Name 			<legal all>
545*5113495bSYour Name 
546*5113495bSYour Name rx_bitmap_159_128
547*5113495bSYour Name 
548*5113495bSYour Name 			See Rx_bitmap_31_0 description
549*5113495bSYour Name 
550*5113495bSYour Name 			<legal all>
551*5113495bSYour Name 
552*5113495bSYour Name rx_bitmap_191_160
553*5113495bSYour Name 
554*5113495bSYour Name 			See Rx_bitmap_31_0 description
555*5113495bSYour Name 
556*5113495bSYour Name 			<legal all>
557*5113495bSYour Name 
558*5113495bSYour Name rx_bitmap_223_192
559*5113495bSYour Name 
560*5113495bSYour Name 			See Rx_bitmap_31_0 description
561*5113495bSYour Name 
562*5113495bSYour Name 			<legal all>
563*5113495bSYour Name 
564*5113495bSYour Name rx_bitmap_255_224
565*5113495bSYour Name 
566*5113495bSYour Name 			See Rx_bitmap_31_0 description
567*5113495bSYour Name 
568*5113495bSYour Name 			<legal all>
569*5113495bSYour Name 
570*5113495bSYour Name current_mpdu_count
571*5113495bSYour Name 
572*5113495bSYour Name 			The number of MPDUs in the queue.
573*5113495bSYour Name 
574*5113495bSYour Name 
575*5113495bSYour Name 
576*5113495bSYour Name 			<legal all>
577*5113495bSYour Name 
578*5113495bSYour Name current_msdu_count
579*5113495bSYour Name 
580*5113495bSYour Name 			The number of MSDUs in the queue.
581*5113495bSYour Name 
582*5113495bSYour Name 			<legal all>
583*5113495bSYour Name 
584*5113495bSYour Name reserved_23
585*5113495bSYour Name 
586*5113495bSYour Name 			<legal 0>
587*5113495bSYour Name 
588*5113495bSYour Name timeout_count
589*5113495bSYour Name 
590*5113495bSYour Name 			The number of times that REO started forwarding frames
591*5113495bSYour Name 			even though there is a hole in the bitmap. Forwarding reason
592*5113495bSYour Name 			is Timeout
593*5113495bSYour Name 
594*5113495bSYour Name 
595*5113495bSYour Name 
596*5113495bSYour Name 			The counter saturates and freezes at 0x3F
597*5113495bSYour Name 
598*5113495bSYour Name 
599*5113495bSYour Name 
600*5113495bSYour Name 			<legal all>
601*5113495bSYour Name 
602*5113495bSYour Name forward_due_to_bar_count
603*5113495bSYour Name 
604*5113495bSYour Name 			The number of times that REO started forwarding frames
605*5113495bSYour Name 			even though there is a hole in the bitmap. Forwarding reason
606*5113495bSYour Name 			is reception of BAR frame.
607*5113495bSYour Name 
608*5113495bSYour Name 
609*5113495bSYour Name 
610*5113495bSYour Name 			The counter saturates and freezes at 0x3F
611*5113495bSYour Name 
612*5113495bSYour Name 
613*5113495bSYour Name 
614*5113495bSYour Name 			<legal all>
615*5113495bSYour Name 
616*5113495bSYour Name duplicate_count
617*5113495bSYour Name 
618*5113495bSYour Name 			The number of duplicate frames that have been detected
619*5113495bSYour Name 
620*5113495bSYour Name 			<legal all>
621*5113495bSYour Name 
622*5113495bSYour Name frames_in_order_count
623*5113495bSYour Name 
624*5113495bSYour Name 			The number of frames that have been received in order
625*5113495bSYour Name 			(without a hole that prevented them from being forwarded
626*5113495bSYour Name 			immediately)
627*5113495bSYour Name 
628*5113495bSYour Name 
629*5113495bSYour Name 
630*5113495bSYour Name 			This corresponds to the Reorder opcodes:
631*5113495bSYour Name 
632*5113495bSYour Name 			'FWDCUR' and 'FWD BUF'
633*5113495bSYour Name 
634*5113495bSYour Name 
635*5113495bSYour Name 
636*5113495bSYour Name 			<legal all>
637*5113495bSYour Name 
638*5113495bSYour Name bar_received_count
639*5113495bSYour Name 
640*5113495bSYour Name 			The number of times a BAR frame is received.
641*5113495bSYour Name 
642*5113495bSYour Name 
643*5113495bSYour Name 
644*5113495bSYour Name 			This corresponds to the Reorder opcodes with 'DROP'
645*5113495bSYour Name 
646*5113495bSYour Name 
647*5113495bSYour Name 
648*5113495bSYour Name 			The counter saturates and freezes at 0xFF
649*5113495bSYour Name 
650*5113495bSYour Name 			<legal all>
651*5113495bSYour Name 
652*5113495bSYour Name mpdu_frames_processed_count
653*5113495bSYour Name 
654*5113495bSYour Name 			The total number of MPDU frames that have been processed
655*5113495bSYour Name 			by REO. 'Processing' here means that REO has received them
656*5113495bSYour Name 			out of the entrance ring, and retrieved the corresponding
657*5113495bSYour Name 			RX_REO_QUEUE Descriptor.
658*5113495bSYour Name 
659*5113495bSYour Name 
660*5113495bSYour Name 
661*5113495bSYour Name 			Note that this count includes duplicates, frames that
662*5113495bSYour Name 			later had errors, etc.
663*5113495bSYour Name 
664*5113495bSYour Name 
665*5113495bSYour Name 
666*5113495bSYour Name 			Note that field 'Duplicate_count' indicates how many of
667*5113495bSYour Name 			these MPDUs were duplicates.
668*5113495bSYour Name 
669*5113495bSYour Name 
670*5113495bSYour Name 
671*5113495bSYour Name 			<legal all>
672*5113495bSYour Name 
673*5113495bSYour Name msdu_frames_processed_count
674*5113495bSYour Name 
675*5113495bSYour Name 			The total number of MSDU frames that have been processed
676*5113495bSYour Name 			by REO. 'Processing' here means that REO has received them
677*5113495bSYour Name 			out of the entrance ring, and retrieved the corresponding
678*5113495bSYour Name 			RX_REO_QUEUE Descriptor.
679*5113495bSYour Name 
680*5113495bSYour Name 
681*5113495bSYour Name 
682*5113495bSYour Name 			Note that this count includes duplicates, frames that
683*5113495bSYour Name 			later had errors, etc.
684*5113495bSYour Name 
685*5113495bSYour Name 
686*5113495bSYour Name 
687*5113495bSYour Name 			<legal all>
688*5113495bSYour Name 
689*5113495bSYour Name total_processed_byte_count
690*5113495bSYour Name 
691*5113495bSYour Name 			An approximation of the number of bytes processed for
692*5113495bSYour Name 			this queue.
693*5113495bSYour Name 
694*5113495bSYour Name 			'Processing' here means that REO has received them out
695*5113495bSYour Name 			of the entrance ring, and retrieved the corresponding
696*5113495bSYour Name 			RX_REO_QUEUE Descriptor.
697*5113495bSYour Name 
698*5113495bSYour Name 
699*5113495bSYour Name 
700*5113495bSYour Name 			Note that this count includes duplicates, frames that
701*5113495bSYour Name 			later had errors, etc.
702*5113495bSYour Name 
703*5113495bSYour Name 
704*5113495bSYour Name 
705*5113495bSYour Name 			In 64 byte units
706*5113495bSYour Name 
707*5113495bSYour Name 			<legal all>
708*5113495bSYour Name 
709*5113495bSYour Name late_receive_mpdu_count
710*5113495bSYour Name 
711*5113495bSYour Name 			The number of MPDUs received after the window had
712*5113495bSYour Name 			already moved on. The 'late' sequence window is defined as
713*5113495bSYour Name 			(Window SSN - 256) - (Window SSN - 1)
714*5113495bSYour Name 
715*5113495bSYour Name 
716*5113495bSYour Name 
717*5113495bSYour Name 			This corresponds with Out of order detection in
718*5113495bSYour Name 			duplicate detect FSM
719*5113495bSYour Name 
720*5113495bSYour Name 
721*5113495bSYour Name 
722*5113495bSYour Name 			The counter saturates and freezes at 0xFFF
723*5113495bSYour Name 
724*5113495bSYour Name 
725*5113495bSYour Name 
726*5113495bSYour Name 			<legal all>
727*5113495bSYour Name 
728*5113495bSYour Name window_jump_2k
729*5113495bSYour Name 
730*5113495bSYour Name 			The number of times the window moved more then 2K
731*5113495bSYour Name 
732*5113495bSYour Name 
733*5113495bSYour Name 
734*5113495bSYour Name 			The counter saturates and freezes at 0xF
735*5113495bSYour Name 
736*5113495bSYour Name 
737*5113495bSYour Name 
738*5113495bSYour Name 			(Note: field name can not start with number: previous
739*5113495bSYour Name 			2k_window_jump)
740*5113495bSYour Name 
741*5113495bSYour Name 
742*5113495bSYour Name 
743*5113495bSYour Name 			<legal all>
744*5113495bSYour Name 
745*5113495bSYour Name hole_count
746*5113495bSYour Name 
747*5113495bSYour Name 			The number of times a hole was created in the receive
748*5113495bSYour Name 			bitmap.
749*5113495bSYour Name 
750*5113495bSYour Name 
751*5113495bSYour Name 
752*5113495bSYour Name 			This corresponds to the Reorder opcodes with 'QCUR'
753*5113495bSYour Name 
754*5113495bSYour Name 
755*5113495bSYour Name 
756*5113495bSYour Name 			<legal all>
757*5113495bSYour Name 
758*5113495bSYour Name reserved_29
759*5113495bSYour Name 
760*5113495bSYour Name 			<legal 0>
761*5113495bSYour Name 
762*5113495bSYour Name reserved_30
763*5113495bSYour Name 
764*5113495bSYour Name 			<legal 0>
765*5113495bSYour Name 
766*5113495bSYour Name reserved_31
767*5113495bSYour Name 
768*5113495bSYour Name 			<legal 0>
769*5113495bSYour Name */
770*5113495bSYour Name 
771*5113495bSYour Name #define RX_REO_QUEUE_0_UNIFORM_DESCRIPTOR_HEADER_DESCRIPTOR_HEADER_OFFSET 0x00000000
772*5113495bSYour Name #define RX_REO_QUEUE_0_UNIFORM_DESCRIPTOR_HEADER_DESCRIPTOR_HEADER_LSB 0
773*5113495bSYour Name #define RX_REO_QUEUE_0_UNIFORM_DESCRIPTOR_HEADER_DESCRIPTOR_HEADER_MASK 0xffffffff
774*5113495bSYour Name 
775*5113495bSYour Name /* Description		RX_REO_QUEUE_1_RECEIVE_QUEUE_NUMBER
776*5113495bSYour Name 
777*5113495bSYour Name 			Indicates the MPDU queue ID to which this MPDU link
778*5113495bSYour Name 			descriptor belongs
779*5113495bSYour Name 
780*5113495bSYour Name 			Used for tracking and debugging
781*5113495bSYour Name 
782*5113495bSYour Name 			<legal all>
783*5113495bSYour Name */
784*5113495bSYour Name #define RX_REO_QUEUE_1_RECEIVE_QUEUE_NUMBER_OFFSET                   0x00000004
785*5113495bSYour Name #define RX_REO_QUEUE_1_RECEIVE_QUEUE_NUMBER_LSB                      0
786*5113495bSYour Name #define RX_REO_QUEUE_1_RECEIVE_QUEUE_NUMBER_MASK                     0x0000ffff
787*5113495bSYour Name 
788*5113495bSYour Name /* Description		RX_REO_QUEUE_1_RESERVED_1B
789*5113495bSYour Name 
790*5113495bSYour Name 			<legal 0>
791*5113495bSYour Name */
792*5113495bSYour Name #define RX_REO_QUEUE_1_RESERVED_1B_OFFSET                            0x00000004
793*5113495bSYour Name #define RX_REO_QUEUE_1_RESERVED_1B_LSB                               16
794*5113495bSYour Name #define RX_REO_QUEUE_1_RESERVED_1B_MASK                              0xffff0000
795*5113495bSYour Name 
796*5113495bSYour Name /* Description		RX_REO_QUEUE_2_VLD
797*5113495bSYour Name 
798*5113495bSYour Name 			Valid bit indicating a session is established and the
799*5113495bSYour Name 			queue descriptor is valid(Filled by SW)
800*5113495bSYour Name 
801*5113495bSYour Name 			<legal all>
802*5113495bSYour Name */
803*5113495bSYour Name #define RX_REO_QUEUE_2_VLD_OFFSET                                    0x00000008
804*5113495bSYour Name #define RX_REO_QUEUE_2_VLD_LSB                                       0
805*5113495bSYour Name #define RX_REO_QUEUE_2_VLD_MASK                                      0x00000001
806*5113495bSYour Name 
807*5113495bSYour Name /* Description		RX_REO_QUEUE_2_ASSOCIATED_LINK_DESCRIPTOR_COUNTER
808*5113495bSYour Name 
809*5113495bSYour Name 			Indicates which of the 3 link descriptor counters shall
810*5113495bSYour Name 			be incremented or decremented when link descriptors are
811*5113495bSYour Name 			added or removed from this flow queue.
812*5113495bSYour Name 
813*5113495bSYour Name 			MSDU link descriptors related with MPDUs stored in the
814*5113495bSYour Name 			re-order buffer shall also be included in this count.
815*5113495bSYour Name 
816*5113495bSYour Name 
817*5113495bSYour Name 
818*5113495bSYour Name 			<legal 0-2>
819*5113495bSYour Name */
820*5113495bSYour Name #define RX_REO_QUEUE_2_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_OFFSET     0x00000008
821*5113495bSYour Name #define RX_REO_QUEUE_2_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_LSB        1
822*5113495bSYour Name #define RX_REO_QUEUE_2_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_MASK       0x00000006
823*5113495bSYour Name 
824*5113495bSYour Name /* Description		RX_REO_QUEUE_2_DISABLE_DUPLICATE_DETECTION
825*5113495bSYour Name 
826*5113495bSYour Name 			When set, do not perform any duplicate detection.
827*5113495bSYour Name 
828*5113495bSYour Name 
829*5113495bSYour Name 
830*5113495bSYour Name 			<legal all>
831*5113495bSYour Name */
832*5113495bSYour Name #define RX_REO_QUEUE_2_DISABLE_DUPLICATE_DETECTION_OFFSET            0x00000008
833*5113495bSYour Name #define RX_REO_QUEUE_2_DISABLE_DUPLICATE_DETECTION_LSB               3
834*5113495bSYour Name #define RX_REO_QUEUE_2_DISABLE_DUPLICATE_DETECTION_MASK              0x00000008
835*5113495bSYour Name 
836*5113495bSYour Name /* Description		RX_REO_QUEUE_2_SOFT_REORDER_ENABLE
837*5113495bSYour Name 
838*5113495bSYour Name 			When set, REO has been instructed to not perform the
839*5113495bSYour Name 			actual re-ordering of frames for this queue, but just to
840*5113495bSYour Name 			insert the reorder opcodes.
841*5113495bSYour Name 
842*5113495bSYour Name 
843*5113495bSYour Name 
844*5113495bSYour Name 			Note that this implies that REO is also not going to
845*5113495bSYour Name 			perform any MSDU level operations, and the entire MPDU (and
846*5113495bSYour Name 			thus pointer to the MSDU link descriptor) will be pushed to
847*5113495bSYour Name 			a destination ring that SW has programmed in a SW
848*5113495bSYour Name 			programmable configuration register in REO
849*5113495bSYour Name 
850*5113495bSYour Name 
851*5113495bSYour Name 
852*5113495bSYour Name 			<legal all>
853*5113495bSYour Name */
854*5113495bSYour Name #define RX_REO_QUEUE_2_SOFT_REORDER_ENABLE_OFFSET                    0x00000008
855*5113495bSYour Name #define RX_REO_QUEUE_2_SOFT_REORDER_ENABLE_LSB                       4
856*5113495bSYour Name #define RX_REO_QUEUE_2_SOFT_REORDER_ENABLE_MASK                      0x00000010
857*5113495bSYour Name 
858*5113495bSYour Name /* Description		RX_REO_QUEUE_2_AC
859*5113495bSYour Name 
860*5113495bSYour Name 			Indicates which access category the queue descriptor
861*5113495bSYour Name 			belongs to(filled by SW)
862*5113495bSYour Name 
863*5113495bSYour Name 			<legal all>
864*5113495bSYour Name */
865*5113495bSYour Name #define RX_REO_QUEUE_2_AC_OFFSET                                     0x00000008
866*5113495bSYour Name #define RX_REO_QUEUE_2_AC_LSB                                        5
867*5113495bSYour Name #define RX_REO_QUEUE_2_AC_MASK                                       0x00000060
868*5113495bSYour Name 
869*5113495bSYour Name /* Description		RX_REO_QUEUE_2_BAR
870*5113495bSYour Name 
871*5113495bSYour Name 			Indicates if  BAR has been received (mostly used for
872*5113495bSYour Name 			debug purpose and this is filled by REO)
873*5113495bSYour Name 
874*5113495bSYour Name 			<legal all>
875*5113495bSYour Name */
876*5113495bSYour Name #define RX_REO_QUEUE_2_BAR_OFFSET                                    0x00000008
877*5113495bSYour Name #define RX_REO_QUEUE_2_BAR_LSB                                       7
878*5113495bSYour Name #define RX_REO_QUEUE_2_BAR_MASK                                      0x00000080
879*5113495bSYour Name 
880*5113495bSYour Name /* Description		RX_REO_QUEUE_2_RTY
881*5113495bSYour Name 
882*5113495bSYour Name 			Retry bit is checked if this bit is set.
883*5113495bSYour Name 
884*5113495bSYour Name 			<legal all>
885*5113495bSYour Name */
886*5113495bSYour Name #define RX_REO_QUEUE_2_RTY_OFFSET                                    0x00000008
887*5113495bSYour Name #define RX_REO_QUEUE_2_RTY_LSB                                       8
888*5113495bSYour Name #define RX_REO_QUEUE_2_RTY_MASK                                      0x00000100
889*5113495bSYour Name 
890*5113495bSYour Name /* Description		RX_REO_QUEUE_2_CHK_2K_MODE
891*5113495bSYour Name 
892*5113495bSYour Name 			Indicates what type of operation is expected from Reo
893*5113495bSYour Name 			when the received frame SN falls within the 2K window
894*5113495bSYour Name 
895*5113495bSYour Name 
896*5113495bSYour Name 
897*5113495bSYour Name 			See REO MLD document for programming details.
898*5113495bSYour Name 
899*5113495bSYour Name 			<legal all>
900*5113495bSYour Name */
901*5113495bSYour Name #define RX_REO_QUEUE_2_CHK_2K_MODE_OFFSET                            0x00000008
902*5113495bSYour Name #define RX_REO_QUEUE_2_CHK_2K_MODE_LSB                               9
903*5113495bSYour Name #define RX_REO_QUEUE_2_CHK_2K_MODE_MASK                              0x00000200
904*5113495bSYour Name 
905*5113495bSYour Name /* Description		RX_REO_QUEUE_2_OOR_MODE
906*5113495bSYour Name 
907*5113495bSYour Name 			Out of Order mode:
908*5113495bSYour Name 
909*5113495bSYour Name 			Indicates what type of operation is expected when the
910*5113495bSYour Name 			received frame falls within the OOR window.
911*5113495bSYour Name 
912*5113495bSYour Name 
913*5113495bSYour Name 
914*5113495bSYour Name 			See REO MLD document for programming details.
915*5113495bSYour Name 
916*5113495bSYour Name 			<legal all>
917*5113495bSYour Name */
918*5113495bSYour Name #define RX_REO_QUEUE_2_OOR_MODE_OFFSET                               0x00000008
919*5113495bSYour Name #define RX_REO_QUEUE_2_OOR_MODE_LSB                                  10
920*5113495bSYour Name #define RX_REO_QUEUE_2_OOR_MODE_MASK                                 0x00000400
921*5113495bSYour Name 
922*5113495bSYour Name /* Description		RX_REO_QUEUE_2_BA_WINDOW_SIZE
923*5113495bSYour Name 
924*5113495bSYour Name 			Indicates the negotiated (window size + 1).
925*5113495bSYour Name 
926*5113495bSYour Name 			it can go up to Max of 256bits.
927*5113495bSYour Name 
928*5113495bSYour Name 
929*5113495bSYour Name 
930*5113495bSYour Name 			A value 255 means 256 bitmap, 63 means 64 bitmap, 0
931*5113495bSYour Name 			(means non-BA session, with window size of 0). The 3 values
932*5113495bSYour Name 			here are the main values validated, but other values should
933*5113495bSYour Name 			work as well.
934*5113495bSYour Name 
935*5113495bSYour Name 
936*5113495bSYour Name 
937*5113495bSYour Name 			A BA window size of 0 (=> one frame entry bitmat), means
938*5113495bSYour Name 			that there is NO RX_REO_QUEUE_EXT descriptor following this
939*5113495bSYour Name 			RX_REO_QUEUE STRUCT in memory
940*5113495bSYour Name 
941*5113495bSYour Name 
942*5113495bSYour Name 
943*5113495bSYour Name 			A BA window size of 1 - 105, means that there is 1
944*5113495bSYour Name 			RX_REO_QUEUE_EXT descriptor directly following this
945*5113495bSYour Name 			RX_REO_QUEUE STRUCT in memory.
946*5113495bSYour Name 
947*5113495bSYour Name 
948*5113495bSYour Name 
949*5113495bSYour Name 			A BA window size of 106 - 210, means that there are 2
950*5113495bSYour Name 			RX_REO_QUEUE_EXT descriptors directly following this
951*5113495bSYour Name 			RX_REO_QUEUE STRUCT in memory
952*5113495bSYour Name 
953*5113495bSYour Name 
954*5113495bSYour Name 
955*5113495bSYour Name 			A BA window size of 211 - 256, means that there are 3
956*5113495bSYour Name 			RX_REO_QUEUE_EXT descriptors directly following this
957*5113495bSYour Name 			RX_REO_QUEUE STRUCT in memory
958*5113495bSYour Name 
959*5113495bSYour Name 
960*5113495bSYour Name 
961*5113495bSYour Name 			<legal 0 - 255>
962*5113495bSYour Name */
963*5113495bSYour Name #define RX_REO_QUEUE_2_BA_WINDOW_SIZE_OFFSET                         0x00000008
964*5113495bSYour Name #define RX_REO_QUEUE_2_BA_WINDOW_SIZE_LSB                            11
965*5113495bSYour Name #define RX_REO_QUEUE_2_BA_WINDOW_SIZE_MASK                           0x0007f800
966*5113495bSYour Name 
967*5113495bSYour Name /* Description		RX_REO_QUEUE_2_PN_CHECK_NEEDED
968*5113495bSYour Name 
969*5113495bSYour Name 			When set, REO shall perform the PN increment check
970*5113495bSYour Name 
971*5113495bSYour Name 			<legal all>
972*5113495bSYour Name */
973*5113495bSYour Name #define RX_REO_QUEUE_2_PN_CHECK_NEEDED_OFFSET                        0x00000008
974*5113495bSYour Name #define RX_REO_QUEUE_2_PN_CHECK_NEEDED_LSB                           19
975*5113495bSYour Name #define RX_REO_QUEUE_2_PN_CHECK_NEEDED_MASK                          0x00080000
976*5113495bSYour Name 
977*5113495bSYour Name /* Description		RX_REO_QUEUE_2_PN_SHALL_BE_EVEN
978*5113495bSYour Name 
979*5113495bSYour Name 			Field only valid when 'pn_check_needed' is set.
980*5113495bSYour Name 
981*5113495bSYour Name 
982*5113495bSYour Name 
983*5113495bSYour Name 			When set, REO shall confirm that the received PN number
984*5113495bSYour Name 			is not only incremented, but also always an even number
985*5113495bSYour Name 
986*5113495bSYour Name 			<legal all>
987*5113495bSYour Name */
988*5113495bSYour Name #define RX_REO_QUEUE_2_PN_SHALL_BE_EVEN_OFFSET                       0x00000008
989*5113495bSYour Name #define RX_REO_QUEUE_2_PN_SHALL_BE_EVEN_LSB                          20
990*5113495bSYour Name #define RX_REO_QUEUE_2_PN_SHALL_BE_EVEN_MASK                         0x00100000
991*5113495bSYour Name 
992*5113495bSYour Name /* Description		RX_REO_QUEUE_2_PN_SHALL_BE_UNEVEN
993*5113495bSYour Name 
994*5113495bSYour Name 			Field only valid when 'pn_check_needed' is set.
995*5113495bSYour Name 
996*5113495bSYour Name 
997*5113495bSYour Name 
998*5113495bSYour Name 			When set, REO shall confirm that the received PN number
999*5113495bSYour Name 			is not only incremented, but also always an uneven number
1000*5113495bSYour Name 
1001*5113495bSYour Name 			<legal all>
1002*5113495bSYour Name */
1003*5113495bSYour Name #define RX_REO_QUEUE_2_PN_SHALL_BE_UNEVEN_OFFSET                     0x00000008
1004*5113495bSYour Name #define RX_REO_QUEUE_2_PN_SHALL_BE_UNEVEN_LSB                        21
1005*5113495bSYour Name #define RX_REO_QUEUE_2_PN_SHALL_BE_UNEVEN_MASK                       0x00200000
1006*5113495bSYour Name 
1007*5113495bSYour Name /* Description		RX_REO_QUEUE_2_PN_HANDLING_ENABLE
1008*5113495bSYour Name 
1009*5113495bSYour Name 			Field only valid when 'pn_check_needed' is set.
1010*5113495bSYour Name 
1011*5113495bSYour Name 
1012*5113495bSYour Name 
1013*5113495bSYour Name 			When set, and REO detected a PN error, HW shall set the
1014*5113495bSYour Name 			'pn_error_detected_flag'.
1015*5113495bSYour Name 
1016*5113495bSYour Name 			<legal all>
1017*5113495bSYour Name */
1018*5113495bSYour Name #define RX_REO_QUEUE_2_PN_HANDLING_ENABLE_OFFSET                     0x00000008
1019*5113495bSYour Name #define RX_REO_QUEUE_2_PN_HANDLING_ENABLE_LSB                        22
1020*5113495bSYour Name #define RX_REO_QUEUE_2_PN_HANDLING_ENABLE_MASK                       0x00400000
1021*5113495bSYour Name 
1022*5113495bSYour Name /* Description		RX_REO_QUEUE_2_PN_SIZE
1023*5113495bSYour Name 
1024*5113495bSYour Name 			Size of the PN field check.
1025*5113495bSYour Name 
1026*5113495bSYour Name 			Needed for wrap around handling...
1027*5113495bSYour Name 
1028*5113495bSYour Name 
1029*5113495bSYour Name 
1030*5113495bSYour Name 			<enum 0     pn_size_24>
1031*5113495bSYour Name 
1032*5113495bSYour Name 			<enum 1     pn_size_48>
1033*5113495bSYour Name 
1034*5113495bSYour Name 			<enum 2     pn_size_128>
1035*5113495bSYour Name 
1036*5113495bSYour Name 
1037*5113495bSYour Name 
1038*5113495bSYour Name 			<legal 0-2>
1039*5113495bSYour Name */
1040*5113495bSYour Name #define RX_REO_QUEUE_2_PN_SIZE_OFFSET                                0x00000008
1041*5113495bSYour Name #define RX_REO_QUEUE_2_PN_SIZE_LSB                                   23
1042*5113495bSYour Name #define RX_REO_QUEUE_2_PN_SIZE_MASK                                  0x01800000
1043*5113495bSYour Name 
1044*5113495bSYour Name /* Description		RX_REO_QUEUE_2_IGNORE_AMPDU_FLAG
1045*5113495bSYour Name 
1046*5113495bSYour Name 			When set, REO shall ignore the ampdu_flag on the
1047*5113495bSYour Name 			entrance descriptor for this queue.
1048*5113495bSYour Name 
1049*5113495bSYour Name 			<legal all>
1050*5113495bSYour Name */
1051*5113495bSYour Name #define RX_REO_QUEUE_2_IGNORE_AMPDU_FLAG_OFFSET                      0x00000008
1052*5113495bSYour Name #define RX_REO_QUEUE_2_IGNORE_AMPDU_FLAG_LSB                         25
1053*5113495bSYour Name #define RX_REO_QUEUE_2_IGNORE_AMPDU_FLAG_MASK                        0x02000000
1054*5113495bSYour Name 
1055*5113495bSYour Name /* Description		RX_REO_QUEUE_2_RESERVED_2B
1056*5113495bSYour Name 
1057*5113495bSYour Name 			<legal 0>
1058*5113495bSYour Name */
1059*5113495bSYour Name #define RX_REO_QUEUE_2_RESERVED_2B_OFFSET                            0x00000008
1060*5113495bSYour Name #define RX_REO_QUEUE_2_RESERVED_2B_LSB                               26
1061*5113495bSYour Name #define RX_REO_QUEUE_2_RESERVED_2B_MASK                              0xfc000000
1062*5113495bSYour Name 
1063*5113495bSYour Name /* Description		RX_REO_QUEUE_3_SVLD
1064*5113495bSYour Name 
1065*5113495bSYour Name 			Sequence number in next field is valid one. It can be
1066*5113495bSYour Name 			filled by SW if the want to fill in the any negotiated SSN,
1067*5113495bSYour Name 			otherwise REO will fill the sequence number of first
1068*5113495bSYour Name 			received packet and set this bit to 1.
1069*5113495bSYour Name 
1070*5113495bSYour Name 			<legal all>
1071*5113495bSYour Name */
1072*5113495bSYour Name #define RX_REO_QUEUE_3_SVLD_OFFSET                                   0x0000000c
1073*5113495bSYour Name #define RX_REO_QUEUE_3_SVLD_LSB                                      0
1074*5113495bSYour Name #define RX_REO_QUEUE_3_SVLD_MASK                                     0x00000001
1075*5113495bSYour Name 
1076*5113495bSYour Name /* Description		RX_REO_QUEUE_3_SSN
1077*5113495bSYour Name 
1078*5113495bSYour Name 			Starting Sequence number of the session, this changes
1079*5113495bSYour Name 			whenever window moves. (can be filled by SW then maintained
1080*5113495bSYour Name 			by REO)
1081*5113495bSYour Name 
1082*5113495bSYour Name 			<legal all>
1083*5113495bSYour Name */
1084*5113495bSYour Name #define RX_REO_QUEUE_3_SSN_OFFSET                                    0x0000000c
1085*5113495bSYour Name #define RX_REO_QUEUE_3_SSN_LSB                                       1
1086*5113495bSYour Name #define RX_REO_QUEUE_3_SSN_MASK                                      0x00001ffe
1087*5113495bSYour Name 
1088*5113495bSYour Name /* Description		RX_REO_QUEUE_3_CURRENT_INDEX
1089*5113495bSYour Name 
1090*5113495bSYour Name 			Points to last forwarded packet
1091*5113495bSYour Name 
1092*5113495bSYour Name 			<legal all>
1093*5113495bSYour Name */
1094*5113495bSYour Name #define RX_REO_QUEUE_3_CURRENT_INDEX_OFFSET                          0x0000000c
1095*5113495bSYour Name #define RX_REO_QUEUE_3_CURRENT_INDEX_LSB                             13
1096*5113495bSYour Name #define RX_REO_QUEUE_3_CURRENT_INDEX_MASK                            0x001fe000
1097*5113495bSYour Name 
1098*5113495bSYour Name /* Description		RX_REO_QUEUE_3_SEQ_2K_ERROR_DETECTED_FLAG
1099*5113495bSYour Name 
1100*5113495bSYour Name 			Set by REO, can only be cleared by SW
1101*5113495bSYour Name 
1102*5113495bSYour Name 
1103*5113495bSYour Name 
1104*5113495bSYour Name 			When set, REO has detected a 2k error jump in the
1105*5113495bSYour Name 			sequence number and from that moment forward, all new frames
1106*5113495bSYour Name 			are forwarded directly to FW, without duplicate detect,
1107*5113495bSYour Name 			reordering, etc.
1108*5113495bSYour Name 
1109*5113495bSYour Name 			<legal all>
1110*5113495bSYour Name */
1111*5113495bSYour Name #define RX_REO_QUEUE_3_SEQ_2K_ERROR_DETECTED_FLAG_OFFSET             0x0000000c
1112*5113495bSYour Name #define RX_REO_QUEUE_3_SEQ_2K_ERROR_DETECTED_FLAG_LSB                21
1113*5113495bSYour Name #define RX_REO_QUEUE_3_SEQ_2K_ERROR_DETECTED_FLAG_MASK               0x00200000
1114*5113495bSYour Name 
1115*5113495bSYour Name /* Description		RX_REO_QUEUE_3_PN_ERROR_DETECTED_FLAG
1116*5113495bSYour Name 
1117*5113495bSYour Name 			Set by REO, can only be cleared by SW
1118*5113495bSYour Name 
1119*5113495bSYour Name 
1120*5113495bSYour Name 
1121*5113495bSYour Name 			When set, REO has detected a PN error and from that
1122*5113495bSYour Name 			moment forward, all new frames are forwarded directly to FW,
1123*5113495bSYour Name 			without duplicate detect, reordering, etc.
1124*5113495bSYour Name 
1125*5113495bSYour Name 			<legal all>
1126*5113495bSYour Name */
1127*5113495bSYour Name #define RX_REO_QUEUE_3_PN_ERROR_DETECTED_FLAG_OFFSET                 0x0000000c
1128*5113495bSYour Name #define RX_REO_QUEUE_3_PN_ERROR_DETECTED_FLAG_LSB                    22
1129*5113495bSYour Name #define RX_REO_QUEUE_3_PN_ERROR_DETECTED_FLAG_MASK                   0x00400000
1130*5113495bSYour Name 
1131*5113495bSYour Name /* Description		RX_REO_QUEUE_3_RESERVED_3A
1132*5113495bSYour Name 
1133*5113495bSYour Name 			<legal 0>
1134*5113495bSYour Name */
1135*5113495bSYour Name #define RX_REO_QUEUE_3_RESERVED_3A_OFFSET                            0x0000000c
1136*5113495bSYour Name #define RX_REO_QUEUE_3_RESERVED_3A_LSB                               23
1137*5113495bSYour Name #define RX_REO_QUEUE_3_RESERVED_3A_MASK                              0x7f800000
1138*5113495bSYour Name 
1139*5113495bSYour Name /* Description		RX_REO_QUEUE_3_PN_VALID
1140*5113495bSYour Name 
1141*5113495bSYour Name 			PN number in next fields are valid. It can be filled by
1142*5113495bSYour Name 			SW if it wants to fill in the any negotiated SSN, otherwise
1143*5113495bSYour Name 			REO will fill the pn based on the first received packet and
1144*5113495bSYour Name 			set this bit to 1.
1145*5113495bSYour Name 
1146*5113495bSYour Name 			<legal all>
1147*5113495bSYour Name */
1148*5113495bSYour Name #define RX_REO_QUEUE_3_PN_VALID_OFFSET                               0x0000000c
1149*5113495bSYour Name #define RX_REO_QUEUE_3_PN_VALID_LSB                                  31
1150*5113495bSYour Name #define RX_REO_QUEUE_3_PN_VALID_MASK                                 0x80000000
1151*5113495bSYour Name 
1152*5113495bSYour Name /* Description		RX_REO_QUEUE_4_PN_31_0
1153*5113495bSYour Name 
1154*5113495bSYour Name 
1155*5113495bSYour Name 			<legal all>
1156*5113495bSYour Name */
1157*5113495bSYour Name #define RX_REO_QUEUE_4_PN_31_0_OFFSET                                0x00000010
1158*5113495bSYour Name #define RX_REO_QUEUE_4_PN_31_0_LSB                                   0
1159*5113495bSYour Name #define RX_REO_QUEUE_4_PN_31_0_MASK                                  0xffffffff
1160*5113495bSYour Name 
1161*5113495bSYour Name /* Description		RX_REO_QUEUE_5_PN_63_32
1162*5113495bSYour Name 
1163*5113495bSYour Name 			Bits [63:32] of the PN number.
1164*5113495bSYour Name 
1165*5113495bSYour Name 			<legal all>
1166*5113495bSYour Name */
1167*5113495bSYour Name #define RX_REO_QUEUE_5_PN_63_32_OFFSET                               0x00000014
1168*5113495bSYour Name #define RX_REO_QUEUE_5_PN_63_32_LSB                                  0
1169*5113495bSYour Name #define RX_REO_QUEUE_5_PN_63_32_MASK                                 0xffffffff
1170*5113495bSYour Name 
1171*5113495bSYour Name /* Description		RX_REO_QUEUE_6_PN_95_64
1172*5113495bSYour Name 
1173*5113495bSYour Name 			Bits [95:64] of the PN number.
1174*5113495bSYour Name 
1175*5113495bSYour Name 			<legal all>
1176*5113495bSYour Name */
1177*5113495bSYour Name #define RX_REO_QUEUE_6_PN_95_64_OFFSET                               0x00000018
1178*5113495bSYour Name #define RX_REO_QUEUE_6_PN_95_64_LSB                                  0
1179*5113495bSYour Name #define RX_REO_QUEUE_6_PN_95_64_MASK                                 0xffffffff
1180*5113495bSYour Name 
1181*5113495bSYour Name /* Description		RX_REO_QUEUE_7_PN_127_96
1182*5113495bSYour Name 
1183*5113495bSYour Name 			Bits [127:96] of the PN number.
1184*5113495bSYour Name 
1185*5113495bSYour Name 			<legal all>
1186*5113495bSYour Name */
1187*5113495bSYour Name #define RX_REO_QUEUE_7_PN_127_96_OFFSET                              0x0000001c
1188*5113495bSYour Name #define RX_REO_QUEUE_7_PN_127_96_LSB                                 0
1189*5113495bSYour Name #define RX_REO_QUEUE_7_PN_127_96_MASK                                0xffffffff
1190*5113495bSYour Name 
1191*5113495bSYour Name /* Description		RX_REO_QUEUE_8_LAST_RX_ENQUEUE_TIMESTAMP
1192*5113495bSYour Name 
1193*5113495bSYour Name 			This timestamp is updated when an MPDU is received and
1194*5113495bSYour Name 			accesses this Queue Descriptor. It does not include the
1195*5113495bSYour Name 			access due to Command TLVs or Aging (which will be updated
1196*5113495bSYour Name 			in Last_rx_dequeue_timestamp).
1197*5113495bSYour Name 
1198*5113495bSYour Name 			<legal all>
1199*5113495bSYour Name */
1200*5113495bSYour Name #define RX_REO_QUEUE_8_LAST_RX_ENQUEUE_TIMESTAMP_OFFSET              0x00000020
1201*5113495bSYour Name #define RX_REO_QUEUE_8_LAST_RX_ENQUEUE_TIMESTAMP_LSB                 0
1202*5113495bSYour Name #define RX_REO_QUEUE_8_LAST_RX_ENQUEUE_TIMESTAMP_MASK                0xffffffff
1203*5113495bSYour Name 
1204*5113495bSYour Name /* Description		RX_REO_QUEUE_9_LAST_RX_DEQUEUE_TIMESTAMP
1205*5113495bSYour Name 
1206*5113495bSYour Name 			This timestamp is used for Aging. When an MPDU or
1207*5113495bSYour Name 			multiple MPDUs are forwarded, either due to window movement,
1208*5113495bSYour Name 			bar, aging or command flush, this timestamp is updated. Also
1209*5113495bSYour Name 			when the bitmap is all zero and the first time an MPDU is
1210*5113495bSYour Name 			queued (opcode=QCUR), this timestamp is updated for aging.
1211*5113495bSYour Name 
1212*5113495bSYour Name 			<legal all>
1213*5113495bSYour Name */
1214*5113495bSYour Name #define RX_REO_QUEUE_9_LAST_RX_DEQUEUE_TIMESTAMP_OFFSET              0x00000024
1215*5113495bSYour Name #define RX_REO_QUEUE_9_LAST_RX_DEQUEUE_TIMESTAMP_LSB                 0
1216*5113495bSYour Name #define RX_REO_QUEUE_9_LAST_RX_DEQUEUE_TIMESTAMP_MASK                0xffffffff
1217*5113495bSYour Name 
1218*5113495bSYour Name /* Description		RX_REO_QUEUE_10_PTR_TO_NEXT_AGING_QUEUE_31_0
1219*5113495bSYour Name 
1220*5113495bSYour Name 			Address  (address bits 31-0)of next RX_REO_QUEUE
1221*5113495bSYour Name 			descriptor in the 'receive timestamp' ordered list.
1222*5113495bSYour Name 
1223*5113495bSYour Name 			From it the Position of this queue descriptor in the per
1224*5113495bSYour Name 			AC aging waitlist  can be derived.
1225*5113495bSYour Name 
1226*5113495bSYour Name 			Value 0x0 indicates the 'NULL' pointer which implies
1227*5113495bSYour Name 			that this is the last entry in the list.
1228*5113495bSYour Name 
1229*5113495bSYour Name 			<legal all>
1230*5113495bSYour Name */
1231*5113495bSYour Name #define RX_REO_QUEUE_10_PTR_TO_NEXT_AGING_QUEUE_31_0_OFFSET          0x00000028
1232*5113495bSYour Name #define RX_REO_QUEUE_10_PTR_TO_NEXT_AGING_QUEUE_31_0_LSB             0
1233*5113495bSYour Name #define RX_REO_QUEUE_10_PTR_TO_NEXT_AGING_QUEUE_31_0_MASK            0xffffffff
1234*5113495bSYour Name 
1235*5113495bSYour Name /* Description		RX_REO_QUEUE_11_PTR_TO_NEXT_AGING_QUEUE_39_32
1236*5113495bSYour Name 
1237*5113495bSYour Name 			Address  (address bits 39-32)of next RX_REO_QUEUE
1238*5113495bSYour Name 			descriptor in the 'receive timestamp' ordered list.
1239*5113495bSYour Name 
1240*5113495bSYour Name 			From it the Position of this queue descriptor in the per
1241*5113495bSYour Name 			AC aging waitlist  can be derived.
1242*5113495bSYour Name 
1243*5113495bSYour Name 			Value 0x0 indicates the 'NULL' pointer which implies
1244*5113495bSYour Name 			that this is the last entry in the list.
1245*5113495bSYour Name 
1246*5113495bSYour Name 			<legal all>
1247*5113495bSYour Name */
1248*5113495bSYour Name #define RX_REO_QUEUE_11_PTR_TO_NEXT_AGING_QUEUE_39_32_OFFSET         0x0000002c
1249*5113495bSYour Name #define RX_REO_QUEUE_11_PTR_TO_NEXT_AGING_QUEUE_39_32_LSB            0
1250*5113495bSYour Name #define RX_REO_QUEUE_11_PTR_TO_NEXT_AGING_QUEUE_39_32_MASK           0x000000ff
1251*5113495bSYour Name 
1252*5113495bSYour Name /* Description		RX_REO_QUEUE_11_RESERVED_11A
1253*5113495bSYour Name 
1254*5113495bSYour Name 			<legal 0>
1255*5113495bSYour Name */
1256*5113495bSYour Name #define RX_REO_QUEUE_11_RESERVED_11A_OFFSET                          0x0000002c
1257*5113495bSYour Name #define RX_REO_QUEUE_11_RESERVED_11A_LSB                             8
1258*5113495bSYour Name #define RX_REO_QUEUE_11_RESERVED_11A_MASK                            0xffffff00
1259*5113495bSYour Name 
1260*5113495bSYour Name /* Description		RX_REO_QUEUE_12_PTR_TO_PREVIOUS_AGING_QUEUE_31_0
1261*5113495bSYour Name 
1262*5113495bSYour Name 			Address  (address bits 31-0)of next RX_REO_QUEUE
1263*5113495bSYour Name 			descriptor in the 'receive timestamp' ordered list.
1264*5113495bSYour Name 
1265*5113495bSYour Name 			From it the Position of this queue descriptor in the per
1266*5113495bSYour Name 			AC aging waitlist  can be derived.
1267*5113495bSYour Name 
1268*5113495bSYour Name 			Value 0x0 indicates the 'NULL' pointer which implies
1269*5113495bSYour Name 			that this is the first entry in the list.
1270*5113495bSYour Name 
1271*5113495bSYour Name 			<legal all>
1272*5113495bSYour Name */
1273*5113495bSYour Name #define RX_REO_QUEUE_12_PTR_TO_PREVIOUS_AGING_QUEUE_31_0_OFFSET      0x00000030
1274*5113495bSYour Name #define RX_REO_QUEUE_12_PTR_TO_PREVIOUS_AGING_QUEUE_31_0_LSB         0
1275*5113495bSYour Name #define RX_REO_QUEUE_12_PTR_TO_PREVIOUS_AGING_QUEUE_31_0_MASK        0xffffffff
1276*5113495bSYour Name 
1277*5113495bSYour Name /* Description		RX_REO_QUEUE_13_PTR_TO_PREVIOUS_AGING_QUEUE_39_32
1278*5113495bSYour Name 
1279*5113495bSYour Name 			Address  (address bits 39-32)of next RX_REO_QUEUE
1280*5113495bSYour Name 			descriptor in the 'receive timestamp' ordered list.
1281*5113495bSYour Name 
1282*5113495bSYour Name 			From it the Position of this queue descriptor in the per
1283*5113495bSYour Name 			AC aging waitlist  can be derived.
1284*5113495bSYour Name 
1285*5113495bSYour Name 			Value 0x0 indicates the 'NULL' pointer which implies
1286*5113495bSYour Name 			that this is the first entry in the list.
1287*5113495bSYour Name 
1288*5113495bSYour Name 			<legal all>
1289*5113495bSYour Name */
1290*5113495bSYour Name #define RX_REO_QUEUE_13_PTR_TO_PREVIOUS_AGING_QUEUE_39_32_OFFSET     0x00000034
1291*5113495bSYour Name #define RX_REO_QUEUE_13_PTR_TO_PREVIOUS_AGING_QUEUE_39_32_LSB        0
1292*5113495bSYour Name #define RX_REO_QUEUE_13_PTR_TO_PREVIOUS_AGING_QUEUE_39_32_MASK       0x000000ff
1293*5113495bSYour Name 
1294*5113495bSYour Name /* Description		RX_REO_QUEUE_13_RESERVED_13A
1295*5113495bSYour Name 
1296*5113495bSYour Name 			<legal 0>
1297*5113495bSYour Name */
1298*5113495bSYour Name #define RX_REO_QUEUE_13_RESERVED_13A_OFFSET                          0x00000034
1299*5113495bSYour Name #define RX_REO_QUEUE_13_RESERVED_13A_LSB                             8
1300*5113495bSYour Name #define RX_REO_QUEUE_13_RESERVED_13A_MASK                            0xffffff00
1301*5113495bSYour Name 
1302*5113495bSYour Name /* Description		RX_REO_QUEUE_14_RX_BITMAP_31_0
1303*5113495bSYour Name 
1304*5113495bSYour Name 			When a bit is set, the corresponding frame is currently
1305*5113495bSYour Name 			held in the re-order queue.
1306*5113495bSYour Name 
1307*5113495bSYour Name 			The bitmap  is Fully managed by HW.
1308*5113495bSYour Name 
1309*5113495bSYour Name 			SW shall init this to 0, and then never ever change it
1310*5113495bSYour Name 
1311*5113495bSYour Name 			<legal all>
1312*5113495bSYour Name */
1313*5113495bSYour Name #define RX_REO_QUEUE_14_RX_BITMAP_31_0_OFFSET                        0x00000038
1314*5113495bSYour Name #define RX_REO_QUEUE_14_RX_BITMAP_31_0_LSB                           0
1315*5113495bSYour Name #define RX_REO_QUEUE_14_RX_BITMAP_31_0_MASK                          0xffffffff
1316*5113495bSYour Name 
1317*5113495bSYour Name /* Description		RX_REO_QUEUE_15_RX_BITMAP_63_32
1318*5113495bSYour Name 
1319*5113495bSYour Name 			See Rx_bitmap_31_0 description
1320*5113495bSYour Name 
1321*5113495bSYour Name 			<legal all>
1322*5113495bSYour Name */
1323*5113495bSYour Name #define RX_REO_QUEUE_15_RX_BITMAP_63_32_OFFSET                       0x0000003c
1324*5113495bSYour Name #define RX_REO_QUEUE_15_RX_BITMAP_63_32_LSB                          0
1325*5113495bSYour Name #define RX_REO_QUEUE_15_RX_BITMAP_63_32_MASK                         0xffffffff
1326*5113495bSYour Name 
1327*5113495bSYour Name /* Description		RX_REO_QUEUE_16_RX_BITMAP_95_64
1328*5113495bSYour Name 
1329*5113495bSYour Name 			See Rx_bitmap_31_0 description
1330*5113495bSYour Name 
1331*5113495bSYour Name 			<legal all>
1332*5113495bSYour Name */
1333*5113495bSYour Name #define RX_REO_QUEUE_16_RX_BITMAP_95_64_OFFSET                       0x00000040
1334*5113495bSYour Name #define RX_REO_QUEUE_16_RX_BITMAP_95_64_LSB                          0
1335*5113495bSYour Name #define RX_REO_QUEUE_16_RX_BITMAP_95_64_MASK                         0xffffffff
1336*5113495bSYour Name 
1337*5113495bSYour Name /* Description		RX_REO_QUEUE_17_RX_BITMAP_127_96
1338*5113495bSYour Name 
1339*5113495bSYour Name 			See Rx_bitmap_31_0 description
1340*5113495bSYour Name 
1341*5113495bSYour Name 			<legal all>
1342*5113495bSYour Name */
1343*5113495bSYour Name #define RX_REO_QUEUE_17_RX_BITMAP_127_96_OFFSET                      0x00000044
1344*5113495bSYour Name #define RX_REO_QUEUE_17_RX_BITMAP_127_96_LSB                         0
1345*5113495bSYour Name #define RX_REO_QUEUE_17_RX_BITMAP_127_96_MASK                        0xffffffff
1346*5113495bSYour Name 
1347*5113495bSYour Name /* Description		RX_REO_QUEUE_18_RX_BITMAP_159_128
1348*5113495bSYour Name 
1349*5113495bSYour Name 			See Rx_bitmap_31_0 description
1350*5113495bSYour Name 
1351*5113495bSYour Name 			<legal all>
1352*5113495bSYour Name */
1353*5113495bSYour Name #define RX_REO_QUEUE_18_RX_BITMAP_159_128_OFFSET                     0x00000048
1354*5113495bSYour Name #define RX_REO_QUEUE_18_RX_BITMAP_159_128_LSB                        0
1355*5113495bSYour Name #define RX_REO_QUEUE_18_RX_BITMAP_159_128_MASK                       0xffffffff
1356*5113495bSYour Name 
1357*5113495bSYour Name /* Description		RX_REO_QUEUE_19_RX_BITMAP_191_160
1358*5113495bSYour Name 
1359*5113495bSYour Name 			See Rx_bitmap_31_0 description
1360*5113495bSYour Name 
1361*5113495bSYour Name 			<legal all>
1362*5113495bSYour Name */
1363*5113495bSYour Name #define RX_REO_QUEUE_19_RX_BITMAP_191_160_OFFSET                     0x0000004c
1364*5113495bSYour Name #define RX_REO_QUEUE_19_RX_BITMAP_191_160_LSB                        0
1365*5113495bSYour Name #define RX_REO_QUEUE_19_RX_BITMAP_191_160_MASK                       0xffffffff
1366*5113495bSYour Name 
1367*5113495bSYour Name /* Description		RX_REO_QUEUE_20_RX_BITMAP_223_192
1368*5113495bSYour Name 
1369*5113495bSYour Name 			See Rx_bitmap_31_0 description
1370*5113495bSYour Name 
1371*5113495bSYour Name 			<legal all>
1372*5113495bSYour Name */
1373*5113495bSYour Name #define RX_REO_QUEUE_20_RX_BITMAP_223_192_OFFSET                     0x00000050
1374*5113495bSYour Name #define RX_REO_QUEUE_20_RX_BITMAP_223_192_LSB                        0
1375*5113495bSYour Name #define RX_REO_QUEUE_20_RX_BITMAP_223_192_MASK                       0xffffffff
1376*5113495bSYour Name 
1377*5113495bSYour Name /* Description		RX_REO_QUEUE_21_RX_BITMAP_255_224
1378*5113495bSYour Name 
1379*5113495bSYour Name 			See Rx_bitmap_31_0 description
1380*5113495bSYour Name 
1381*5113495bSYour Name 			<legal all>
1382*5113495bSYour Name */
1383*5113495bSYour Name #define RX_REO_QUEUE_21_RX_BITMAP_255_224_OFFSET                     0x00000054
1384*5113495bSYour Name #define RX_REO_QUEUE_21_RX_BITMAP_255_224_LSB                        0
1385*5113495bSYour Name #define RX_REO_QUEUE_21_RX_BITMAP_255_224_MASK                       0xffffffff
1386*5113495bSYour Name 
1387*5113495bSYour Name /* Description		RX_REO_QUEUE_22_CURRENT_MPDU_COUNT
1388*5113495bSYour Name 
1389*5113495bSYour Name 			The number of MPDUs in the queue.
1390*5113495bSYour Name 
1391*5113495bSYour Name 
1392*5113495bSYour Name 
1393*5113495bSYour Name 			<legal all>
1394*5113495bSYour Name */
1395*5113495bSYour Name #define RX_REO_QUEUE_22_CURRENT_MPDU_COUNT_OFFSET                    0x00000058
1396*5113495bSYour Name #define RX_REO_QUEUE_22_CURRENT_MPDU_COUNT_LSB                       0
1397*5113495bSYour Name #define RX_REO_QUEUE_22_CURRENT_MPDU_COUNT_MASK                      0x0000007f
1398*5113495bSYour Name 
1399*5113495bSYour Name /* Description		RX_REO_QUEUE_22_CURRENT_MSDU_COUNT
1400*5113495bSYour Name 
1401*5113495bSYour Name 			The number of MSDUs in the queue.
1402*5113495bSYour Name 
1403*5113495bSYour Name 			<legal all>
1404*5113495bSYour Name */
1405*5113495bSYour Name #define RX_REO_QUEUE_22_CURRENT_MSDU_COUNT_OFFSET                    0x00000058
1406*5113495bSYour Name #define RX_REO_QUEUE_22_CURRENT_MSDU_COUNT_LSB                       7
1407*5113495bSYour Name #define RX_REO_QUEUE_22_CURRENT_MSDU_COUNT_MASK                      0xffffff80
1408*5113495bSYour Name 
1409*5113495bSYour Name /* Description		RX_REO_QUEUE_23_RESERVED_23
1410*5113495bSYour Name 
1411*5113495bSYour Name 			<legal 0>
1412*5113495bSYour Name */
1413*5113495bSYour Name #define RX_REO_QUEUE_23_RESERVED_23_OFFSET                           0x0000005c
1414*5113495bSYour Name #define RX_REO_QUEUE_23_RESERVED_23_LSB                              0
1415*5113495bSYour Name #define RX_REO_QUEUE_23_RESERVED_23_MASK                             0x0000000f
1416*5113495bSYour Name 
1417*5113495bSYour Name /* Description		RX_REO_QUEUE_23_TIMEOUT_COUNT
1418*5113495bSYour Name 
1419*5113495bSYour Name 			The number of times that REO started forwarding frames
1420*5113495bSYour Name 			even though there is a hole in the bitmap. Forwarding reason
1421*5113495bSYour Name 			is Timeout
1422*5113495bSYour Name 
1423*5113495bSYour Name 
1424*5113495bSYour Name 
1425*5113495bSYour Name 			The counter saturates and freezes at 0x3F
1426*5113495bSYour Name 
1427*5113495bSYour Name 
1428*5113495bSYour Name 
1429*5113495bSYour Name 			<legal all>
1430*5113495bSYour Name */
1431*5113495bSYour Name #define RX_REO_QUEUE_23_TIMEOUT_COUNT_OFFSET                         0x0000005c
1432*5113495bSYour Name #define RX_REO_QUEUE_23_TIMEOUT_COUNT_LSB                            4
1433*5113495bSYour Name #define RX_REO_QUEUE_23_TIMEOUT_COUNT_MASK                           0x000003f0
1434*5113495bSYour Name 
1435*5113495bSYour Name /* Description		RX_REO_QUEUE_23_FORWARD_DUE_TO_BAR_COUNT
1436*5113495bSYour Name 
1437*5113495bSYour Name 			The number of times that REO started forwarding frames
1438*5113495bSYour Name 			even though there is a hole in the bitmap. Forwarding reason
1439*5113495bSYour Name 			is reception of BAR frame.
1440*5113495bSYour Name 
1441*5113495bSYour Name 
1442*5113495bSYour Name 
1443*5113495bSYour Name 			The counter saturates and freezes at 0x3F
1444*5113495bSYour Name 
1445*5113495bSYour Name 
1446*5113495bSYour Name 
1447*5113495bSYour Name 			<legal all>
1448*5113495bSYour Name */
1449*5113495bSYour Name #define RX_REO_QUEUE_23_FORWARD_DUE_TO_BAR_COUNT_OFFSET              0x0000005c
1450*5113495bSYour Name #define RX_REO_QUEUE_23_FORWARD_DUE_TO_BAR_COUNT_LSB                 10
1451*5113495bSYour Name #define RX_REO_QUEUE_23_FORWARD_DUE_TO_BAR_COUNT_MASK                0x0000fc00
1452*5113495bSYour Name 
1453*5113495bSYour Name /* Description		RX_REO_QUEUE_23_DUPLICATE_COUNT
1454*5113495bSYour Name 
1455*5113495bSYour Name 			The number of duplicate frames that have been detected
1456*5113495bSYour Name 
1457*5113495bSYour Name 			<legal all>
1458*5113495bSYour Name */
1459*5113495bSYour Name #define RX_REO_QUEUE_23_DUPLICATE_COUNT_OFFSET                       0x0000005c
1460*5113495bSYour Name #define RX_REO_QUEUE_23_DUPLICATE_COUNT_LSB                          16
1461*5113495bSYour Name #define RX_REO_QUEUE_23_DUPLICATE_COUNT_MASK                         0xffff0000
1462*5113495bSYour Name 
1463*5113495bSYour Name /* Description		RX_REO_QUEUE_24_FRAMES_IN_ORDER_COUNT
1464*5113495bSYour Name 
1465*5113495bSYour Name 			The number of frames that have been received in order
1466*5113495bSYour Name 			(without a hole that prevented them from being forwarded
1467*5113495bSYour Name 			immediately)
1468*5113495bSYour Name 
1469*5113495bSYour Name 
1470*5113495bSYour Name 
1471*5113495bSYour Name 			This corresponds to the Reorder opcodes:
1472*5113495bSYour Name 
1473*5113495bSYour Name 			'FWDCUR' and 'FWD BUF'
1474*5113495bSYour Name 
1475*5113495bSYour Name 
1476*5113495bSYour Name 
1477*5113495bSYour Name 			<legal all>
1478*5113495bSYour Name */
1479*5113495bSYour Name #define RX_REO_QUEUE_24_FRAMES_IN_ORDER_COUNT_OFFSET                 0x00000060
1480*5113495bSYour Name #define RX_REO_QUEUE_24_FRAMES_IN_ORDER_COUNT_LSB                    0
1481*5113495bSYour Name #define RX_REO_QUEUE_24_FRAMES_IN_ORDER_COUNT_MASK                   0x00ffffff
1482*5113495bSYour Name 
1483*5113495bSYour Name /* Description		RX_REO_QUEUE_24_BAR_RECEIVED_COUNT
1484*5113495bSYour Name 
1485*5113495bSYour Name 			The number of times a BAR frame is received.
1486*5113495bSYour Name 
1487*5113495bSYour Name 
1488*5113495bSYour Name 
1489*5113495bSYour Name 			This corresponds to the Reorder opcodes with 'DROP'
1490*5113495bSYour Name 
1491*5113495bSYour Name 
1492*5113495bSYour Name 
1493*5113495bSYour Name 			The counter saturates and freezes at 0xFF
1494*5113495bSYour Name 
1495*5113495bSYour Name 			<legal all>
1496*5113495bSYour Name */
1497*5113495bSYour Name #define RX_REO_QUEUE_24_BAR_RECEIVED_COUNT_OFFSET                    0x00000060
1498*5113495bSYour Name #define RX_REO_QUEUE_24_BAR_RECEIVED_COUNT_LSB                       24
1499*5113495bSYour Name #define RX_REO_QUEUE_24_BAR_RECEIVED_COUNT_MASK                      0xff000000
1500*5113495bSYour Name 
1501*5113495bSYour Name /* Description		RX_REO_QUEUE_25_MPDU_FRAMES_PROCESSED_COUNT
1502*5113495bSYour Name 
1503*5113495bSYour Name 			The total number of MPDU frames that have been processed
1504*5113495bSYour Name 			by REO. 'Processing' here means that REO has received them
1505*5113495bSYour Name 			out of the entrance ring, and retrieved the corresponding
1506*5113495bSYour Name 			RX_REO_QUEUE Descriptor.
1507*5113495bSYour Name 
1508*5113495bSYour Name 
1509*5113495bSYour Name 
1510*5113495bSYour Name 			Note that this count includes duplicates, frames that
1511*5113495bSYour Name 			later had errors, etc.
1512*5113495bSYour Name 
1513*5113495bSYour Name 
1514*5113495bSYour Name 
1515*5113495bSYour Name 			Note that field 'Duplicate_count' indicates how many of
1516*5113495bSYour Name 			these MPDUs were duplicates.
1517*5113495bSYour Name 
1518*5113495bSYour Name 
1519*5113495bSYour Name 
1520*5113495bSYour Name 			<legal all>
1521*5113495bSYour Name */
1522*5113495bSYour Name #define RX_REO_QUEUE_25_MPDU_FRAMES_PROCESSED_COUNT_OFFSET           0x00000064
1523*5113495bSYour Name #define RX_REO_QUEUE_25_MPDU_FRAMES_PROCESSED_COUNT_LSB              0
1524*5113495bSYour Name #define RX_REO_QUEUE_25_MPDU_FRAMES_PROCESSED_COUNT_MASK             0xffffffff
1525*5113495bSYour Name 
1526*5113495bSYour Name /* Description		RX_REO_QUEUE_26_MSDU_FRAMES_PROCESSED_COUNT
1527*5113495bSYour Name 
1528*5113495bSYour Name 			The total number of MSDU frames that have been processed
1529*5113495bSYour Name 			by REO. 'Processing' here means that REO has received them
1530*5113495bSYour Name 			out of the entrance ring, and retrieved the corresponding
1531*5113495bSYour Name 			RX_REO_QUEUE Descriptor.
1532*5113495bSYour Name 
1533*5113495bSYour Name 
1534*5113495bSYour Name 
1535*5113495bSYour Name 			Note that this count includes duplicates, frames that
1536*5113495bSYour Name 			later had errors, etc.
1537*5113495bSYour Name 
1538*5113495bSYour Name 
1539*5113495bSYour Name 
1540*5113495bSYour Name 			<legal all>
1541*5113495bSYour Name */
1542*5113495bSYour Name #define RX_REO_QUEUE_26_MSDU_FRAMES_PROCESSED_COUNT_OFFSET           0x00000068
1543*5113495bSYour Name #define RX_REO_QUEUE_26_MSDU_FRAMES_PROCESSED_COUNT_LSB              0
1544*5113495bSYour Name #define RX_REO_QUEUE_26_MSDU_FRAMES_PROCESSED_COUNT_MASK             0xffffffff
1545*5113495bSYour Name 
1546*5113495bSYour Name /* Description		RX_REO_QUEUE_27_TOTAL_PROCESSED_BYTE_COUNT
1547*5113495bSYour Name 
1548*5113495bSYour Name 			An approximation of the number of bytes processed for
1549*5113495bSYour Name 			this queue.
1550*5113495bSYour Name 
1551*5113495bSYour Name 			'Processing' here means that REO has received them out
1552*5113495bSYour Name 			of the entrance ring, and retrieved the corresponding
1553*5113495bSYour Name 			RX_REO_QUEUE Descriptor.
1554*5113495bSYour Name 
1555*5113495bSYour Name 
1556*5113495bSYour Name 
1557*5113495bSYour Name 			Note that this count includes duplicates, frames that
1558*5113495bSYour Name 			later had errors, etc.
1559*5113495bSYour Name 
1560*5113495bSYour Name 
1561*5113495bSYour Name 
1562*5113495bSYour Name 			In 64 byte units
1563*5113495bSYour Name 
1564*5113495bSYour Name 			<legal all>
1565*5113495bSYour Name */
1566*5113495bSYour Name #define RX_REO_QUEUE_27_TOTAL_PROCESSED_BYTE_COUNT_OFFSET            0x0000006c
1567*5113495bSYour Name #define RX_REO_QUEUE_27_TOTAL_PROCESSED_BYTE_COUNT_LSB               0
1568*5113495bSYour Name #define RX_REO_QUEUE_27_TOTAL_PROCESSED_BYTE_COUNT_MASK              0xffffffff
1569*5113495bSYour Name 
1570*5113495bSYour Name /* Description		RX_REO_QUEUE_28_LATE_RECEIVE_MPDU_COUNT
1571*5113495bSYour Name 
1572*5113495bSYour Name 			The number of MPDUs received after the window had
1573*5113495bSYour Name 			already moved on. The 'late' sequence window is defined as
1574*5113495bSYour Name 			(Window SSN - 256) - (Window SSN - 1)
1575*5113495bSYour Name 
1576*5113495bSYour Name 
1577*5113495bSYour Name 
1578*5113495bSYour Name 			This corresponds with Out of order detection in
1579*5113495bSYour Name 			duplicate detect FSM
1580*5113495bSYour Name 
1581*5113495bSYour Name 
1582*5113495bSYour Name 
1583*5113495bSYour Name 			The counter saturates and freezes at 0xFFF
1584*5113495bSYour Name 
1585*5113495bSYour Name 
1586*5113495bSYour Name 
1587*5113495bSYour Name 			<legal all>
1588*5113495bSYour Name */
1589*5113495bSYour Name #define RX_REO_QUEUE_28_LATE_RECEIVE_MPDU_COUNT_OFFSET               0x00000070
1590*5113495bSYour Name #define RX_REO_QUEUE_28_LATE_RECEIVE_MPDU_COUNT_LSB                  0
1591*5113495bSYour Name #define RX_REO_QUEUE_28_LATE_RECEIVE_MPDU_COUNT_MASK                 0x00000fff
1592*5113495bSYour Name 
1593*5113495bSYour Name /* Description		RX_REO_QUEUE_28_WINDOW_JUMP_2K
1594*5113495bSYour Name 
1595*5113495bSYour Name 			The number of times the window moved more then 2K
1596*5113495bSYour Name 
1597*5113495bSYour Name 
1598*5113495bSYour Name 
1599*5113495bSYour Name 			The counter saturates and freezes at 0xF
1600*5113495bSYour Name 
1601*5113495bSYour Name 
1602*5113495bSYour Name 
1603*5113495bSYour Name 			(Note: field name can not start with number: previous
1604*5113495bSYour Name 			2k_window_jump)
1605*5113495bSYour Name 
1606*5113495bSYour Name 
1607*5113495bSYour Name 
1608*5113495bSYour Name 			<legal all>
1609*5113495bSYour Name */
1610*5113495bSYour Name #define RX_REO_QUEUE_28_WINDOW_JUMP_2K_OFFSET                        0x00000070
1611*5113495bSYour Name #define RX_REO_QUEUE_28_WINDOW_JUMP_2K_LSB                           12
1612*5113495bSYour Name #define RX_REO_QUEUE_28_WINDOW_JUMP_2K_MASK                          0x0000f000
1613*5113495bSYour Name 
1614*5113495bSYour Name /* Description		RX_REO_QUEUE_28_HOLE_COUNT
1615*5113495bSYour Name 
1616*5113495bSYour Name 			The number of times a hole was created in the receive
1617*5113495bSYour Name 			bitmap.
1618*5113495bSYour Name 
1619*5113495bSYour Name 
1620*5113495bSYour Name 
1621*5113495bSYour Name 			This corresponds to the Reorder opcodes with 'QCUR'
1622*5113495bSYour Name 
1623*5113495bSYour Name 
1624*5113495bSYour Name 
1625*5113495bSYour Name 			<legal all>
1626*5113495bSYour Name */
1627*5113495bSYour Name #define RX_REO_QUEUE_28_HOLE_COUNT_OFFSET                            0x00000070
1628*5113495bSYour Name #define RX_REO_QUEUE_28_HOLE_COUNT_LSB                               16
1629*5113495bSYour Name #define RX_REO_QUEUE_28_HOLE_COUNT_MASK                              0xffff0000
1630*5113495bSYour Name 
1631*5113495bSYour Name /* Description		RX_REO_QUEUE_29_RESERVED_29
1632*5113495bSYour Name 
1633*5113495bSYour Name 			<legal 0>
1634*5113495bSYour Name */
1635*5113495bSYour Name #define RX_REO_QUEUE_29_RESERVED_29_OFFSET                           0x00000074
1636*5113495bSYour Name #define RX_REO_QUEUE_29_RESERVED_29_LSB                              0
1637*5113495bSYour Name #define RX_REO_QUEUE_29_RESERVED_29_MASK                             0xffffffff
1638*5113495bSYour Name 
1639*5113495bSYour Name /* Description		RX_REO_QUEUE_30_RESERVED_30
1640*5113495bSYour Name 
1641*5113495bSYour Name 			<legal 0>
1642*5113495bSYour Name */
1643*5113495bSYour Name #define RX_REO_QUEUE_30_RESERVED_30_OFFSET                           0x00000078
1644*5113495bSYour Name #define RX_REO_QUEUE_30_RESERVED_30_LSB                              0
1645*5113495bSYour Name #define RX_REO_QUEUE_30_RESERVED_30_MASK                             0xffffffff
1646*5113495bSYour Name 
1647*5113495bSYour Name /* Description		RX_REO_QUEUE_31_RESERVED_31
1648*5113495bSYour Name 
1649*5113495bSYour Name 			<legal 0>
1650*5113495bSYour Name */
1651*5113495bSYour Name #define RX_REO_QUEUE_31_RESERVED_31_OFFSET                           0x0000007c
1652*5113495bSYour Name #define RX_REO_QUEUE_31_RESERVED_31_LSB                              0
1653*5113495bSYour Name #define RX_REO_QUEUE_31_RESERVED_31_MASK                             0xffffffff
1654*5113495bSYour Name 
1655*5113495bSYour Name 
1656*5113495bSYour Name #endif // _RX_REO_QUEUE_H_
1657