expected_response.h 31 KB

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