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