tx_fes_status_start_prot.h 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595
  1. /* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
  2. *
  3. * Permission to use, copy, modify, and/or distribute this software for any
  4. * purpose with or without fee is hereby granted, provided that the above
  5. * copyright notice and this permission notice appear in all copies.
  6. *
  7. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  8. * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  9. * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  10. * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  11. * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  12. * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  13. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  14. */
  15. #ifndef _TX_FES_STATUS_START_PROT_H_
  16. #define _TX_FES_STATUS_START_PROT_H_
  17. #if !defined(__ASSEMBLER__)
  18. #endif
  19. #define NUM_OF_DWORDS_TX_FES_STATUS_START_PROT 4
  20. #define NUM_OF_QWORDS_TX_FES_STATUS_START_PROT 2
  21. struct tx_fes_status_start_prot {
  22. #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
  23. uint32_t prot_timestamp_lower_32 : 32; // [31:0]
  24. uint32_t prot_timestamp_upper_32 : 32; // [31:0]
  25. uint32_t subband_mask : 16, // [15:0]
  26. reserved_2b : 4, // [19:16]
  27. prot_coex_based_tx_bw : 3, // [22:20]
  28. prot_coex_based_ant_mask : 8, // [30:23]
  29. prot_coex_result_alt_based : 1; // [31:31]
  30. uint32_t prot_coex_tx_pwr_shared_ant : 8, // [7:0]
  31. prot_coex_tx_pwr_ant : 8, // [15:8]
  32. prot_concurrent_bt_tx : 1, // [16:16]
  33. prot_concurrent_wlan_tx : 1, // [17:17]
  34. prot_concurrent_wan_tx : 1, // [18:18]
  35. prot_concurrent_wan_rx : 1, // [19:19]
  36. prot_coex_pwr_reduction_bt : 1, // [20:20]
  37. prot_coex_pwr_reduction_wlan : 1, // [21:21]
  38. prot_coex_pwr_reduction_wan : 1, // [22:22]
  39. prot_request_packet_bw : 3, // [25:23]
  40. response_type : 5, // [30:26]
  41. reserved_3a : 1; // [31:31]
  42. #else
  43. uint32_t prot_timestamp_lower_32 : 32; // [31:0]
  44. uint32_t prot_timestamp_upper_32 : 32; // [31:0]
  45. uint32_t prot_coex_result_alt_based : 1, // [31:31]
  46. prot_coex_based_ant_mask : 8, // [30:23]
  47. prot_coex_based_tx_bw : 3, // [22:20]
  48. reserved_2b : 4, // [19:16]
  49. subband_mask : 16; // [15:0]
  50. uint32_t reserved_3a : 1, // [31:31]
  51. response_type : 5, // [30:26]
  52. prot_request_packet_bw : 3, // [25:23]
  53. prot_coex_pwr_reduction_wan : 1, // [22:22]
  54. prot_coex_pwr_reduction_wlan : 1, // [21:21]
  55. prot_coex_pwr_reduction_bt : 1, // [20:20]
  56. prot_concurrent_wan_rx : 1, // [19:19]
  57. prot_concurrent_wan_tx : 1, // [18:18]
  58. prot_concurrent_wlan_tx : 1, // [17:17]
  59. prot_concurrent_bt_tx : 1, // [16:16]
  60. prot_coex_tx_pwr_ant : 8, // [15:8]
  61. prot_coex_tx_pwr_shared_ant : 8; // [7:0]
  62. #endif
  63. };
  64. /* Description PROT_TIMESTAMP_LOWER_32
  65. Global timer value at start of Protection transmission
  66. */
  67. #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_LOWER_32_OFFSET 0x0000000000000000
  68. #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_LOWER_32_LSB 0
  69. #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_LOWER_32_MSB 31
  70. #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_LOWER_32_MASK 0x00000000ffffffff
  71. /* Description PROT_TIMESTAMP_UPPER_32
  72. Global timer value at start of Protection transmission
  73. */
  74. #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_UPPER_32_OFFSET 0x0000000000000000
  75. #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_UPPER_32_LSB 32
  76. #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_UPPER_32_MSB 63
  77. #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_UPPER_32_MASK 0xffffffff00000000
  78. /* Description SUBBAND_MASK
  79. This mask indicates which 20 Mhz channels are actively used
  80. in the BW or puncture pattern selected for transmit.
  81. Bit 0: primary 20 Mhz
  82. Bit 1: secondary 20 MHz
  83. Etc.
  84. Hamilton v1 used bits [5:1] for the 'Response_type' expected.
  85. <legal all>
  86. */
  87. #define TX_FES_STATUS_START_PROT_SUBBAND_MASK_OFFSET 0x0000000000000008
  88. #define TX_FES_STATUS_START_PROT_SUBBAND_MASK_LSB 0
  89. #define TX_FES_STATUS_START_PROT_SUBBAND_MASK_MSB 15
  90. #define TX_FES_STATUS_START_PROT_SUBBAND_MASK_MASK 0x000000000000ffff
  91. /* Description RESERVED_2B
  92. <legal 0>
  93. */
  94. #define TX_FES_STATUS_START_PROT_RESERVED_2B_OFFSET 0x0000000000000008
  95. #define TX_FES_STATUS_START_PROT_RESERVED_2B_LSB 16
  96. #define TX_FES_STATUS_START_PROT_RESERVED_2B_MSB 19
  97. #define TX_FES_STATUS_START_PROT_RESERVED_2B_MASK 0x00000000000f0000
  98. /* Description PROT_COEX_BASED_TX_BW
  99. Field valid for Protection frame transmission
  100. This is the transmit bandwidth value
  101. that is granted by Coex.
  102. <enum 0 20_mhz>20 Mhz BW
  103. <enum 1 40_mhz>40 Mhz BW
  104. <enum 2 80_mhz>80 Mhz BW
  105. <enum 3 160_mhz>160 Mhz BW
  106. <enum 4 320_mhz>320 Mhz BW
  107. <enum 5 240_mhz>240 Mhz BW
  108. */
  109. #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_TX_BW_OFFSET 0x0000000000000008
  110. #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_TX_BW_LSB 20
  111. #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_TX_BW_MSB 22
  112. #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_TX_BW_MASK 0x0000000000700000
  113. /* Description PROT_COEX_BASED_ANT_MASK
  114. Field valid for Protection frame transmission
  115. The antennas allowed to be used for this transmission.
  116. (Coex is allowed to reduce the number of antennas to be
  117. used, but not the number of SS)
  118. <legal all>
  119. */
  120. #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_ANT_MASK_OFFSET 0x0000000000000008
  121. #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_ANT_MASK_LSB 23
  122. #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_ANT_MASK_MSB 30
  123. #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_ANT_MASK_MASK 0x000000007f800000
  124. /* Description PROT_COEX_RESULT_ALT_BASED
  125. Field valid for Protection frame transmission
  126. When set, the resulting Coex transmit parameters are based
  127. alternate transmit settings in the TX_RATE_SETTING STRUCT
  128. of the original selected BW
  129. When not set, the resulting Coex parameters are based on
  130. the default transmit settings in the TX_RATE_SETTING STRUCT
  131. <legal all>
  132. */
  133. #define TX_FES_STATUS_START_PROT_PROT_COEX_RESULT_ALT_BASED_OFFSET 0x0000000000000008
  134. #define TX_FES_STATUS_START_PROT_PROT_COEX_RESULT_ALT_BASED_LSB 31
  135. #define TX_FES_STATUS_START_PROT_PROT_COEX_RESULT_ALT_BASED_MSB 31
  136. #define TX_FES_STATUS_START_PROT_PROT_COEX_RESULT_ALT_BASED_MASK 0x0000000080000000
  137. /* Description PROT_COEX_TX_PWR_SHARED_ANT
  138. Field valid for Protection frame transmission
  139. Transmit Power in s6.2 format.
  140. In units of 0.25 dBm
  141. <legal all>
  142. */
  143. #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_SHARED_ANT_OFFSET 0x0000000000000008
  144. #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_SHARED_ANT_LSB 32
  145. #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_SHARED_ANT_MSB 39
  146. #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_SHARED_ANT_MASK 0x000000ff00000000
  147. /* Description PROT_COEX_TX_PWR_ANT
  148. Field valid for Protection frame transmission
  149. Transmit Power in s6.2 format.
  150. In units of 0.25 dBm
  151. <legal all>
  152. */
  153. #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_ANT_OFFSET 0x0000000000000008
  154. #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_ANT_LSB 40
  155. #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_ANT_MSB 47
  156. #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_ANT_MASK 0x0000ff0000000000
  157. /* Description PROT_CONCURRENT_BT_TX
  158. Field valid for Protection frame transmission
  159. Indicate the current TX is concurrent with a BT transmission.
  160. This bit is to be copied over into the FES status info.
  161. <legal all>
  162. */
  163. #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_BT_TX_OFFSET 0x0000000000000008
  164. #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_BT_TX_LSB 48
  165. #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_BT_TX_MSB 48
  166. #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_BT_TX_MASK 0x0001000000000000
  167. /* Description PROT_CONCURRENT_WLAN_TX
  168. Field valid for Protection frame transmission
  169. Indicate the current TX is concurrent with other WLAN transmission.
  170. This bit is to be copied over into FES status info. <legal
  171. all>
  172. */
  173. #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WLAN_TX_OFFSET 0x0000000000000008
  174. #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WLAN_TX_LSB 49
  175. #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WLAN_TX_MSB 49
  176. #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WLAN_TX_MASK 0x0002000000000000
  177. /* Description PROT_CONCURRENT_WAN_TX
  178. Field valid for Protection frame transmission
  179. Indicate the current TX is concurrent with WAN transmission.
  180. This bit is to be copied over into FES status info.
  181. <legal all>
  182. */
  183. #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_TX_OFFSET 0x0000000000000008
  184. #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_TX_LSB 50
  185. #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_TX_MSB 50
  186. #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_TX_MASK 0x0004000000000000
  187. /* Description PROT_CONCURRENT_WAN_RX
  188. Field valid for Protection frame transmission
  189. Indicate the current TX is concurrent with WAN reception.
  190. This bit is to be copied over into FES status info.
  191. <legal all>
  192. */
  193. #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_RX_OFFSET 0x0000000000000008
  194. #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_RX_LSB 51
  195. #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_RX_MSB 51
  196. #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_RX_MASK 0x0008000000000000
  197. /* Description PROT_COEX_PWR_REDUCTION_BT
  198. When set, transmit power for the protection frame is reduced
  199. due to BT coex reason
  200. <legal all>
  201. */
  202. #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_BT_OFFSET 0x0000000000000008
  203. #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_BT_LSB 52
  204. #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_BT_MSB 52
  205. #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_BT_MASK 0x0010000000000000
  206. /* Description PROT_COEX_PWR_REDUCTION_WLAN
  207. When set, transmit power for the protection frame is reduced
  208. due to wlan coex reason
  209. <legal all>
  210. */
  211. #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WLAN_OFFSET 0x0000000000000008
  212. #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WLAN_LSB 53
  213. #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WLAN_MSB 53
  214. #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WLAN_MASK 0x0020000000000000
  215. /* Description PROT_COEX_PWR_REDUCTION_WAN
  216. When set, transmit power for the protection frame is reduced
  217. due to wan coex reason
  218. <legal all>
  219. */
  220. #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WAN_OFFSET 0x0000000000000008
  221. #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WAN_LSB 54
  222. #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WAN_MSB 54
  223. #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WAN_MASK 0x0040000000000000
  224. /* Description PROT_REQUEST_PACKET_BW
  225. The requested transmit BW to PDG
  226. Note that Coex can have changed the actual allowed transmit
  227. bandwidth.
  228. <enum 0 20_mhz>20 Mhz BW
  229. <enum 1 40_mhz>40 Mhz BW
  230. <enum 2 80_mhz>80 Mhz BW
  231. <enum 3 160_mhz>160 Mhz BW
  232. <enum 4 320_mhz>320 Mhz BW
  233. <enum 5 240_mhz>240 Mhz BW
  234. */
  235. #define TX_FES_STATUS_START_PROT_PROT_REQUEST_PACKET_BW_OFFSET 0x0000000000000008
  236. #define TX_FES_STATUS_START_PROT_PROT_REQUEST_PACKET_BW_LSB 55
  237. #define TX_FES_STATUS_START_PROT_PROT_REQUEST_PACKET_BW_MSB 57
  238. #define TX_FES_STATUS_START_PROT_PROT_REQUEST_PACKET_BW_MASK 0x0380000000000000
  239. /* Description RESPONSE_TYPE
  240. PPDU transmission Response type expected
  241. <enum 0 no_response_expected>After transmission of this
  242. frame, no response in SIFS time is expected
  243. When TXPCU sees this setting, it shall not generated the
  244. EXPECTED_RESPONSE TLV.
  245. RXPCU should never see this setting
  246. <enum 1 ack_expected>An ACK frame is expected as response
  247. RXPCU is just expecting any response. It is TXPCU who checks
  248. that the right response was received.
  249. <enum 2 ba_64_bitmap_expected>BA with 64 bitmap is expected.
  250. PDG DOES NOT use the size info to calculated response duration.
  251. The length of the response will have to be programmed by
  252. SW in the per-BW 'Expected_ppdu_resp_length' field.
  253. For TXPCU only the fact that it is a BA is important. Actual
  254. received BA size is not important
  255. RXPCU is just expecting any response. It is TXPCU who checks
  256. that the right response was received.
  257. <enum 3 ba_256_expected>BA with 256 bitmap is expected.
  258. PDG DOES NOT use the size info to calculated response duration.
  259. The length of the response will have to be programmed by
  260. SW in the per-BW 'Expected_ppdu_resp_length' field.
  261. For TXPCU only the fact that it is a BA is important. Actual
  262. received BA size is not important
  263. RXPCU is just expecting any response. It is TXPCU who checks
  264. that the right response was received.
  265. <enum 4 actionnoack_expected>SW sets this after sending
  266. NDP or BR-Poll.
  267. As PDG has no idea on how long the reception is going to
  268. be, the reception time of the response will have to be
  269. programmed by SW in the 'Extend_duration_value_bw...' field
  270. RXPCU is just expecting any response. It is TXPCU who checks
  271. that the right response was received.
  272. <enum 5 ack_ba_expected>PDG uses the size info and assumes
  273. single BA format with ACK and 64 bitmap embedded.
  274. If SW expects more bitmaps in case of multi-TID, is shall
  275. program the 'Extend_duration_value_bw...' field for additional
  276. duration time.
  277. For TXPCU only the fact that an ACK and/or BA is received
  278. is important. Reception of only ACK or BA is also considered
  279. a success.
  280. SW also typically sets this when sending VHT single MPDU.
  281. Some chip vendors might send BA rather than ACK in response
  282. to VHT single MPDU but still we want to accept BA as well.
  283. RXPCU is just expecting any response. It is TXPCU who checks
  284. that the right response was received.
  285. <enum 6 cts_expected>SW sets this after queuing RTS frame
  286. as standalone packet and sending it.
  287. RXPCU is just expecting any response. It is TXPCU who checks
  288. that the right response was received.
  289. <enum 7 ack_data_expected>SW sets this after sending PS-Poll.
  290. For TXPCU either ACK and/or data reception is considered
  291. success.
  292. PDG basis it's response duration calculation on an ACK.
  293. For the data portion, SW shall program the 'Extend_duration_value_bw...'
  294. field
  295. <enum 8 ndp_ack_expected>Reserved for 11ah usage.
  296. <enum 9 ndp_modified_ack>Reserved for 11ah usage
  297. <enum 10 ndp_ba_expected>Reserved for 11ah usage.
  298. <enum 11 ndp_cts_expected>Reserved for 11ah usage
  299. <enum 12 ndp_ack_or_ndp_modified_ack_expected>Reserved for
  300. 11ah usage
  301. <enum 13 ul_mu_ba_expected>NOT SUPPORTED IN NAPIER AX AND
  302. HASTINGS
  303. TXPCU expects UL MU OFDMA or UL MU MIMO reception.
  304. As PDG does not know how RUs are assigned for the uplink
  305. portion, PDG can not calculate the uplink duration. Therefor
  306. SW shall program the 'Extend_duration_value_bw...' field
  307. RXPCU will report any frame received, irrespective of it
  308. having been UL MU or SU It is TXPCUs responsibility to
  309. distinguish between the UL MU or SU
  310. TXPCU can check in TLV RECEIVED_RESPONSE_INFO MU_Response_BA_bitmap
  311. if indeed BA was received
  312. <enum 14 ul_mu_ba_and_data_expected>NOT SUPPORTED IN NAPIER
  313. AX AND HASTINGS
  314. TXPCU expects UL MU OFDMA or UL MU MIMO reception.
  315. As PDG does not know how RUs are assigned for the uplink
  316. portion, PDG can not calculate the uplink duration. Therefor
  317. SW shall program the 'Extend_duration_value_bw...' field
  318. RXPCU will report any frame received, irrespective of it
  319. having been UL MU or SU It is TXPCUs responsibility to
  320. distinguish between the UL MU or SU
  321. TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_data_bitmap
  322. and MU_Response_BA_bitmap if indeed BA and data was received
  323. <enum 15 ul_mu_cbf_expected>NOT SUPPORTED IN NAPIER AX AND
  324. HASTINGS
  325. When selected, CBF frames are expected to be received in
  326. MU reception (uplink OFDMA or uplink MIMO)
  327. RXPCU is just expecting any response. It is TXPCU who checks
  328. that the right response was received
  329. TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_cbf_bitmap
  330. if indeed CBF frames were received.
  331. <enum 16 ul_mu_frames_expected>When selected, MPDU frames
  332. are expected in the MU reception (uplink OFDMA or uplink
  333. MIMO)
  334. RXPCU is just expecting any response. It is TXPCU who checks
  335. that the right response was received
  336. TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_bitmap
  337. if indeed frames were received.
  338. <enum 17 any_response_to_this_device>Any response expected
  339. to be send to this device in SIFS time is acceptable.
  340. RXPCU is just expecting any response. It is TXPCU who checks
  341. that the right response was received
  342. For TXPCU, UL MU or SU is both acceptable.
  343. Can be used for complex OFDMA scenarios. PDG can not calculate
  344. the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...'
  345. field
  346. <enum 18 any_response_accepted>Any frame in the medium to
  347. this or any other device, is acceptable as response.
  348. RXPCU is just expecting any response. It is TXPCU who checks
  349. that the right response was received
  350. For TXPCU, UL MU or SU is both acceptable.
  351. Can be used for complex OFDMA scenarios. PDG can not calculate
  352. the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...'
  353. field
  354. <enum 19 frameless_phyrx_response_accepted>Any MU frameless
  355. reception generated by the PHY is acceptable.
  356. PHY indicates this type of reception explicitly in TLV PHYRX_RSSI_LEGACY,
  357. field Reception_type == reception_is_frameless
  358. RXPCU will report any frame received, irrespective of it
  359. having been UL MU or SU.
  360. This can be used for complex MU-MIMO or OFDMA scenarios,
  361. like receiving MU-CTS.
  362. PDG can not calculate the uplink duration. Therefor SW shall
  363. program the 'Extend_duration_value_bw...' field
  364. <enum 20 ranging_ndp_and_lmr_expected>SW sets this after
  365. sending ranging NDPA followed by NDP as an ISTA and NDP
  366. and LMR (Action No Ack) are expected as back-to-back reception
  367. in SIFS.
  368. As PDG has no idea on how long the reception is going to
  369. be, the reception time of the response will have to be
  370. programmed by SW in the 'Extend_duration_value_bw...' field
  371. RXPCU is just expecting any response. It is TXPCU who checks
  372. that the right response was received.
  373. <enum 21 ba_512_expected>BA with 512 bitmap is expected.
  374. PDG DOES NOT use the size info to calculated response duration.
  375. The length of the response will have to be programmed by
  376. SW in the per-BW 'Expected_ppdu_resp_length' field.
  377. For TXPCU only the fact that it is a BA is important. Actual
  378. received BA size is not important
  379. RXPCU is just expecting any response. It is TXPCU who checks
  380. that the right response was received.
  381. <enum 22 ba_1024_expected>BA with 1024 bitmap is expected.
  382. PDG DOES NOT use the size info to calculated response duration.
  383. The length of the response will have to be programmed by
  384. SW in the per-BW 'Expected_ppdu_resp_length' field.
  385. For TXPCU only the fact that it is a BA is important. Actual
  386. received BA size is not important
  387. RXPCU is just expecting any response. It is TXPCU who checks
  388. that the right response was received.
  389. <enum 23 ul_mu_ranging_cts2s_expected>When selected, CTS2S
  390. frames are expected to be received in MU reception (uplink
  391. OFDMA)
  392. RXPCU shall check each response for CTS2S and report to
  393. TXPCU.
  394. TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
  395. 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed CTS2S
  396. frames were received.
  397. <enum 24 ul_mu_ranging_ndp_expected>When selected, UL NDP
  398. frames are expected to be received in MU reception (uplink
  399. spatial multiplexing)
  400. RXPCU shall check each response for NDP and report to TXPCU.
  401. TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
  402. 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed NDP
  403. frames were received.
  404. <enum 25 ul_mu_ranging_lmr_expected>When selected, LMR frames
  405. are expected to be received in MU reception (uplink OFDMA
  406. or uplink MIMO)
  407. RXPCU shall check each response for LMR and report to TXPCU.
  408. TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
  409. 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed LMR
  410. frames were received.
  411. */
  412. #define TX_FES_STATUS_START_PROT_RESPONSE_TYPE_OFFSET 0x0000000000000008
  413. #define TX_FES_STATUS_START_PROT_RESPONSE_TYPE_LSB 58
  414. #define TX_FES_STATUS_START_PROT_RESPONSE_TYPE_MSB 62
  415. #define TX_FES_STATUS_START_PROT_RESPONSE_TYPE_MASK 0x7c00000000000000
  416. /* Description RESERVED_3A
  417. */
  418. #define TX_FES_STATUS_START_PROT_RESERVED_3A_OFFSET 0x0000000000000008
  419. #define TX_FES_STATUS_START_PROT_RESERVED_3A_LSB 63
  420. #define TX_FES_STATUS_START_PROT_RESERVED_3A_MSB 63
  421. #define TX_FES_STATUS_START_PROT_RESERVED_3A_MASK 0x8000000000000000
  422. #endif // TX_FES_STATUS_START_PROT