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