rxpcu_ppdu_end_info.h 38 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153
  1. /*
  2. * Copyright (c) 2020 The Linux Foundation. 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. // $ATH_LICENSE_HW_HDR_C$
  17. //
  18. // DO NOT EDIT! This file is automatically generated
  19. // These definitions are tied to a particular hardware layout
  20. #ifndef _RXPCU_PPDU_END_INFO_H_
  21. #define _RXPCU_PPDU_END_INFO_H_
  22. #if !defined(__ASSEMBLER__)
  23. #endif
  24. #include "phyrx_abort_request_info.h"
  25. #include "macrx_abort_request_info.h"
  26. // ################ START SUMMARY #################
  27. //
  28. // Dword Fields
  29. // 0 wb_timestamp_lower_32[31:0]
  30. // 1 wb_timestamp_upper_32[31:0]
  31. // 2 rx_antenna[23:0], tx_ht_vht_ack[24], unsupported_mu_nc[25], otp_txbf_disable[26], previous_tlv_corrupted[27], phyrx_abort_request_info_valid[28], macrx_abort_request_info_valid[29], reserved[31:30]
  32. // 3 coex_bt_tx_from_start_of_rx[0], coex_bt_tx_after_start_of_rx[1], coex_wan_tx_from_start_of_rx[2], coex_wan_tx_after_start_of_rx[3], coex_wlan_tx_from_start_of_rx[4], coex_wlan_tx_after_start_of_rx[5], mpdu_delimiter_errors_seen[6], ftm_tm[8:7], dialog_token[16:9], follow_up_dialog_token[24:17], bb_captured_channel[25], reserved_3[31:26]
  33. // 4 before_mpdu_count_passing_fcs[9:0], before_mpdu_count_failing_fcs[19:10], after_mpdu_count_passing_fcs[29:20], reserved_4[31:30]
  34. // 5 after_mpdu_count_failing_fcs[9:0], reserved_5[31:10]
  35. // 6 phy_timestamp_tx_lower_32[31:0]
  36. // 7 phy_timestamp_tx_upper_32[31:0]
  37. // 8 bb_length[15:0], bb_data[16], reserved_8[19:17], first_bt_broadcast_status_details[31:20]
  38. // 9 rx_ppdu_duration[23:0], reserved_9[31:24]
  39. // 10 ast_index[15:0], ast_index_valid[16], reserved_10[19:17], second_bt_broadcast_status_details[31:20]
  40. // 11 struct phyrx_abort_request_info phyrx_abort_request_info_details;
  41. // 12 struct macrx_abort_request_info macrx_abort_request_info_details;
  42. // 13 rx_ppdu_end_marker[31:0]
  43. //
  44. // ################ END SUMMARY #################
  45. #define NUM_OF_DWORDS_RXPCU_PPDU_END_INFO 14
  46. struct rxpcu_ppdu_end_info {
  47. uint32_t wb_timestamp_lower_32 : 32; //[31:0]
  48. uint32_t wb_timestamp_upper_32 : 32; //[31:0]
  49. uint32_t rx_antenna : 24, //[23:0]
  50. tx_ht_vht_ack : 1, //[24]
  51. unsupported_mu_nc : 1, //[25]
  52. otp_txbf_disable : 1, //[26]
  53. previous_tlv_corrupted : 1, //[27]
  54. phyrx_abort_request_info_valid : 1, //[28]
  55. macrx_abort_request_info_valid : 1, //[29]
  56. reserved : 2; //[31:30]
  57. uint32_t coex_bt_tx_from_start_of_rx : 1, //[0]
  58. coex_bt_tx_after_start_of_rx : 1, //[1]
  59. coex_wan_tx_from_start_of_rx : 1, //[2]
  60. coex_wan_tx_after_start_of_rx : 1, //[3]
  61. coex_wlan_tx_from_start_of_rx : 1, //[4]
  62. coex_wlan_tx_after_start_of_rx : 1, //[5]
  63. mpdu_delimiter_errors_seen : 1, //[6]
  64. ftm_tm : 2, //[8:7]
  65. dialog_token : 8, //[16:9]
  66. follow_up_dialog_token : 8, //[24:17]
  67. bb_captured_channel : 1, //[25]
  68. reserved_3 : 6; //[31:26]
  69. uint32_t before_mpdu_count_passing_fcs : 10, //[9:0]
  70. before_mpdu_count_failing_fcs : 10, //[19:10]
  71. after_mpdu_count_passing_fcs : 10, //[29:20]
  72. reserved_4 : 2; //[31:30]
  73. uint32_t after_mpdu_count_failing_fcs : 10, //[9:0]
  74. reserved_5 : 22; //[31:10]
  75. uint32_t phy_timestamp_tx_lower_32 : 32; //[31:0]
  76. uint32_t phy_timestamp_tx_upper_32 : 32; //[31:0]
  77. uint32_t bb_length : 16, //[15:0]
  78. bb_data : 1, //[16]
  79. reserved_8 : 3, //[19:17]
  80. first_bt_broadcast_status_details: 12; //[31:20]
  81. uint32_t rx_ppdu_duration : 24, //[23:0]
  82. reserved_9 : 8; //[31:24]
  83. uint32_t ast_index : 16, //[15:0]
  84. ast_index_valid : 1, //[16]
  85. reserved_10 : 3, //[19:17]
  86. second_bt_broadcast_status_details: 12; //[31:20]
  87. struct phyrx_abort_request_info phyrx_abort_request_info_details;
  88. struct macrx_abort_request_info macrx_abort_request_info_details;
  89. uint16_t pre_bt_broadcast_status_details : 12, //[27:16]
  90. reserved_12a : 4; //[31:28]
  91. uint32_t rx_ppdu_end_marker : 32; //[31:0]
  92. };
  93. /*
  94. wb_timestamp_lower_32
  95. WLAN/BT timestamp is a 1 usec resolution timestamp which
  96. does not get updated based on receive beacon like TSF. The
  97. same rules for capturing tsf_timestamp are used to capture
  98. the wb_timestamp. This field represents the lower 32 bits of
  99. the 64-bit timestamp
  100. wb_timestamp_upper_32
  101. WLAN/BT timestamp is a 1 usec resolution timestamp which
  102. does not get updated based on receive beacon like TSF. The
  103. same rules for capturing tsf_timestamp are used to capture
  104. the wb_timestamp. This field represents the upper 32 bits of
  105. the 64-bit timestamp
  106. rx_antenna
  107. Receive antenna value ???
  108. tx_ht_vht_ack
  109. Indicates that a HT or VHT Ack/BA frame was transmitted
  110. in response to this receive packet.
  111. unsupported_mu_nc
  112. Set if MU Nc > 2 in received NDPA.
  113. If this bit is set, even though AID and BSSID are
  114. matched, MAC doesn't send tx_expect_ndp to PHY, because MU
  115. Nc > 2 is not supported in Helium.
  116. otp_txbf_disable
  117. Set if either OTP_SUBFEE_DISABLE or OTP_TXBF_DISABLE is
  118. set and if RXPU receives directed NDPA frame. Then, RXPCU
  119. should not send TX_EXPECT_NDP TLV to SW but set this bit to
  120. inform SW.
  121. previous_tlv_corrupted
  122. When set, the TLV preceding this RXPCU_END_INFO TLV
  123. within the RX_PPDU_END TLV, is corrupted. Not the entire TLV
  124. was received.... Likely due to an abort scenario... If abort
  125. is to blame, see the abort data datastructure for details.
  126. <legal all>
  127. phyrx_abort_request_info_valid
  128. When set, the PHY sent an PHYRX_ABORT_REQUEST TLV to
  129. RXPCU. The abort fields embedded in this TLV contain valid
  130. info.
  131. <legal all>
  132. macrx_abort_request_info_valid
  133. When set, the MAC sent an MACRX_ABORT_REQUEST TLV to
  134. PHYRX. The abort fields embedded in this TLV contain valid
  135. info.
  136. <legal all>
  137. reserved
  138. <legal 0>
  139. coex_bt_tx_from_start_of_rx
  140. Set when BT TX was ongoing when WLAN RX started
  141. coex_bt_tx_after_start_of_rx
  142. coex_wan_tx_from_start_of_rx
  143. Set when WAN TX was ongoing when WLAN RX started
  144. coex_wan_tx_after_start_of_rx
  145. Set when WAN TX started while WLAN RX was already
  146. ongoing
  147. coex_wlan_tx_from_start_of_rx
  148. Set when other WLAN TX was ongoing when WLAN RX started
  149. coex_wlan_tx_after_start_of_rx
  150. Set when other WLAN TX started while WLAN RX was already
  151. ongoing
  152. mpdu_delimiter_errors_seen
  153. When set, MPDU delimiter errors have been detected
  154. during this PPDU reception
  155. ftm_tm
  156. Indicate the timestamp is for the FTM or TM frame
  157. 0: non TM or FTM frame
  158. 1: FTM frame
  159. 2: TM frame
  160. 3: reserved
  161. <legal all>
  162. dialog_token
  163. The dialog token in the FTM or TM frame. Only valid when
  164. the FTM is set. Clear to 254 for a non-FTM frame
  165. <legal all>
  166. follow_up_dialog_token
  167. The follow up dialog token in the FTM or TM frame. Only
  168. valid when the FTM is set. Clear to 0 for a non-FTM frame,
  169. The follow up dialog token in the FTM frame. Only valid when
  170. the FTM is set. Clear to 255 for a non-FTM frame<legal all>
  171. bb_captured_channel
  172. Set by RXPCU when the following conditions are met:
  173. Directed (=> unicast) TM or FTM frame has been received
  174. with passing FCS
  175. PHYRX_PKT_END. Location_info_valid is set
  176. <legal all>
  177. reserved_3
  178. <legal 0>
  179. before_mpdu_count_passing_fcs
  180. Number of MPDUs received in this PPDU that passed the
  181. FCS check before the Coex TX started
  182. The counter saturates at 0x3FF.
  183. <legal all>
  184. before_mpdu_count_failing_fcs
  185. Number of MPDUs received in this PPDU that failed the
  186. FCS check before the Coex TX started
  187. The counter saturates at 0x3FF.
  188. <legal all>
  189. after_mpdu_count_passing_fcs
  190. Number of MPDUs received in this PPDU that passed the
  191. FCS check after the moment the Coex TX started
  192. (Note: The partially received MPDU when the COEX tx
  193. start event came in falls in the after category)
  194. The counter saturates at 0x3FF.
  195. <legal all>
  196. reserved_4
  197. <legal 0>
  198. after_mpdu_count_failing_fcs
  199. Number of MPDUs received in this PPDU that failed the
  200. FCS check after the moment the Coex TX started
  201. (Note: The partially received MPDU when the COEX tx
  202. start event came in falls in the after category)
  203. The counter saturates at 0x3FF.
  204. <legal all>
  205. reserved_5
  206. <legal 0>
  207. phy_timestamp_tx_lower_32
  208. The PHY timestamp in the AMPI of the most recent rising
  209. edge (TODO: of what ???) after the TX_PHY_DESC.  This field
  210. indicates the lower 32 bits of the timestamp
  211. phy_timestamp_tx_upper_32
  212. The PHY timestamp in the AMPI of the most recent rising
  213. edge (TODO: of what ???) after the TX_PHY_DESC.  This field
  214. indicates the upper 32 bits of the timestamp
  215. bb_length
  216. Indicates the number of bytes of baseband information
  217. for PPDUs where the BB descriptor preamble type is 0x80 to
  218. 0xFF which indicates that this is not a normal PPDU but
  219. rather contains baseband debug information.
  220. TODO: Is this still needed ???
  221. bb_data
  222. Indicates that BB data associated with this PPDU will
  223. exist in the receive buffer. The exact contents of this BB
  224. data can be found by decoding the BB TLV in the buffer
  225. associated with the BB data. See vector_fragment in the
  226. Helium_mac_phy_interface.docx
  227. reserved_8
  228. Reserved: HW should fill with 0, FW should ignore.
  229. first_bt_broadcast_status_details
  230. Same contents as field bt_broadcast_status_details for
  231. the first received COEX_STATUS_BROADCAST tlv during this
  232. PPDU reception.
  233. If no COEX_STATUS_BROADCAST tlv is received during this
  234. PPDU reception, this field will be set to 0
  235. For detailed info see doc: TBD
  236. <legal all>
  237. rx_ppdu_duration
  238. The length of this PPDU reception in us
  239. reserved_9
  240. <legal 0>
  241. ast_index
  242. The AST index of the receive Ack/BA. This information
  243. is provided from the TXPCU to the RXPCU for receive Ack/BA
  244. for implicit beamforming.
  245. <legal all>
  246. ast_index_valid
  247. Indicates that ast_index is valid. Should only be set
  248. for receive Ack/BA where single stream implicit sounding is
  249. captured.
  250. reserved_10
  251. <legal 0>
  252. second_bt_broadcast_status_details
  253. Same contents as field bt_broadcast_status_details for
  254. the second received COEX_STATUS_BROADCAST tlv during this
  255. PPDU reception.
  256. If no second COEX_STATUS_BROADCAST tlv is received
  257. during this PPDU reception, this field will be set to 0
  258. For detailed info see doc: TBD
  259. <legal all>
  260. struct phyrx_abort_request_info phyrx_abort_request_info_details
  261. Field only valid when Phyrx_abort_request_info_valid is
  262. set
  263. The reason why PHY generated an abort request
  264. struct macrx_abort_request_info macrx_abort_request_info_details
  265. Field only valid when macrx_abort_request_info_valid is
  266. set
  267. The reason why MACRX generated an abort request
  268. rx_ppdu_end_marker
  269. Field used by SW to double check that their structure
  270. alignment is in sync with what HW has done.
  271. <legal 0xAABBCCDD>
  272. */
  273. /* Description RXPCU_PPDU_END_INFO_0_WB_TIMESTAMP_LOWER_32
  274. WLAN/BT timestamp is a 1 usec resolution timestamp which
  275. does not get updated based on receive beacon like TSF. The
  276. same rules for capturing tsf_timestamp are used to capture
  277. the wb_timestamp. This field represents the lower 32 bits of
  278. the 64-bit timestamp
  279. */
  280. #define RXPCU_PPDU_END_INFO_0_WB_TIMESTAMP_LOWER_32_OFFSET 0x00000000
  281. #define RXPCU_PPDU_END_INFO_0_WB_TIMESTAMP_LOWER_32_LSB 0
  282. #define RXPCU_PPDU_END_INFO_0_WB_TIMESTAMP_LOWER_32_MASK 0xffffffff
  283. /* Description RXPCU_PPDU_END_INFO_1_WB_TIMESTAMP_UPPER_32
  284. WLAN/BT timestamp is a 1 usec resolution timestamp which
  285. does not get updated based on receive beacon like TSF. The
  286. same rules for capturing tsf_timestamp are used to capture
  287. the wb_timestamp. This field represents the upper 32 bits of
  288. the 64-bit timestamp
  289. */
  290. #define RXPCU_PPDU_END_INFO_1_WB_TIMESTAMP_UPPER_32_OFFSET 0x00000004
  291. #define RXPCU_PPDU_END_INFO_1_WB_TIMESTAMP_UPPER_32_LSB 0
  292. #define RXPCU_PPDU_END_INFO_1_WB_TIMESTAMP_UPPER_32_MASK 0xffffffff
  293. /* Description RXPCU_PPDU_END_INFO_2_RX_ANTENNA
  294. Receive antenna value ???
  295. */
  296. #define RXPCU_PPDU_END_INFO_2_RX_ANTENNA_OFFSET 0x00000008
  297. #define RXPCU_PPDU_END_INFO_2_RX_ANTENNA_LSB 0
  298. #define RXPCU_PPDU_END_INFO_2_RX_ANTENNA_MASK 0x00ffffff
  299. /* Description RXPCU_PPDU_END_INFO_2_TX_HT_VHT_ACK
  300. Indicates that a HT or VHT Ack/BA frame was transmitted
  301. in response to this receive packet.
  302. */
  303. #define RXPCU_PPDU_END_INFO_2_TX_HT_VHT_ACK_OFFSET 0x00000008
  304. #define RXPCU_PPDU_END_INFO_2_TX_HT_VHT_ACK_LSB 24
  305. #define RXPCU_PPDU_END_INFO_2_TX_HT_VHT_ACK_MASK 0x01000000
  306. /* Description RXPCU_PPDU_END_INFO_2_UNSUPPORTED_MU_NC
  307. Set if MU Nc > 2 in received NDPA.
  308. If this bit is set, even though AID and BSSID are
  309. matched, MAC doesn't send tx_expect_ndp to PHY, because MU
  310. Nc > 2 is not supported in Helium.
  311. */
  312. #define RXPCU_PPDU_END_INFO_2_UNSUPPORTED_MU_NC_OFFSET 0x00000008
  313. #define RXPCU_PPDU_END_INFO_2_UNSUPPORTED_MU_NC_LSB 25
  314. #define RXPCU_PPDU_END_INFO_2_UNSUPPORTED_MU_NC_MASK 0x02000000
  315. /* Description RXPCU_PPDU_END_INFO_2_OTP_TXBF_DISABLE
  316. Set if either OTP_SUBFEE_DISABLE or OTP_TXBF_DISABLE is
  317. set and if RXPU receives directed NDPA frame. Then, RXPCU
  318. should not send TX_EXPECT_NDP TLV to SW but set this bit to
  319. inform SW.
  320. */
  321. #define RXPCU_PPDU_END_INFO_2_OTP_TXBF_DISABLE_OFFSET 0x00000008
  322. #define RXPCU_PPDU_END_INFO_2_OTP_TXBF_DISABLE_LSB 26
  323. #define RXPCU_PPDU_END_INFO_2_OTP_TXBF_DISABLE_MASK 0x04000000
  324. /* Description RXPCU_PPDU_END_INFO_2_PREVIOUS_TLV_CORRUPTED
  325. When set, the TLV preceding this RXPCU_END_INFO TLV
  326. within the RX_PPDU_END TLV, is corrupted. Not the entire TLV
  327. was received.... Likely due to an abort scenario... If abort
  328. is to blame, see the abort data datastructure for details.
  329. <legal all>
  330. */
  331. #define RXPCU_PPDU_END_INFO_2_PREVIOUS_TLV_CORRUPTED_OFFSET 0x00000008
  332. #define RXPCU_PPDU_END_INFO_2_PREVIOUS_TLV_CORRUPTED_LSB 27
  333. #define RXPCU_PPDU_END_INFO_2_PREVIOUS_TLV_CORRUPTED_MASK 0x08000000
  334. /* Description RXPCU_PPDU_END_INFO_2_PHYRX_ABORT_REQUEST_INFO_VALID
  335. When set, the PHY sent an PHYRX_ABORT_REQUEST TLV to
  336. RXPCU. The abort fields embedded in this TLV contain valid
  337. info.
  338. <legal all>
  339. */
  340. #define RXPCU_PPDU_END_INFO_2_PHYRX_ABORT_REQUEST_INFO_VALID_OFFSET 0x00000008
  341. #define RXPCU_PPDU_END_INFO_2_PHYRX_ABORT_REQUEST_INFO_VALID_LSB 28
  342. #define RXPCU_PPDU_END_INFO_2_PHYRX_ABORT_REQUEST_INFO_VALID_MASK 0x10000000
  343. /* Description RXPCU_PPDU_END_INFO_2_MACRX_ABORT_REQUEST_INFO_VALID
  344. When set, the MAC sent an MACRX_ABORT_REQUEST TLV to
  345. PHYRX. The abort fields embedded in this TLV contain valid
  346. info.
  347. <legal all>
  348. */
  349. #define RXPCU_PPDU_END_INFO_2_MACRX_ABORT_REQUEST_INFO_VALID_OFFSET 0x00000008
  350. #define RXPCU_PPDU_END_INFO_2_MACRX_ABORT_REQUEST_INFO_VALID_LSB 29
  351. #define RXPCU_PPDU_END_INFO_2_MACRX_ABORT_REQUEST_INFO_VALID_MASK 0x20000000
  352. /* Description RXPCU_PPDU_END_INFO_2_RESERVED
  353. <legal 0>
  354. */
  355. #define RXPCU_PPDU_END_INFO_2_RESERVED_OFFSET 0x00000008
  356. #define RXPCU_PPDU_END_INFO_2_RESERVED_LSB 30
  357. #define RXPCU_PPDU_END_INFO_2_RESERVED_MASK 0xc0000000
  358. /* Description RXPCU_PPDU_END_INFO_3_COEX_BT_TX_FROM_START_OF_RX
  359. Set when BT TX was ongoing when WLAN RX started
  360. */
  361. #define RXPCU_PPDU_END_INFO_3_COEX_BT_TX_FROM_START_OF_RX_OFFSET 0x0000000c
  362. #define RXPCU_PPDU_END_INFO_3_COEX_BT_TX_FROM_START_OF_RX_LSB 0
  363. #define RXPCU_PPDU_END_INFO_3_COEX_BT_TX_FROM_START_OF_RX_MASK 0x00000001
  364. /* Description RXPCU_PPDU_END_INFO_3_COEX_BT_TX_AFTER_START_OF_RX
  365. */
  366. #define RXPCU_PPDU_END_INFO_3_COEX_BT_TX_AFTER_START_OF_RX_OFFSET 0x0000000c
  367. #define RXPCU_PPDU_END_INFO_3_COEX_BT_TX_AFTER_START_OF_RX_LSB 1
  368. #define RXPCU_PPDU_END_INFO_3_COEX_BT_TX_AFTER_START_OF_RX_MASK 0x00000002
  369. /* Description RXPCU_PPDU_END_INFO_3_COEX_WAN_TX_FROM_START_OF_RX
  370. Set when WAN TX was ongoing when WLAN RX started
  371. */
  372. #define RXPCU_PPDU_END_INFO_3_COEX_WAN_TX_FROM_START_OF_RX_OFFSET 0x0000000c
  373. #define RXPCU_PPDU_END_INFO_3_COEX_WAN_TX_FROM_START_OF_RX_LSB 2
  374. #define RXPCU_PPDU_END_INFO_3_COEX_WAN_TX_FROM_START_OF_RX_MASK 0x00000004
  375. /* Description RXPCU_PPDU_END_INFO_3_COEX_WAN_TX_AFTER_START_OF_RX
  376. Set when WAN TX started while WLAN RX was already
  377. ongoing
  378. */
  379. #define RXPCU_PPDU_END_INFO_3_COEX_WAN_TX_AFTER_START_OF_RX_OFFSET 0x0000000c
  380. #define RXPCU_PPDU_END_INFO_3_COEX_WAN_TX_AFTER_START_OF_RX_LSB 3
  381. #define RXPCU_PPDU_END_INFO_3_COEX_WAN_TX_AFTER_START_OF_RX_MASK 0x00000008
  382. /* Description RXPCU_PPDU_END_INFO_3_COEX_WLAN_TX_FROM_START_OF_RX
  383. Set when other WLAN TX was ongoing when WLAN RX started
  384. */
  385. #define RXPCU_PPDU_END_INFO_3_COEX_WLAN_TX_FROM_START_OF_RX_OFFSET 0x0000000c
  386. #define RXPCU_PPDU_END_INFO_3_COEX_WLAN_TX_FROM_START_OF_RX_LSB 4
  387. #define RXPCU_PPDU_END_INFO_3_COEX_WLAN_TX_FROM_START_OF_RX_MASK 0x00000010
  388. /* Description RXPCU_PPDU_END_INFO_3_COEX_WLAN_TX_AFTER_START_OF_RX
  389. Set when other WLAN TX started while WLAN RX was already
  390. ongoing
  391. */
  392. #define RXPCU_PPDU_END_INFO_3_COEX_WLAN_TX_AFTER_START_OF_RX_OFFSET 0x0000000c
  393. #define RXPCU_PPDU_END_INFO_3_COEX_WLAN_TX_AFTER_START_OF_RX_LSB 5
  394. #define RXPCU_PPDU_END_INFO_3_COEX_WLAN_TX_AFTER_START_OF_RX_MASK 0x00000020
  395. /* Description RXPCU_PPDU_END_INFO_3_MPDU_DELIMITER_ERRORS_SEEN
  396. When set, MPDU delimiter errors have been detected
  397. during this PPDU reception
  398. */
  399. #define RXPCU_PPDU_END_INFO_3_MPDU_DELIMITER_ERRORS_SEEN_OFFSET 0x0000000c
  400. #define RXPCU_PPDU_END_INFO_3_MPDU_DELIMITER_ERRORS_SEEN_LSB 6
  401. #define RXPCU_PPDU_END_INFO_3_MPDU_DELIMITER_ERRORS_SEEN_MASK 0x00000040
  402. /* Description RXPCU_PPDU_END_INFO_3_FTM_TM
  403. Indicate the timestamp is for the FTM or TM frame
  404. 0: non TM or FTM frame
  405. 1: FTM frame
  406. 2: TM frame
  407. 3: reserved
  408. <legal all>
  409. */
  410. #define RXPCU_PPDU_END_INFO_3_FTM_TM_OFFSET 0x0000000c
  411. #define RXPCU_PPDU_END_INFO_3_FTM_TM_LSB 7
  412. #define RXPCU_PPDU_END_INFO_3_FTM_TM_MASK 0x00000180
  413. /* Description RXPCU_PPDU_END_INFO_3_DIALOG_TOKEN
  414. The dialog token in the FTM or TM frame. Only valid when
  415. the FTM is set. Clear to 254 for a non-FTM frame
  416. <legal all>
  417. */
  418. #define RXPCU_PPDU_END_INFO_3_DIALOG_TOKEN_OFFSET 0x0000000c
  419. #define RXPCU_PPDU_END_INFO_3_DIALOG_TOKEN_LSB 9
  420. #define RXPCU_PPDU_END_INFO_3_DIALOG_TOKEN_MASK 0x0001fe00
  421. /* Description RXPCU_PPDU_END_INFO_3_FOLLOW_UP_DIALOG_TOKEN
  422. The follow up dialog token in the FTM or TM frame. Only
  423. valid when the FTM is set. Clear to 0 for a non-FTM frame,
  424. The follow up dialog token in the FTM frame. Only valid when
  425. the FTM is set. Clear to 255 for a non-FTM frame<legal all>
  426. */
  427. #define RXPCU_PPDU_END_INFO_3_FOLLOW_UP_DIALOG_TOKEN_OFFSET 0x0000000c
  428. #define RXPCU_PPDU_END_INFO_3_FOLLOW_UP_DIALOG_TOKEN_LSB 17
  429. #define RXPCU_PPDU_END_INFO_3_FOLLOW_UP_DIALOG_TOKEN_MASK 0x01fe0000
  430. /* Description RXPCU_PPDU_END_INFO_3_BB_CAPTURED_CHANNEL
  431. Set by RXPCU when the following conditions are met:
  432. Directed (=> unicast) TM or FTM frame has been received
  433. with passing FCS
  434. PHYRX_PKT_END. Location_info_valid is set
  435. <legal all>
  436. */
  437. #define RXPCU_PPDU_END_INFO_3_BB_CAPTURED_CHANNEL_OFFSET 0x0000000c
  438. #define RXPCU_PPDU_END_INFO_3_BB_CAPTURED_CHANNEL_LSB 25
  439. #define RXPCU_PPDU_END_INFO_3_BB_CAPTURED_CHANNEL_MASK 0x02000000
  440. /* Description RXPCU_PPDU_END_INFO_3_RESERVED_3
  441. <legal 0>
  442. */
  443. #define RXPCU_PPDU_END_INFO_3_RESERVED_3_OFFSET 0x0000000c
  444. #define RXPCU_PPDU_END_INFO_3_RESERVED_3_LSB 26
  445. #define RXPCU_PPDU_END_INFO_3_RESERVED_3_MASK 0xfc000000
  446. /* Description RXPCU_PPDU_END_INFO_4_BEFORE_MPDU_COUNT_PASSING_FCS
  447. Number of MPDUs received in this PPDU that passed the
  448. FCS check before the Coex TX started
  449. The counter saturates at 0x3FF.
  450. <legal all>
  451. */
  452. #define RXPCU_PPDU_END_INFO_4_BEFORE_MPDU_COUNT_PASSING_FCS_OFFSET 0x00000010
  453. #define RXPCU_PPDU_END_INFO_4_BEFORE_MPDU_COUNT_PASSING_FCS_LSB 0
  454. #define RXPCU_PPDU_END_INFO_4_BEFORE_MPDU_COUNT_PASSING_FCS_MASK 0x000003ff
  455. /* Description RXPCU_PPDU_END_INFO_4_BEFORE_MPDU_COUNT_FAILING_FCS
  456. Number of MPDUs received in this PPDU that failed the
  457. FCS check before the Coex TX started
  458. The counter saturates at 0x3FF.
  459. <legal all>
  460. */
  461. #define RXPCU_PPDU_END_INFO_4_BEFORE_MPDU_COUNT_FAILING_FCS_OFFSET 0x00000010
  462. #define RXPCU_PPDU_END_INFO_4_BEFORE_MPDU_COUNT_FAILING_FCS_LSB 10
  463. #define RXPCU_PPDU_END_INFO_4_BEFORE_MPDU_COUNT_FAILING_FCS_MASK 0x000ffc00
  464. /* Description RXPCU_PPDU_END_INFO_4_AFTER_MPDU_COUNT_PASSING_FCS
  465. Number of MPDUs received in this PPDU that passed the
  466. FCS check after the moment the Coex TX started
  467. (Note: The partially received MPDU when the COEX tx
  468. start event came in falls in the after category)
  469. The counter saturates at 0x3FF.
  470. <legal all>
  471. */
  472. #define RXPCU_PPDU_END_INFO_4_AFTER_MPDU_COUNT_PASSING_FCS_OFFSET 0x00000010
  473. #define RXPCU_PPDU_END_INFO_4_AFTER_MPDU_COUNT_PASSING_FCS_LSB 20
  474. #define RXPCU_PPDU_END_INFO_4_AFTER_MPDU_COUNT_PASSING_FCS_MASK 0x3ff00000
  475. /* Description RXPCU_PPDU_END_INFO_4_RESERVED_4
  476. <legal 0>
  477. */
  478. #define RXPCU_PPDU_END_INFO_4_RESERVED_4_OFFSET 0x00000010
  479. #define RXPCU_PPDU_END_INFO_4_RESERVED_4_LSB 30
  480. #define RXPCU_PPDU_END_INFO_4_RESERVED_4_MASK 0xc0000000
  481. /* Description RXPCU_PPDU_END_INFO_5_AFTER_MPDU_COUNT_FAILING_FCS
  482. Number of MPDUs received in this PPDU that failed the
  483. FCS check after the moment the Coex TX started
  484. (Note: The partially received MPDU when the COEX tx
  485. start event came in falls in the after category)
  486. The counter saturates at 0x3FF.
  487. <legal all>
  488. */
  489. #define RXPCU_PPDU_END_INFO_5_AFTER_MPDU_COUNT_FAILING_FCS_OFFSET 0x00000014
  490. #define RXPCU_PPDU_END_INFO_5_AFTER_MPDU_COUNT_FAILING_FCS_LSB 0
  491. #define RXPCU_PPDU_END_INFO_5_AFTER_MPDU_COUNT_FAILING_FCS_MASK 0x000003ff
  492. /* Description RXPCU_PPDU_END_INFO_5_RESERVED_5
  493. <legal 0>
  494. */
  495. #define RXPCU_PPDU_END_INFO_5_RESERVED_5_OFFSET 0x00000014
  496. #define RXPCU_PPDU_END_INFO_5_RESERVED_5_LSB 10
  497. #define RXPCU_PPDU_END_INFO_5_RESERVED_5_MASK 0xfffffc00
  498. /* Description RXPCU_PPDU_END_INFO_6_PHY_TIMESTAMP_TX_LOWER_32
  499. The PHY timestamp in the AMPI of the most recent rising
  500. edge (TODO: of what ???) after the TX_PHY_DESC.  This field
  501. indicates the lower 32 bits of the timestamp
  502. */
  503. #define RXPCU_PPDU_END_INFO_6_PHY_TIMESTAMP_TX_LOWER_32_OFFSET 0x00000018
  504. #define RXPCU_PPDU_END_INFO_6_PHY_TIMESTAMP_TX_LOWER_32_LSB 0
  505. #define RXPCU_PPDU_END_INFO_6_PHY_TIMESTAMP_TX_LOWER_32_MASK 0xffffffff
  506. /* Description RXPCU_PPDU_END_INFO_7_PHY_TIMESTAMP_TX_UPPER_32
  507. The PHY timestamp in the AMPI of the most recent rising
  508. edge (TODO: of what ???) after the TX_PHY_DESC.  This field
  509. indicates the upper 32 bits of the timestamp
  510. */
  511. #define RXPCU_PPDU_END_INFO_7_PHY_TIMESTAMP_TX_UPPER_32_OFFSET 0x0000001c
  512. #define RXPCU_PPDU_END_INFO_7_PHY_TIMESTAMP_TX_UPPER_32_LSB 0
  513. #define RXPCU_PPDU_END_INFO_7_PHY_TIMESTAMP_TX_UPPER_32_MASK 0xffffffff
  514. /* Description RXPCU_PPDU_END_INFO_8_BB_LENGTH
  515. Indicates the number of bytes of baseband information
  516. for PPDUs where the BB descriptor preamble type is 0x80 to
  517. 0xFF which indicates that this is not a normal PPDU but
  518. rather contains baseband debug information.
  519. TODO: Is this still needed ???
  520. */
  521. #define RXPCU_PPDU_END_INFO_8_BB_LENGTH_OFFSET 0x00000020
  522. #define RXPCU_PPDU_END_INFO_8_BB_LENGTH_LSB 0
  523. #define RXPCU_PPDU_END_INFO_8_BB_LENGTH_MASK 0x0000ffff
  524. /* Description RXPCU_PPDU_END_INFO_8_BB_DATA
  525. Indicates that BB data associated with this PPDU will
  526. exist in the receive buffer. The exact contents of this BB
  527. data can be found by decoding the BB TLV in the buffer
  528. associated with the BB data. See vector_fragment in the
  529. Helium_mac_phy_interface.docx
  530. */
  531. #define RXPCU_PPDU_END_INFO_8_BB_DATA_OFFSET 0x00000020
  532. #define RXPCU_PPDU_END_INFO_8_BB_DATA_LSB 16
  533. #define RXPCU_PPDU_END_INFO_8_BB_DATA_MASK 0x00010000
  534. /* Description RXPCU_PPDU_END_INFO_8_RESERVED_8
  535. Reserved: HW should fill with 0, FW should ignore.
  536. */
  537. #define RXPCU_PPDU_END_INFO_8_RESERVED_8_OFFSET 0x00000020
  538. #define RXPCU_PPDU_END_INFO_8_RESERVED_8_LSB 17
  539. #define RXPCU_PPDU_END_INFO_8_RESERVED_8_MASK 0x000e0000
  540. /* Description RXPCU_PPDU_END_INFO_8_FIRST_BT_BROADCAST_STATUS_DETAILS
  541. Same contents as field bt_broadcast_status_details for
  542. the first received COEX_STATUS_BROADCAST tlv during this
  543. PPDU reception.
  544. If no COEX_STATUS_BROADCAST tlv is received during this
  545. PPDU reception, this field will be set to 0
  546. For detailed info see doc: TBD
  547. <legal all>
  548. */
  549. #define RXPCU_PPDU_END_INFO_8_FIRST_BT_BROADCAST_STATUS_DETAILS_OFFSET 0x00000020
  550. #define RXPCU_PPDU_END_INFO_8_FIRST_BT_BROADCAST_STATUS_DETAILS_LSB 20
  551. #define RXPCU_PPDU_END_INFO_8_FIRST_BT_BROADCAST_STATUS_DETAILS_MASK 0xfff00000
  552. /* Description RXPCU_PPDU_END_INFO_9_RX_PPDU_DURATION
  553. The length of this PPDU reception in us
  554. */
  555. #define RXPCU_PPDU_END_INFO_9_RX_PPDU_DURATION_OFFSET 0x00000024
  556. #define RXPCU_PPDU_END_INFO_9_RX_PPDU_DURATION_LSB 0
  557. #define RXPCU_PPDU_END_INFO_9_RX_PPDU_DURATION_MASK 0x00ffffff
  558. /* Description RXPCU_PPDU_END_INFO_9_RESERVED_9
  559. <legal 0>
  560. */
  561. #define RXPCU_PPDU_END_INFO_9_RESERVED_9_OFFSET 0x00000024
  562. #define RXPCU_PPDU_END_INFO_9_RESERVED_9_LSB 24
  563. #define RXPCU_PPDU_END_INFO_9_RESERVED_9_MASK 0xff000000
  564. /* Description RXPCU_PPDU_END_INFO_10_AST_INDEX
  565. The AST index of the receive Ack/BA. This information
  566. is provided from the TXPCU to the RXPCU for receive Ack/BA
  567. for implicit beamforming.
  568. <legal all>
  569. */
  570. #define RXPCU_PPDU_END_INFO_10_AST_INDEX_OFFSET 0x00000028
  571. #define RXPCU_PPDU_END_INFO_10_AST_INDEX_LSB 0
  572. #define RXPCU_PPDU_END_INFO_10_AST_INDEX_MASK 0x0000ffff
  573. /* Description RXPCU_PPDU_END_INFO_10_AST_INDEX_VALID
  574. Indicates that ast_index is valid. Should only be set
  575. for receive Ack/BA where single stream implicit sounding is
  576. captured.
  577. */
  578. #define RXPCU_PPDU_END_INFO_10_AST_INDEX_VALID_OFFSET 0x00000028
  579. #define RXPCU_PPDU_END_INFO_10_AST_INDEX_VALID_LSB 16
  580. #define RXPCU_PPDU_END_INFO_10_AST_INDEX_VALID_MASK 0x00010000
  581. /* Description RXPCU_PPDU_END_INFO_10_RESERVED_10
  582. <legal 0>
  583. */
  584. #define RXPCU_PPDU_END_INFO_10_RESERVED_10_OFFSET 0x00000028
  585. #define RXPCU_PPDU_END_INFO_10_RESERVED_10_LSB 17
  586. #define RXPCU_PPDU_END_INFO_10_RESERVED_10_MASK 0x000e0000
  587. /* Description RXPCU_PPDU_END_INFO_10_SECOND_BT_BROADCAST_STATUS_DETAILS
  588. Same contents as field bt_broadcast_status_details for
  589. the second received COEX_STATUS_BROADCAST tlv during this
  590. PPDU reception.
  591. If no second COEX_STATUS_BROADCAST tlv is received
  592. during this PPDU reception, this field will be set to 0
  593. For detailed info see doc: TBD
  594. <legal all>
  595. */
  596. #define RXPCU_PPDU_END_INFO_10_SECOND_BT_BROADCAST_STATUS_DETAILS_OFFSET 0x00000028
  597. #define RXPCU_PPDU_END_INFO_10_SECOND_BT_BROADCAST_STATUS_DETAILS_LSB 20
  598. #define RXPCU_PPDU_END_INFO_10_SECOND_BT_BROADCAST_STATUS_DETAILS_MASK 0xfff00000
  599. /* EXTERNAL REFERENCE : struct phyrx_abort_request_info phyrx_abort_request_info_details */
  600. /* Description RXPCU_PPDU_END_INFO_11_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHYRX_ABORT_REASON
  601. <enum 0 phyrx_err_phy_off> Reception aborted due to
  602. receiving a PHY_OFF TLV
  603. <enum 1 phyrx_err_synth_off>
  604. <enum 2 phyrx_err_ofdma_timing>
  605. <enum 3 phyrx_err_ofdma_signal_parity>
  606. <enum 4 phyrx_err_ofdma_rate_illegal>
  607. <enum 5 phyrx_err_ofdma_length_illegal>
  608. <enum 6 phyrx_err_ofdma_restart>
  609. <enum 7 phyrx_err_ofdma_service>
  610. <enum 8 phyrx_err_ppdu_ofdma_power_drop>
  611. <enum 9 phyrx_err_cck_blokker>
  612. <enum 10 phyrx_err_cck_timing>
  613. <enum 11 phyrx_err_cck_header_crc>
  614. <enum 12 phyrx_err_cck_rate_illegal>
  615. <enum 13 phyrx_err_cck_length_illegal>
  616. <enum 14 phyrx_err_cck_restart>
  617. <enum 15 phyrx_err_cck_service>
  618. <enum 16 phyrx_err_cck_power_drop>
  619. <enum 17 phyrx_err_ht_crc_err>
  620. <enum 18 phyrx_err_ht_length_illegal>
  621. <enum 19 phyrx_err_ht_rate_illegal>
  622. <enum 20 phyrx_err_ht_zlf>
  623. <enum 21 phyrx_err_false_radar_ext>
  624. <enum 22 phyrx_err_green_field>
  625. <enum 23 phyrx_err_bw_gt_dyn_bw>
  626. <enum 24 phyrx_err_leg_ht_mismatch>
  627. <enum 25 phyrx_err_vht_crc_error>
  628. <enum 26 phyrx_err_vht_siga_unsupported>
  629. <enum 27 phyrx_err_vht_lsig_len_invalid>
  630. <enum 28 phyrx_err_vht_ndp_or_zlf>
  631. <enum 29 phyrx_err_vht_nsym_lt_zero>
  632. <enum 30 phyrx_err_vht_rx_extra_symbol_mismatch>
  633. <enum 31 phyrx_err_vht_rx_skip_group_id0>
  634. <enum 32 phyrx_err_vht_rx_skip_group_id1to62>
  635. <enum 33 phyrx_err_vht_rx_skip_group_id63>
  636. <enum 34 phyrx_err_ofdm_ldpc_decoder_disabled>
  637. <enum 35 phyrx_err_defer_nap>
  638. <enum 36 phyrx_err_fdomain_timeout>
  639. <enum 37 phyrx_err_lsig_rel_check>
  640. <enum 38 phyrx_err_bt_collision>
  641. <enum 39 phyrx_err_unsupported_mu_feedback>
  642. <enum 40 phyrx_err_ppdu_tx_interrupt_rx>
  643. <enum 41 phyrx_err_unsupported_cbf>
  644. <enum 42 phyrx_err_other> Should not really be used. If
  645. needed, ask for documentation update
  646. <enum 43 phyrx_err_he_siga_unsupported > <enum 44
  647. phyrx_err_he_crc_error > <enum 45
  648. phyrx_err_he_sigb_unsupported > <enum 46
  649. phyrx_err_he_mu_mode_unsupported > <enum 47
  650. phyrx_err_he_ndp_or_zlf > <enum 48 phyrx_err_he_nsym_lt_zero
  651. > <enum 49 phyrx_err_he_ru_params_unsupported > <enum 50
  652. phyrx_err_he_num_users_unsupported ><enum 51
  653. phyrx_err_he_sounding_params_unsupported >
  654. <enum 52 phyrx_err_MU_UL_no_power_detected>
  655. <legal 0 - 52>
  656. */
  657. #define RXPCU_PPDU_END_INFO_11_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHYRX_ABORT_REASON_OFFSET 0x0000002c
  658. #define RXPCU_PPDU_END_INFO_11_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHYRX_ABORT_REASON_LSB 0
  659. #define RXPCU_PPDU_END_INFO_11_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHYRX_ABORT_REASON_MASK 0x000000ff
  660. /* Description RXPCU_PPDU_END_INFO_11_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_NAP_STATE
  661. When set, PHY enters PHY NAP state after sending this
  662. abort
  663. Note that nap and defer state are mutually exclusive.
  664. Field put pro-actively in place....usage still to be
  665. agreed upon.
  666. <legal all>
  667. */
  668. #define RXPCU_PPDU_END_INFO_11_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_NAP_STATE_OFFSET 0x0000002c
  669. #define RXPCU_PPDU_END_INFO_11_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_NAP_STATE_LSB 8
  670. #define RXPCU_PPDU_END_INFO_11_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_NAP_STATE_MASK 0x00000100
  671. /* Description RXPCU_PPDU_END_INFO_11_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_DEFER_STATE
  672. When set, PHY enters PHY defer state after sending this
  673. abort
  674. Note that nap and defer state are mutually exclusive.
  675. Field put pro-actively in place....usage still to be
  676. agreed upon.
  677. <legal all>
  678. */
  679. #define RXPCU_PPDU_END_INFO_11_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_DEFER_STATE_OFFSET 0x0000002c
  680. #define RXPCU_PPDU_END_INFO_11_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_DEFER_STATE_LSB 9
  681. #define RXPCU_PPDU_END_INFO_11_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_DEFER_STATE_MASK 0x00000200
  682. /* Description RXPCU_PPDU_END_INFO_11_PHYRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0
  683. <legal 0>
  684. */
  685. #define RXPCU_PPDU_END_INFO_11_PHYRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_OFFSET 0x0000002c
  686. #define RXPCU_PPDU_END_INFO_11_PHYRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_LSB 10
  687. #define RXPCU_PPDU_END_INFO_11_PHYRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_MASK 0x0000fc00
  688. /* Description RXPCU_PPDU_END_INFO_11_PHYRX_ABORT_REQUEST_INFO_DETAILS_RECEIVE_DURATION
  689. The remaining receive duration of this PPDU in the
  690. medium (in us). When PHY does not know this duration when
  691. this TLV is generated, the field will be set to 0.
  692. The timing reference point is the reception by the MAC
  693. of this TLV. The value shall be accurate to within 2us.
  694. In case Phy_enters_nap_state and/or
  695. Phy_enters_defer_state is set, there is a possibility that
  696. MAC PMM can also decide to go into a low(er) power state.
  697. <legal all>
  698. */
  699. #define RXPCU_PPDU_END_INFO_11_PHYRX_ABORT_REQUEST_INFO_DETAILS_RECEIVE_DURATION_OFFSET 0x0000002c
  700. #define RXPCU_PPDU_END_INFO_11_PHYRX_ABORT_REQUEST_INFO_DETAILS_RECEIVE_DURATION_LSB 16
  701. #define RXPCU_PPDU_END_INFO_11_PHYRX_ABORT_REQUEST_INFO_DETAILS_RECEIVE_DURATION_MASK 0xffff0000
  702. /* EXTERNAL REFERENCE : struct macrx_abort_request_info macrx_abort_request_info_details */
  703. /* Description RXPCU_PPDU_END_INFO_12_MACRX_ABORT_REQUEST_INFO_DETAILS_MACRX_ABORT_REASON
  704. <enum 0 macrx_abort_sw_initiated>
  705. <enum 1 macrx_abort_obss_reception> Upon receiving this
  706. abort reason, PHY should stop reception of the current frame
  707. and go back into a search mode
  708. <enum 2 macrx_abort_other>
  709. <enum 3 macrx_abort_sw_initiated_channel_switch > MAC FW
  710. issued an abort for channel switch reasons
  711. <enum 4 macrx_abort_sw_initiated_power_save > MAC FW
  712. issued an abort power save reasons
  713. <enum 5 macrx_abort_too_much_bad_data > RXPCU is
  714. terminating the current ongoing reception, as the data that
  715. MAC is receiving seems to be all garbage... The PER is too
  716. high, or in case of MU UL, Likely the trigger frame never
  717. got properly received by any of the targeted MU UL devices.
  718. After the abort, PHYRX can resume a normal search mode.
  719. <legal 0-5>
  720. */
  721. #define RXPCU_PPDU_END_INFO_12_MACRX_ABORT_REQUEST_INFO_DETAILS_MACRX_ABORT_REASON_OFFSET 0x00000030
  722. #define RXPCU_PPDU_END_INFO_12_MACRX_ABORT_REQUEST_INFO_DETAILS_MACRX_ABORT_REASON_LSB 0
  723. #define RXPCU_PPDU_END_INFO_12_MACRX_ABORT_REQUEST_INFO_DETAILS_MACRX_ABORT_REASON_MASK 0x000000ff
  724. /* Description RXPCU_PPDU_END_INFO_12_MACRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0
  725. <legal 0>
  726. */
  727. #define RXPCU_PPDU_END_INFO_12_MACRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_OFFSET 0x00000030
  728. #define RXPCU_PPDU_END_INFO_12_MACRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_LSB 8
  729. #define RXPCU_PPDU_END_INFO_12_MACRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_MASK 0x0000ff00
  730. /* Description RXPCU_PPDU_END_INFO_13_RX_PPDU_END_MARKER
  731. Field used by SW to double check that their structure
  732. alignment is in sync with what HW has done.
  733. <legal 0xAABBCCDD>
  734. */
  735. #define RXPCU_PPDU_END_INFO_13_RX_PPDU_END_MARKER_OFFSET 0x00000034
  736. #define RXPCU_PPDU_END_INFO_13_RX_PPDU_END_MARKER_LSB 0
  737. #define RXPCU_PPDU_END_INFO_13_RX_PPDU_END_MARKER_MASK 0xffffffff
  738. #endif // _RXPCU_PPDU_END_INFO_H_