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