xref: /wlan-driver/fw-api/hw/qcn6432/expected_response.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1 /*
2  * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for any
5  * purpose with or without fee is hereby granted, provided that the above
6  * copyright notice and this permission notice appear in all copies.
7  *
8  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15  */
16 
17 #ifndef _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