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