1 2 /* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 18 19 20 21 22 23 24 25 26 #ifndef _TX_CBF_INFO_H_ 27 #define _TX_CBF_INFO_H_ 28 #if !defined(__ASSEMBLER__) 29 #endif 30 31 #define NUM_OF_DWORDS_TX_CBF_INFO 16 32 33 #define NUM_OF_QWORDS_TX_CBF_INFO 8 34 35 36 struct tx_cbf_info { 37 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 38 uint32_t sw_peer_id : 16, // [15:0] 39 pre_cbf_duration : 16; // [31:16] 40 uint32_t brpoll_info_valid : 1, // [0:0] 41 trigger_brpoll_info_valid : 1, // [1:1] 42 npda_info_11ac_valid : 1, // [2:2] 43 npda_info_11ax_valid : 1, // [3:3] 44 dot11ax_su_extended : 1, // [4:4] 45 bandwidth : 3, // [7:5] 46 brpoll_info : 8, // [15:8] 47 cbf_response_table_base_index : 8, // [23:16] 48 peer_index : 3, // [26:24] 49 pkt_type : 4, // [30:27] 50 txop_duration_all_ones : 1; // [31:31] 51 uint32_t trigger_brpoll_common_info_15_0 : 16, // [15:0] 52 trigger_brpoll_common_info_31_16 : 16; // [31:16] 53 uint32_t trigger_brpoll_user_info_15_0 : 16, // [15:0] 54 trigger_brpoll_user_info_31_16 : 16; // [31:16] 55 uint32_t addr1_31_0 : 32; // [31:0] 56 uint32_t addr1_47_32 : 16, // [15:0] 57 addr2_15_0 : 16; // [31:16] 58 uint32_t addr2_47_16 : 32; // [31:0] 59 uint32_t addr3_31_0 : 32; // [31:0] 60 uint32_t addr3_47_32 : 16, // [15:0] 61 sta_partial_aid : 11, // [26:16] 62 reserved_8a : 4, // [30:27] 63 cbf_resp_pwr_mgmt : 1; // [31:31] 64 uint32_t group_id : 6, // [5:0] 65 rssi_comb : 8, // [13:6] 66 reserved_9a : 2, // [15:14] 67 vht_ndpa_sta_info : 16; // [31:16] 68 uint32_t he_eht_sta_info_15_0 : 16, // [15:0] 69 he_eht_sta_info_31_16 : 16; // [31:16] 70 uint32_t dot11ax_received_format_indication : 1, // [0:0] 71 dot11ax_received_dl_ul_flag : 1, // [1:1] 72 dot11ax_received_bss_color_id : 6, // [7:2] 73 dot11ax_received_spatial_reuse : 4, // [11:8] 74 dot11ax_received_cp_size : 2, // [13:12] 75 dot11ax_received_ltf_size : 2, // [15:14] 76 dot11ax_received_coding : 1, // [16:16] 77 dot11ax_received_dcm : 1, // [17:17] 78 dot11ax_received_doppler_indication : 1, // [18:18] 79 dot11ax_received_ext_ru_size : 4, // [22:19] 80 dot11ax_dl_ul_flag : 1, // [23:23] 81 reserved_11a : 8; // [31:24] 82 uint32_t sw_response_frame_length : 16, // [15:0] 83 sw_response_tlv_from_crypto : 1, // [16:16] 84 wait_sifs_config_valid : 1, // [17:17] 85 wait_sifs : 2, // [19:18] 86 ranging : 1, // [20:20] 87 secure : 1, // [21:21] 88 tb_ranging_response_required : 2, // [23:22] 89 reserved_12a : 2, // [25:24] 90 u_sig_puncture_pattern_encoding : 6; // [31:26] 91 uint32_t dot11be_puncture_bitmap : 16, // [15:0] 92 dot11be_response : 1, // [16:16] 93 punctured_response : 1, // [17:17] 94 npda_info_11be_valid : 1, // [18:18] 95 eht_duplicate_mode : 2, // [20:19] 96 reserved_13a : 11; // [31:21] 97 uint32_t eht_sta_info_39_32 : 8, // [7:0] 98 reserved_14a : 24; // [31:8] 99 uint32_t tlv64_padding : 32; // [31:0] 100 #else 101 uint32_t pre_cbf_duration : 16, // [31:16] 102 sw_peer_id : 16; // [15:0] 103 uint32_t txop_duration_all_ones : 1, // [31:31] 104 pkt_type : 4, // [30:27] 105 peer_index : 3, // [26:24] 106 cbf_response_table_base_index : 8, // [23:16] 107 brpoll_info : 8, // [15:8] 108 bandwidth : 3, // [7:5] 109 dot11ax_su_extended : 1, // [4:4] 110 npda_info_11ax_valid : 1, // [3:3] 111 npda_info_11ac_valid : 1, // [2:2] 112 trigger_brpoll_info_valid : 1, // [1:1] 113 brpoll_info_valid : 1; // [0:0] 114 uint32_t trigger_brpoll_common_info_31_16 : 16, // [31:16] 115 trigger_brpoll_common_info_15_0 : 16; // [15:0] 116 uint32_t trigger_brpoll_user_info_31_16 : 16, // [31:16] 117 trigger_brpoll_user_info_15_0 : 16; // [15:0] 118 uint32_t addr1_31_0 : 32; // [31:0] 119 uint32_t addr2_15_0 : 16, // [31:16] 120 addr1_47_32 : 16; // [15:0] 121 uint32_t addr2_47_16 : 32; // [31:0] 122 uint32_t addr3_31_0 : 32; // [31:0] 123 uint32_t cbf_resp_pwr_mgmt : 1, // [31:31] 124 reserved_8a : 4, // [30:27] 125 sta_partial_aid : 11, // [26:16] 126 addr3_47_32 : 16; // [15:0] 127 uint32_t vht_ndpa_sta_info : 16, // [31:16] 128 reserved_9a : 2, // [15:14] 129 rssi_comb : 8, // [13:6] 130 group_id : 6; // [5:0] 131 uint32_t he_eht_sta_info_31_16 : 16, // [31:16] 132 he_eht_sta_info_15_0 : 16; // [15:0] 133 uint32_t reserved_11a : 8, // [31:24] 134 dot11ax_dl_ul_flag : 1, // [23:23] 135 dot11ax_received_ext_ru_size : 4, // [22:19] 136 dot11ax_received_doppler_indication : 1, // [18:18] 137 dot11ax_received_dcm : 1, // [17:17] 138 dot11ax_received_coding : 1, // [16:16] 139 dot11ax_received_ltf_size : 2, // [15:14] 140 dot11ax_received_cp_size : 2, // [13:12] 141 dot11ax_received_spatial_reuse : 4, // [11:8] 142 dot11ax_received_bss_color_id : 6, // [7:2] 143 dot11ax_received_dl_ul_flag : 1, // [1:1] 144 dot11ax_received_format_indication : 1; // [0:0] 145 uint32_t u_sig_puncture_pattern_encoding : 6, // [31:26] 146 reserved_12a : 2, // [25:24] 147 tb_ranging_response_required : 2, // [23:22] 148 secure : 1, // [21:21] 149 ranging : 1, // [20:20] 150 wait_sifs : 2, // [19:18] 151 wait_sifs_config_valid : 1, // [17:17] 152 sw_response_tlv_from_crypto : 1, // [16:16] 153 sw_response_frame_length : 16; // [15:0] 154 uint32_t reserved_13a : 11, // [31:21] 155 eht_duplicate_mode : 2, // [20:19] 156 npda_info_11be_valid : 1, // [18:18] 157 punctured_response : 1, // [17:17] 158 dot11be_response : 1, // [16:16] 159 dot11be_puncture_bitmap : 16; // [15:0] 160 uint32_t reserved_14a : 24, // [31:8] 161 eht_sta_info_39_32 : 8; // [7:0] 162 uint32_t tlv64_padding : 32; // [31:0] 163 #endif 164 }; 165 166 167 /* Description SW_PEER_ID 168 169 An identifier indicating from which AP this CBF is being 170 requested. Helps in crosschecking that the MAC and PHY 171 are still in sync on what is stored in the cbf_mem_index 172 location. 173 <legal all> 174 */ 175 176 #define TX_CBF_INFO_SW_PEER_ID_OFFSET 0x0000000000000000 177 #define TX_CBF_INFO_SW_PEER_ID_LSB 0 178 #define TX_CBF_INFO_SW_PEER_ID_MSB 15 179 #define TX_CBF_INFO_SW_PEER_ID_MASK 0x000000000000ffff 180 181 182 /* Description PRE_CBF_DURATION 183 184 NPDA_duration_field - SIFS - NDP_pkt_time or BRPOLL_duration_field. 185 The cbf_duration_field = pre_cbf_duration - cbf_pkt_time 186 187 188 This will be the pre-NDP duration or pre-LMR duration in 189 case of .11az ranging (field Ranging below is set). 190 */ 191 192 #define TX_CBF_INFO_PRE_CBF_DURATION_OFFSET 0x0000000000000000 193 #define TX_CBF_INFO_PRE_CBF_DURATION_LSB 16 194 #define TX_CBF_INFO_PRE_CBF_DURATION_MSB 31 195 #define TX_CBF_INFO_PRE_CBF_DURATION_MASK 0x00000000ffff0000 196 197 198 /* Description BRPOLL_INFO_VALID 199 200 When set, legacy type brpoll info is valid. TXPCU will have 201 to trigger the PDG for response transmission 202 203 It will not be clear here what the PHY's response format 204 will be. Could be 11ac or 11ax. MAC is not 'remembering' 205 the format type, but PHY will know. 206 207 MAC will get to know based on the field Cbf_response_type 208 in the PHYRX_CBF_READ_REQUEST_ACK TLV. 209 210 <legal all> 211 */ 212 213 #define TX_CBF_INFO_BRPOLL_INFO_VALID_OFFSET 0x0000000000000000 214 #define TX_CBF_INFO_BRPOLL_INFO_VALID_LSB 32 215 #define TX_CBF_INFO_BRPOLL_INFO_VALID_MSB 32 216 #define TX_CBF_INFO_BRPOLL_INFO_VALID_MASK 0x0000000100000000 217 218 219 /* Description TRIGGER_BRPOLL_INFO_VALID 220 221 When set with Ranging = 0, trigger based brpoll info is 222 valid. 223 When set with Ranging = 1, .11az sounding trigger info is 224 valid for trigger-based ranging (TBR). 225 This also implies that RXPCU has already triggered the PDG 226 for response transmission 227 <legal all> 228 */ 229 230 #define TX_CBF_INFO_TRIGGER_BRPOLL_INFO_VALID_OFFSET 0x0000000000000000 231 #define TX_CBF_INFO_TRIGGER_BRPOLL_INFO_VALID_LSB 33 232 #define TX_CBF_INFO_TRIGGER_BRPOLL_INFO_VALID_MSB 33 233 #define TX_CBF_INFO_TRIGGER_BRPOLL_INFO_VALID_MASK 0x0000000200000000 234 235 236 /* Description NPDA_INFO_11AC_VALID 237 238 When set, 11ac_NDPA info is valid. 239 TXPCU will have to trigger the PDG for response transmission 240 241 242 PHY's response will be be in 11ac format 243 <legal all> 244 */ 245 246 #define TX_CBF_INFO_NPDA_INFO_11AC_VALID_OFFSET 0x0000000000000000 247 #define TX_CBF_INFO_NPDA_INFO_11AC_VALID_LSB 34 248 #define TX_CBF_INFO_NPDA_INFO_11AC_VALID_MSB 34 249 #define TX_CBF_INFO_NPDA_INFO_11AC_VALID_MASK 0x0000000400000000 250 251 252 /* Description NPDA_INFO_11AX_VALID 253 254 When set, 11ax_NDPA info is valid. 255 TXPCU will have to trigger the PDG for response transmission 256 257 258 PHY's response will be be in 11ax format 259 260 There is a separate Npda_info_11be_valid field near the 261 end of this TLV. 262 <legal all> 263 */ 264 265 #define TX_CBF_INFO_NPDA_INFO_11AX_VALID_OFFSET 0x0000000000000000 266 #define TX_CBF_INFO_NPDA_INFO_11AX_VALID_LSB 35 267 #define TX_CBF_INFO_NPDA_INFO_11AX_VALID_MSB 35 268 #define TX_CBF_INFO_NPDA_INFO_11AX_VALID_MASK 0x0000000800000000 269 270 271 /* Description DOT11AX_SU_EXTENDED 272 273 When set, frame was received in 11ax or 11be extended range 274 format 275 */ 276 277 #define TX_CBF_INFO_DOT11AX_SU_EXTENDED_OFFSET 0x0000000000000000 278 #define TX_CBF_INFO_DOT11AX_SU_EXTENDED_LSB 36 279 #define TX_CBF_INFO_DOT11AX_SU_EXTENDED_MSB 36 280 #define TX_CBF_INFO_DOT11AX_SU_EXTENDED_MASK 0x0000001000000000 281 282 283 /* Description BANDWIDTH 284 285 Field only valid when Brpoll_info_valid , Npda_info_11ac_valid 286 or Npda_info_11ax_valid is set. 287 288 The bandwidth that TXPCU uses to select the final response 289 table entry. That entry will contain all response info 290 for the CBF frame. 291 292 <enum 0 20_mhz>20 Mhz BW 293 <enum 1 40_mhz>40 Mhz BW 294 <enum 2 80_mhz>80 Mhz BW 295 <enum 3 160_mhz>160 Mhz BW 296 <enum 4 320_mhz>320 Mhz BW 297 <enum 5 240_mhz>240 Mhz BW 298 */ 299 300 #define TX_CBF_INFO_BANDWIDTH_OFFSET 0x0000000000000000 301 #define TX_CBF_INFO_BANDWIDTH_LSB 37 302 #define TX_CBF_INFO_BANDWIDTH_MSB 39 303 #define TX_CBF_INFO_BANDWIDTH_MASK 0x000000e000000000 304 305 306 /* Description BRPOLL_INFO 307 308 Field only valid when Brpoll_info_valid is set. 309 310 Feedback Segment retransmission feedback field from the 311 BRPOLL frame. 312 <legal all> 313 */ 314 315 #define TX_CBF_INFO_BRPOLL_INFO_OFFSET 0x0000000000000000 316 #define TX_CBF_INFO_BRPOLL_INFO_LSB 40 317 #define TX_CBF_INFO_BRPOLL_INFO_MSB 47 318 #define TX_CBF_INFO_BRPOLL_INFO_MASK 0x0000ff0000000000 319 320 321 /* Description CBF_RESPONSE_TABLE_BASE_INDEX 322 323 Field only valid when Brpoll_info_valid or 324 Npda_info_11ac_valid or Npda_info_11ax_valid is set. 325 326 When set to 0, use the register based lookup for determining 327 the CBF response rates. 328 329 When > 0, TXPCU shall use this response table index for 330 the 20 MHz response, and higher BW responses are in the 331 subsequent response table entries 332 333 This will be the LMR response table base index in case of 334 .11az ranging (field Ranging below is set). 335 336 <legal all> 337 */ 338 339 #define TX_CBF_INFO_CBF_RESPONSE_TABLE_BASE_INDEX_OFFSET 0x0000000000000000 340 #define TX_CBF_INFO_CBF_RESPONSE_TABLE_BASE_INDEX_LSB 48 341 #define TX_CBF_INFO_CBF_RESPONSE_TABLE_BASE_INDEX_MSB 55 342 #define TX_CBF_INFO_CBF_RESPONSE_TABLE_BASE_INDEX_MASK 0x00ff000000000000 343 344 345 /* Description PEER_INDEX 346 347 Field only valid when Brpoll_info_valid or 348 Npda_info_11ac_valid or Npda_info_11ax_valid is set. 349 350 351 Indicates the CBF peer index to be used by TxPCU to determine 352 the look-up table index for CBF response frames. RxPCU 353 populate this field from the peer_entry. 354 <legal 0-7> 355 */ 356 357 #define TX_CBF_INFO_PEER_INDEX_OFFSET 0x0000000000000000 358 #define TX_CBF_INFO_PEER_INDEX_LSB 56 359 #define TX_CBF_INFO_PEER_INDEX_MSB 58 360 #define TX_CBF_INFO_PEER_INDEX_MASK 0x0700000000000000 361 362 363 /* Description PKT_TYPE 364 365 Received Packet type: 366 <enum 0 dot11a>802.11a PPDU type 367 <enum 1 dot11b>802.11b PPDU type 368 <enum 2 dot11n_mm>802.11n Mixed Mode PPDU type 369 <enum 3 dot11ac>802.11ac PPDU type 370 <enum 4 dot11ax>802.11ax PPDU type 371 <enum 5 dot11ba>802.11ba (WUR) PPDU type 372 <enum 6 dot11be>802.11be PPDU type 373 <enum 7 dot11az>802.11az (ranging) PPDU type 374 <enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported 375 & aborted) 376 */ 377 378 #define TX_CBF_INFO_PKT_TYPE_OFFSET 0x0000000000000000 379 #define TX_CBF_INFO_PKT_TYPE_LSB 59 380 #define TX_CBF_INFO_PKT_TYPE_MSB 62 381 #define TX_CBF_INFO_PKT_TYPE_MASK 0x7800000000000000 382 383 384 /* Description TXOP_DURATION_ALL_ONES 385 386 When set, either the TXOP_DURATION of the received frame 387 was set to all 1s or there is a BSS color collision. The 388 TXOP_DURATION of the transmit response should be forced 389 to all 1s. 390 391 <legal all> 392 */ 393 394 #define TX_CBF_INFO_TXOP_DURATION_ALL_ONES_OFFSET 0x0000000000000000 395 #define TX_CBF_INFO_TXOP_DURATION_ALL_ONES_LSB 63 396 #define TX_CBF_INFO_TXOP_DURATION_ALL_ONES_MSB 63 397 #define TX_CBF_INFO_TXOP_DURATION_ALL_ONES_MASK 0x8000000000000000 398 399 400 /* Description TRIGGER_BRPOLL_COMMON_INFO_15_0 401 402 Field only valid when Trigger_Brpoll_info_valid is set. 403 404 405 Trigger based BRPOLL or .11az sounding (TBR) request info... 406 bits [15:0] 407 408 This is the variable common info field from the trigger 409 related to the BTPOLL. For field definition see IEEE spec 410 411 412 Note: final IEEE field might not need all these bits. If 413 so, the extra bits become reserved fields. 414 <legal all> 415 */ 416 417 #define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_15_0_OFFSET 0x0000000000000008 418 #define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_15_0_LSB 0 419 #define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_15_0_MSB 15 420 #define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_15_0_MASK 0x000000000000ffff 421 422 423 /* Description TRIGGER_BRPOLL_COMMON_INFO_31_16 424 425 Field only valid when Trigger_Brpoll_info_valid is set. 426 427 428 Trigger based BRPOLL or .11az sounding (TBR) request info... 429 bits [31:15] 430 431 This is the variable common info field from the trigger 432 related to the BTPOLL. For field definition see IEEE spec 433 434 435 Note: final IEEE field might not need all these bits. If 436 so, the extra bits become reserved fields. 437 <legal all> 438 */ 439 440 #define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_31_16_OFFSET 0x0000000000000008 441 #define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_31_16_LSB 16 442 #define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_31_16_MSB 31 443 #define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_31_16_MASK 0x00000000ffff0000 444 445 446 /* Description TRIGGER_BRPOLL_USER_INFO_15_0 447 448 Field only valid when Trigger_Brpoll_info_valid is set. 449 450 451 BRPOLL or .11az sounding (TBR) trigger Type dependent User 452 information bits [15:0] 453 454 This is the variable user info field from the trigger related 455 to the BTPOLL. 456 457 For field definition see IEEE spec 458 459 Note: final IEEE field might not need all these bits. If 460 so, the extra bits become reserved fields. 461 <legal all> 462 */ 463 464 #define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_15_0_OFFSET 0x0000000000000008 465 #define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_15_0_LSB 32 466 #define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_15_0_MSB 47 467 #define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_15_0_MASK 0x0000ffff00000000 468 469 470 /* Description TRIGGER_BRPOLL_USER_INFO_31_16 471 472 Field only valid when Trigger_Brpoll_info_valid is set. 473 474 475 BRPOLL or .11az sounding (TBR) trigger Type dependent User 476 information bits [31:16] 477 478 This is the variable user info field from the trigger related 479 to the BTPOLL. 480 481 For field definition see IEEE spec 482 483 Note: final IEEE field might not need all these bits. If 484 so, the extra bits become reserved fields. 485 <legal all> 486 */ 487 488 #define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_31_16_OFFSET 0x0000000000000008 489 #define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_31_16_LSB 48 490 #define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_31_16_MSB 63 491 #define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_31_16_MASK 0xffff000000000000 492 493 494 /* Description ADDR1_31_0 495 496 CBF address1[31:0] 497 */ 498 499 #define TX_CBF_INFO_ADDR1_31_0_OFFSET 0x0000000000000010 500 #define TX_CBF_INFO_ADDR1_31_0_LSB 0 501 #define TX_CBF_INFO_ADDR1_31_0_MSB 31 502 #define TX_CBF_INFO_ADDR1_31_0_MASK 0x00000000ffffffff 503 504 505 /* Description ADDR1_47_32 506 507 CBF address1[47:32] 508 */ 509 510 #define TX_CBF_INFO_ADDR1_47_32_OFFSET 0x0000000000000010 511 #define TX_CBF_INFO_ADDR1_47_32_LSB 32 512 #define TX_CBF_INFO_ADDR1_47_32_MSB 47 513 #define TX_CBF_INFO_ADDR1_47_32_MASK 0x0000ffff00000000 514 515 516 /* Description ADDR2_15_0 517 518 CBF address2[15:0] 519 */ 520 521 #define TX_CBF_INFO_ADDR2_15_0_OFFSET 0x0000000000000010 522 #define TX_CBF_INFO_ADDR2_15_0_LSB 48 523 #define TX_CBF_INFO_ADDR2_15_0_MSB 63 524 #define TX_CBF_INFO_ADDR2_15_0_MASK 0xffff000000000000 525 526 527 /* Description ADDR2_47_16 528 529 CBF address2[47:16] 530 */ 531 532 #define TX_CBF_INFO_ADDR2_47_16_OFFSET 0x0000000000000018 533 #define TX_CBF_INFO_ADDR2_47_16_LSB 0 534 #define TX_CBF_INFO_ADDR2_47_16_MSB 31 535 #define TX_CBF_INFO_ADDR2_47_16_MASK 0x00000000ffffffff 536 537 538 /* Description ADDR3_31_0 539 540 CBF address3[31:0] 541 */ 542 543 #define TX_CBF_INFO_ADDR3_31_0_OFFSET 0x0000000000000018 544 #define TX_CBF_INFO_ADDR3_31_0_LSB 32 545 #define TX_CBF_INFO_ADDR3_31_0_MSB 63 546 #define TX_CBF_INFO_ADDR3_31_0_MASK 0xffffffff00000000 547 548 549 /* Description ADDR3_47_32 550 551 CBF address3[47:16] 552 */ 553 554 #define TX_CBF_INFO_ADDR3_47_32_OFFSET 0x0000000000000020 555 #define TX_CBF_INFO_ADDR3_47_32_LSB 0 556 #define TX_CBF_INFO_ADDR3_47_32_MSB 15 557 #define TX_CBF_INFO_ADDR3_47_32_MASK 0x000000000000ffff 558 559 560 /* Description STA_PARTIAL_AID 561 562 Partial AID field 563 */ 564 565 #define TX_CBF_INFO_STA_PARTIAL_AID_OFFSET 0x0000000000000020 566 #define TX_CBF_INFO_STA_PARTIAL_AID_LSB 16 567 #define TX_CBF_INFO_STA_PARTIAL_AID_MSB 26 568 #define TX_CBF_INFO_STA_PARTIAL_AID_MASK 0x0000000007ff0000 569 570 571 /* Description RESERVED_8A 572 573 <legal 0> 574 */ 575 576 #define TX_CBF_INFO_RESERVED_8A_OFFSET 0x0000000000000020 577 #define TX_CBF_INFO_RESERVED_8A_LSB 27 578 #define TX_CBF_INFO_RESERVED_8A_MSB 30 579 #define TX_CBF_INFO_RESERVED_8A_MASK 0x0000000078000000 580 581 582 /* Description CBF_RESP_PWR_MGMT 583 584 Power management bit of the response CBF frame or LMR frame 585 in case of .11az ranging (field Ranging below is set). 586 */ 587 588 #define TX_CBF_INFO_CBF_RESP_PWR_MGMT_OFFSET 0x0000000000000020 589 #define TX_CBF_INFO_CBF_RESP_PWR_MGMT_LSB 31 590 #define TX_CBF_INFO_CBF_RESP_PWR_MGMT_MSB 31 591 #define TX_CBF_INFO_CBF_RESP_PWR_MGMT_MASK 0x0000000080000000 592 593 594 /* Description GROUP_ID 595 596 Group ID field 597 */ 598 599 #define TX_CBF_INFO_GROUP_ID_OFFSET 0x0000000000000020 600 #define TX_CBF_INFO_GROUP_ID_LSB 32 601 #define TX_CBF_INFO_GROUP_ID_MSB 37 602 #define TX_CBF_INFO_GROUP_ID_MASK 0x0000003f00000000 603 604 605 /* Description RSSI_COMB 606 607 The combined RSSI of the legacy STF of RX PPDU of all active 608 chains and bandwidths. 609 */ 610 611 #define TX_CBF_INFO_RSSI_COMB_OFFSET 0x0000000000000020 612 #define TX_CBF_INFO_RSSI_COMB_LSB 38 613 #define TX_CBF_INFO_RSSI_COMB_MSB 45 614 #define TX_CBF_INFO_RSSI_COMB_MASK 0x00003fc000000000 615 616 617 /* Description RESERVED_9A 618 619 Bit 14: force_extra_symbol: 620 621 Set to 1 to force an extra OFDM symbol (or symbols) even 622 if the PPDU encoding process does not result in an extra 623 OFDM symbol (or symbols) 624 625 Not supported in Hamilton v1 626 <legal 0-1> 627 */ 628 629 #define TX_CBF_INFO_RESERVED_9A_OFFSET 0x0000000000000020 630 #define TX_CBF_INFO_RESERVED_9A_LSB 46 631 #define TX_CBF_INFO_RESERVED_9A_MSB 47 632 #define TX_CBF_INFO_RESERVED_9A_MASK 0x0000c00000000000 633 634 635 /* Description VHT_NDPA_STA_INFO 636 637 Field only valid when Npda_info_11ac_valid is set 638 639 The complete (RAW) STA INFO field that MAC extracted from 640 the VHT NDPA frame. 641 642 Put here for backup reasons in case last moment fields got 643 added that PHY needs to be able to interpret 644 645 This field contains 646 { 647 VHT STA_INFO.NC_INDEX[2:0], 648 VHT STA_INFO.FEEDBACK_TYPE, 649 VHT STA_INFO.AID12[11:0] 650 } 651 <legal all> 652 */ 653 654 #define TX_CBF_INFO_VHT_NDPA_STA_INFO_OFFSET 0x0000000000000020 655 #define TX_CBF_INFO_VHT_NDPA_STA_INFO_LSB 48 656 #define TX_CBF_INFO_VHT_NDPA_STA_INFO_MSB 63 657 #define TX_CBF_INFO_VHT_NDPA_STA_INFO_MASK 0xffff000000000000 658 659 660 /* Description HE_EHT_STA_INFO_15_0 661 662 Field only valid when Npda_info_11ax_valid or Npda_info_11be_valid 663 is set 664 665 The first 16 bits of the RAW HE or EHT STA INFO field in 666 the NDPA frame 667 668 Put here for backup reasons in case last moment fields got 669 added that PHY needs to be able to interpret 670 <legal all> 671 */ 672 673 #define TX_CBF_INFO_HE_EHT_STA_INFO_15_0_OFFSET 0x0000000000000028 674 #define TX_CBF_INFO_HE_EHT_STA_INFO_15_0_LSB 0 675 #define TX_CBF_INFO_HE_EHT_STA_INFO_15_0_MSB 15 676 #define TX_CBF_INFO_HE_EHT_STA_INFO_15_0_MASK 0x000000000000ffff 677 678 679 /* Description HE_EHT_STA_INFO_31_16 680 681 Field only valid when Npda_info_11ax_valid or Npda_info_11be_valid 682 is set 683 684 The second 16 bits of the RAW HE or EHT STA INFO field in 685 the NDPA frame 686 687 Put here for backup reasons in case last moment fields got 688 added that PHY needs to be able to interpret 689 690 There is an EHT_STA_INFO_39_32 field near the end of this 691 TLV. 692 <legal all> 693 */ 694 695 #define TX_CBF_INFO_HE_EHT_STA_INFO_31_16_OFFSET 0x0000000000000028 696 #define TX_CBF_INFO_HE_EHT_STA_INFO_31_16_LSB 16 697 #define TX_CBF_INFO_HE_EHT_STA_INFO_31_16_MSB 31 698 #define TX_CBF_INFO_HE_EHT_STA_INFO_31_16_MASK 0x00000000ffff0000 699 700 701 /* Description DOT11AX_RECEIVED_FORMAT_INDICATION 702 703 This field is only valid for pkt_type == 11ax 704 705 Format_Indication from the received frame. 706 707 <enum 0 HE_SIGA_FORMAT_HE_TRIG> 708 <enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU> 709 <legal all> 710 */ 711 712 #define TX_CBF_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_OFFSET 0x0000000000000028 713 #define TX_CBF_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_LSB 32 714 #define TX_CBF_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_MSB 32 715 #define TX_CBF_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_MASK 0x0000000100000000 716 717 718 /* Description DOT11AX_RECEIVED_DL_UL_FLAG 719 720 This field is only valid for pkt_type == 11ax 721 722 DL_UL_flag from the received frame 723 724 Differentiates between DL and UL transmission 725 726 <enum 0 DL_UL_FLAG_IS_DL_OR_TDLS> 727 <enum 1 DL_UL_FLAG_IS_UL> 728 729 <legal all> 730 */ 731 732 #define TX_CBF_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_OFFSET 0x0000000000000028 733 #define TX_CBF_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_LSB 33 734 #define TX_CBF_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_MSB 33 735 #define TX_CBF_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_MASK 0x0000000200000000 736 737 738 /* Description DOT11AX_RECEIVED_BSS_COLOR_ID 739 740 This field is only valid for pkt_type == 11ax 741 742 BSS_color_id from the received frame 743 <legal all> 744 */ 745 746 #define TX_CBF_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_OFFSET 0x0000000000000028 747 #define TX_CBF_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_LSB 34 748 #define TX_CBF_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_MSB 39 749 #define TX_CBF_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_MASK 0x000000fc00000000 750 751 752 /* Description DOT11AX_RECEIVED_SPATIAL_REUSE 753 754 This field is only valid for pkt_type == 11ax 755 Spatial reuse from the received frame 756 <legal all> 757 */ 758 759 #define TX_CBF_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_OFFSET 0x0000000000000028 760 #define TX_CBF_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_LSB 40 761 #define TX_CBF_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_MSB 43 762 #define TX_CBF_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_MASK 0x00000f0000000000 763 764 765 /* Description DOT11AX_RECEIVED_CP_SIZE 766 767 This field is only valid for pkt_type == 11ax 768 769 CP size of the received frame 770 771 <enum 0 0_8_us_sgi > Legacy normal GI. Can also be used 772 for HE 773 <enum 1 0_4_us_sgi > Legacy short GI. Can also be used 774 for HE 775 <enum 2 1_6_us_sgi > HE related GI 776 <enum 3 3_2_us_sgi > HE related GI 777 778 <legal 0 - 3> 779 */ 780 781 #define TX_CBF_INFO_DOT11AX_RECEIVED_CP_SIZE_OFFSET 0x0000000000000028 782 #define TX_CBF_INFO_DOT11AX_RECEIVED_CP_SIZE_LSB 44 783 #define TX_CBF_INFO_DOT11AX_RECEIVED_CP_SIZE_MSB 45 784 #define TX_CBF_INFO_DOT11AX_RECEIVED_CP_SIZE_MASK 0x0000300000000000 785 786 787 /* Description DOT11AX_RECEIVED_LTF_SIZE 788 789 This field is only valid for pkt_type == 11ax 790 791 LTF size of the received frame 792 793 <enum 0 ltf_1x > 794 <enum 1 ltf_2x > 795 <enum 2 ltf_4x > 796 <legal 0 - 2> 797 */ 798 799 #define TX_CBF_INFO_DOT11AX_RECEIVED_LTF_SIZE_OFFSET 0x0000000000000028 800 #define TX_CBF_INFO_DOT11AX_RECEIVED_LTF_SIZE_LSB 46 801 #define TX_CBF_INFO_DOT11AX_RECEIVED_LTF_SIZE_MSB 47 802 #define TX_CBF_INFO_DOT11AX_RECEIVED_LTF_SIZE_MASK 0x0000c00000000000 803 804 805 /* Description DOT11AX_RECEIVED_CODING 806 807 This field is only valid for pkt_type == 11ax 808 809 Coding from the received frame 810 811 <legal all> 812 */ 813 814 #define TX_CBF_INFO_DOT11AX_RECEIVED_CODING_OFFSET 0x0000000000000028 815 #define TX_CBF_INFO_DOT11AX_RECEIVED_CODING_LSB 48 816 #define TX_CBF_INFO_DOT11AX_RECEIVED_CODING_MSB 48 817 #define TX_CBF_INFO_DOT11AX_RECEIVED_CODING_MASK 0x0001000000000000 818 819 820 /* Description DOT11AX_RECEIVED_DCM 821 822 This field is only valid for pkt_type == 11ax 823 824 DCM from the received frame 825 826 <legal all> 827 */ 828 829 #define TX_CBF_INFO_DOT11AX_RECEIVED_DCM_OFFSET 0x0000000000000028 830 #define TX_CBF_INFO_DOT11AX_RECEIVED_DCM_LSB 49 831 #define TX_CBF_INFO_DOT11AX_RECEIVED_DCM_MSB 49 832 #define TX_CBF_INFO_DOT11AX_RECEIVED_DCM_MASK 0x0002000000000000 833 834 835 /* Description DOT11AX_RECEIVED_DOPPLER_INDICATION 836 837 This field is only valid for pkt_type == 11ax 838 839 Doppler_indication from the received frame 840 841 <legal all> 842 */ 843 844 #define TX_CBF_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_OFFSET 0x0000000000000028 845 #define TX_CBF_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_LSB 50 846 #define TX_CBF_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_MSB 50 847 #define TX_CBF_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_MASK 0x0004000000000000 848 849 850 /* Description DOT11AX_RECEIVED_EXT_RU_SIZE 851 852 This field is only valid for pkt_type == 11ax OR pkt_type 853 == 11be AND dot11ax_su_extended is set 854 The number of (basic) RUs in this extended range reception 855 856 857 RXPCU gets this from the received HE_SIG_A 858 859 <legal all> 860 */ 861 862 #define TX_CBF_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_OFFSET 0x0000000000000028 863 #define TX_CBF_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_LSB 51 864 #define TX_CBF_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_MSB 54 865 #define TX_CBF_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_MASK 0x0078000000000000 866 867 868 /* Description DOT11AX_DL_UL_FLAG 869 870 This field is only valid for pkt_type == 11ax 871 872 DL_UL_flag to be used for response frame sent to this device. 873 874 875 Differentiates between DL and UL transmission 876 877 <enum 0 DL_UL_FLAG_IS_DL_OR_TDLS> 878 <enum 1 DL_UL_FLAG_IS_UL> 879 880 Note: this setting can also come from response look-up table 881 in TXPCU... 882 The selection is SW programmable 883 884 <legal all> 885 */ 886 887 #define TX_CBF_INFO_DOT11AX_DL_UL_FLAG_OFFSET 0x0000000000000028 888 #define TX_CBF_INFO_DOT11AX_DL_UL_FLAG_LSB 55 889 #define TX_CBF_INFO_DOT11AX_DL_UL_FLAG_MSB 55 890 #define TX_CBF_INFO_DOT11AX_DL_UL_FLAG_MASK 0x0080000000000000 891 892 893 /* Description RESERVED_11A 894 895 <legal 0> 896 */ 897 898 #define TX_CBF_INFO_RESERVED_11A_OFFSET 0x0000000000000028 899 #define TX_CBF_INFO_RESERVED_11A_LSB 56 900 #define TX_CBF_INFO_RESERVED_11A_MSB 63 901 #define TX_CBF_INFO_RESERVED_11A_MASK 0xff00000000000000 902 903 904 /* Description SW_RESPONSE_FRAME_LENGTH 905 906 Field only valid when SW_Response_tlv_from_crypto is set 907 908 909 This is the size of the frame (in bytes) that SW will generate 910 as the response frame. In those scenarios where TXPCU needs 911 to indicate a frame_length in the PDG_RESPONSE TLV, this 912 will be the value that TXPCU needs to use. 913 914 Note that this length value includes the FCS. 915 <legal all> 916 */ 917 918 #define TX_CBF_INFO_SW_RESPONSE_FRAME_LENGTH_OFFSET 0x0000000000000030 919 #define TX_CBF_INFO_SW_RESPONSE_FRAME_LENGTH_LSB 0 920 #define TX_CBF_INFO_SW_RESPONSE_FRAME_LENGTH_MSB 15 921 #define TX_CBF_INFO_SW_RESPONSE_FRAME_LENGTH_MASK 0x000000000000ffff 922 923 924 /* Description SW_RESPONSE_TLV_FROM_CRYPTO 925 926 Field can only be set by MAC mitigation logic 927 928 The idea is here that normally TXPCU generates the response 929 frame. 930 But as a backup scenario, in case of a last moment some 931 CBF frame BA format change happens or there is some other 932 issue, the CBF frame could be fully generated in the MAC 933 micro CPU and pushed into TXPCU through the Crypto - TXPCU 934 TLV interface. 935 936 From TXPCU perspective, all interaction with PDG remains 937 exactly the same, accept that the frame length is now coming 938 from field SW_Response_frame_length and the response frame 939 is pushed into TXPCU over the CRYPTO - TXPCU TLV interface 940 941 942 When set, this feature kick in 943 When clear, this feature is not enabled 944 <legal all> 945 */ 946 947 #define TX_CBF_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_OFFSET 0x0000000000000030 948 #define TX_CBF_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_LSB 16 949 #define TX_CBF_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_MSB 16 950 #define TX_CBF_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_MASK 0x0000000000010000 951 952 953 /* Description WAIT_SIFS_CONFIG_VALID 954 955 When set, TXPCU shall follow the wait_sifs configuration. 956 957 958 <legal all> 959 */ 960 961 #define TX_CBF_INFO_WAIT_SIFS_CONFIG_VALID_OFFSET 0x0000000000000030 962 #define TX_CBF_INFO_WAIT_SIFS_CONFIG_VALID_LSB 17 963 #define TX_CBF_INFO_WAIT_SIFS_CONFIG_VALID_MSB 17 964 #define TX_CBF_INFO_WAIT_SIFS_CONFIG_VALID_MASK 0x0000000000020000 965 966 967 /* Description WAIT_SIFS 968 969 Indicates to the TXPCU how precise the SIFS the response 970 timing shall be... 971 972 The configuration for this is coming from SW programmable 973 registers in RXPCU, where RXPCU shall allow SW to program 974 different settings for the following scenarios: BRPOLL, 975 NDPA-NDP, 11ax trigger frame based BRPOLL 976 977 <enum 0 NO_SIFS_TIMING> Transmission shall start with the 978 normal delay in PHY after receiving this notification 979 <enum 1 SIFS_TIMING_DESIRED> Transmission shall be made 980 at the SIFS boundary. If shall never start before SIFS boundary, 981 but if it a little later, it is not ideal and should be 982 flagged, but transmission shall not be aborted. 983 <enum 2 SIFS_TIMING_MANDATED> Transmission shall be made 984 at exactly SIFS boundary. If this notification is received 985 by the PHY after SIFS boundary already passed, the PHY 986 shall abort the transmission 987 <legal 0-2> 988 */ 989 990 #define TX_CBF_INFO_WAIT_SIFS_OFFSET 0x0000000000000030 991 #define TX_CBF_INFO_WAIT_SIFS_LSB 18 992 #define TX_CBF_INFO_WAIT_SIFS_MSB 19 993 #define TX_CBF_INFO_WAIT_SIFS_MASK 0x00000000000c0000 994 995 996 /* Description RANGING 997 998 0: This TLV is generated for Tx CBF generation. 999 1: TLV is generated due to an active ranging session (.11az). 1000 1001 <legal all> 1002 */ 1003 1004 #define TX_CBF_INFO_RANGING_OFFSET 0x0000000000000030 1005 #define TX_CBF_INFO_RANGING_LSB 20 1006 #define TX_CBF_INFO_RANGING_MSB 20 1007 #define TX_CBF_INFO_RANGING_MASK 0x0000000000100000 1008 1009 1010 /* Description SECURE 1011 1012 Field only valid if Ranging is set to 1. 1013 0: Current ranging session is non-secure. 1014 1: Current ranging session is secure. 1015 <legal all> 1016 */ 1017 1018 #define TX_CBF_INFO_SECURE_OFFSET 0x0000000000000030 1019 #define TX_CBF_INFO_SECURE_LSB 21 1020 #define TX_CBF_INFO_SECURE_MSB 21 1021 #define TX_CBF_INFO_SECURE_MASK 0x0000000000200000 1022 1023 1024 /* Description TB_RANGING_RESPONSE_REQUIRED 1025 1026 Field only valid in case of TB Ranging 1027 <enum 0 No_TB_Ranging_Resp> 1028 <enum 1 CTS2S_Resp_to_TF_poll > DO NOT USE. 1029 <enum 2 LMR_Resp_to_TF_report> DO NOT USE. 1030 <enum 3 NDP_Resp_to_TF_sound> TXPCU to generate TB ranging 1031 NDP in response 1032 <legal 0-3> 1033 */ 1034 1035 #define TX_CBF_INFO_TB_RANGING_RESPONSE_REQUIRED_OFFSET 0x0000000000000030 1036 #define TX_CBF_INFO_TB_RANGING_RESPONSE_REQUIRED_LSB 22 1037 #define TX_CBF_INFO_TB_RANGING_RESPONSE_REQUIRED_MSB 23 1038 #define TX_CBF_INFO_TB_RANGING_RESPONSE_REQUIRED_MASK 0x0000000000c00000 1039 1040 1041 /* Description RESERVED_12A 1042 1043 <legal 0> 1044 */ 1045 1046 #define TX_CBF_INFO_RESERVED_12A_OFFSET 0x0000000000000030 1047 #define TX_CBF_INFO_RESERVED_12A_LSB 24 1048 #define TX_CBF_INFO_RESERVED_12A_MSB 25 1049 #define TX_CBF_INFO_RESERVED_12A_MASK 0x0000000003000000 1050 1051 1052 /* Description U_SIG_PUNCTURE_PATTERN_ENCODING 1053 1054 This field is only valid if Punctured_response is set 1055 1056 The 6-bit value used in U-SIG and/or EHT-SIG Common field 1057 for the puncture pattern 1058 <legal 0-29> 1059 */ 1060 1061 #define TX_CBF_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET 0x0000000000000030 1062 #define TX_CBF_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB 26 1063 #define TX_CBF_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB 31 1064 #define TX_CBF_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK 0x00000000fc000000 1065 1066 1067 /* Description DOT11BE_PUNCTURE_BITMAP 1068 1069 This field is only valid if Punctured_response is set 1070 1071 The bitmap of 20 MHz sub-bands valid in this EHT reception 1072 1073 1074 RXPCU gets this from the received U-SIG and/or EHT-SIG via 1075 PHY microcode. 1076 1077 <legal all> 1078 */ 1079 1080 #define TX_CBF_INFO_DOT11BE_PUNCTURE_BITMAP_OFFSET 0x0000000000000030 1081 #define TX_CBF_INFO_DOT11BE_PUNCTURE_BITMAP_LSB 32 1082 #define TX_CBF_INFO_DOT11BE_PUNCTURE_BITMAP_MSB 47 1083 #define TX_CBF_INFO_DOT11BE_PUNCTURE_BITMAP_MASK 0x0000ffff00000000 1084 1085 1086 /* Description DOT11BE_RESPONSE 1087 1088 Indicates that the peer supports .11be response protocols, 1089 e.g. .11be BW indication in scrambler seed, .11be dynamic 1090 BW procedure, punctured response, etc. 1091 */ 1092 1093 #define TX_CBF_INFO_DOT11BE_RESPONSE_OFFSET 0x0000000000000030 1094 #define TX_CBF_INFO_DOT11BE_RESPONSE_LSB 48 1095 #define TX_CBF_INFO_DOT11BE_RESPONSE_MSB 48 1096 #define TX_CBF_INFO_DOT11BE_RESPONSE_MASK 0x0001000000000000 1097 1098 1099 /* Description PUNCTURED_RESPONSE 1100 1101 Field only valid if Dot11be_response is set 1102 1103 Indicates that the response shall use preamble puncturing 1104 1105 */ 1106 1107 #define TX_CBF_INFO_PUNCTURED_RESPONSE_OFFSET 0x0000000000000030 1108 #define TX_CBF_INFO_PUNCTURED_RESPONSE_LSB 49 1109 #define TX_CBF_INFO_PUNCTURED_RESPONSE_MSB 49 1110 #define TX_CBF_INFO_PUNCTURED_RESPONSE_MASK 0x0002000000000000 1111 1112 1113 /* Description NPDA_INFO_11BE_VALID 1114 1115 When set, 11be_NDPA info is valid. 1116 TXPCU will have to trigger the PDG for response transmission 1117 . 1118 1119 PHY's response will be in 11be format. 1120 <legal all> 1121 */ 1122 1123 #define TX_CBF_INFO_NPDA_INFO_11BE_VALID_OFFSET 0x0000000000000030 1124 #define TX_CBF_INFO_NPDA_INFO_11BE_VALID_LSB 50 1125 #define TX_CBF_INFO_NPDA_INFO_11BE_VALID_MSB 50 1126 #define TX_CBF_INFO_NPDA_INFO_11BE_VALID_MASK 0x0004000000000000 1127 1128 1129 /* Description EHT_DUPLICATE_MODE 1130 1131 Field only valid for pkt_type == 11be 1132 1133 Indicates EHT duplicate modulation 1134 1135 <enum 0 eht_no_duplicate> 1136 <enum 1 eht_2x_duplicate> 1137 <enum 2 eht_4x_duplicate> 1138 1139 <legal 0-2> 1140 */ 1141 1142 #define TX_CBF_INFO_EHT_DUPLICATE_MODE_OFFSET 0x0000000000000030 1143 #define TX_CBF_INFO_EHT_DUPLICATE_MODE_LSB 51 1144 #define TX_CBF_INFO_EHT_DUPLICATE_MODE_MSB 52 1145 #define TX_CBF_INFO_EHT_DUPLICATE_MODE_MASK 0x0018000000000000 1146 1147 1148 /* Description RESERVED_13A 1149 1150 <legal 0> 1151 */ 1152 1153 #define TX_CBF_INFO_RESERVED_13A_OFFSET 0x0000000000000030 1154 #define TX_CBF_INFO_RESERVED_13A_LSB 53 1155 #define TX_CBF_INFO_RESERVED_13A_MSB 63 1156 #define TX_CBF_INFO_RESERVED_13A_MASK 0xffe0000000000000 1157 1158 1159 /* Description EHT_STA_INFO_39_32 1160 1161 Field only valid when Npda_info_11be_valid is set 1162 1163 The fifth 8 bits of the RAW EHT STA INFO field in the NDPA 1164 frame 1165 */ 1166 1167 #define TX_CBF_INFO_EHT_STA_INFO_39_32_OFFSET 0x0000000000000038 1168 #define TX_CBF_INFO_EHT_STA_INFO_39_32_LSB 0 1169 #define TX_CBF_INFO_EHT_STA_INFO_39_32_MSB 7 1170 #define TX_CBF_INFO_EHT_STA_INFO_39_32_MASK 0x00000000000000ff 1171 1172 1173 /* Description RESERVED_14A 1174 1175 Can be used for future expansion 1176 <legal 0> 1177 */ 1178 1179 #define TX_CBF_INFO_RESERVED_14A_OFFSET 0x0000000000000038 1180 #define TX_CBF_INFO_RESERVED_14A_LSB 8 1181 #define TX_CBF_INFO_RESERVED_14A_MSB 31 1182 #define TX_CBF_INFO_RESERVED_14A_MASK 0x00000000ffffff00 1183 1184 1185 /* Description TLV64_PADDING 1186 1187 Automatic DWORD padding inserted while converting TLV32 1188 to TLV64 for 64 bit ARCH 1189 <legal 0> 1190 */ 1191 1192 #define TX_CBF_INFO_TLV64_PADDING_OFFSET 0x0000000000000038 1193 #define TX_CBF_INFO_TLV64_PADDING_LSB 32 1194 #define TX_CBF_INFO_TLV64_PADDING_MSB 63 1195 #define TX_CBF_INFO_TLV64_PADDING_MASK 0xffffffff00000000 1196 1197 1198 1199 #endif // TX_CBF_INFO 1200