xref: /wlan-driver/fw-api/hw/qca5332/mactx_user_desc_common.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1 
2 /* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for any
5  * purpose with or without fee is hereby granted, provided that the above
6  * copyright notice and this permission notice appear in all copies.
7  *
8  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15  */
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 #ifndef _MACTX_USER_DESC_COMMON_H_
27 #define _MACTX_USER_DESC_COMMON_H_
28 #if !defined(__ASSEMBLER__)
29 #endif
30 
31 #include "unallocated_ru_160_info.h"
32 #include "ru_allocation_160_info.h"
33 #define NUM_OF_DWORDS_MACTX_USER_DESC_COMMON 16
34 
35 #define NUM_OF_QWORDS_MACTX_USER_DESC_COMMON 8
36 
37 
38 struct mactx_user_desc_common {
39 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
40              uint32_t num_users                                               :  6, // [5:0]
41                       reserved_0b                                             :  5, // [10:6]
42                       ltf_size                                                :  2, // [12:11]
43                       reserved_0c                                             :  3, // [15:13]
44                       he_stf_long                                             :  1, // [16:16]
45                       reserved_0d                                             :  7, // [23:17]
46                       num_users_he_sigb_band0                                 :  8; // [31:24]
47              uint32_t num_ltf_symbols                                         :  3, // [2:0]
48                       reserved_1a                                             :  5, // [7:3]
49                       num_users_he_sigb_band1                                 :  8, // [15:8]
50                       reserved_1b                                             : 16; // [31:16]
51              uint32_t packet_extension_a_factor                               :  2, // [1:0]
52                       packet_extension_pe_disambiguity                        :  1, // [2:2]
53                       packet_extension                                        :  3, // [5:3]
54                       reserved                                                :  2, // [7:6]
55                       he_sigb_dcm                                             :  1, // [8:8]
56                       reserved_2b                                             :  7, // [15:9]
57                       he_sigb_compression                                     :  1, // [16:16]
58                       reserved_2c                                             : 15; // [31:17]
59              uint32_t he_sigb_0_mcs                                           :  3, // [2:0]
60                       reserved_3a                                             : 13, // [15:3]
61                       num_he_sigb_sym                                         :  5, // [20:16]
62                       center_ru_0                                             :  1, // [21:21]
63                       center_ru_1                                             :  1, // [22:22]
64                       reserved_3b                                             :  1, // [23:23]
65                       ftm_en                                                  :  1, // [24:24]
66                       pe_nss                                                  :  3, // [27:25]
67                       pe_ltf_size                                             :  2, // [29:28]
68                       pe_content                                              :  1, // [30:30]
69                       pe_chain_csd_en                                         :  1; // [31:31]
70              struct   ru_allocation_160_info                                    ru_allocation_0123_details;
71              struct   ru_allocation_160_info                                    ru_allocation_4567_details;
72              struct   unallocated_ru_160_info                                   ru_allocation_160_0_details;
73              struct   unallocated_ru_160_info                                   ru_allocation_160_1_details;
74              uint32_t num_data_symbols                                        : 16, // [15:0]
75                       ndp_ru_tone_set_index                                   :  7, // [22:16]
76                       ndp_feedback_status                                     :  1, // [23:23]
77                       doppler_indication                                      :  1, // [24:24]
78                       reserved_14a                                            :  7; // [31:25]
79              uint32_t spatial_reuse                                           : 16, // [15:0]
80                       reserved_15a                                            : 16; // [31:16]
81 #else
82              uint32_t num_users_he_sigb_band0                                 :  8, // [31:24]
83                       reserved_0d                                             :  7, // [23:17]
84                       he_stf_long                                             :  1, // [16:16]
85                       reserved_0c                                             :  3, // [15:13]
86                       ltf_size                                                :  2, // [12:11]
87                       reserved_0b                                             :  5, // [10:6]
88                       num_users                                               :  6; // [5:0]
89              uint32_t reserved_1b                                             : 16, // [31:16]
90                       num_users_he_sigb_band1                                 :  8, // [15:8]
91                       reserved_1a                                             :  5, // [7:3]
92                       num_ltf_symbols                                         :  3; // [2:0]
93              uint32_t reserved_2c                                             : 15, // [31:17]
94                       he_sigb_compression                                     :  1, // [16:16]
95                       reserved_2b                                             :  7, // [15:9]
96                       he_sigb_dcm                                             :  1, // [8:8]
97                       reserved                                                :  2, // [7:6]
98                       packet_extension                                        :  3, // [5:3]
99                       packet_extension_pe_disambiguity                        :  1, // [2:2]
100                       packet_extension_a_factor                               :  2; // [1:0]
101              uint32_t pe_chain_csd_en                                         :  1, // [31:31]
102                       pe_content                                              :  1, // [30:30]
103                       pe_ltf_size                                             :  2, // [29:28]
104                       pe_nss                                                  :  3, // [27:25]
105                       ftm_en                                                  :  1, // [24:24]
106                       reserved_3b                                             :  1, // [23:23]
107                       center_ru_1                                             :  1, // [22:22]
108                       center_ru_0                                             :  1, // [21:21]
109                       num_he_sigb_sym                                         :  5, // [20:16]
110                       reserved_3a                                             : 13, // [15:3]
111                       he_sigb_0_mcs                                           :  3; // [2:0]
112              struct   ru_allocation_160_info                                    ru_allocation_0123_details;
113              struct   ru_allocation_160_info                                    ru_allocation_4567_details;
114              struct   unallocated_ru_160_info                                   ru_allocation_160_0_details;
115              struct   unallocated_ru_160_info                                   ru_allocation_160_1_details;
116              uint32_t reserved_14a                                            :  7, // [31:25]
117                       doppler_indication                                      :  1, // [24:24]
118                       ndp_feedback_status                                     :  1, // [23:23]
119                       ndp_ru_tone_set_index                                   :  7, // [22:16]
120                       num_data_symbols                                        : 16; // [15:0]
121              uint32_t reserved_15a                                            : 16, // [31:16]
122                       spatial_reuse                                           : 16; // [15:0]
123 #endif
124 };
125 
126 
127 /* Description		NUM_USERS
128 
129 			The number of users in this transmission
130 
131 			Use this same field for HE-ranging NDP as well.
132 			<legal 1-37>
133 */
134 
135 #define MACTX_USER_DESC_COMMON_NUM_USERS_OFFSET                                     0x0000000000000000
136 #define MACTX_USER_DESC_COMMON_NUM_USERS_LSB                                        0
137 #define MACTX_USER_DESC_COMMON_NUM_USERS_MSB                                        5
138 #define MACTX_USER_DESC_COMMON_NUM_USERS_MASK                                       0x000000000000003f
139 
140 
141 /* Description		RESERVED_0B
142 
143 			<legal 0>
144 */
145 
146 #define MACTX_USER_DESC_COMMON_RESERVED_0B_OFFSET                                   0x0000000000000000
147 #define MACTX_USER_DESC_COMMON_RESERVED_0B_LSB                                      6
148 #define MACTX_USER_DESC_COMMON_RESERVED_0B_MSB                                      10
149 #define MACTX_USER_DESC_COMMON_RESERVED_0B_MASK                                     0x00000000000007c0
150 
151 
152 /* Description		LTF_SIZE
153 
154 			Ltf size
155 
156 			Specify the right LTF-size for HE-Ranging NDPs (11az)/Short-NDP.
157 
158 
159 			<enum 0     ltf_1x >
160 			<enum 1     ltf_2x >
161 			<enum 2     ltf_4x >
162 			<legal 0 - 2>
163 */
164 
165 #define MACTX_USER_DESC_COMMON_LTF_SIZE_OFFSET                                      0x0000000000000000
166 #define MACTX_USER_DESC_COMMON_LTF_SIZE_LSB                                         11
167 #define MACTX_USER_DESC_COMMON_LTF_SIZE_MSB                                         12
168 #define MACTX_USER_DESC_COMMON_LTF_SIZE_MASK                                        0x0000000000001800
169 
170 
171 /* Description		RESERVED_0C
172 
173 			<legal 0>
174 */
175 
176 #define MACTX_USER_DESC_COMMON_RESERVED_0C_OFFSET                                   0x0000000000000000
177 #define MACTX_USER_DESC_COMMON_RESERVED_0C_LSB                                      13
178 #define MACTX_USER_DESC_COMMON_RESERVED_0C_MSB                                      15
179 #define MACTX_USER_DESC_COMMON_RESERVED_0C_MASK                                     0x000000000000e000
180 
181 
182 /* Description		HE_STF_LONG
183 
184 			0: Normal HE STF.
185 			1: Long HE STF
186 
187 			Specify the right STF-size for HE-Ranging NDPs (11az)/Short-NDP.
188 
189 
190 			<legal all>
191 */
192 
193 #define MACTX_USER_DESC_COMMON_HE_STF_LONG_OFFSET                                   0x0000000000000000
194 #define MACTX_USER_DESC_COMMON_HE_STF_LONG_LSB                                      16
195 #define MACTX_USER_DESC_COMMON_HE_STF_LONG_MSB                                      16
196 #define MACTX_USER_DESC_COMMON_HE_STF_LONG_MASK                                     0x0000000000010000
197 
198 
199 /* Description		RESERVED_0D
200 
201 			<legal 0>
202 */
203 
204 #define MACTX_USER_DESC_COMMON_RESERVED_0D_OFFSET                                   0x0000000000000000
205 #define MACTX_USER_DESC_COMMON_RESERVED_0D_LSB                                      17
206 #define MACTX_USER_DESC_COMMON_RESERVED_0D_MSB                                      23
207 #define MACTX_USER_DESC_COMMON_RESERVED_0D_MASK                                     0x0000000000fe0000
208 
209 
210 /* Description		NUM_USERS_HE_SIGB_BAND0
211 
212 			number of users in HE_SIGB_0 or EHT_SIG_0
213 
214 			Note for MAC:
215 			directly from pdg_fes_setup, based on BW
216 			<legal all>
217 */
218 
219 #define MACTX_USER_DESC_COMMON_NUM_USERS_HE_SIGB_BAND0_OFFSET                       0x0000000000000000
220 #define MACTX_USER_DESC_COMMON_NUM_USERS_HE_SIGB_BAND0_LSB                          24
221 #define MACTX_USER_DESC_COMMON_NUM_USERS_HE_SIGB_BAND0_MSB                          31
222 #define MACTX_USER_DESC_COMMON_NUM_USERS_HE_SIGB_BAND0_MASK                         0x00000000ff000000
223 
224 
225 /* Description		NUM_LTF_SYMBOLS
226 
227 			Indicates the number of HE-LTF symbols
228 
229 			0: 1 symbol
230 			1: 2 symbols
231 			2: 3 symbols
232 			3: 4 symbols
233 			4: 5 symbols
234 			5: 6 symbols
235 			6: 7 symbols
236 			7: 8 symbols
237 
238 			NOTE that this encoding is different from what is in "Num_LTF_symbols"
239 			in the HE_SIG_A_MU_DL.
240 
241 			NOTE 2: Not used for HE-Ranging NDPs (11az)
242 			<legal all>
243 */
244 
245 #define MACTX_USER_DESC_COMMON_NUM_LTF_SYMBOLS_OFFSET                               0x0000000000000000
246 #define MACTX_USER_DESC_COMMON_NUM_LTF_SYMBOLS_LSB                                  32
247 #define MACTX_USER_DESC_COMMON_NUM_LTF_SYMBOLS_MSB                                  34
248 #define MACTX_USER_DESC_COMMON_NUM_LTF_SYMBOLS_MASK                                 0x0000000700000000
249 
250 
251 /* Description		RESERVED_1A
252 
253 			<legal 0>
254 */
255 
256 #define MACTX_USER_DESC_COMMON_RESERVED_1A_OFFSET                                   0x0000000000000000
257 #define MACTX_USER_DESC_COMMON_RESERVED_1A_LSB                                      35
258 #define MACTX_USER_DESC_COMMON_RESERVED_1A_MSB                                      39
259 #define MACTX_USER_DESC_COMMON_RESERVED_1A_MASK                                     0x000000f800000000
260 
261 
262 /* Description		NUM_USERS_HE_SIGB_BAND1
263 
264 			number of users in HE_SIGB_1 or EHT_SIG_1
265 
266 			Note for MAC:
267 			directly from pdg_fes_setup, based on BW
268 			For 20Mhz transmission, this is set to 0
269 			<legal all>
270 */
271 
272 #define MACTX_USER_DESC_COMMON_NUM_USERS_HE_SIGB_BAND1_OFFSET                       0x0000000000000000
273 #define MACTX_USER_DESC_COMMON_NUM_USERS_HE_SIGB_BAND1_LSB                          40
274 #define MACTX_USER_DESC_COMMON_NUM_USERS_HE_SIGB_BAND1_MSB                          47
275 #define MACTX_USER_DESC_COMMON_NUM_USERS_HE_SIGB_BAND1_MASK                         0x0000ff0000000000
276 
277 
278 /* Description		RESERVED_1B
279 
280 			<legal 0>
281 */
282 
283 #define MACTX_USER_DESC_COMMON_RESERVED_1B_OFFSET                                   0x0000000000000000
284 #define MACTX_USER_DESC_COMMON_RESERVED_1B_LSB                                      48
285 #define MACTX_USER_DESC_COMMON_RESERVED_1B_MSB                                      63
286 #define MACTX_USER_DESC_COMMON_RESERVED_1B_MASK                                     0xffff000000000000
287 
288 
289 /* Description		PACKET_EXTENSION_A_FACTOR
290 
291 			the packet extension duration of the trigger-based PPDU
292 			response with these two bits indicating the "a-factor"
293 
294 			<enum 0 a_factor_4>
295 			<enum 1 a_factor_1>
296 			<enum 2 a_factor_2>
297 			<enum 3 a_factor_3>
298 
299 			<legal all>
300 */
301 
302 #define MACTX_USER_DESC_COMMON_PACKET_EXTENSION_A_FACTOR_OFFSET                     0x0000000000000008
303 #define MACTX_USER_DESC_COMMON_PACKET_EXTENSION_A_FACTOR_LSB                        0
304 #define MACTX_USER_DESC_COMMON_PACKET_EXTENSION_A_FACTOR_MSB                        1
305 #define MACTX_USER_DESC_COMMON_PACKET_EXTENSION_A_FACTOR_MASK                       0x0000000000000003
306 
307 
308 /* Description		PACKET_EXTENSION_PE_DISAMBIGUITY
309 
310 			the packet extension duration of the trigger-based PPDU
311 			response with this bit indicating the PE-Disambiguity
312 			<legal all>
313 */
314 
315 #define MACTX_USER_DESC_COMMON_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET              0x0000000000000008
316 #define MACTX_USER_DESC_COMMON_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB                 2
317 #define MACTX_USER_DESC_COMMON_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB                 2
318 #define MACTX_USER_DESC_COMMON_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK                0x0000000000000004
319 
320 
321 /* Description		PACKET_EXTENSION
322 
323 			Packet extension size
324 
325 			Specify the right packet extension size for HE-Ranging NDPs
326 			 (11az)/Short-NDP.
327 			<enum 0     packet_ext_0>
328 			<enum 1     packet_ext_4>
329 			<enum 2     packet_ext_8>
330 			<enum 3     packet_ext_12>
331 			<enum 4     packet_ext_16>
332 			<enum 5     packet_ext_20>
333 			<legal 0 - 5>
334 */
335 
336 #define MACTX_USER_DESC_COMMON_PACKET_EXTENSION_OFFSET                              0x0000000000000008
337 #define MACTX_USER_DESC_COMMON_PACKET_EXTENSION_LSB                                 3
338 #define MACTX_USER_DESC_COMMON_PACKET_EXTENSION_MSB                                 5
339 #define MACTX_USER_DESC_COMMON_PACKET_EXTENSION_MASK                                0x0000000000000038
340 
341 
342 /* Description		RESERVED
343 
344 			<legal 0>
345 */
346 
347 #define MACTX_USER_DESC_COMMON_RESERVED_OFFSET                                      0x0000000000000008
348 #define MACTX_USER_DESC_COMMON_RESERVED_LSB                                         6
349 #define MACTX_USER_DESC_COMMON_RESERVED_MSB                                         7
350 #define MACTX_USER_DESC_COMMON_RESERVED_MASK                                        0x00000000000000c0
351 
352 
353 /* Description		HE_SIGB_DCM
354 
355 			Indicates whether dual sub-carrier modulation is applied
356 			 to HE-SIG-B or EHT-SIG
357 			<legal all>
358 */
359 
360 #define MACTX_USER_DESC_COMMON_HE_SIGB_DCM_OFFSET                                   0x0000000000000008
361 #define MACTX_USER_DESC_COMMON_HE_SIGB_DCM_LSB                                      8
362 #define MACTX_USER_DESC_COMMON_HE_SIGB_DCM_MSB                                      8
363 #define MACTX_USER_DESC_COMMON_HE_SIGB_DCM_MASK                                     0x0000000000000100
364 
365 
366 /* Description		RESERVED_2B
367 
368 			<legal 0>
369 */
370 
371 #define MACTX_USER_DESC_COMMON_RESERVED_2B_OFFSET                                   0x0000000000000008
372 #define MACTX_USER_DESC_COMMON_RESERVED_2B_LSB                                      9
373 #define MACTX_USER_DESC_COMMON_RESERVED_2B_MSB                                      15
374 #define MACTX_USER_DESC_COMMON_RESERVED_2B_MASK                                     0x000000000000fe00
375 
376 
377 /* Description		HE_SIGB_COMPRESSION
378 
379 			Indicates the compression mode of HE-SIG-B or EHT-SIG
380 			<legal all>
381 */
382 
383 #define MACTX_USER_DESC_COMMON_HE_SIGB_COMPRESSION_OFFSET                           0x0000000000000008
384 #define MACTX_USER_DESC_COMMON_HE_SIGB_COMPRESSION_LSB                              16
385 #define MACTX_USER_DESC_COMMON_HE_SIGB_COMPRESSION_MSB                              16
386 #define MACTX_USER_DESC_COMMON_HE_SIGB_COMPRESSION_MASK                             0x0000000000010000
387 
388 
389 /* Description		RESERVED_2C
390 
391 			<legal 0>
392 */
393 
394 #define MACTX_USER_DESC_COMMON_RESERVED_2C_OFFSET                                   0x0000000000000008
395 #define MACTX_USER_DESC_COMMON_RESERVED_2C_LSB                                      17
396 #define MACTX_USER_DESC_COMMON_RESERVED_2C_MSB                                      31
397 #define MACTX_USER_DESC_COMMON_RESERVED_2C_MASK                                     0x00000000fffe0000
398 
399 
400 /* Description		HE_SIGB_0_MCS
401 
402 			Note: stbc setting is indicated in the MACTX_PHY_DESC.
403 
404 			Indicates the MCS of HE-SIG-B or EHT-SIG.
405 
406 			For details, refer to  MCS_TYPE description
407 			<legal all>
408 */
409 
410 #define MACTX_USER_DESC_COMMON_HE_SIGB_0_MCS_OFFSET                                 0x0000000000000008
411 #define MACTX_USER_DESC_COMMON_HE_SIGB_0_MCS_LSB                                    32
412 #define MACTX_USER_DESC_COMMON_HE_SIGB_0_MCS_MSB                                    34
413 #define MACTX_USER_DESC_COMMON_HE_SIGB_0_MCS_MASK                                   0x0000000700000000
414 
415 
416 /* Description		RESERVED_3A
417 
418 			<legal 0>
419 */
420 
421 #define MACTX_USER_DESC_COMMON_RESERVED_3A_OFFSET                                   0x0000000000000008
422 #define MACTX_USER_DESC_COMMON_RESERVED_3A_LSB                                      35
423 #define MACTX_USER_DESC_COMMON_RESERVED_3A_MSB                                      47
424 #define MACTX_USER_DESC_COMMON_RESERVED_3A_MASK                                     0x0000fff800000000
425 
426 
427 /* Description		NUM_HE_SIGB_SYM
428 
429 			This field is valid only when (MACTX_PHY_DESC.pkt_type==11ax
430 			 or MACTX_PHY_DESC.pkt_type == 11be)
431 
432 			Indicates the number of HE-SIG-B or EHT-SIG symbols
433 
434 			This field is 0-based with 0 indicating that 1 he_sigb/eht_sig
435 			 symbol needs to be transmitted
436 			<legal all>
437 */
438 
439 #define MACTX_USER_DESC_COMMON_NUM_HE_SIGB_SYM_OFFSET                               0x0000000000000008
440 #define MACTX_USER_DESC_COMMON_NUM_HE_SIGB_SYM_LSB                                  48
441 #define MACTX_USER_DESC_COMMON_NUM_HE_SIGB_SYM_MSB                                  52
442 #define MACTX_USER_DESC_COMMON_NUM_HE_SIGB_SYM_MASK                                 0x001f000000000000
443 
444 
445 /* Description		CENTER_RU_0
446 
447 			Field only valid for 11ax transmission with a BW of 80Mhz
448 			 or 160 Mhz
449 
450 			Indicates whether the Center RU is occupied in the lower
451 			 80 MHz band. This is part of HE_SIGB content channel 1
452 
453 			0: center RU is NOT used
454 			1: center RU is used
455 
456 			NOTE: EHT is not expected to use the center RU.
457 
458 			<legal all>
459 */
460 
461 #define MACTX_USER_DESC_COMMON_CENTER_RU_0_OFFSET                                   0x0000000000000008
462 #define MACTX_USER_DESC_COMMON_CENTER_RU_0_LSB                                      53
463 #define MACTX_USER_DESC_COMMON_CENTER_RU_0_MSB                                      53
464 #define MACTX_USER_DESC_COMMON_CENTER_RU_0_MASK                                     0x0020000000000000
465 
466 
467 /* Description		CENTER_RU_1
468 
469 			Field only valid for 11ax transmission with a BW of 160
470 			Mhz (or 80 + 80)
471 
472 			Indicates whether the Center RU is occupied in the upper
473 			 80 MHz band. This is part of HE_SIGB content channel 1
474 
475 			0: center RU is NOT used
476 			1: center RU is used
477 
478 			NOTE: EHT is not expected to use the center RU.
479 
480 			<legal all>
481 */
482 
483 #define MACTX_USER_DESC_COMMON_CENTER_RU_1_OFFSET                                   0x0000000000000008
484 #define MACTX_USER_DESC_COMMON_CENTER_RU_1_LSB                                      54
485 #define MACTX_USER_DESC_COMMON_CENTER_RU_1_MSB                                      54
486 #define MACTX_USER_DESC_COMMON_CENTER_RU_1_MASK                                     0x0040000000000000
487 
488 
489 /* Description		RESERVED_3B
490 
491 			<legal 0>
492 */
493 
494 #define MACTX_USER_DESC_COMMON_RESERVED_3B_OFFSET                                   0x0000000000000008
495 #define MACTX_USER_DESC_COMMON_RESERVED_3B_LSB                                      55
496 #define MACTX_USER_DESC_COMMON_RESERVED_3B_MSB                                      55
497 #define MACTX_USER_DESC_COMMON_RESERVED_3B_MASK                                     0x0080000000000000
498 
499 
500 /* Description		FTM_EN
501 
502 			This field is set to 1 if the present packet is either an
503 			 FTM_1 or an FTM_2 packet or an HE-Ranging NDP (11az).
504 
505 			0: non-FTM frame
506 			1: FTM or HE-Ranging NDP Frame
507 			<legal all>
508 */
509 
510 #define MACTX_USER_DESC_COMMON_FTM_EN_OFFSET                                        0x0000000000000008
511 #define MACTX_USER_DESC_COMMON_FTM_EN_LSB                                           56
512 #define MACTX_USER_DESC_COMMON_FTM_EN_MSB                                           56
513 #define MACTX_USER_DESC_COMMON_FTM_EN_MASK                                          0x0100000000000000
514 
515 
516 /* Description		PE_NSS
517 
518 			Number of active spatial streams during packet extension.
519 
520 
521 			<enum 0 1_spatial_stream>Single spatial stream
522 			<enum 1 2_spatial_streams>2 spatial streams
523 			<enum 2 3_spatial_streams>3 spatial streams
524 			<enum 3 4_spatial_streams>4 spatial streams
525 			<enum 4 5_spatial_streams>5 spatial streams
526 			<enum 5 6_spatial_streams>6 spatial streams
527 			<enum 6 7_spatial_streams>7 spatial streams
528 			<enum 7 8_spatial_streams>8 spatial streams
529 */
530 
531 #define MACTX_USER_DESC_COMMON_PE_NSS_OFFSET                                        0x0000000000000008
532 #define MACTX_USER_DESC_COMMON_PE_NSS_LSB                                           57
533 #define MACTX_USER_DESC_COMMON_PE_NSS_MSB                                           59
534 #define MACTX_USER_DESC_COMMON_PE_NSS_MASK                                          0x0e00000000000000
535 
536 
537 /* Description		PE_LTF_SIZE
538 
539 			LTF size to be used during packet extention. . This field
540 			 is valid for both FTM and non-FTM packets.
541 			0-1x
542 			1-2x (unsupported un HWK-1)
543 			2-4x (unsupported un HWK-1)
544 			<legal all>
545 */
546 
547 #define MACTX_USER_DESC_COMMON_PE_LTF_SIZE_OFFSET                                   0x0000000000000008
548 #define MACTX_USER_DESC_COMMON_PE_LTF_SIZE_LSB                                      60
549 #define MACTX_USER_DESC_COMMON_PE_LTF_SIZE_MSB                                      61
550 #define MACTX_USER_DESC_COMMON_PE_LTF_SIZE_MASK                                     0x3000000000000000
551 
552 
553 /* Description		PE_CONTENT
554 
555 			Content of packet extension. Valid for all 11ax packets
556 			having packet extension
557 
558 			0-he_ltf, 1-last_data_symbol
559 			<legal all>
560 */
561 
562 #define MACTX_USER_DESC_COMMON_PE_CONTENT_OFFSET                                    0x0000000000000008
563 #define MACTX_USER_DESC_COMMON_PE_CONTENT_LSB                                       62
564 #define MACTX_USER_DESC_COMMON_PE_CONTENT_MSB                                       62
565 #define MACTX_USER_DESC_COMMON_PE_CONTENT_MASK                                      0x4000000000000000
566 
567 
568 /* Description		PE_CHAIN_CSD_EN
569 
570 			This field denotes whether to apply CSD on the packet extension
571 			 portion of the packet. This field is valid for all 11ax
572 			 packets.
573 			0: disable per-chain csd
574 			1: enable per-chain csd
575 			<legal all>
576 */
577 
578 #define MACTX_USER_DESC_COMMON_PE_CHAIN_CSD_EN_OFFSET                               0x0000000000000008
579 #define MACTX_USER_DESC_COMMON_PE_CHAIN_CSD_EN_LSB                                  63
580 #define MACTX_USER_DESC_COMMON_PE_CHAIN_CSD_EN_MSB                                  63
581 #define MACTX_USER_DESC_COMMON_PE_CHAIN_CSD_EN_MASK                                 0x8000000000000000
582 
583 
584 /* Description		RU_ALLOCATION_0123_DETAILS
585 
586 			See detailed description of the STRUCT.
587 */
588 
589 
590 /* Description		RU_ALLOCATION_BAND0_0
591 
592 			Field not used for MIMO
593 
594 			Indicates RU arrangement in frequency domain. RU allocated
595 			 for MU-MIMO, and number of users in the MU-MIMO.
596 			0 - valid for HE_20/HE_40/HE_80/HE_160/ EHT_20/EHT_40/EHT_80/EHT_160/
597 			EHT_240/EHT_320
598 			1 - valid for HE_80/HE_160 (80+80)/ EHT_80/EHT_160/EHT_240/EHT_320
599 
600 			2 - valid for HE_160 (80+80)/ EHT_160/EHT_240/EHT_320
601 			3 - valid for HE_160 (80+80)/ EHT_160/EHT_240/EHT_320
602 
603 			The four bands are for HE_SIGB0 & B1 respectively or for
604 			 EHT_SIG0, EHT_SIG1, EHT_SIG2 & EHT_SIG3 respectively.
605 
606 			valid for HE_20/HE_40/HE_80/HE_160/ EHT_20/EHT_40/EHT_80/EHT_160/
607 			EHT_240/EHT_320 packets and denotes RU-map of the first
608 			20MHz band of HE_SIGB0 or EHT_SIG0
609 			<legal all>
610 */
611 
612 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_0_OFFSET 0x0000000000000010
613 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_0_LSB 0
614 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_0_MSB 8
615 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_0_MASK 0x00000000000001ff
616 
617 
618 /* Description		RU_ALLOCATION_BAND0_1
619 
620 			Field not used for MIMO
621 
622 			See description of ru_allocation_band0_0
623 
624 			valid for HE_80/HE_160/ EHT_80/EHT_160/EHT_240/EHT_320 packets
625 			 and denotes RU-map of the second 20MHz band of HE_SIGB0
626 			 or EHT_SIG0
627 */
628 
629 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_1_OFFSET 0x0000000000000010
630 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_1_LSB 9
631 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_1_MSB 17
632 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_1_MASK 0x000000000003fe00
633 
634 
635 /* Description		RESERVED_0A
636 
637 			<legal 0>
638 */
639 
640 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_0A_OFFSET        0x0000000000000010
641 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_0A_LSB           18
642 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_0A_MSB           23
643 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_0A_MASK          0x0000000000fc0000
644 
645 
646 /* Description		RU_ALLOCATIONS_01_SUBBAND80_MASK
647 
648 			Field not used for HE
649 
650 			Indicates what 80 MHz subbands 'ru_allocation_band{0, 1}_{0,
651 			1}' are valid for
652 			Bit 0: lowest 80 MHz
653 			Bit 1: 2nd lowest 80 MHz
654 			Bit 2: 2nd highest 80 MHz
655 			Bit 3: highest 80 MHz
656 
657 			In other 80 MHz subbands PHY microcode should override these
658 			 with 'zero-user RU996.'
659 			<legal all>
660 */
661 
662 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATIONS_01_SUBBAND80_MASK_OFFSET 0x0000000000000010
663 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATIONS_01_SUBBAND80_MASK_LSB 24
664 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATIONS_01_SUBBAND80_MASK_MSB 27
665 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATIONS_01_SUBBAND80_MASK_MASK 0x000000000f000000
666 
667 
668 /* Description		RU_ALLOCATIONS_23_SUBBAND80_MASK
669 
670 			Field not used for HE
671 
672 			Indicates what 80 MHz subbands 'ru_allocation_band{0, 1}_{2,
673 			3}' are valid for
674 			Bit 0: lowest 80 MHz
675 			Bit 1: 2nd lowest 80 MHz
676 			Bit 2: 2nd highest 80 MHz
677 			Bit 3: highest 80 MHz
678 
679 			In other 80 MHz subbands PHY microcode should override these
680 			 with 'zero-user RU996.'
681 			<legal all>
682 */
683 
684 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATIONS_23_SUBBAND80_MASK_OFFSET 0x0000000000000010
685 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATIONS_23_SUBBAND80_MASK_LSB 28
686 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATIONS_23_SUBBAND80_MASK_MSB 31
687 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATIONS_23_SUBBAND80_MASK_MASK 0x00000000f0000000
688 
689 
690 /* Description		RU_ALLOCATION_BAND0_2
691 
692 			Field not used for MIMO
693 
694 			See description of ru_allocation_band0_0
695 
696 			valid for HE_160/ EHT_160/EHT_240/EHT_320 packets and denotes
697 			 RU-map of the third 20MHz band of HE_SIGB0 or EHT_SIG0
698 */
699 
700 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_2_OFFSET 0x0000000000000010
701 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_2_LSB 32
702 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_2_MSB 40
703 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_2_MASK 0x000001ff00000000
704 
705 
706 /* Description		RU_ALLOCATION_BAND0_3
707 
708 			Field not used for MIMO
709 
710 			See description of ru_allocation_band0_0
711 
712 			valid for HE_160/ EHT_160/EHT_240/EHT_320 packets and denotes
713 			 RU-map of the fourth 20MHz band of HE_SIGB0 or EHT_SIG0
714 
715 */
716 
717 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_3_OFFSET 0x0000000000000010
718 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_3_LSB 41
719 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_3_MSB 49
720 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND0_3_MASK 0x0003fe0000000000
721 
722 
723 /* Description		RESERVED_1A
724 
725 			<legal 0>
726 */
727 
728 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_1A_OFFSET        0x0000000000000010
729 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_1A_LSB           50
730 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_1A_MSB           63
731 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_1A_MASK          0xfffc000000000000
732 
733 
734 /* Description		RU_ALLOCATION_BAND1_0
735 
736 			Field not used for MIMO
737 
738 			See description of ru_allocation_band0_0
739 
740 			valid for HE_40/HE_80/HE_160/ EHT_40/EHT_80/EHT_160/ EHT_240/EHT_320
741 			 packets and denotes RU-map of the first 20MHz band of HE_SIGB1
742 			 or EHT_SIG1
743 */
744 
745 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_0_OFFSET 0x0000000000000018
746 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_0_LSB 0
747 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_0_MSB 8
748 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_0_MASK 0x00000000000001ff
749 
750 
751 /* Description		RU_ALLOCATION_BAND1_1
752 
753 			Field not used for MIMO
754 
755 			See description of ru_allocation_band0_0
756 
757 			valid for HE_80/HE_160/ EHT_80/EHT_160/EHT_240/EHT_320 packets
758 			 and denotes RU-map of the second 20MHz band of HE_SIGB1
759 			 or EHT_SIG1
760 */
761 
762 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_1_OFFSET 0x0000000000000018
763 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_1_LSB 9
764 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_1_MSB 17
765 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_1_MASK 0x000000000003fe00
766 
767 
768 /* Description		RESERVED_2A
769 
770 			<legal 0>
771 */
772 
773 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_2A_OFFSET        0x0000000000000018
774 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_2A_LSB           18
775 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_2A_MSB           31
776 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_2A_MASK          0x00000000fffc0000
777 
778 
779 /* Description		RU_ALLOCATION_BAND1_2
780 
781 			Field not used for MIMO
782 
783 			See description of ru_allocation_band0_0
784 
785 			valid for HE_160/ EHT_160/EHT_240/EHT_320 packets and denotes
786 			 RU-map of the third 20MHz band of HE_SIGB1 or EHT_SIG1
787 */
788 
789 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_2_OFFSET 0x0000000000000018
790 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_2_LSB 32
791 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_2_MSB 40
792 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_2_MASK 0x000001ff00000000
793 
794 
795 /* Description		RU_ALLOCATION_BAND1_3
796 
797 			Field not used for MIMO
798 
799 			See description of ru_allocation_band0_0
800 
801 			valid for HE_160/ EHT_160/EHT_240/EHT_320 packets and denotes
802 			 RU-map of the fourth 20MHz band of HE_SIGB1 or EHT_SIG1
803 
804 */
805 
806 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_3_OFFSET 0x0000000000000018
807 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_3_LSB 41
808 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_3_MSB 49
809 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RU_ALLOCATION_BAND1_3_MASK 0x0003fe0000000000
810 
811 
812 /* Description		RESERVED_3A
813 
814 			<legal 0>
815 */
816 
817 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_3A_OFFSET        0x0000000000000018
818 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_3A_LSB           50
819 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_3A_MSB           63
820 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_0123_DETAILS_RESERVED_3A_MASK          0xfffc000000000000
821 
822 
823 /* Description		RU_ALLOCATION_4567_DETAILS
824 
825 			See detailed description of the STRUCT.
826 
827 			Valid for EHT_240/EHT_320 packets and denotes RU-map of
828 			the fifth/sixth/sevent/eighth 20MHz bands of EHT_SIG0/EHT_SIG1
829 
830 */
831 
832 
833 /* Description		RU_ALLOCATION_BAND0_0
834 
835 			Field not used for MIMO
836 
837 			Indicates RU arrangement in frequency domain. RU allocated
838 			 for MU-MIMO, and number of users in the MU-MIMO.
839 			0 - valid for HE_20/HE_40/HE_80/HE_160/ EHT_20/EHT_40/EHT_80/EHT_160/
840 			EHT_240/EHT_320
841 			1 - valid for HE_80/HE_160 (80+80)/ EHT_80/EHT_160/EHT_240/EHT_320
842 
843 			2 - valid for HE_160 (80+80)/ EHT_160/EHT_240/EHT_320
844 			3 - valid for HE_160 (80+80)/ EHT_160/EHT_240/EHT_320
845 
846 			The four bands are for HE_SIGB0 & B1 respectively or for
847 			 EHT_SIG0, EHT_SIG1, EHT_SIG2 & EHT_SIG3 respectively.
848 
849 			valid for HE_20/HE_40/HE_80/HE_160/ EHT_20/EHT_40/EHT_80/EHT_160/
850 			EHT_240/EHT_320 packets and denotes RU-map of the first
851 			20MHz band of HE_SIGB0 or EHT_SIG0
852 			<legal all>
853 */
854 
855 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_0_OFFSET 0x0000000000000020
856 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_0_LSB 0
857 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_0_MSB 8
858 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_0_MASK 0x00000000000001ff
859 
860 
861 /* Description		RU_ALLOCATION_BAND0_1
862 
863 			Field not used for MIMO
864 
865 			See description of ru_allocation_band0_0
866 
867 			valid for HE_80/HE_160/ EHT_80/EHT_160/EHT_240/EHT_320 packets
868 			 and denotes RU-map of the second 20MHz band of HE_SIGB0
869 			 or EHT_SIG0
870 */
871 
872 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_1_OFFSET 0x0000000000000020
873 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_1_LSB 9
874 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_1_MSB 17
875 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_1_MASK 0x000000000003fe00
876 
877 
878 /* Description		RESERVED_0A
879 
880 			<legal 0>
881 */
882 
883 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_0A_OFFSET        0x0000000000000020
884 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_0A_LSB           18
885 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_0A_MSB           23
886 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_0A_MASK          0x0000000000fc0000
887 
888 
889 /* Description		RU_ALLOCATIONS_01_SUBBAND80_MASK
890 
891 			Field not used for HE
892 
893 			Indicates what 80 MHz subbands 'ru_allocation_band{0, 1}_{0,
894 			1}' are valid for
895 			Bit 0: lowest 80 MHz
896 			Bit 1: 2nd lowest 80 MHz
897 			Bit 2: 2nd highest 80 MHz
898 			Bit 3: highest 80 MHz
899 
900 			In other 80 MHz subbands PHY microcode should override these
901 			 with 'zero-user RU996.'
902 			<legal all>
903 */
904 
905 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATIONS_01_SUBBAND80_MASK_OFFSET 0x0000000000000020
906 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATIONS_01_SUBBAND80_MASK_LSB 24
907 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATIONS_01_SUBBAND80_MASK_MSB 27
908 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATIONS_01_SUBBAND80_MASK_MASK 0x000000000f000000
909 
910 
911 /* Description		RU_ALLOCATIONS_23_SUBBAND80_MASK
912 
913 			Field not used for HE
914 
915 			Indicates what 80 MHz subbands 'ru_allocation_band{0, 1}_{2,
916 			3}' are valid for
917 			Bit 0: lowest 80 MHz
918 			Bit 1: 2nd lowest 80 MHz
919 			Bit 2: 2nd highest 80 MHz
920 			Bit 3: highest 80 MHz
921 
922 			In other 80 MHz subbands PHY microcode should override these
923 			 with 'zero-user RU996.'
924 			<legal all>
925 */
926 
927 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATIONS_23_SUBBAND80_MASK_OFFSET 0x0000000000000020
928 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATIONS_23_SUBBAND80_MASK_LSB 28
929 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATIONS_23_SUBBAND80_MASK_MSB 31
930 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATIONS_23_SUBBAND80_MASK_MASK 0x00000000f0000000
931 
932 
933 /* Description		RU_ALLOCATION_BAND0_2
934 
935 			Field not used for MIMO
936 
937 			See description of ru_allocation_band0_0
938 
939 			valid for HE_160/ EHT_160/EHT_240/EHT_320 packets and denotes
940 			 RU-map of the third 20MHz band of HE_SIGB0 or EHT_SIG0
941 */
942 
943 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_2_OFFSET 0x0000000000000020
944 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_2_LSB 32
945 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_2_MSB 40
946 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_2_MASK 0x000001ff00000000
947 
948 
949 /* Description		RU_ALLOCATION_BAND0_3
950 
951 			Field not used for MIMO
952 
953 			See description of ru_allocation_band0_0
954 
955 			valid for HE_160/ EHT_160/EHT_240/EHT_320 packets and denotes
956 			 RU-map of the fourth 20MHz band of HE_SIGB0 or EHT_SIG0
957 
958 */
959 
960 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_3_OFFSET 0x0000000000000020
961 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_3_LSB 41
962 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_3_MSB 49
963 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND0_3_MASK 0x0003fe0000000000
964 
965 
966 /* Description		RESERVED_1A
967 
968 			<legal 0>
969 */
970 
971 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_1A_OFFSET        0x0000000000000020
972 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_1A_LSB           50
973 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_1A_MSB           63
974 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_1A_MASK          0xfffc000000000000
975 
976 
977 /* Description		RU_ALLOCATION_BAND1_0
978 
979 			Field not used for MIMO
980 
981 			See description of ru_allocation_band0_0
982 
983 			valid for HE_40/HE_80/HE_160/ EHT_40/EHT_80/EHT_160/ EHT_240/EHT_320
984 			 packets and denotes RU-map of the first 20MHz band of HE_SIGB1
985 			 or EHT_SIG1
986 */
987 
988 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_0_OFFSET 0x0000000000000028
989 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_0_LSB 0
990 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_0_MSB 8
991 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_0_MASK 0x00000000000001ff
992 
993 
994 /* Description		RU_ALLOCATION_BAND1_1
995 
996 			Field not used for MIMO
997 
998 			See description of ru_allocation_band0_0
999 
1000 			valid for HE_80/HE_160/ EHT_80/EHT_160/EHT_240/EHT_320 packets
1001 			 and denotes RU-map of the second 20MHz band of HE_SIGB1
1002 			 or EHT_SIG1
1003 */
1004 
1005 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_1_OFFSET 0x0000000000000028
1006 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_1_LSB 9
1007 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_1_MSB 17
1008 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_1_MASK 0x000000000003fe00
1009 
1010 
1011 /* Description		RESERVED_2A
1012 
1013 			<legal 0>
1014 */
1015 
1016 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_2A_OFFSET        0x0000000000000028
1017 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_2A_LSB           18
1018 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_2A_MSB           31
1019 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_2A_MASK          0x00000000fffc0000
1020 
1021 
1022 /* Description		RU_ALLOCATION_BAND1_2
1023 
1024 			Field not used for MIMO
1025 
1026 			See description of ru_allocation_band0_0
1027 
1028 			valid for HE_160/ EHT_160/EHT_240/EHT_320 packets and denotes
1029 			 RU-map of the third 20MHz band of HE_SIGB1 or EHT_SIG1
1030 */
1031 
1032 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_2_OFFSET 0x0000000000000028
1033 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_2_LSB 32
1034 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_2_MSB 40
1035 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_2_MASK 0x000001ff00000000
1036 
1037 
1038 /* Description		RU_ALLOCATION_BAND1_3
1039 
1040 			Field not used for MIMO
1041 
1042 			See description of ru_allocation_band0_0
1043 
1044 			valid for HE_160/ EHT_160/EHT_240/EHT_320 packets and denotes
1045 			 RU-map of the fourth 20MHz band of HE_SIGB1 or EHT_SIG1
1046 
1047 */
1048 
1049 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_3_OFFSET 0x0000000000000028
1050 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_3_LSB 41
1051 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_3_MSB 49
1052 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RU_ALLOCATION_BAND1_3_MASK 0x0003fe0000000000
1053 
1054 
1055 /* Description		RESERVED_3A
1056 
1057 			<legal 0>
1058 */
1059 
1060 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_3A_OFFSET        0x0000000000000028
1061 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_3A_LSB           50
1062 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_3A_MSB           63
1063 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_4567_DETAILS_RESERVED_3A_MASK          0xfffc000000000000
1064 
1065 
1066 /* Description		RU_ALLOCATION_160_0_DETAILS
1067 
1068 			See detailed description of the STRUCT.
1069 */
1070 
1071 
1072 /* Description		SUBBAND80_0_CC0
1073 
1074 			Number of STA_ID=2046 HE-SIG-B/EHT-SIG user fields microcode
1075 			 should generate for content channel 0 (HE_SIGB0 or EHT_SIG0)
1076 			for the lower 80 MHz
1077 
1078 			Valid for HE_20/HE_40/HE_80/HE_160/ EHT_20/EHT_40/EHT_80/EHT_160/
1079 			EHT_240/EHT_320
1080 			<legal all>
1081 */
1082 
1083 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_0_CC0_OFFSET   0x0000000000000030
1084 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_0_CC0_LSB      0
1085 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_0_CC0_MSB      7
1086 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_0_CC0_MASK     0x00000000000000ff
1087 
1088 
1089 /* Description		SUBBAND80_0_CC1
1090 
1091 			Number of STA_ID=2046 HE-SIG-B/EHT-SIG user fields microcode
1092 			 should generate for content channel 1 (HE_SIGB1 or EHT_SIG1)
1093 			for the lower 80 MHz
1094 
1095 			Valid for HE_40/HE_80/HE_160 (80+80)/ EHT_40/EHT_80/EHT_160/EHT_240/EHT_320
1096 
1097 			<legal all>
1098 */
1099 
1100 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_0_CC1_OFFSET   0x0000000000000030
1101 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_0_CC1_LSB      8
1102 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_0_CC1_MSB      15
1103 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_0_CC1_MASK     0x000000000000ff00
1104 
1105 
1106 /* Description		SUBBAND80_1_CC0
1107 
1108 			Number of STA_ID=2046 HE-SIG-B/EHT-SIG user fields microcode
1109 			 should generate for content channel 0 (HE_SIGB0 or EHT_SIG0)
1110 			for the higher 80 MHz
1111 
1112 			Valid for EHT_160/EHT_240/EHT_320
1113 			All 80 MHz subbands are identical for HE_160 (80+80).
1114 			<legal all>
1115 */
1116 
1117 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_1_CC0_OFFSET   0x0000000000000030
1118 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_1_CC0_LSB      16
1119 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_1_CC0_MSB      23
1120 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_1_CC0_MASK     0x0000000000ff0000
1121 
1122 
1123 /* Description		SUBBAND80_1_CC1
1124 
1125 			Number of STA_ID=2046 HE-SIG-B/EHT-SIG user fields microcode
1126 			 should generate for content channel 1 (HE_SIGB1 or EHT_SIG1)
1127 			for the higher 80 MHz
1128 
1129 			Valid for EHT_160/EHT_240/EHT_320
1130 			All 80 MHz subbands are identical for HE_160 (80+80).
1131 			<legal all>
1132 */
1133 
1134 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_1_CC1_OFFSET   0x0000000000000030
1135 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_1_CC1_LSB      24
1136 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_1_CC1_MSB      31
1137 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_0_DETAILS_SUBBAND80_1_CC1_MASK     0x00000000ff000000
1138 
1139 
1140 /* Description		RU_ALLOCATION_160_1_DETAILS
1141 
1142 			See detailed description of the STRUCT.
1143 
1144 			Valid for EHT_240/EHT_320
1145 */
1146 
1147 
1148 /* Description		SUBBAND80_0_CC0
1149 
1150 			Number of STA_ID=2046 HE-SIG-B/EHT-SIG user fields microcode
1151 			 should generate for content channel 0 (HE_SIGB0 or EHT_SIG0)
1152 			for the lower 80 MHz
1153 
1154 			Valid for HE_20/HE_40/HE_80/HE_160/ EHT_20/EHT_40/EHT_80/EHT_160/
1155 			EHT_240/EHT_320
1156 			<legal all>
1157 */
1158 
1159 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_0_CC0_OFFSET   0x0000000000000030
1160 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_0_CC0_LSB      32
1161 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_0_CC0_MSB      39
1162 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_0_CC0_MASK     0x000000ff00000000
1163 
1164 
1165 /* Description		SUBBAND80_0_CC1
1166 
1167 			Number of STA_ID=2046 HE-SIG-B/EHT-SIG user fields microcode
1168 			 should generate for content channel 1 (HE_SIGB1 or EHT_SIG1)
1169 			for the lower 80 MHz
1170 
1171 			Valid for HE_40/HE_80/HE_160 (80+80)/ EHT_40/EHT_80/EHT_160/EHT_240/EHT_320
1172 
1173 			<legal all>
1174 */
1175 
1176 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_0_CC1_OFFSET   0x0000000000000030
1177 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_0_CC1_LSB      40
1178 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_0_CC1_MSB      47
1179 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_0_CC1_MASK     0x0000ff0000000000
1180 
1181 
1182 /* Description		SUBBAND80_1_CC0
1183 
1184 			Number of STA_ID=2046 HE-SIG-B/EHT-SIG user fields microcode
1185 			 should generate for content channel 0 (HE_SIGB0 or EHT_SIG0)
1186 			for the higher 80 MHz
1187 
1188 			Valid for EHT_160/EHT_240/EHT_320
1189 			All 80 MHz subbands are identical for HE_160 (80+80).
1190 			<legal all>
1191 */
1192 
1193 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_1_CC0_OFFSET   0x0000000000000030
1194 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_1_CC0_LSB      48
1195 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_1_CC0_MSB      55
1196 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_1_CC0_MASK     0x00ff000000000000
1197 
1198 
1199 /* Description		SUBBAND80_1_CC1
1200 
1201 			Number of STA_ID=2046 HE-SIG-B/EHT-SIG user fields microcode
1202 			 should generate for content channel 1 (HE_SIGB1 or EHT_SIG1)
1203 			for the higher 80 MHz
1204 
1205 			Valid for EHT_160/EHT_240/EHT_320
1206 			All 80 MHz subbands are identical for HE_160 (80+80).
1207 			<legal all>
1208 */
1209 
1210 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_1_CC1_OFFSET   0x0000000000000030
1211 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_1_CC1_LSB      56
1212 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_1_CC1_MSB      63
1213 #define MACTX_USER_DESC_COMMON_RU_ALLOCATION_160_1_DETAILS_SUBBAND80_1_CC1_MASK     0xff00000000000000
1214 
1215 
1216 /* Description		NUM_DATA_SYMBOLS
1217 
1218 			The number of data symbols in the upcoming transmission.
1219 
1220 
1221 			This does not include PE_LTF. Also for STBC packets this
1222 			 has to be an even number.
1223 
1224 			NOTE: Napier and Hastings80 MAC might not handle LDPC extra
1225 			 symbol and/or padding for STBC to make this an even number.
1226 
1227 */
1228 
1229 #define MACTX_USER_DESC_COMMON_NUM_DATA_SYMBOLS_OFFSET                              0x0000000000000038
1230 #define MACTX_USER_DESC_COMMON_NUM_DATA_SYMBOLS_LSB                                 0
1231 #define MACTX_USER_DESC_COMMON_NUM_DATA_SYMBOLS_MSB                                 15
1232 #define MACTX_USER_DESC_COMMON_NUM_DATA_SYMBOLS_MASK                                0x000000000000ffff
1233 
1234 
1235 /* Description		NDP_RU_TONE_SET_INDEX
1236 
1237 			Determines the RU tone set (1 - 72) to use for Short-NDP
1238 			 feedback
1239 
1240 			Can be set to 0 for frames other than Short-NDP
1241 			<legal 0-72>
1242 */
1243 
1244 #define MACTX_USER_DESC_COMMON_NDP_RU_TONE_SET_INDEX_OFFSET                         0x0000000000000038
1245 #define MACTX_USER_DESC_COMMON_NDP_RU_TONE_SET_INDEX_LSB                            16
1246 #define MACTX_USER_DESC_COMMON_NDP_RU_TONE_SET_INDEX_MSB                            22
1247 #define MACTX_USER_DESC_COMMON_NDP_RU_TONE_SET_INDEX_MASK                           0x00000000007f0000
1248 
1249 
1250 /* Description		NDP_FEEDBACK_STATUS
1251 
1252 			Determines the feedback value for Short-NDP
1253 			<legal 0-1>
1254 */
1255 
1256 #define MACTX_USER_DESC_COMMON_NDP_FEEDBACK_STATUS_OFFSET                           0x0000000000000038
1257 #define MACTX_USER_DESC_COMMON_NDP_FEEDBACK_STATUS_LSB                              23
1258 #define MACTX_USER_DESC_COMMON_NDP_FEEDBACK_STATUS_MSB                              23
1259 #define MACTX_USER_DESC_COMMON_NDP_FEEDBACK_STATUS_MASK                             0x0000000000800000
1260 
1261 
1262 /* Description		DOPPLER_INDICATION
1263 
1264 			This field is valid only when (MACTX_PHY_DESC.pkt_type==11ax
1265 			 or MACTX_PHY_DESC.pkt_type == 11be).
1266 
1267 			<legal all>
1268 */
1269 
1270 #define MACTX_USER_DESC_COMMON_DOPPLER_INDICATION_OFFSET                            0x0000000000000038
1271 #define MACTX_USER_DESC_COMMON_DOPPLER_INDICATION_LSB                               24
1272 #define MACTX_USER_DESC_COMMON_DOPPLER_INDICATION_MSB                               24
1273 #define MACTX_USER_DESC_COMMON_DOPPLER_INDICATION_MASK                              0x0000000001000000
1274 
1275 
1276 /* Description		RESERVED_14A
1277 
1278 			<legal 0>
1279 */
1280 
1281 #define MACTX_USER_DESC_COMMON_RESERVED_14A_OFFSET                                  0x0000000000000038
1282 #define MACTX_USER_DESC_COMMON_RESERVED_14A_LSB                                     25
1283 #define MACTX_USER_DESC_COMMON_RESERVED_14A_MSB                                     31
1284 #define MACTX_USER_DESC_COMMON_RESERVED_14A_MASK                                    0x00000000fe000000
1285 
1286 
1287 /* Description		SPATIAL_REUSE
1288 
1289 			This field is valid only when (MACTX_PHY_DESC.pkt_type==11ax
1290 			 or MACTX_PHY_DESC.pkt_type == 11be)
1291 
1292 			For an HE TB PPDU all 16 bits are valid.
1293 			For an EHT TB PPDU LSB 8 bits are valid.
1294 			For any other HE/EHT PPDU LSB 4 bits are valid.
1295 
1296 			<legal all>
1297 */
1298 
1299 #define MACTX_USER_DESC_COMMON_SPATIAL_REUSE_OFFSET                                 0x0000000000000038
1300 #define MACTX_USER_DESC_COMMON_SPATIAL_REUSE_LSB                                    32
1301 #define MACTX_USER_DESC_COMMON_SPATIAL_REUSE_MSB                                    47
1302 #define MACTX_USER_DESC_COMMON_SPATIAL_REUSE_MASK                                   0x0000ffff00000000
1303 
1304 
1305 /* Description		RESERVED_15A
1306 
1307 			<legal 0>
1308 */
1309 
1310 #define MACTX_USER_DESC_COMMON_RESERVED_15A_OFFSET                                  0x0000000000000038
1311 #define MACTX_USER_DESC_COMMON_RESERVED_15A_LSB                                     48
1312 #define MACTX_USER_DESC_COMMON_RESERVED_15A_MSB                                     63
1313 #define MACTX_USER_DESC_COMMON_RESERVED_15A_MASK                                    0xffff000000000000
1314 
1315 
1316 
1317 #endif   // MACTX_USER_DESC_COMMON
1318