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 _EXPECTED_RESPONSE_H_ 18 #define _EXPECTED_RESPONSE_H_ 19 #if !defined(__ASSEMBLER__) 20 #endif 21 22 #define NUM_OF_DWORDS_EXPECTED_RESPONSE 6 23 24 #define NUM_OF_QWORDS_EXPECTED_RESPONSE 3 25 26 27 struct expected_response { 28 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 29 uint32_t tx_ad2_31_0 : 32; // [31:0] 30 uint32_t tx_ad2_47_32 : 16, // [15:0] 31 expected_response_type : 5, // [20:16] 32 response_to_response : 3, // [23:21] 33 su_ba_user_number : 1, // [24:24] 34 response_info_part2_required : 1, // [25:25] 35 transmitted_bssid_check_en : 1, // [26:26] 36 reserved_1 : 5; // [31:27] 37 uint32_t ndp_sta_partial_aid_2_8_0 : 11, // [10:0] 38 reserved_2 : 10, // [20:11] 39 ndp_sta_partial_aid1_8_0 : 11; // [31:21] 40 uint32_t ast_index : 16, // [15:0] 41 capture_ack_ba_sounding : 1, // [16:16] 42 capture_sounding_1str_20mhz : 1, // [17:17] 43 capture_sounding_1str_40mhz : 1, // [18:18] 44 capture_sounding_1str_80mhz : 1, // [19:19] 45 capture_sounding_1str_160mhz : 1, // [20:20] 46 capture_sounding_1str_240mhz : 1, // [21:21] 47 capture_sounding_1str_320mhz : 1, // [22:22] 48 reserved_3a : 9; // [31:23] 49 uint32_t fcs : 9, // [8:0] 50 reserved_4a : 1, // [9:9] 51 crc : 4, // [13:10] 52 scrambler_seed : 7, // [20:14] 53 reserved_4b : 11; // [31:21] 54 uint32_t tlv64_padding : 32; // [31:0] 55 #else 56 uint32_t tx_ad2_31_0 : 32; // [31:0] 57 uint32_t reserved_1 : 5, // [31:27] 58 transmitted_bssid_check_en : 1, // [26:26] 59 response_info_part2_required : 1, // [25:25] 60 su_ba_user_number : 1, // [24:24] 61 response_to_response : 3, // [23:21] 62 expected_response_type : 5, // [20:16] 63 tx_ad2_47_32 : 16; // [15:0] 64 uint32_t ndp_sta_partial_aid1_8_0 : 11, // [31:21] 65 reserved_2 : 10, // [20:11] 66 ndp_sta_partial_aid_2_8_0 : 11; // [10:0] 67 uint32_t reserved_3a : 9, // [31:23] 68 capture_sounding_1str_320mhz : 1, // [22:22] 69 capture_sounding_1str_240mhz : 1, // [21:21] 70 capture_sounding_1str_160mhz : 1, // [20:20] 71 capture_sounding_1str_80mhz : 1, // [19:19] 72 capture_sounding_1str_40mhz : 1, // [18:18] 73 capture_sounding_1str_20mhz : 1, // [17:17] 74 capture_ack_ba_sounding : 1, // [16:16] 75 ast_index : 16; // [15:0] 76 uint32_t reserved_4b : 11, // [31:21] 77 scrambler_seed : 7, // [20:14] 78 crc : 4, // [13:10] 79 reserved_4a : 1, // [9:9] 80 fcs : 9; // [8:0] 81 uint32_t tlv64_padding : 32; // [31:0] 82 #endif 83 }; 84 85 86 /* Description TX_AD2_31_0 87 88 Lower 32 bits of the transmitter address (AD2) of the last 89 packet which was transmitted, which is used by RXPCU in 90 Proxy STA mode. 91 */ 92 93 #define EXPECTED_RESPONSE_TX_AD2_31_0_OFFSET 0x0000000000000000 94 #define EXPECTED_RESPONSE_TX_AD2_31_0_LSB 0 95 #define EXPECTED_RESPONSE_TX_AD2_31_0_MSB 31 96 #define EXPECTED_RESPONSE_TX_AD2_31_0_MASK 0x00000000ffffffff 97 98 99 /* Description TX_AD2_47_32 100 101 Upper 16 bits of the transmitter address (AD2) of the last 102 packet which was transmitted, which is used by RXPCU in 103 Proxy STA mode. 104 */ 105 106 #define EXPECTED_RESPONSE_TX_AD2_47_32_OFFSET 0x0000000000000000 107 #define EXPECTED_RESPONSE_TX_AD2_47_32_LSB 32 108 #define EXPECTED_RESPONSE_TX_AD2_47_32_MSB 47 109 #define EXPECTED_RESPONSE_TX_AD2_47_32_MASK 0x0000ffff00000000 110 111 112 /* Description EXPECTED_RESPONSE_TYPE 113 114 Provides insight for RXPCU of what type of response is expected 115 in the medium. 116 117 Mainly used for debugging purposes. 118 119 No matter what RXPCU receives, it shall always report it 120 to TXPCU. 121 122 Only special scenario where RXPCU will have to generate 123 a RECEIVED_RESPONSE_INFO TLV , even when no actual MPDU 124 with passing FCS was received is when the response_type 125 is set to: frameless_phyrx_response_accepted 126 127 <enum 0 no_response_expected>After transmission of this 128 frame, no response in SIFS time is expected 129 130 When TXPCU sees this setting, it shall not generated the 131 EXPECTED_RESPONSE TLV. 132 133 RXPCU should never see this setting 134 <enum 1 ack_expected>An ACK frame is expected as response 135 136 137 RXPCU is just expecting any response. It is TXPCU who checks 138 that the right response was received. 139 <enum 2 ba_64_bitmap_expected>BA with 64 bitmap is expected. 140 141 142 PDG DOES NOT use the size info to calculated response duration. 143 The length of the response will have to be programmed by 144 SW in the per-BW 'Expected_ppdu_resp_length' field. 145 146 For TXPCU only the fact that it is a BA is important. Actual 147 received BA size is not important 148 149 RXPCU is just expecting any response. It is TXPCU who checks 150 that the right response was received. 151 <enum 3 ba_256_expected>BA with 256 bitmap is expected. 152 153 PDG DOES NOT use the size info to calculated response duration. 154 The length of the response will have to be programmed by 155 SW in the per-BW 'Expected_ppdu_resp_length' field. 156 157 For TXPCU only the fact that it is a BA is important. Actual 158 received BA size is not important 159 160 RXPCU is just expecting any response. It is TXPCU who checks 161 that the right response was received. 162 <enum 4 actionnoack_expected>SW sets this after sending 163 NDP or BR-Poll. 164 165 As PDG has no idea on how long the reception is going to 166 be, the reception time of the response will have to be 167 programmed by SW in the 'Extend_duration_value_bw...' field 168 169 170 RXPCU is just expecting any response. It is TXPCU who checks 171 that the right response was received. 172 <enum 5 ack_ba_expected>PDG uses the size info and assumes 173 single BA format with ACK and 64 bitmap embedded. 174 If SW expects more bitmaps in case of multi-TID, is shall 175 program the 'Extend_duration_value_bw...' field for additional 176 duration time. 177 For TXPCU only the fact that an ACK and/or BA is received 178 is important. Reception of only ACK or BA is also considered 179 a success. 180 SW also typically sets this when sending VHT single MPDU. 181 Some chip vendors might send BA rather than ACK in response 182 to VHT single MPDU but still we want to accept BA as well. 183 184 185 RXPCU is just expecting any response. It is TXPCU who checks 186 that the right response was received. 187 <enum 6 cts_expected>SW sets this after queuing RTS frame 188 as standalone packet and sending it. 189 190 RXPCU is just expecting any response. It is TXPCU who checks 191 that the right response was received. 192 <enum 7 ack_data_expected>SW sets this after sending PS-Poll. 193 194 195 For TXPCU either ACK and/or data reception is considered 196 success. 197 PDG basis it's response duration calculation on an ACK. 198 For the data portion, SW shall program the 'Extend_duration_value_bw...' 199 field 200 <enum 8 ndp_ack_expected>Reserved for 11ah usage. 201 <enum 9 ndp_modified_ack>Reserved for 11ah usage 202 <enum 10 ndp_ba_expected>Reserved for 11ah usage. 203 <enum 11 ndp_cts_expected>Reserved for 11ah usage 204 <enum 12 ndp_ack_or_ndp_modified_ack_expected>Reserved for 205 11ah usage 206 207 TXPCU expects UL MU OFDMA or UL MU MIMO reception. 208 As PDG does not know how RUs are assigned for the uplink 209 portion, PDG can not calculate the uplink duration. Therefor 210 SW shall program the 'Extend_duration_value_bw...' field 211 212 213 RXPCU will report any frame received, irrespective of it 214 having been UL MU or SU It is TXPCUs responsibility to 215 distinguish between the UL MU or SU 216 217 TXPCU can check in TLV RECEIVED_RESPONSE_INFO MU_Response_BA_bitmap 218 if indeed BA was received 219 220 TXPCU expects UL MU OFDMA or UL MU MIMO reception. 221 As PDG does not know how RUs are assigned for the uplink 222 portion, PDG can not calculate the uplink duration. Therefor 223 SW shall program the 'Extend_duration_value_bw...' field 224 225 226 RXPCU will report any frame received, irrespective of it 227 having been UL MU or SU It is TXPCUs responsibility to 228 distinguish between the UL MU or SU 229 230 TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_data_bitmap 231 and MU_Response_BA_bitmap if indeed BA and data was received 232 233 When selected, CBF frames are expected to be received in 234 MU reception (uplink OFDMA or uplink MIMO) 235 236 RXPCU is just expecting any response. It is TXPCU who checks 237 that the right response was received 238 TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_cbf_bitmap 239 if indeed CBF frames were received. 240 <enum 16 ul_mu_frames_expected>When selected, MPDU frames 241 are expected in the MU reception (uplink OFDMA or uplink 242 MIMO) 243 244 RXPCU is just expecting any response. It is TXPCU who checks 245 that the right response was received 246 247 TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_bitmap 248 if indeed frames were received. 249 <enum 17 any_response_to_this_device>Any response expected 250 to be send to this device in SIFS time is acceptable. 251 252 RXPCU is just expecting any response. It is TXPCU who checks 253 that the right response was received 254 255 For TXPCU, UL MU or SU is both acceptable. 256 257 Can be used for complex OFDMA scenarios. PDG can not calculate 258 the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...' 259 field 260 <enum 18 any_response_accepted>Any frame in the medium to 261 this or any other device, is acceptable as response. 262 RXPCU is just expecting any response. It is TXPCU who checks 263 that the right response was received 264 265 For TXPCU, UL MU or SU is both acceptable. 266 267 Can be used for complex OFDMA scenarios. PDG can not calculate 268 the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...' 269 field 270 <enum 19 frameless_phyrx_response_accepted>Any MU frameless 271 reception generated by the PHY is acceptable. 272 273 PHY indicates this type of reception explicitly in TLV PHYRX_RSSI_LEGACY, 274 field Reception_type == reception_is_frameless 275 276 RXPCU will report any frame received, irrespective of it 277 having been UL MU or SU. 278 279 This can be used for complex MU-MIMO or OFDMA scenarios, 280 like receiving MU-CTS. 281 282 PDG can not calculate the uplink duration. Therefor SW shall 283 program the 'Extend_duration_value_bw...' field 284 <enum 20 ranging_ndp_and_lmr_expected>SW sets this after 285 sending ranging NDPA followed by NDP as an ISTA and NDP 286 and LMR (Action No Ack) are expected as back-to-back reception 287 in SIFS. 288 289 As PDG has no idea on how long the reception is going to 290 be, the reception time of the response will have to be 291 programmed by SW in the 'Extend_duration_value_bw...' field 292 293 294 RXPCU is just expecting any response. It is TXPCU who checks 295 that the right response was received. 296 <enum 21 ba_512_expected>BA with 512 bitmap is expected. 297 298 299 PDG DOES NOT use the size info to calculated response duration. 300 The length of the response will have to be programmed by 301 SW in the per-BW 'Expected_ppdu_resp_length' field. 302 303 For TXPCU only the fact that it is a BA is important. Actual 304 received BA size is not important 305 306 RXPCU is just expecting any response. It is TXPCU who checks 307 that the right response was received. 308 <enum 22 ba_1024_expected>BA with 1024 bitmap is expected. 309 310 311 PDG DOES NOT use the size info to calculated response duration. 312 The length of the response will have to be programmed by 313 SW in the per-BW 'Expected_ppdu_resp_length' field. 314 315 For TXPCU only the fact that it is a BA is important. Actual 316 received BA size is not important 317 318 RXPCU is just expecting any response. It is TXPCU who checks 319 that the right response was received. 320 <enum 23 ul_mu_ranging_cts2s_expected>When selected, CTS2S 321 frames are expected to be received in MU reception (uplink 322 OFDMA) 323 324 RXPCU shall check each response for CTS2S and report to 325 TXPCU. 326 327 TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields 328 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed CTS2S 329 frames were received. 330 <enum 24 ul_mu_ranging_ndp_expected>When selected, UL NDP 331 frames are expected to be received in MU reception (uplink 332 spatial multiplexing) 333 334 RXPCU shall check each response for NDP and report to TXPCU. 335 336 337 TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields 338 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed NDP 339 frames were received. 340 <enum 25 ul_mu_ranging_lmr_expected>When selected, LMR frames 341 are expected to be received in MU reception (uplink OFDMA 342 or uplink MIMO) 343 344 RXPCU shall check each response for LMR and report to TXPCU. 345 346 347 TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields 348 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed LMR 349 frames were received. 350 */ 351 352 #define EXPECTED_RESPONSE_EXPECTED_RESPONSE_TYPE_OFFSET 0x0000000000000000 353 #define EXPECTED_RESPONSE_EXPECTED_RESPONSE_TYPE_LSB 48 354 #define EXPECTED_RESPONSE_EXPECTED_RESPONSE_TYPE_MSB 52 355 #define EXPECTED_RESPONSE_EXPECTED_RESPONSE_TYPE_MASK 0x001f000000000000 356 357 358 /* Description RESPONSE_TO_RESPONSE 359 360 Field indicates if after receiving the PPDU response (indicated 361 in the field above), TXPCU is expected to generate a reponse 362 to the response 363 364 In case a response to response is expected, RXPCU shall 365 first acknowledge the proper reception of the received frames, 366 so that TXPCU can first wrapup that portion of the FES. 367 368 <enum 0 None> No response after response allowed. 369 <enum 1 SU_BA> The response after response that TXPCU is 370 allowed to generate is a single BA. Even if RXPCU is indicating 371 that multiple users are received, TXPCU shall only send 372 a BA for 1 STA. Response_to_response rates can be found 373 in fields 'response_to_response_rate_info_bw...' 374 <enum 2 MU_BA> The response after response that TXPCU is 375 allowed to generate is only Multi Destination Multi User 376 BA. Response_to_response rates can be found in fields 'response_to_response_rate_info_bw...' 377 378 379 <enum 3 RESPONSE_TO_RESPONSE_CMD> A response to response 380 is expected to be generated. In other words, RXPCU will 381 likely indicate to TXPCU at the end of upcoming reception 382 that a response is needed. TXPCU is however to ignore this 383 indication from RXPCU, and assume for a moment that no 384 response to response is needed, as all the details on how 385 to handle this is provided in the next scheduling command, 386 which is marked as a 'response_to_response' type. 387 388 <legal 0-3> 389 */ 390 391 #define EXPECTED_RESPONSE_RESPONSE_TO_RESPONSE_OFFSET 0x0000000000000000 392 #define EXPECTED_RESPONSE_RESPONSE_TO_RESPONSE_LSB 53 393 #define EXPECTED_RESPONSE_RESPONSE_TO_RESPONSE_MSB 55 394 #define EXPECTED_RESPONSE_RESPONSE_TO_RESPONSE_MASK 0x00e0000000000000 395 396 397 /* Description SU_BA_USER_NUMBER 398 399 Field only valid when Response_to_response is SU_BA 400 401 Indicates the user number of which the BA will be send after 402 receiving the uplink OFDMA. 403 */ 404 405 #define EXPECTED_RESPONSE_SU_BA_USER_NUMBER_OFFSET 0x0000000000000000 406 #define EXPECTED_RESPONSE_SU_BA_USER_NUMBER_LSB 56 407 #define EXPECTED_RESPONSE_SU_BA_USER_NUMBER_MSB 56 408 #define EXPECTED_RESPONSE_SU_BA_USER_NUMBER_MASK 0x0100000000000000 409 410 411 /* Description RESPONSE_INFO_PART2_REQUIRED 412 413 Field only valid when Response_type is NOT set to No_response_expected 414 415 416 When set to 1, RXPCU shall generate the RECEIVED_RESPONSE_INFO_PART2 417 TLV after having received the response frame. TXPCU shall 418 wait for this TLV before sending the TX_FES_STATUS_END 419 TLV. 420 421 When NOT set, RXPCU shall NOT generate the above mentioned 422 TLV. TXPCU shall not wait for this TLV and after having 423 received RECEIVED_RESPONSE_INFO TLV, it can immediately 424 generate the TX_FES_STATUS_END TLV. 425 426 <legal all> 427 */ 428 429 #define EXPECTED_RESPONSE_RESPONSE_INFO_PART2_REQUIRED_OFFSET 0x0000000000000000 430 #define EXPECTED_RESPONSE_RESPONSE_INFO_PART2_REQUIRED_LSB 57 431 #define EXPECTED_RESPONSE_RESPONSE_INFO_PART2_REQUIRED_MSB 57 432 #define EXPECTED_RESPONSE_RESPONSE_INFO_PART2_REQUIRED_MASK 0x0200000000000000 433 434 435 /* Description TRANSMITTED_BSSID_CHECK_EN 436 437 When set to 1, RXPCU shall assume group addressed frame 438 with Tx_AD2 equal to TBSSID was sent. RxPCU should properly 439 handle receive frame(s) from STA(s) which A1 is TBSSID 440 or any VAPs.When NOT set, RXPCU shall compare received frame's 441 A1 with Tx_AD2 only. 442 <legal all> 443 */ 444 445 #define EXPECTED_RESPONSE_TRANSMITTED_BSSID_CHECK_EN_OFFSET 0x0000000000000000 446 #define EXPECTED_RESPONSE_TRANSMITTED_BSSID_CHECK_EN_LSB 58 447 #define EXPECTED_RESPONSE_TRANSMITTED_BSSID_CHECK_EN_MSB 58 448 #define EXPECTED_RESPONSE_TRANSMITTED_BSSID_CHECK_EN_MASK 0x0400000000000000 449 450 451 /* Description RESERVED_1 452 453 <legal 0> 454 */ 455 456 #define EXPECTED_RESPONSE_RESERVED_1_OFFSET 0x0000000000000000 457 #define EXPECTED_RESPONSE_RESERVED_1_LSB 59 458 #define EXPECTED_RESPONSE_RESERVED_1_MSB 63 459 #define EXPECTED_RESPONSE_RESERVED_1_MASK 0xf800000000000000 460 461 462 /* Description NDP_STA_PARTIAL_AID_2_8_0 463 464 This field is applicable only in 11ah mode of operation. 465 This field carries the information needed for RxPCU to qualify 466 valid NDP-CTS 467 468 When an RTS is being transmitted, this field provides the 469 partial AID of STA/BSSID of the transmitter,so the received 470 RA/BSSID of the NDP CTS response frame can be compared 471 to validate it. This value is provided by SW for valiadating 472 the NDP CTS. 473 474 This filed also carries information for TA of the NDP Modified 475 ACK when an NDP PS-Poll is transmitted. 476 */ 477 478 #define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID_2_8_0_OFFSET 0x0000000000000008 479 #define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID_2_8_0_LSB 0 480 #define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID_2_8_0_MSB 10 481 #define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID_2_8_0_MASK 0x00000000000007ff 482 483 484 /* Description RESERVED_2 485 486 Reserved: Generator should set to 0, consumer shall ignore 487 <legal 0> 488 */ 489 490 #define EXPECTED_RESPONSE_RESERVED_2_OFFSET 0x0000000000000008 491 #define EXPECTED_RESPONSE_RESERVED_2_LSB 11 492 #define EXPECTED_RESPONSE_RESERVED_2_MSB 20 493 #define EXPECTED_RESPONSE_RESERVED_2_MASK 0x00000000001ff800 494 495 496 /* Description NDP_STA_PARTIAL_AID1_8_0 497 498 This field is applicable only in 11ah mode of operation. 499 This field carries the information needed for RxPCU to qualify 500 valid NDP Modified ACK 501 502 TxPCU provides the partial AID (RA) of the NDP PS-Poll frame. 503 504 */ 505 506 #define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID1_8_0_OFFSET 0x0000000000000008 507 #define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID1_8_0_LSB 21 508 #define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID1_8_0_MSB 31 509 #define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID1_8_0_MASK 0x00000000ffe00000 510 511 512 /* Description AST_INDEX 513 514 The AST index of the receive Ack/BA. This information is 515 provided from the TXPCU to the RXPCU for receive Ack/BA. 516 517 */ 518 519 #define EXPECTED_RESPONSE_AST_INDEX_OFFSET 0x0000000000000008 520 #define EXPECTED_RESPONSE_AST_INDEX_LSB 32 521 #define EXPECTED_RESPONSE_AST_INDEX_MSB 47 522 #define EXPECTED_RESPONSE_AST_INDEX_MASK 0x0000ffff00000000 523 524 525 /* Description CAPTURE_ACK_BA_SOUNDING 526 527 If set enables capture of 1str and 2str sounding on Ack 528 or BA as long as the corresponding capture_sounding_1str_##mhz 529 bits is set. 530 531 If clear the capture of sounding on Ack or BA is disabled 532 even if the corresponding capture_sounding_1str_##mhz is 533 set. 534 */ 535 536 #define EXPECTED_RESPONSE_CAPTURE_ACK_BA_SOUNDING_OFFSET 0x0000000000000008 537 #define EXPECTED_RESPONSE_CAPTURE_ACK_BA_SOUNDING_LSB 48 538 #define EXPECTED_RESPONSE_CAPTURE_ACK_BA_SOUNDING_MSB 48 539 #define EXPECTED_RESPONSE_CAPTURE_ACK_BA_SOUNDING_MASK 0x0001000000000000 540 541 542 /* Description CAPTURE_SOUNDING_1STR_20MHZ 543 544 Capture sounding for 1 stream 20 MHz receive packets 545 */ 546 547 #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_20MHZ_OFFSET 0x0000000000000008 548 #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_20MHZ_LSB 49 549 #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_20MHZ_MSB 49 550 #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_20MHZ_MASK 0x0002000000000000 551 552 553 /* Description CAPTURE_SOUNDING_1STR_40MHZ 554 555 Capture sounding for 1 stream 40 MHz receive packets 556 */ 557 558 #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_40MHZ_OFFSET 0x0000000000000008 559 #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_40MHZ_LSB 50 560 #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_40MHZ_MSB 50 561 #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_40MHZ_MASK 0x0004000000000000 562 563 564 /* Description CAPTURE_SOUNDING_1STR_80MHZ 565 566 Capture sounding for 1 stream 80 MHz receive packets 567 */ 568 569 #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_80MHZ_OFFSET 0x0000000000000008 570 #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_80MHZ_LSB 51 571 #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_80MHZ_MSB 51 572 #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_80MHZ_MASK 0x0008000000000000 573 574 575 /* Description CAPTURE_SOUNDING_1STR_160MHZ 576 577 Capture sounding for 1 stream 160 MHz receive packets 578 */ 579 580 #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_160MHZ_OFFSET 0x0000000000000008 581 #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_160MHZ_LSB 52 582 #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_160MHZ_MSB 52 583 #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_160MHZ_MASK 0x0010000000000000 584 585 586 /* Description CAPTURE_SOUNDING_1STR_240MHZ 587 588 Capture sounding for 1 stream 240 MHz receive packets 589 */ 590 591 #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_240MHZ_OFFSET 0x0000000000000008 592 #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_240MHZ_LSB 53 593 #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_240MHZ_MSB 53 594 #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_240MHZ_MASK 0x0020000000000000 595 596 597 /* Description CAPTURE_SOUNDING_1STR_320MHZ 598 599 Capture sounding for 1 stream 320 MHz receive packets 600 */ 601 602 #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_320MHZ_OFFSET 0x0000000000000008 603 #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_320MHZ_LSB 54 604 #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_320MHZ_MSB 54 605 #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_320MHZ_MASK 0x0040000000000000 606 607 608 /* Description RESERVED_3A 609 610 Reserved: Generator should set to 0, consumer shall ignore 611 <legal 0> 612 */ 613 614 #define EXPECTED_RESPONSE_RESERVED_3A_OFFSET 0x0000000000000008 615 #define EXPECTED_RESPONSE_RESERVED_3A_LSB 55 616 #define EXPECTED_RESPONSE_RESERVED_3A_MSB 63 617 #define EXPECTED_RESPONSE_RESERVED_3A_MASK 0xff80000000000000 618 619 620 /* Description FCS 621 622 Tx Frame's FCS[31:23] 623 624 TODO: describe what this is used for ... 625 626 For aggregates and NDP frames, this field is reserved and 627 TxPCU should populate this to Zero. 628 */ 629 630 #define EXPECTED_RESPONSE_FCS_OFFSET 0x0000000000000010 631 #define EXPECTED_RESPONSE_FCS_LSB 0 632 #define EXPECTED_RESPONSE_FCS_MSB 8 633 #define EXPECTED_RESPONSE_FCS_MASK 0x00000000000001ff 634 635 636 /* Description RESERVED_4A 637 638 Reserved: Generator should set to 0, consumer shall ignore 639 <legal 0> 640 */ 641 642 #define EXPECTED_RESPONSE_RESERVED_4A_OFFSET 0x0000000000000010 643 #define EXPECTED_RESPONSE_RESERVED_4A_LSB 9 644 #define EXPECTED_RESPONSE_RESERVED_4A_MSB 9 645 #define EXPECTED_RESPONSE_RESERVED_4A_MASK 0x0000000000000200 646 647 648 /* Description CRC 649 650 TODO: describe what this is used for ... 651 652 Tx SIG's CRC[3:0] 653 */ 654 655 #define EXPECTED_RESPONSE_CRC_OFFSET 0x0000000000000010 656 #define EXPECTED_RESPONSE_CRC_LSB 10 657 #define EXPECTED_RESPONSE_CRC_MSB 13 658 #define EXPECTED_RESPONSE_CRC_MASK 0x0000000000003c00 659 660 661 /* Description SCRAMBLER_SEED 662 663 TODO: describe what this is used for ... 664 665 Tx Frames SERVICE[6:0] 666 */ 667 668 #define EXPECTED_RESPONSE_SCRAMBLER_SEED_OFFSET 0x0000000000000010 669 #define EXPECTED_RESPONSE_SCRAMBLER_SEED_LSB 14 670 #define EXPECTED_RESPONSE_SCRAMBLER_SEED_MSB 20 671 #define EXPECTED_RESPONSE_SCRAMBLER_SEED_MASK 0x00000000001fc000 672 673 674 /* Description RESERVED_4B 675 676 Reserved: Generator should set to 0, consumer shall ignore 677 <legal 0> 678 */ 679 680 #define EXPECTED_RESPONSE_RESERVED_4B_OFFSET 0x0000000000000010 681 #define EXPECTED_RESPONSE_RESERVED_4B_LSB 21 682 #define EXPECTED_RESPONSE_RESERVED_4B_MSB 31 683 #define EXPECTED_RESPONSE_RESERVED_4B_MASK 0x00000000ffe00000 684 685 686 /* Description TLV64_PADDING 687 688 Automatic DWORD padding inserted while converting TLV32 689 to TLV64 for 64 bit ARCH 690 <legal 0> 691 */ 692 693 #define EXPECTED_RESPONSE_TLV64_PADDING_OFFSET 0x0000000000000010 694 #define EXPECTED_RESPONSE_TLV64_PADDING_LSB 32 695 #define EXPECTED_RESPONSE_TLV64_PADDING_MSB 63 696 #define EXPECTED_RESPONSE_TLV64_PADDING_MASK 0xffffffff00000000 697 698 699 700 #endif // EXPECTED_RESPONSE 701