rxpcu_ppdu_end_info.h 89 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031
  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 _RXPCU_PPDU_END_INFO_H_
  16. #define _RXPCU_PPDU_END_INFO_H_
  17. #if !defined(__ASSEMBLER__)
  18. #endif
  19. #include "phyrx_abort_request_info.h"
  20. #include "macrx_abort_request_info.h"
  21. #include "rxpcu_ppdu_end_layout_info.h"
  22. #define NUM_OF_DWORDS_RXPCU_PPDU_END_INFO 28
  23. #define NUM_OF_QWORDS_RXPCU_PPDU_END_INFO 14
  24. struct rxpcu_ppdu_end_info {
  25. #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
  26. uint32_t wb_timestamp_lower_32 : 32; // [31:0]
  27. uint32_t wb_timestamp_upper_32 : 32; // [31:0]
  28. uint32_t rx_antenna : 24, // [23:0]
  29. tx_ht_vht_ack : 1, // [24:24]
  30. unsupported_mu_nc : 1, // [25:25]
  31. otp_txbf_disable : 1, // [26:26]
  32. previous_tlv_corrupted : 1, // [27:27]
  33. phyrx_abort_request_info_valid : 1, // [28:28]
  34. macrx_abort_request_info_valid : 1, // [29:29]
  35. reserved : 2; // [31:30]
  36. uint32_t coex_bt_tx_from_start_of_rx : 1, // [0:0]
  37. coex_bt_tx_after_start_of_rx : 1, // [1:1]
  38. coex_wan_tx_from_start_of_rx : 1, // [2:2]
  39. coex_wan_tx_after_start_of_rx : 1, // [3:3]
  40. coex_wlan_tx_from_start_of_rx : 1, // [4:4]
  41. coex_wlan_tx_after_start_of_rx : 1, // [5:5]
  42. mpdu_delimiter_errors_seen : 1, // [6:6]
  43. ftm_tm : 2, // [8:7]
  44. dialog_token : 8, // [16:9]
  45. follow_up_dialog_token : 8, // [24:17]
  46. bb_captured_channel : 1, // [25:25]
  47. bb_captured_reason : 3, // [28:26]
  48. bb_captured_timeout : 1, // [29:29]
  49. reserved_3 : 2; // [31:30]
  50. uint32_t before_mpdu_count_passing_fcs : 10, // [9:0]
  51. before_mpdu_count_failing_fcs : 10, // [19:10]
  52. after_mpdu_count_passing_fcs : 10, // [29:20]
  53. reserved_4 : 2; // [31:30]
  54. uint32_t after_mpdu_count_failing_fcs : 10, // [9:0]
  55. reserved_5 : 22; // [31:10]
  56. uint32_t phy_timestamp_tx_lower_32 : 32; // [31:0]
  57. uint32_t phy_timestamp_tx_upper_32 : 32; // [31:0]
  58. uint32_t bb_length : 16, // [15:0]
  59. bb_data : 1, // [16:16]
  60. reserved_8 : 3, // [19:17]
  61. first_bt_broadcast_status_details : 12; // [31:20]
  62. uint32_t rx_ppdu_duration : 24, // [23:0]
  63. reserved_9 : 8; // [31:24]
  64. uint32_t ast_index : 16, // [15:0]
  65. ast_index_valid : 1, // [16:16]
  66. reserved_10 : 3, // [19:17]
  67. second_bt_broadcast_status_details : 12; // [31:20]
  68. struct phyrx_abort_request_info phyrx_abort_request_info_details;
  69. struct macrx_abort_request_info macrx_abort_request_info_details;
  70. uint16_t pre_bt_broadcast_status_details : 12, // [27:16]
  71. reserved_12a : 4; // [31:28]
  72. uint32_t non_qos_sn_info_valid : 1, // [0:0]
  73. reserved_13a : 5, // [5:1]
  74. non_qos_sn_highest : 12, // [17:6]
  75. non_qos_sn_highest_retry_setting : 1, // [18:18]
  76. non_qos_sn_lowest : 12, // [30:19]
  77. non_qos_sn_lowest_retry_setting : 1; // [31:31]
  78. uint32_t qos_sn_1_info_valid : 1, // [0:0]
  79. reserved_14a : 1, // [1:1]
  80. qos_sn_1_tid : 4, // [5:2]
  81. qos_sn_1_highest : 12, // [17:6]
  82. qos_sn_1_highest_retry_setting : 1, // [18:18]
  83. qos_sn_1_lowest : 12, // [30:19]
  84. qos_sn_1_lowest_retry_setting : 1; // [31:31]
  85. uint32_t qos_sn_2_info_valid : 1, // [0:0]
  86. reserved_15a : 1, // [1:1]
  87. qos_sn_2_tid : 4, // [5:2]
  88. qos_sn_2_highest : 12, // [17:6]
  89. qos_sn_2_highest_retry_setting : 1, // [18:18]
  90. qos_sn_2_lowest : 12, // [30:19]
  91. qos_sn_2_lowest_retry_setting : 1; // [31:31]
  92. struct rxpcu_ppdu_end_layout_info rxpcu_ppdu_end_layout_details;
  93. uint32_t corrupted_due_to_fifo_delay : 1, // [0:0]
  94. qos_sn_1_more_frag_state : 1, // [1:1]
  95. qos_sn_1_frag_num_state : 4, // [5:2]
  96. qos_sn_2_more_frag_state : 1, // [6:6]
  97. qos_sn_2_frag_num_state : 4, // [10:7]
  98. reserved_26a : 21; // [31:11]
  99. uint32_t rx_ppdu_end_marker : 32; // [31:0]
  100. #else
  101. uint32_t wb_timestamp_lower_32 : 32; // [31:0]
  102. uint32_t wb_timestamp_upper_32 : 32; // [31:0]
  103. uint32_t reserved : 2, // [31:30]
  104. macrx_abort_request_info_valid : 1, // [29:29]
  105. phyrx_abort_request_info_valid : 1, // [28:28]
  106. previous_tlv_corrupted : 1, // [27:27]
  107. otp_txbf_disable : 1, // [26:26]
  108. unsupported_mu_nc : 1, // [25:25]
  109. tx_ht_vht_ack : 1, // [24:24]
  110. rx_antenna : 24; // [23:0]
  111. uint32_t reserved_3 : 2, // [31:30]
  112. bb_captured_timeout : 1, // [29:29]
  113. bb_captured_reason : 3, // [28:26]
  114. bb_captured_channel : 1, // [25:25]
  115. follow_up_dialog_token : 8, // [24:17]
  116. dialog_token : 8, // [16:9]
  117. ftm_tm : 2, // [8:7]
  118. mpdu_delimiter_errors_seen : 1, // [6:6]
  119. coex_wlan_tx_after_start_of_rx : 1, // [5:5]
  120. coex_wlan_tx_from_start_of_rx : 1, // [4:4]
  121. coex_wan_tx_after_start_of_rx : 1, // [3:3]
  122. coex_wan_tx_from_start_of_rx : 1, // [2:2]
  123. coex_bt_tx_after_start_of_rx : 1, // [1:1]
  124. coex_bt_tx_from_start_of_rx : 1; // [0:0]
  125. uint32_t reserved_4 : 2, // [31:30]
  126. after_mpdu_count_passing_fcs : 10, // [29:20]
  127. before_mpdu_count_failing_fcs : 10, // [19:10]
  128. before_mpdu_count_passing_fcs : 10; // [9:0]
  129. uint32_t reserved_5 : 22, // [31:10]
  130. after_mpdu_count_failing_fcs : 10; // [9:0]
  131. uint32_t phy_timestamp_tx_lower_32 : 32; // [31:0]
  132. uint32_t phy_timestamp_tx_upper_32 : 32; // [31:0]
  133. uint32_t first_bt_broadcast_status_details : 12, // [31:20]
  134. reserved_8 : 3, // [19:17]
  135. bb_data : 1, // [16:16]
  136. bb_length : 16; // [15:0]
  137. uint32_t reserved_9 : 8, // [31:24]
  138. rx_ppdu_duration : 24; // [23:0]
  139. uint32_t second_bt_broadcast_status_details : 12, // [31:20]
  140. reserved_10 : 3, // [19:17]
  141. ast_index_valid : 1, // [16:16]
  142. ast_index : 16; // [15:0]
  143. struct phyrx_abort_request_info phyrx_abort_request_info_details;
  144. uint32_t reserved_12a : 4, // [31:28]
  145. pre_bt_broadcast_status_details : 12; // [27:16]
  146. struct macrx_abort_request_info macrx_abort_request_info_details;
  147. uint32_t non_qos_sn_lowest_retry_setting : 1, // [31:31]
  148. non_qos_sn_lowest : 12, // [30:19]
  149. non_qos_sn_highest_retry_setting : 1, // [18:18]
  150. non_qos_sn_highest : 12, // [17:6]
  151. reserved_13a : 5, // [5:1]
  152. non_qos_sn_info_valid : 1; // [0:0]
  153. uint32_t qos_sn_1_lowest_retry_setting : 1, // [31:31]
  154. qos_sn_1_lowest : 12, // [30:19]
  155. qos_sn_1_highest_retry_setting : 1, // [18:18]
  156. qos_sn_1_highest : 12, // [17:6]
  157. qos_sn_1_tid : 4, // [5:2]
  158. reserved_14a : 1, // [1:1]
  159. qos_sn_1_info_valid : 1; // [0:0]
  160. uint32_t qos_sn_2_lowest_retry_setting : 1, // [31:31]
  161. qos_sn_2_lowest : 12, // [30:19]
  162. qos_sn_2_highest_retry_setting : 1, // [18:18]
  163. qos_sn_2_highest : 12, // [17:6]
  164. qos_sn_2_tid : 4, // [5:2]
  165. reserved_15a : 1, // [1:1]
  166. qos_sn_2_info_valid : 1; // [0:0]
  167. struct rxpcu_ppdu_end_layout_info rxpcu_ppdu_end_layout_details;
  168. uint32_t reserved_26a : 21, // [31:11]
  169. qos_sn_2_frag_num_state : 4, // [10:7]
  170. qos_sn_2_more_frag_state : 1, // [6:6]
  171. qos_sn_1_frag_num_state : 4, // [5:2]
  172. qos_sn_1_more_frag_state : 1, // [1:1]
  173. corrupted_due_to_fifo_delay : 1; // [0:0]
  174. uint32_t rx_ppdu_end_marker : 32; // [31:0]
  175. #endif
  176. };
  177. /* Description WB_TIMESTAMP_LOWER_32
  178. WLAN/BT timestamp is a 1 usec resolution timestamp which
  179. does not get updated based on receive beacon like TSF.
  180. The same rules for capturing tsf_timestamp are used to
  181. capture the wb_timestamp. This field represents the lower
  182. 32 bits of the 64-bit timestamp
  183. */
  184. #define RXPCU_PPDU_END_INFO_WB_TIMESTAMP_LOWER_32_OFFSET 0x0000000000000000
  185. #define RXPCU_PPDU_END_INFO_WB_TIMESTAMP_LOWER_32_LSB 0
  186. #define RXPCU_PPDU_END_INFO_WB_TIMESTAMP_LOWER_32_MSB 31
  187. #define RXPCU_PPDU_END_INFO_WB_TIMESTAMP_LOWER_32_MASK 0x00000000ffffffff
  188. /* Description WB_TIMESTAMP_UPPER_32
  189. WLAN/BT timestamp is a 1 usec resolution timestamp which
  190. does not get updated based on receive beacon like TSF.
  191. The same rules for capturing tsf_timestamp are used to
  192. capture the wb_timestamp. This field represents the upper
  193. 32 bits of the 64-bit timestamp
  194. */
  195. #define RXPCU_PPDU_END_INFO_WB_TIMESTAMP_UPPER_32_OFFSET 0x0000000000000000
  196. #define RXPCU_PPDU_END_INFO_WB_TIMESTAMP_UPPER_32_LSB 32
  197. #define RXPCU_PPDU_END_INFO_WB_TIMESTAMP_UPPER_32_MSB 63
  198. #define RXPCU_PPDU_END_INFO_WB_TIMESTAMP_UPPER_32_MASK 0xffffffff00000000
  199. /* Description RX_ANTENNA
  200. Receive antenna value ???
  201. */
  202. #define RXPCU_PPDU_END_INFO_RX_ANTENNA_OFFSET 0x0000000000000008
  203. #define RXPCU_PPDU_END_INFO_RX_ANTENNA_LSB 0
  204. #define RXPCU_PPDU_END_INFO_RX_ANTENNA_MSB 23
  205. #define RXPCU_PPDU_END_INFO_RX_ANTENNA_MASK 0x0000000000ffffff
  206. /* Description TX_HT_VHT_ACK
  207. Indicates that a HT or VHT Ack/BA frame was transmitted
  208. in response to this receive packet.
  209. */
  210. #define RXPCU_PPDU_END_INFO_TX_HT_VHT_ACK_OFFSET 0x0000000000000008
  211. #define RXPCU_PPDU_END_INFO_TX_HT_VHT_ACK_LSB 24
  212. #define RXPCU_PPDU_END_INFO_TX_HT_VHT_ACK_MSB 24
  213. #define RXPCU_PPDU_END_INFO_TX_HT_VHT_ACK_MASK 0x0000000001000000
  214. /* Description UNSUPPORTED_MU_NC
  215. Set if MU Nc > 2 in received NDPA.
  216. If this bit is set, even though AID and BSSID are matched,
  217. MAC doesn't send tx_expect_ndp to PHY, because MU Nc > 2
  218. is not supported in Helium.
  219. */
  220. #define RXPCU_PPDU_END_INFO_UNSUPPORTED_MU_NC_OFFSET 0x0000000000000008
  221. #define RXPCU_PPDU_END_INFO_UNSUPPORTED_MU_NC_LSB 25
  222. #define RXPCU_PPDU_END_INFO_UNSUPPORTED_MU_NC_MSB 25
  223. #define RXPCU_PPDU_END_INFO_UNSUPPORTED_MU_NC_MASK 0x0000000002000000
  224. /* Description OTP_TXBF_DISABLE
  225. Set if either OTP_SUBFEE_DISABLE or OTP_TXBF_DISABLE is
  226. set and if RXPU receives directed NDPA frame. Then, RXPCU
  227. should not send TX_EXPECT_NDP TLV to SW but set this bit
  228. to inform SW.
  229. */
  230. #define RXPCU_PPDU_END_INFO_OTP_TXBF_DISABLE_OFFSET 0x0000000000000008
  231. #define RXPCU_PPDU_END_INFO_OTP_TXBF_DISABLE_LSB 26
  232. #define RXPCU_PPDU_END_INFO_OTP_TXBF_DISABLE_MSB 26
  233. #define RXPCU_PPDU_END_INFO_OTP_TXBF_DISABLE_MASK 0x0000000004000000
  234. /* Description PREVIOUS_TLV_CORRUPTED
  235. When set, the TLV preceding this RXPCU_END_INFO TLV within
  236. the RX_PPDU_END TLV, is corrupted. Not the entire TLV was
  237. received.... Likely due to an abort scenario... If abort
  238. is to blame, see the abort data datastructure for details.
  239. <legal all>
  240. */
  241. #define RXPCU_PPDU_END_INFO_PREVIOUS_TLV_CORRUPTED_OFFSET 0x0000000000000008
  242. #define RXPCU_PPDU_END_INFO_PREVIOUS_TLV_CORRUPTED_LSB 27
  243. #define RXPCU_PPDU_END_INFO_PREVIOUS_TLV_CORRUPTED_MSB 27
  244. #define RXPCU_PPDU_END_INFO_PREVIOUS_TLV_CORRUPTED_MASK 0x0000000008000000
  245. /* Description PHYRX_ABORT_REQUEST_INFO_VALID
  246. When set, the PHY sent an PHYRX_ABORT_REQUEST TLV to RXPCU.
  247. The abort fields embedded in this TLV contain valid info.
  248. <legal all>
  249. */
  250. #define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_VALID_OFFSET 0x0000000000000008
  251. #define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_VALID_LSB 28
  252. #define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_VALID_MSB 28
  253. #define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_VALID_MASK 0x0000000010000000
  254. /* Description MACRX_ABORT_REQUEST_INFO_VALID
  255. When set, the MAC sent an MACRX_ABORT_REQUEST TLV to PHYRX.
  256. The abort fields embedded in this TLV contain valid info.
  257. <legal all>
  258. */
  259. #define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_VALID_OFFSET 0x0000000000000008
  260. #define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_VALID_LSB 29
  261. #define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_VALID_MSB 29
  262. #define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_VALID_MASK 0x0000000020000000
  263. /* Description RESERVED
  264. <legal 0>
  265. */
  266. #define RXPCU_PPDU_END_INFO_RESERVED_OFFSET 0x0000000000000008
  267. #define RXPCU_PPDU_END_INFO_RESERVED_LSB 30
  268. #define RXPCU_PPDU_END_INFO_RESERVED_MSB 31
  269. #define RXPCU_PPDU_END_INFO_RESERVED_MASK 0x00000000c0000000
  270. /* Description COEX_BT_TX_FROM_START_OF_RX
  271. Set when BT TX was ongoing when WLAN RX started
  272. */
  273. #define RXPCU_PPDU_END_INFO_COEX_BT_TX_FROM_START_OF_RX_OFFSET 0x0000000000000008
  274. #define RXPCU_PPDU_END_INFO_COEX_BT_TX_FROM_START_OF_RX_LSB 32
  275. #define RXPCU_PPDU_END_INFO_COEX_BT_TX_FROM_START_OF_RX_MSB 32
  276. #define RXPCU_PPDU_END_INFO_COEX_BT_TX_FROM_START_OF_RX_MASK 0x0000000100000000
  277. /* Description COEX_BT_TX_AFTER_START_OF_RX
  278. Set when BT TX started while WLAN RX was already ongoing
  279. */
  280. #define RXPCU_PPDU_END_INFO_COEX_BT_TX_AFTER_START_OF_RX_OFFSET 0x0000000000000008
  281. #define RXPCU_PPDU_END_INFO_COEX_BT_TX_AFTER_START_OF_RX_LSB 33
  282. #define RXPCU_PPDU_END_INFO_COEX_BT_TX_AFTER_START_OF_RX_MSB 33
  283. #define RXPCU_PPDU_END_INFO_COEX_BT_TX_AFTER_START_OF_RX_MASK 0x0000000200000000
  284. /* Description COEX_WAN_TX_FROM_START_OF_RX
  285. Set when WAN TX was ongoing when WLAN RX started
  286. */
  287. #define RXPCU_PPDU_END_INFO_COEX_WAN_TX_FROM_START_OF_RX_OFFSET 0x0000000000000008
  288. #define RXPCU_PPDU_END_INFO_COEX_WAN_TX_FROM_START_OF_RX_LSB 34
  289. #define RXPCU_PPDU_END_INFO_COEX_WAN_TX_FROM_START_OF_RX_MSB 34
  290. #define RXPCU_PPDU_END_INFO_COEX_WAN_TX_FROM_START_OF_RX_MASK 0x0000000400000000
  291. /* Description COEX_WAN_TX_AFTER_START_OF_RX
  292. Set when WAN TX started while WLAN RX was already ongoing
  293. */
  294. #define RXPCU_PPDU_END_INFO_COEX_WAN_TX_AFTER_START_OF_RX_OFFSET 0x0000000000000008
  295. #define RXPCU_PPDU_END_INFO_COEX_WAN_TX_AFTER_START_OF_RX_LSB 35
  296. #define RXPCU_PPDU_END_INFO_COEX_WAN_TX_AFTER_START_OF_RX_MSB 35
  297. #define RXPCU_PPDU_END_INFO_COEX_WAN_TX_AFTER_START_OF_RX_MASK 0x0000000800000000
  298. /* Description COEX_WLAN_TX_FROM_START_OF_RX
  299. Set when other WLAN TX was ongoing when WLAN RX started
  300. */
  301. #define RXPCU_PPDU_END_INFO_COEX_WLAN_TX_FROM_START_OF_RX_OFFSET 0x0000000000000008
  302. #define RXPCU_PPDU_END_INFO_COEX_WLAN_TX_FROM_START_OF_RX_LSB 36
  303. #define RXPCU_PPDU_END_INFO_COEX_WLAN_TX_FROM_START_OF_RX_MSB 36
  304. #define RXPCU_PPDU_END_INFO_COEX_WLAN_TX_FROM_START_OF_RX_MASK 0x0000001000000000
  305. /* Description COEX_WLAN_TX_AFTER_START_OF_RX
  306. Set when other WLAN TX started while WLAN RX was already
  307. ongoing
  308. */
  309. #define RXPCU_PPDU_END_INFO_COEX_WLAN_TX_AFTER_START_OF_RX_OFFSET 0x0000000000000008
  310. #define RXPCU_PPDU_END_INFO_COEX_WLAN_TX_AFTER_START_OF_RX_LSB 37
  311. #define RXPCU_PPDU_END_INFO_COEX_WLAN_TX_AFTER_START_OF_RX_MSB 37
  312. #define RXPCU_PPDU_END_INFO_COEX_WLAN_TX_AFTER_START_OF_RX_MASK 0x0000002000000000
  313. /* Description MPDU_DELIMITER_ERRORS_SEEN
  314. When set, MPDU delimiter errors have been detected during
  315. this PPDU reception
  316. */
  317. #define RXPCU_PPDU_END_INFO_MPDU_DELIMITER_ERRORS_SEEN_OFFSET 0x0000000000000008
  318. #define RXPCU_PPDU_END_INFO_MPDU_DELIMITER_ERRORS_SEEN_LSB 38
  319. #define RXPCU_PPDU_END_INFO_MPDU_DELIMITER_ERRORS_SEEN_MSB 38
  320. #define RXPCU_PPDU_END_INFO_MPDU_DELIMITER_ERRORS_SEEN_MASK 0x0000004000000000
  321. /* Description FTM_TM
  322. Indicate the timestamp is for the FTM or TM frame
  323. 0: non TM or FTM frame
  324. 1: FTM frame
  325. 2: TM frame
  326. 3: reserved
  327. <legal all>
  328. */
  329. #define RXPCU_PPDU_END_INFO_FTM_TM_OFFSET 0x0000000000000008
  330. #define RXPCU_PPDU_END_INFO_FTM_TM_LSB 39
  331. #define RXPCU_PPDU_END_INFO_FTM_TM_MSB 40
  332. #define RXPCU_PPDU_END_INFO_FTM_TM_MASK 0x0000018000000000
  333. /* Description DIALOG_TOKEN
  334. The dialog token in the FTM or TM frame. Only valid when
  335. the FTM is set. Clear to 254 for a non-FTM frame
  336. <legal all>
  337. */
  338. #define RXPCU_PPDU_END_INFO_DIALOG_TOKEN_OFFSET 0x0000000000000008
  339. #define RXPCU_PPDU_END_INFO_DIALOG_TOKEN_LSB 41
  340. #define RXPCU_PPDU_END_INFO_DIALOG_TOKEN_MSB 48
  341. #define RXPCU_PPDU_END_INFO_DIALOG_TOKEN_MASK 0x0001fe0000000000
  342. /* Description FOLLOW_UP_DIALOG_TOKEN
  343. The follow up dialog token in the FTM or TM frame. Only
  344. valid when the FTM is set. Clear to 0 for a non-FTM frame,
  345. The follow up dialog token in the FTM frame. Only valid
  346. when the FTM is set. Clear to 255 for a non-FTM frame<legal
  347. all>
  348. */
  349. #define RXPCU_PPDU_END_INFO_FOLLOW_UP_DIALOG_TOKEN_OFFSET 0x0000000000000008
  350. #define RXPCU_PPDU_END_INFO_FOLLOW_UP_DIALOG_TOKEN_LSB 49
  351. #define RXPCU_PPDU_END_INFO_FOLLOW_UP_DIALOG_TOKEN_MSB 56
  352. #define RXPCU_PPDU_END_INFO_FOLLOW_UP_DIALOG_TOKEN_MASK 0x01fe000000000000
  353. /* Description BB_CAPTURED_CHANNEL
  354. Set by RXPCU when MACRX_FREEZE_CAPTURE_CHANNEL TLV is sent
  355. to PHY, FW check it to correlate current PPDU TLVs with
  356. uploaded channel information.
  357. <legal all>
  358. */
  359. #define RXPCU_PPDU_END_INFO_BB_CAPTURED_CHANNEL_OFFSET 0x0000000000000008
  360. #define RXPCU_PPDU_END_INFO_BB_CAPTURED_CHANNEL_LSB 57
  361. #define RXPCU_PPDU_END_INFO_BB_CAPTURED_CHANNEL_MSB 57
  362. #define RXPCU_PPDU_END_INFO_BB_CAPTURED_CHANNEL_MASK 0x0200000000000000
  363. /* Description BB_CAPTURED_REASON
  364. Copy "capture_reason" of MACRX_FREEZE_CAPTURE_CHANNEL TLV
  365. to here for FW usage. Valid when bb_captured_channel or
  366. bb_captured_timeout is set.
  367. This field indicates why the MAC asked to capture the channel
  368. <enum 0 freeze_reason_TM>
  369. <enum 1 freeze_reason_FTM>
  370. <enum 2 freeze_reason_ACK_resp_to_TM_FTM>
  371. <enum 3 freeze_reason_TA_RA_TYPE_FILTER>
  372. <enum 4 freeze_reason_NDPA_NDP>
  373. <enum 5 freeze_reason_ALL_PACKET>
  374. <legal 0-5>
  375. */
  376. #define RXPCU_PPDU_END_INFO_BB_CAPTURED_REASON_OFFSET 0x0000000000000008
  377. #define RXPCU_PPDU_END_INFO_BB_CAPTURED_REASON_LSB 58
  378. #define RXPCU_PPDU_END_INFO_BB_CAPTURED_REASON_MSB 60
  379. #define RXPCU_PPDU_END_INFO_BB_CAPTURED_REASON_MASK 0x1c00000000000000
  380. /* Description BB_CAPTURED_TIMEOUT
  381. Set by RxPCU to indicate channel capture condition is meet,
  382. but MACRX_FREEZE_CAPTURE_CHANNEL is not sent to PHY due
  383. to AST long delay, which means the rx_frame_falling edge
  384. to FREEZE TLV ready time exceed the threshold time defined
  385. by RXPCU register FREEZE_TLV_DELAY_CNT_THRESH.
  386. Bb_captured_reason is still valid in this case.
  387. <legal all>
  388. */
  389. #define RXPCU_PPDU_END_INFO_BB_CAPTURED_TIMEOUT_OFFSET 0x0000000000000008
  390. #define RXPCU_PPDU_END_INFO_BB_CAPTURED_TIMEOUT_LSB 61
  391. #define RXPCU_PPDU_END_INFO_BB_CAPTURED_TIMEOUT_MSB 61
  392. #define RXPCU_PPDU_END_INFO_BB_CAPTURED_TIMEOUT_MASK 0x2000000000000000
  393. /* Description RESERVED_3
  394. <legal 0>
  395. */
  396. #define RXPCU_PPDU_END_INFO_RESERVED_3_OFFSET 0x0000000000000008
  397. #define RXPCU_PPDU_END_INFO_RESERVED_3_LSB 62
  398. #define RXPCU_PPDU_END_INFO_RESERVED_3_MSB 63
  399. #define RXPCU_PPDU_END_INFO_RESERVED_3_MASK 0xc000000000000000
  400. /* Description BEFORE_MPDU_COUNT_PASSING_FCS
  401. Number of MPDUs received in this PPDU that passed the FCS
  402. check before the Coex TX started
  403. The counter saturates at 0x3FF.
  404. <legal all>
  405. */
  406. #define RXPCU_PPDU_END_INFO_BEFORE_MPDU_COUNT_PASSING_FCS_OFFSET 0x0000000000000010
  407. #define RXPCU_PPDU_END_INFO_BEFORE_MPDU_COUNT_PASSING_FCS_LSB 0
  408. #define RXPCU_PPDU_END_INFO_BEFORE_MPDU_COUNT_PASSING_FCS_MSB 9
  409. #define RXPCU_PPDU_END_INFO_BEFORE_MPDU_COUNT_PASSING_FCS_MASK 0x00000000000003ff
  410. /* Description BEFORE_MPDU_COUNT_FAILING_FCS
  411. Number of MPDUs received in this PPDU that failed the FCS
  412. check before the Coex TX started
  413. The counter saturates at 0x3FF.
  414. <legal all>
  415. */
  416. #define RXPCU_PPDU_END_INFO_BEFORE_MPDU_COUNT_FAILING_FCS_OFFSET 0x0000000000000010
  417. #define RXPCU_PPDU_END_INFO_BEFORE_MPDU_COUNT_FAILING_FCS_LSB 10
  418. #define RXPCU_PPDU_END_INFO_BEFORE_MPDU_COUNT_FAILING_FCS_MSB 19
  419. #define RXPCU_PPDU_END_INFO_BEFORE_MPDU_COUNT_FAILING_FCS_MASK 0x00000000000ffc00
  420. /* Description AFTER_MPDU_COUNT_PASSING_FCS
  421. Number of MPDUs received in this PPDU that passed the FCS
  422. check after the moment the Coex TX started
  423. (Note: The partially received MPDU when the COEX tx start
  424. event came in falls in the "after" category)
  425. The counter saturates at 0x3FF.
  426. <legal all>
  427. */
  428. #define RXPCU_PPDU_END_INFO_AFTER_MPDU_COUNT_PASSING_FCS_OFFSET 0x0000000000000010
  429. #define RXPCU_PPDU_END_INFO_AFTER_MPDU_COUNT_PASSING_FCS_LSB 20
  430. #define RXPCU_PPDU_END_INFO_AFTER_MPDU_COUNT_PASSING_FCS_MSB 29
  431. #define RXPCU_PPDU_END_INFO_AFTER_MPDU_COUNT_PASSING_FCS_MASK 0x000000003ff00000
  432. /* Description RESERVED_4
  433. <legal 0>
  434. */
  435. #define RXPCU_PPDU_END_INFO_RESERVED_4_OFFSET 0x0000000000000010
  436. #define RXPCU_PPDU_END_INFO_RESERVED_4_LSB 30
  437. #define RXPCU_PPDU_END_INFO_RESERVED_4_MSB 31
  438. #define RXPCU_PPDU_END_INFO_RESERVED_4_MASK 0x00000000c0000000
  439. /* Description AFTER_MPDU_COUNT_FAILING_FCS
  440. Number of MPDUs received in this PPDU that failed the FCS
  441. check after the moment the Coex TX started
  442. (Note: The partially received MPDU when the COEX tx start
  443. event came in falls in the "after" category)
  444. The counter saturates at 0x3FF.
  445. <legal all>
  446. */
  447. #define RXPCU_PPDU_END_INFO_AFTER_MPDU_COUNT_FAILING_FCS_OFFSET 0x0000000000000010
  448. #define RXPCU_PPDU_END_INFO_AFTER_MPDU_COUNT_FAILING_FCS_LSB 32
  449. #define RXPCU_PPDU_END_INFO_AFTER_MPDU_COUNT_FAILING_FCS_MSB 41
  450. #define RXPCU_PPDU_END_INFO_AFTER_MPDU_COUNT_FAILING_FCS_MASK 0x000003ff00000000
  451. /* Description RESERVED_5
  452. <legal 0>
  453. */
  454. #define RXPCU_PPDU_END_INFO_RESERVED_5_OFFSET 0x0000000000000010
  455. #define RXPCU_PPDU_END_INFO_RESERVED_5_LSB 42
  456. #define RXPCU_PPDU_END_INFO_RESERVED_5_MSB 63
  457. #define RXPCU_PPDU_END_INFO_RESERVED_5_MASK 0xfffffc0000000000
  458. /* Description PHY_TIMESTAMP_TX_LOWER_32
  459. The PHY timestamp in the AMPI of the most recent rising
  460. edge (TODO: of what ???) after the TX_PHY_DESC. This field
  461. indicates the lower 32 bits of the timestamp
  462. */
  463. #define RXPCU_PPDU_END_INFO_PHY_TIMESTAMP_TX_LOWER_32_OFFSET 0x0000000000000018
  464. #define RXPCU_PPDU_END_INFO_PHY_TIMESTAMP_TX_LOWER_32_LSB 0
  465. #define RXPCU_PPDU_END_INFO_PHY_TIMESTAMP_TX_LOWER_32_MSB 31
  466. #define RXPCU_PPDU_END_INFO_PHY_TIMESTAMP_TX_LOWER_32_MASK 0x00000000ffffffff
  467. /* Description PHY_TIMESTAMP_TX_UPPER_32
  468. The PHY timestamp in the AMPI of the most recent rising
  469. edge (TODO: of what ???) after the TX_PHY_DESC. This field
  470. indicates the upper 32 bits of the timestamp
  471. */
  472. #define RXPCU_PPDU_END_INFO_PHY_TIMESTAMP_TX_UPPER_32_OFFSET 0x0000000000000018
  473. #define RXPCU_PPDU_END_INFO_PHY_TIMESTAMP_TX_UPPER_32_LSB 32
  474. #define RXPCU_PPDU_END_INFO_PHY_TIMESTAMP_TX_UPPER_32_MSB 63
  475. #define RXPCU_PPDU_END_INFO_PHY_TIMESTAMP_TX_UPPER_32_MASK 0xffffffff00000000
  476. /* Description BB_LENGTH
  477. Indicates the number of bytes of baseband information for
  478. PPDUs where the BB descriptor preamble type is 0x80 to
  479. 0xFF which indicates that this is not a normal PPDU but
  480. rather contains baseband debug information.
  481. TODO: Is this still needed ???
  482. */
  483. #define RXPCU_PPDU_END_INFO_BB_LENGTH_OFFSET 0x0000000000000020
  484. #define RXPCU_PPDU_END_INFO_BB_LENGTH_LSB 0
  485. #define RXPCU_PPDU_END_INFO_BB_LENGTH_MSB 15
  486. #define RXPCU_PPDU_END_INFO_BB_LENGTH_MASK 0x000000000000ffff
  487. /* Description BB_DATA
  488. Indicates that BB data associated with this PPDU will exist
  489. in the receive buffer. The exact contents of this BB data
  490. can be found by decoding the BB TLV in the buffer associated
  491. with the BB data. See vector_fragment in the Helium_mac_phy_interface.docx
  492. */
  493. #define RXPCU_PPDU_END_INFO_BB_DATA_OFFSET 0x0000000000000020
  494. #define RXPCU_PPDU_END_INFO_BB_DATA_LSB 16
  495. #define RXPCU_PPDU_END_INFO_BB_DATA_MSB 16
  496. #define RXPCU_PPDU_END_INFO_BB_DATA_MASK 0x0000000000010000
  497. /* Description RESERVED_8
  498. Reserved: HW should fill with 0, FW should ignore.
  499. */
  500. #define RXPCU_PPDU_END_INFO_RESERVED_8_OFFSET 0x0000000000000020
  501. #define RXPCU_PPDU_END_INFO_RESERVED_8_LSB 17
  502. #define RXPCU_PPDU_END_INFO_RESERVED_8_MSB 19
  503. #define RXPCU_PPDU_END_INFO_RESERVED_8_MASK 0x00000000000e0000
  504. /* Description FIRST_BT_BROADCAST_STATUS_DETAILS
  505. Same contents as field "bt_broadcast_status_details" for
  506. the first received COEX_STATUS_BROADCAST tlv during this
  507. PPDU reception.
  508. If no COEX_STATUS_BROADCAST tlv is received during this
  509. PPDU reception, this field will be set to 0
  510. For detailed info see doc: TBD
  511. <legal all>
  512. */
  513. #define RXPCU_PPDU_END_INFO_FIRST_BT_BROADCAST_STATUS_DETAILS_OFFSET 0x0000000000000020
  514. #define RXPCU_PPDU_END_INFO_FIRST_BT_BROADCAST_STATUS_DETAILS_LSB 20
  515. #define RXPCU_PPDU_END_INFO_FIRST_BT_BROADCAST_STATUS_DETAILS_MSB 31
  516. #define RXPCU_PPDU_END_INFO_FIRST_BT_BROADCAST_STATUS_DETAILS_MASK 0x00000000fff00000
  517. /* Description RX_PPDU_DURATION
  518. The length of this PPDU reception in us
  519. */
  520. #define RXPCU_PPDU_END_INFO_RX_PPDU_DURATION_OFFSET 0x0000000000000020
  521. #define RXPCU_PPDU_END_INFO_RX_PPDU_DURATION_LSB 32
  522. #define RXPCU_PPDU_END_INFO_RX_PPDU_DURATION_MSB 55
  523. #define RXPCU_PPDU_END_INFO_RX_PPDU_DURATION_MASK 0x00ffffff00000000
  524. /* Description RESERVED_9
  525. <legal 0>
  526. */
  527. #define RXPCU_PPDU_END_INFO_RESERVED_9_OFFSET 0x0000000000000020
  528. #define RXPCU_PPDU_END_INFO_RESERVED_9_LSB 56
  529. #define RXPCU_PPDU_END_INFO_RESERVED_9_MSB 63
  530. #define RXPCU_PPDU_END_INFO_RESERVED_9_MASK 0xff00000000000000
  531. /* Description AST_INDEX
  532. The AST index of the receive Ack/BA. This information is
  533. provided from the TXPCU to the RXPCU for receive Ack/BA
  534. for implicit beamforming.
  535. <legal all>
  536. */
  537. #define RXPCU_PPDU_END_INFO_AST_INDEX_OFFSET 0x0000000000000028
  538. #define RXPCU_PPDU_END_INFO_AST_INDEX_LSB 0
  539. #define RXPCU_PPDU_END_INFO_AST_INDEX_MSB 15
  540. #define RXPCU_PPDU_END_INFO_AST_INDEX_MASK 0x000000000000ffff
  541. /* Description AST_INDEX_VALID
  542. Indicates that ast_index is valid. Should only be set for
  543. receive Ack/BA where single stream implicit sounding is
  544. captured.
  545. */
  546. #define RXPCU_PPDU_END_INFO_AST_INDEX_VALID_OFFSET 0x0000000000000028
  547. #define RXPCU_PPDU_END_INFO_AST_INDEX_VALID_LSB 16
  548. #define RXPCU_PPDU_END_INFO_AST_INDEX_VALID_MSB 16
  549. #define RXPCU_PPDU_END_INFO_AST_INDEX_VALID_MASK 0x0000000000010000
  550. /* Description RESERVED_10
  551. <legal 0>
  552. */
  553. #define RXPCU_PPDU_END_INFO_RESERVED_10_OFFSET 0x0000000000000028
  554. #define RXPCU_PPDU_END_INFO_RESERVED_10_LSB 17
  555. #define RXPCU_PPDU_END_INFO_RESERVED_10_MSB 19
  556. #define RXPCU_PPDU_END_INFO_RESERVED_10_MASK 0x00000000000e0000
  557. /* Description SECOND_BT_BROADCAST_STATUS_DETAILS
  558. Same contents as field "bt_broadcast_status_details" for
  559. the second received COEX_STATUS_BROADCAST tlv during this
  560. PPDU reception.
  561. If no second COEX_STATUS_BROADCAST tlv is received during
  562. this PPDU reception, this field will be set to 0
  563. For detailed info see doc: TBD
  564. <legal all>
  565. */
  566. #define RXPCU_PPDU_END_INFO_SECOND_BT_BROADCAST_STATUS_DETAILS_OFFSET 0x0000000000000028
  567. #define RXPCU_PPDU_END_INFO_SECOND_BT_BROADCAST_STATUS_DETAILS_LSB 20
  568. #define RXPCU_PPDU_END_INFO_SECOND_BT_BROADCAST_STATUS_DETAILS_MSB 31
  569. #define RXPCU_PPDU_END_INFO_SECOND_BT_BROADCAST_STATUS_DETAILS_MASK 0x00000000fff00000
  570. /* Description PHYRX_ABORT_REQUEST_INFO_DETAILS
  571. Field only valid when Phyrx_abort_request_info_valid is
  572. set
  573. The reason why PHY generated an abort request
  574. */
  575. /* Description PHYRX_ABORT_REASON
  576. <enum 0 phyrx_err_phy_off> Reception aborted due to receiving
  577. a PHY_OFF TLV
  578. <enum 1 phyrx_err_synth_off>
  579. <enum 2 phyrx_err_ofdma_timing>
  580. <enum 3 phyrx_err_ofdma_signal_parity>
  581. <enum 4 phyrx_err_ofdma_rate_illegal>
  582. <enum 5 phyrx_err_ofdma_length_illegal>
  583. <enum 6 phyrx_err_ofdma_restart>
  584. <enum 7 phyrx_err_ofdma_service>
  585. <enum 8 phyrx_err_ppdu_ofdma_power_drop>
  586. <enum 9 phyrx_err_cck_blokker>
  587. <enum 10 phyrx_err_cck_timing>
  588. <enum 11 phyrx_err_cck_header_crc>
  589. <enum 12 phyrx_err_cck_rate_illegal>
  590. <enum 13 phyrx_err_cck_length_illegal>
  591. <enum 14 phyrx_err_cck_restart>
  592. <enum 15 phyrx_err_cck_service>
  593. <enum 16 phyrx_err_cck_power_drop>
  594. <enum 17 phyrx_err_ht_crc_err>
  595. <enum 18 phyrx_err_ht_length_illegal>
  596. <enum 19 phyrx_err_ht_rate_illegal>
  597. <enum 20 phyrx_err_ht_zlf>
  598. <enum 21 phyrx_err_false_radar_ext>
  599. <enum 22 phyrx_err_green_field>
  600. <enum 60 phyrx_err_ht_nsym_lt_zero>
  601. <enum 23 phyrx_err_bw_gt_dyn_bw>
  602. <enum 24 phyrx_err_leg_ht_mismatch>
  603. <enum 25 phyrx_err_vht_crc_error>
  604. <enum 26 phyrx_err_vht_siga_unsupported>
  605. <enum 27 phyrx_err_vht_lsig_len_invalid>
  606. <enum 28 phyrx_err_vht_ndp_or_zlf>
  607. <enum 29 phyrx_err_vht_nsym_lt_zero>
  608. <enum 30 phyrx_err_vht_rx_extra_symbol_mismatch>
  609. <enum 31 phyrx_err_vht_rx_skip_group_id0>
  610. <enum 32 phyrx_err_vht_rx_skip_group_id1to62>
  611. <enum 33 phyrx_err_vht_rx_skip_group_id63>
  612. <enum 34 phyrx_err_ofdm_ldpc_decoder_disabled>
  613. <enum 35 phyrx_err_defer_nap>
  614. <enum 61 phyrx_err_vht_lsig_rate_mismatch>
  615. <enum 62 phyrx_err_vht_paid_gid_mismatch>
  616. <enum 63 phyrx_err_vht_unsupported_bw>
  617. <enum 64 phyrx_err_vht_gi_disam_mismatch>
  618. <enum 36 phyrx_err_fdomain_timeout>
  619. <enum 37 phyrx_err_lsig_rel_check>
  620. <enum 38 phyrx_err_bt_collision>
  621. <enum 39 phyrx_err_unsupported_mu_feedback>
  622. <enum 40 phyrx_err_ppdu_tx_interrupt_rx>
  623. <enum 41 phyrx_err_unsupported_cbf>
  624. <enum 42 phyrx_err_other> Should not really be used. If
  625. needed, ask for documentation update
  626. <enum 43 phyrx_err_he_siga_unsupported > <enum 44 phyrx_err_he_crc_error
  627. > <enum 45 phyrx_err_he_sigb_unsupported > <enum 46 phyrx_err_he_mu_mode_unsupported
  628. > <enum 47 phyrx_err_he_ndp_or_zlf > <enum 48 phyrx_err_he_nsym_lt_zero
  629. > <enum 49 phyrx_err_he_ru_params_unsupported > <enum 50
  630. phyrx_err_he_num_users_unsupported ><enum 51 phyrx_err_he_sounding_params_unsupported
  631. >
  632. <enum 54 phyrx_err_he_sigb_crc_error>
  633. <enum 55 phyrx_err_he_ext_su_unsupported>
  634. <enum 56 phyrx_err_he_trig_unsupported>
  635. <enum 57 phyrx_err_he_lsig_len_invalid>
  636. <enum 58 phyrx_err_he_lsig_rate_mismatch>
  637. <enum 59 phyrx_err_ofdma_signal_reliability>
  638. <enum 77 phyrx_err_wur_detection>
  639. <enum 72 phyrx_err_u_sig_crc_error>
  640. <enum 73 phyrx_err_u_sig_unsupported_mode>
  641. <enum 74 phyrx_err_u_sig_rsvd_err>
  642. <enum 75 phyrx_err_u_sig_mcs_error>
  643. <enum 76 phyrx_err_u_sig_bw_error>
  644. <enum 79 phyrx_err_u_sig_320_channel_mismatch>
  645. <enum 71 phyrx_err_eht_sig_crc_error>
  646. <enum 78 phyrx_err_eht_sig_unsupported_mode>
  647. <enum 80 phyrx_err_ehtplus_er_detection>
  648. <enum 52 phyrx_err_MU_UL_no_power_detected>
  649. <enum 53 phyrx_err_MU_UL_not_for_me>
  650. <enum 65 phyrx_err_rx_wdg_timeout>
  651. <enum 66 phyrx_err_sizing_evt_unexpected>
  652. <enum 67 phyrx_err_spectralscan>
  653. <enum 68 phyrx_err_radar_misdetected_as_ofdm>
  654. <enum 69 phyrx_err_rx_stuck>
  655. <enum 70 phyrx_err_invalid_11b_state>
  656. <legal 0 - 80>
  657. */
  658. #define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHYRX_ABORT_REASON_OFFSET 0x0000000000000028
  659. #define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHYRX_ABORT_REASON_LSB 32
  660. #define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHYRX_ABORT_REASON_MSB 39
  661. #define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHYRX_ABORT_REASON_MASK 0x000000ff00000000
  662. /* Description PHY_ENTERS_NAP_STATE
  663. When set, PHY enters PHY NAP state after sending this abort
  664. Note that nap and defer state are mutually exclusive.
  665. Field put pro-actively in place....usage still to be agreed
  666. upon.
  667. <legal all>
  668. */
  669. #define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_NAP_STATE_OFFSET 0x0000000000000028
  670. #define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_NAP_STATE_LSB 40
  671. #define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_NAP_STATE_MSB 40
  672. #define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_NAP_STATE_MASK 0x0000010000000000
  673. /* Description PHY_ENTERS_DEFER_STATE
  674. When set, PHY enters PHY defer state after sending this
  675. abort
  676. Note that nap and defer state are mutually exclusive.
  677. Field put pro-actively in place....usage still to be agreed
  678. upon.
  679. <legal all>
  680. */
  681. #define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_DEFER_STATE_OFFSET 0x0000000000000028
  682. #define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_DEFER_STATE_LSB 41
  683. #define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_DEFER_STATE_MSB 41
  684. #define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_PHY_ENTERS_DEFER_STATE_MASK 0x0000020000000000
  685. /* Description RESERVED_0
  686. <legal 0>
  687. */
  688. #define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_OFFSET 0x0000000000000028
  689. #define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_LSB 42
  690. #define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_MSB 47
  691. #define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_MASK 0x0000fc0000000000
  692. /* Description RECEIVE_DURATION
  693. The remaining receive duration of this PPDU in the medium
  694. (in us). When PHY does not know this duration when this
  695. TLV is generated, the field will be set to 0.
  696. The timing reference point is the reception by the MAC of
  697. this TLV. The value shall be accurate to within 2us.
  698. In case Phy_enters_nap_state and/or Phy_enters_defer_state
  699. is set, there is a possibility that MAC PMM can also decide
  700. to go into a low(er) power state.
  701. <legal all>
  702. */
  703. #define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_RECEIVE_DURATION_OFFSET 0x0000000000000028
  704. #define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_RECEIVE_DURATION_LSB 48
  705. #define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_RECEIVE_DURATION_MSB 63
  706. #define RXPCU_PPDU_END_INFO_PHYRX_ABORT_REQUEST_INFO_DETAILS_RECEIVE_DURATION_MASK 0xffff000000000000
  707. /* Description MACRX_ABORT_REQUEST_INFO_DETAILS
  708. Field only valid when macrx_abort_request_info_valid is
  709. set
  710. The reason why MACRX generated an abort request
  711. */
  712. /* Description MACRX_ABORT_REASON
  713. <enum 0 macrx_abort_sw_initiated>
  714. <enum 1 macrx_abort_obss_reception> Upon receiving this
  715. abort reason, PHY should stop reception of the current frame
  716. and go back into a search mode
  717. <enum 2 macrx_abort_other>
  718. <enum 3 macrx_abort_sw_initiated_channel_switch> MAC FW
  719. issued an abort for channel switch reasons
  720. <enum 4 macrx_abort_sw_initiated_power_save> MAC FW issued
  721. an abort power save reasons
  722. <enum 5 macrx_abort_too_much_bad_data> RXPCU is terminating
  723. the current ongoing reception, as the data that MAC is
  724. receiving seems to be all garbage... The PER is too high,
  725. or in case of MU UL, Likely the trigger frame never got
  726. properly received by any of the targeted MU UL devices.
  727. After the abort, PHYRX can resume a normal search mode.
  728. <enum 6 macrx_abort_ul_mu_early_abort> RXPCU is terminating
  729. the current ongoing UL MU reception, because at the end
  730. of the "early_termination_window," the required number
  731. of users with at least one valid MPDU delimiter was not
  732. reached. Likely the trigger frame never got properly received
  733. by the required number of targeted devices. After the abort,
  734. PHYRX can resume a normal search mode.
  735. <legal 0-6>
  736. */
  737. #define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_DETAILS_MACRX_ABORT_REASON_OFFSET 0x0000000000000030
  738. #define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_DETAILS_MACRX_ABORT_REASON_LSB 0
  739. #define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_DETAILS_MACRX_ABORT_REASON_MSB 7
  740. #define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_DETAILS_MACRX_ABORT_REASON_MASK 0x00000000000000ff
  741. /* Description RESERVED_0
  742. <legal 0>
  743. */
  744. #define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_OFFSET 0x0000000000000030
  745. #define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_LSB 8
  746. #define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_MSB 15
  747. #define RXPCU_PPDU_END_INFO_MACRX_ABORT_REQUEST_INFO_DETAILS_RESERVED_0_MASK 0x000000000000ff00
  748. /* Description PRE_BT_BROADCAST_STATUS_DETAILS
  749. Same contents as field "bt_broadcast_status_details" of
  750. the last received COEX_STATUS_BROADCAST tlv before this
  751. PPDU reception.
  752. After power up, this field is all initialized to 0
  753. For detailed info see doc: TBD
  754. <legal all>
  755. */
  756. #define RXPCU_PPDU_END_INFO_PRE_BT_BROADCAST_STATUS_DETAILS_OFFSET 0x0000000000000030
  757. #define RXPCU_PPDU_END_INFO_PRE_BT_BROADCAST_STATUS_DETAILS_LSB 16
  758. #define RXPCU_PPDU_END_INFO_PRE_BT_BROADCAST_STATUS_DETAILS_MSB 27
  759. #define RXPCU_PPDU_END_INFO_PRE_BT_BROADCAST_STATUS_DETAILS_MASK 0x000000000fff0000
  760. /* Description RESERVED_12A
  761. Bits: [27:16]
  762. Same contents as field "bt_broadcast_status_details" of
  763. the last received COEX_STATUS_BROADCAST tlv before this
  764. PPDU reception.
  765. After power up, this field is all initialized to 0
  766. Bits: [31:28]: always 0
  767. For detailed info see doc: TBD
  768. <legal all>
  769. */
  770. #define RXPCU_PPDU_END_INFO_RESERVED_12A_OFFSET 0x0000000000000030
  771. #define RXPCU_PPDU_END_INFO_RESERVED_12A_LSB 28
  772. #define RXPCU_PPDU_END_INFO_RESERVED_12A_MSB 31
  773. #define RXPCU_PPDU_END_INFO_RESERVED_12A_MASK 0x00000000f0000000
  774. /* Description NON_QOS_SN_INFO_VALID
  775. When set, the non_QoS_SN_... fields contain valid info.
  776. This field will ONLY be set upon the very first reception
  777. of a non QoS frame.
  778. <legal all>
  779. */
  780. #define RXPCU_PPDU_END_INFO_NON_QOS_SN_INFO_VALID_OFFSET 0x0000000000000030
  781. #define RXPCU_PPDU_END_INFO_NON_QOS_SN_INFO_VALID_LSB 32
  782. #define RXPCU_PPDU_END_INFO_NON_QOS_SN_INFO_VALID_MSB 32
  783. #define RXPCU_PPDU_END_INFO_NON_QOS_SN_INFO_VALID_MASK 0x0000000100000000
  784. /* Description RESERVED_13A
  785. <legal 0>
  786. */
  787. #define RXPCU_PPDU_END_INFO_RESERVED_13A_OFFSET 0x0000000000000030
  788. #define RXPCU_PPDU_END_INFO_RESERVED_13A_LSB 33
  789. #define RXPCU_PPDU_END_INFO_RESERVED_13A_MSB 37
  790. #define RXPCU_PPDU_END_INFO_RESERVED_13A_MASK 0x0000003e00000000
  791. /* Description NON_QOS_SN_HIGHEST
  792. Field only valid when non_QoS_SN_info_valid is set
  793. Lowest and highest are defined based on a 2K window.
  794. When only 1 non-QoS frame is received, the 'highest' and
  795. 'lowest' fields will have the same values.
  796. The highest MPDU sequence number for a non-QoS frame received
  797. in this PPDU
  798. <legal all>
  799. */
  800. #define RXPCU_PPDU_END_INFO_NON_QOS_SN_HIGHEST_OFFSET 0x0000000000000030
  801. #define RXPCU_PPDU_END_INFO_NON_QOS_SN_HIGHEST_LSB 38
  802. #define RXPCU_PPDU_END_INFO_NON_QOS_SN_HIGHEST_MSB 49
  803. #define RXPCU_PPDU_END_INFO_NON_QOS_SN_HIGHEST_MASK 0x0003ffc000000000
  804. /* Description NON_QOS_SN_HIGHEST_RETRY_SETTING
  805. Field only valid when non_QoS_SN_info_valid is set
  806. The 'retry' bit setting of the highest MPDU sequence number
  807. non-QOS frame received in this PPDU
  808. <legal all>
  809. */
  810. #define RXPCU_PPDU_END_INFO_NON_QOS_SN_HIGHEST_RETRY_SETTING_OFFSET 0x0000000000000030
  811. #define RXPCU_PPDU_END_INFO_NON_QOS_SN_HIGHEST_RETRY_SETTING_LSB 50
  812. #define RXPCU_PPDU_END_INFO_NON_QOS_SN_HIGHEST_RETRY_SETTING_MSB 50
  813. #define RXPCU_PPDU_END_INFO_NON_QOS_SN_HIGHEST_RETRY_SETTING_MASK 0x0004000000000000
  814. /* Description NON_QOS_SN_LOWEST
  815. Field only valid when non_QoS_SN_info_valid is set
  816. Lowest and highest are defined based on a 2K window.
  817. When only 1 non-QoS frame is received, the 'highest' and
  818. 'lowest' fields will have the same values.
  819. The lowest MPDU sequence number for a non-QoS frame received
  820. in this PPDU
  821. <legal all>
  822. */
  823. #define RXPCU_PPDU_END_INFO_NON_QOS_SN_LOWEST_OFFSET 0x0000000000000030
  824. #define RXPCU_PPDU_END_INFO_NON_QOS_SN_LOWEST_LSB 51
  825. #define RXPCU_PPDU_END_INFO_NON_QOS_SN_LOWEST_MSB 62
  826. #define RXPCU_PPDU_END_INFO_NON_QOS_SN_LOWEST_MASK 0x7ff8000000000000
  827. /* Description NON_QOS_SN_LOWEST_RETRY_SETTING
  828. Field only valid when non_QoS_SN_info_valid is set
  829. The 'retry' bit setting of the lowest MPDU sequence number
  830. non-QoS frame received in this PPDU
  831. <legal all>
  832. */
  833. #define RXPCU_PPDU_END_INFO_NON_QOS_SN_LOWEST_RETRY_SETTING_OFFSET 0x0000000000000030
  834. #define RXPCU_PPDU_END_INFO_NON_QOS_SN_LOWEST_RETRY_SETTING_LSB 63
  835. #define RXPCU_PPDU_END_INFO_NON_QOS_SN_LOWEST_RETRY_SETTING_MSB 63
  836. #define RXPCU_PPDU_END_INFO_NON_QOS_SN_LOWEST_RETRY_SETTING_MASK 0x8000000000000000
  837. /* Description QOS_SN_1_INFO_VALID
  838. When set, the QoS_SN_1_... fields contain valid info.
  839. This field will ONLY be set upon the very first reception
  840. of a QoS frame.
  841. <legal all>
  842. */
  843. #define RXPCU_PPDU_END_INFO_QOS_SN_1_INFO_VALID_OFFSET 0x0000000000000038
  844. #define RXPCU_PPDU_END_INFO_QOS_SN_1_INFO_VALID_LSB 0
  845. #define RXPCU_PPDU_END_INFO_QOS_SN_1_INFO_VALID_MSB 0
  846. #define RXPCU_PPDU_END_INFO_QOS_SN_1_INFO_VALID_MASK 0x0000000000000001
  847. /* Description RESERVED_14A
  848. <legal 0>
  849. */
  850. #define RXPCU_PPDU_END_INFO_RESERVED_14A_OFFSET 0x0000000000000038
  851. #define RXPCU_PPDU_END_INFO_RESERVED_14A_LSB 1
  852. #define RXPCU_PPDU_END_INFO_RESERVED_14A_MSB 1
  853. #define RXPCU_PPDU_END_INFO_RESERVED_14A_MASK 0x0000000000000002
  854. /* Description QOS_SN_1_TID
  855. Field only valid when QoS_SN_1_info_valid is set.
  856. The TID of the frames related to the QoS_SN_1_... fields
  857. <legal all>
  858. */
  859. #define RXPCU_PPDU_END_INFO_QOS_SN_1_TID_OFFSET 0x0000000000000038
  860. #define RXPCU_PPDU_END_INFO_QOS_SN_1_TID_LSB 2
  861. #define RXPCU_PPDU_END_INFO_QOS_SN_1_TID_MSB 5
  862. #define RXPCU_PPDU_END_INFO_QOS_SN_1_TID_MASK 0x000000000000003c
  863. /* Description QOS_SN_1_HIGHEST
  864. Field only valid when QoS_SN_1_info_valid is set.
  865. Lowest and highest are defined based on a 2K window.
  866. When only 1 QoS frame of the relevant TID is received, the
  867. 'highest' and 'lowest' fields will have the same values.
  868. The highest MPDU sequence number for a QoS frame with TID
  869. QoS_SN_1_TID received in this PPDU
  870. <legal all>
  871. */
  872. #define RXPCU_PPDU_END_INFO_QOS_SN_1_HIGHEST_OFFSET 0x0000000000000038
  873. #define RXPCU_PPDU_END_INFO_QOS_SN_1_HIGHEST_LSB 6
  874. #define RXPCU_PPDU_END_INFO_QOS_SN_1_HIGHEST_MSB 17
  875. #define RXPCU_PPDU_END_INFO_QOS_SN_1_HIGHEST_MASK 0x000000000003ffc0
  876. /* Description QOS_SN_1_HIGHEST_RETRY_SETTING
  877. Field only valid when QoS_SN_1_info_valid is set.
  878. The 'retry' bit setting of the highest MPDU sequence number
  879. QoS frame with TID QoS_SN_1_TID received in this PPDU
  880. <legal all>
  881. */
  882. #define RXPCU_PPDU_END_INFO_QOS_SN_1_HIGHEST_RETRY_SETTING_OFFSET 0x0000000000000038
  883. #define RXPCU_PPDU_END_INFO_QOS_SN_1_HIGHEST_RETRY_SETTING_LSB 18
  884. #define RXPCU_PPDU_END_INFO_QOS_SN_1_HIGHEST_RETRY_SETTING_MSB 18
  885. #define RXPCU_PPDU_END_INFO_QOS_SN_1_HIGHEST_RETRY_SETTING_MASK 0x0000000000040000
  886. /* Description QOS_SN_1_LOWEST
  887. Field only valid when QoS_SN_1_info_valid is set.
  888. Lowest and highest are defined based on a 2K window.
  889. When only 1 QoS frame of the relevant TID is received, the
  890. 'highest' and 'lowest' fields will have the same values.
  891. The lowest MPDU sequence number for a QoS frame with TID
  892. QoS_SN_1_TID received in this PPDU
  893. <legal all>
  894. */
  895. #define RXPCU_PPDU_END_INFO_QOS_SN_1_LOWEST_OFFSET 0x0000000000000038
  896. #define RXPCU_PPDU_END_INFO_QOS_SN_1_LOWEST_LSB 19
  897. #define RXPCU_PPDU_END_INFO_QOS_SN_1_LOWEST_MSB 30
  898. #define RXPCU_PPDU_END_INFO_QOS_SN_1_LOWEST_MASK 0x000000007ff80000
  899. /* Description QOS_SN_1_LOWEST_RETRY_SETTING
  900. Field only valid when QoS_SN_1_info_valid is set.
  901. The 'retry' bit setting of the lowest MPDU sequence number
  902. QoS frame with TID QoS_SN_1_TID received in this PPDU
  903. <legal all>
  904. */
  905. #define RXPCU_PPDU_END_INFO_QOS_SN_1_LOWEST_RETRY_SETTING_OFFSET 0x0000000000000038
  906. #define RXPCU_PPDU_END_INFO_QOS_SN_1_LOWEST_RETRY_SETTING_LSB 31
  907. #define RXPCU_PPDU_END_INFO_QOS_SN_1_LOWEST_RETRY_SETTING_MSB 31
  908. #define RXPCU_PPDU_END_INFO_QOS_SN_1_LOWEST_RETRY_SETTING_MASK 0x0000000080000000
  909. /* Description QOS_SN_2_INFO_VALID
  910. When set, the QoS_SN_2_... fields contain valid info.
  911. This field can ONLY be set in case of a multi-TID PPDU reception.
  912. This field is set upon the very first reception of a QoS
  913. frame belonging to the second TID in the PPDU.
  914. <legal all>
  915. */
  916. #define RXPCU_PPDU_END_INFO_QOS_SN_2_INFO_VALID_OFFSET 0x0000000000000038
  917. #define RXPCU_PPDU_END_INFO_QOS_SN_2_INFO_VALID_LSB 32
  918. #define RXPCU_PPDU_END_INFO_QOS_SN_2_INFO_VALID_MSB 32
  919. #define RXPCU_PPDU_END_INFO_QOS_SN_2_INFO_VALID_MASK 0x0000000100000000
  920. /* Description RESERVED_15A
  921. <legal 0>
  922. */
  923. #define RXPCU_PPDU_END_INFO_RESERVED_15A_OFFSET 0x0000000000000038
  924. #define RXPCU_PPDU_END_INFO_RESERVED_15A_LSB 33
  925. #define RXPCU_PPDU_END_INFO_RESERVED_15A_MSB 33
  926. #define RXPCU_PPDU_END_INFO_RESERVED_15A_MASK 0x0000000200000000
  927. /* Description QOS_SN_2_TID
  928. Field only valid when QoS_SN_2_info_valid is set.
  929. The TID of the frames related to the QoS_SN_2_... fields
  930. <legal all>
  931. */
  932. #define RXPCU_PPDU_END_INFO_QOS_SN_2_TID_OFFSET 0x0000000000000038
  933. #define RXPCU_PPDU_END_INFO_QOS_SN_2_TID_LSB 34
  934. #define RXPCU_PPDU_END_INFO_QOS_SN_2_TID_MSB 37
  935. #define RXPCU_PPDU_END_INFO_QOS_SN_2_TID_MASK 0x0000003c00000000
  936. /* Description QOS_SN_2_HIGHEST
  937. Field only valid when QoS_SN_2_info_valid is set.
  938. Lowest and highest are defined based on a 2K window.
  939. When only 1 QoS frame of the relevant TID is received, the
  940. highest and lowest fields will have the same values.
  941. The highest MPDU sequence number for a QoS frame with TID
  942. QoS_SN_2_TID received in this PPDU
  943. <legal all>
  944. */
  945. #define RXPCU_PPDU_END_INFO_QOS_SN_2_HIGHEST_OFFSET 0x0000000000000038
  946. #define RXPCU_PPDU_END_INFO_QOS_SN_2_HIGHEST_LSB 38
  947. #define RXPCU_PPDU_END_INFO_QOS_SN_2_HIGHEST_MSB 49
  948. #define RXPCU_PPDU_END_INFO_QOS_SN_2_HIGHEST_MASK 0x0003ffc000000000
  949. /* Description QOS_SN_2_HIGHEST_RETRY_SETTING
  950. Field only valid when QoS_SN_2_info_valid is set.
  951. The 'retry' bit setting of the highest MPDU sequence number
  952. QoS frame with TID QoS_SN_2_TID received in this PPDU
  953. <legal all>
  954. */
  955. #define RXPCU_PPDU_END_INFO_QOS_SN_2_HIGHEST_RETRY_SETTING_OFFSET 0x0000000000000038
  956. #define RXPCU_PPDU_END_INFO_QOS_SN_2_HIGHEST_RETRY_SETTING_LSB 50
  957. #define RXPCU_PPDU_END_INFO_QOS_SN_2_HIGHEST_RETRY_SETTING_MSB 50
  958. #define RXPCU_PPDU_END_INFO_QOS_SN_2_HIGHEST_RETRY_SETTING_MASK 0x0004000000000000
  959. /* Description QOS_SN_2_LOWEST
  960. Field only valid when QoS_SN_2_info_valid is set.
  961. Lowest and highest are defined based on a 2K window.
  962. When only 1 QoS frame of the relevant TID is received, the
  963. highest and lowest fields will have the same values.
  964. The lowest MPDU sequence number for a QoS frame with TID
  965. QoS_SN_2_TID received in this PPDU
  966. <legal all>
  967. */
  968. #define RXPCU_PPDU_END_INFO_QOS_SN_2_LOWEST_OFFSET 0x0000000000000038
  969. #define RXPCU_PPDU_END_INFO_QOS_SN_2_LOWEST_LSB 51
  970. #define RXPCU_PPDU_END_INFO_QOS_SN_2_LOWEST_MSB 62
  971. #define RXPCU_PPDU_END_INFO_QOS_SN_2_LOWEST_MASK 0x7ff8000000000000
  972. /* Description QOS_SN_2_LOWEST_RETRY_SETTING
  973. Field only valid when QoS_SN_2_info_valid is set.
  974. The 'retry' bit setting of the lowest MPDU sequence number
  975. QoS frame with TID QoS_SN_2_TID received in this PPDU
  976. <legal all>
  977. */
  978. #define RXPCU_PPDU_END_INFO_QOS_SN_2_LOWEST_RETRY_SETTING_OFFSET 0x0000000000000038
  979. #define RXPCU_PPDU_END_INFO_QOS_SN_2_LOWEST_RETRY_SETTING_LSB 63
  980. #define RXPCU_PPDU_END_INFO_QOS_SN_2_LOWEST_RETRY_SETTING_MSB 63
  981. #define RXPCU_PPDU_END_INFO_QOS_SN_2_LOWEST_RETRY_SETTING_MASK 0x8000000000000000
  982. /* Description RXPCU_PPDU_END_LAYOUT_DETAILS
  983. Structure containing the relative offsets of preamble TLVs
  984. within 'RX_PPDU_END' documenting the layout within 'RX_PPDU_END'
  985. */
  986. /* Description RSSI_LEGACY_OFFSET
  987. Offset in units of 4 bytes of 'PHYRX_RSSI_LEGACY' within
  988. 'RX_PPDU_END'<legal 1, 2>
  989. */
  990. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RSSI_LEGACY_OFFSET_OFFSET 0x0000000000000040
  991. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RSSI_LEGACY_OFFSET_LSB 0
  992. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RSSI_LEGACY_OFFSET_MSB 1
  993. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RSSI_LEGACY_OFFSET_MASK 0x0000000000000003
  994. /* Description L_SIG_A_OFFSET
  995. Offset in units of 4 bytes of 'PHYRX_L_SIG_A' within 'RX_PPDU_END'
  996. Set to zero if the TLV is not included<legal 0, 44, 46>
  997. */
  998. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_L_SIG_A_OFFSET_OFFSET 0x0000000000000040
  999. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_L_SIG_A_OFFSET_LSB 2
  1000. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_L_SIG_A_OFFSET_MSB 7
  1001. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_L_SIG_A_OFFSET_MASK 0x00000000000000fc
  1002. /* Description L_SIG_B_OFFSET
  1003. Offset in units of 4 bytes of 'PHYRX_L_SIG_A' within 'RX_PPDU_END'
  1004. Set to zero if the TLV is not included<legal 0, 44, 46>
  1005. */
  1006. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_L_SIG_B_OFFSET_OFFSET 0x0000000000000040
  1007. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_L_SIG_B_OFFSET_LSB 8
  1008. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_L_SIG_B_OFFSET_MSB 13
  1009. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_L_SIG_B_OFFSET_MASK 0x0000000000003f00
  1010. /* Description HT_SIG_OFFSET
  1011. Offset of 'PHYRX_HT_SIG' within 'RX_PPDU_END' Set to zero
  1012. if the TLV is not included<legal 0, 46, 50>
  1013. */
  1014. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HT_SIG_OFFSET_OFFSET 0x0000000000000040
  1015. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HT_SIG_OFFSET_LSB 14
  1016. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HT_SIG_OFFSET_MSB 19
  1017. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HT_SIG_OFFSET_MASK 0x00000000000fc000
  1018. /* Description VHT_SIG_A_OFFSET
  1019. Offset in units of 4 bytes of 'PHYRX_VHT_SIG_A' within 'RX_PPDU_END'
  1020. Set to zero if the TLV is not included<legal 0, 46, 50>
  1021. */
  1022. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_A_OFFSET_OFFSET 0x0000000000000040
  1023. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_A_OFFSET_LSB 20
  1024. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_A_OFFSET_MSB 25
  1025. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_A_OFFSET_MASK 0x0000000003f00000
  1026. /* Description REPEAT_L_SIG_A_OFFSET
  1027. Offset in units of 4 bytes of the repeat 'PHYRX_L_SIG_A' (in
  1028. HE and EHT cases) within 'RX_PPDU_END'
  1029. Set to zero if the TLV is not included
  1030. <legal 0, 46, 50>
  1031. */
  1032. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_REPEAT_L_SIG_A_OFFSET_OFFSET 0x0000000000000040
  1033. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_REPEAT_L_SIG_A_OFFSET_LSB 26
  1034. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_REPEAT_L_SIG_A_OFFSET_MSB 31
  1035. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_REPEAT_L_SIG_A_OFFSET_MASK 0x00000000fc000000
  1036. /* Description HE_SIG_A_SU_OFFSET
  1037. Offset in units of 4 bytes of 'PHYRX_HE_SIG_A_SU' within
  1038. 'RX_PPDU_END' Set to zero if the TLV is not included<legal
  1039. 0, 48, 54>
  1040. */
  1041. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_SU_OFFSET_OFFSET 0x0000000000000040
  1042. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_SU_OFFSET_LSB 32
  1043. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_SU_OFFSET_MSB 37
  1044. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_SU_OFFSET_MASK 0x0000003f00000000
  1045. /* Description HE_SIG_A_MU_DL_OFFSET
  1046. Offset in units of 4 bytes of 'PHYRX_HE_SIG_A_MU_DL' within
  1047. 'RX_PPDU_END' Set to zero if the TLV is not included<legal
  1048. 0, 48, 54>
  1049. */
  1050. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_MU_DL_OFFSET_OFFSET 0x0000000000000040
  1051. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_MU_DL_OFFSET_LSB 38
  1052. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_MU_DL_OFFSET_MSB 43
  1053. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_MU_DL_OFFSET_MASK 0x00000fc000000000
  1054. /* Description HE_SIG_A_MU_UL_OFFSET
  1055. Offset in units of 4 bytes of 'PHYRX_HE_SIG_A_MU_UL' within
  1056. 'RX_PPDU_END' Set to zero if the TLV is not included<legal
  1057. 0, 48, 54>
  1058. */
  1059. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_MU_UL_OFFSET_OFFSET 0x0000000000000040
  1060. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_MU_UL_OFFSET_LSB 44
  1061. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_MU_UL_OFFSET_MSB 49
  1062. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_A_MU_UL_OFFSET_MASK 0x0003f00000000000
  1063. /* Description GENERIC_U_SIG_OFFSET
  1064. Offset in units of 4 bytes of 'PHYRX_GENERIC_U_SIG' within
  1065. 'RX_PPDU_END' Set to zero if the TLV is not included<legal
  1066. 0, 48, 54>
  1067. */
  1068. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_GENERIC_U_SIG_OFFSET_OFFSET 0x0000000000000040
  1069. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_GENERIC_U_SIG_OFFSET_LSB 50
  1070. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_GENERIC_U_SIG_OFFSET_MSB 55
  1071. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_GENERIC_U_SIG_OFFSET_MASK 0x00fc000000000000
  1072. /* Description RSSI_HT_OFFSET
  1073. Offset in units of 4 bytes of 'PHYRX_RSSI_HT' within 'RX_PPDU_END'
  1074. Set to zero if the TLV is not included<legal 0, 49-127>
  1075. */
  1076. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RSSI_HT_OFFSET_OFFSET 0x0000000000000040
  1077. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RSSI_HT_OFFSET_LSB 56
  1078. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RSSI_HT_OFFSET_MSB 62
  1079. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RSSI_HT_OFFSET_MASK 0x7f00000000000000
  1080. /* Description RESERVED_1A
  1081. <legal 0>
  1082. */
  1083. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_1A_OFFSET 0x0000000000000040
  1084. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_1A_LSB 63
  1085. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_1A_MSB 63
  1086. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_1A_MASK 0x8000000000000000
  1087. /* Description VHT_SIG_B_SU20_OFFSET
  1088. Offset in units of 4 bytes of 'PHYRX_VHT_SIG_B_SU20' within
  1089. 'RX_PPDU_END' Set to zero if the TLV is not included<legal
  1090. 0, 67, 74>
  1091. */
  1092. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU20_OFFSET_OFFSET 0x0000000000000048
  1093. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU20_OFFSET_LSB 0
  1094. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU20_OFFSET_MSB 6
  1095. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU20_OFFSET_MASK 0x000000000000007f
  1096. /* Description VHT_SIG_B_SU40_OFFSET
  1097. Offset in units of 4 bytes of 'PHYRX_VHT_SIG_B_SU40' within
  1098. 'RX_PPDU_END' Set to zero if the TLV is not included<legal
  1099. 0, 67, 74>
  1100. */
  1101. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU40_OFFSET_OFFSET 0x0000000000000048
  1102. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU40_OFFSET_LSB 7
  1103. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU40_OFFSET_MSB 13
  1104. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU40_OFFSET_MASK 0x0000000000003f80
  1105. /* Description VHT_SIG_B_SU80_OFFSET
  1106. Offset in units of 4 bytes of 'PHYRX_VHT_SIG_B_SU80' within
  1107. 'RX_PPDU_END' Set to zero if the TLV is not included<legal
  1108. 0, 67, 74>
  1109. */
  1110. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU80_OFFSET_OFFSET 0x0000000000000048
  1111. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU80_OFFSET_LSB 14
  1112. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU80_OFFSET_MSB 20
  1113. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU80_OFFSET_MASK 0x00000000001fc000
  1114. /* Description VHT_SIG_B_SU160_OFFSET
  1115. Offset in units of 4 bytes of 'PHYRX_VHT_SIG_B_SU160' within
  1116. 'RX_PPDU_END' Set to zero if the TLV is not included<legal
  1117. 0, 67, 74>
  1118. */
  1119. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU160_OFFSET_OFFSET 0x0000000000000048
  1120. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU160_OFFSET_LSB 21
  1121. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU160_OFFSET_MSB 27
  1122. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_SU160_OFFSET_MASK 0x000000000fe00000
  1123. /* Description RESERVED_2A
  1124. <legal 0>
  1125. */
  1126. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_2A_OFFSET 0x0000000000000048
  1127. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_2A_LSB 28
  1128. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_2A_MSB 31
  1129. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_2A_MASK 0x00000000f0000000
  1130. /* Description VHT_SIG_B_MU20_OFFSET
  1131. Offset in units of 4 bytes of 'PHYRX_VHT_SIG_B_MU20' within
  1132. 'RX_PPDU_END' Set to zero if the TLV is not included<legal
  1133. 0, 67, 74>
  1134. */
  1135. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU20_OFFSET_OFFSET 0x0000000000000048
  1136. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU20_OFFSET_LSB 32
  1137. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU20_OFFSET_MSB 38
  1138. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU20_OFFSET_MASK 0x0000007f00000000
  1139. /* Description VHT_SIG_B_MU40_OFFSET
  1140. Offset in units of 4 bytes of 'PHYRX_VHT_SIG_B_MU40' within
  1141. 'RX_PPDU_END' Set to zero if the TLV is not included<legal
  1142. 0, 67, 74>
  1143. */
  1144. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU40_OFFSET_OFFSET 0x0000000000000048
  1145. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU40_OFFSET_LSB 39
  1146. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU40_OFFSET_MSB 45
  1147. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU40_OFFSET_MASK 0x00003f8000000000
  1148. /* Description VHT_SIG_B_MU80_OFFSET
  1149. Offset in units of 4 bytes of 'PHYRX_VHT_SIG_B_MU80' within
  1150. 'RX_PPDU_END' Set to zero if the TLV is not included<legal
  1151. 0, 67, 74>
  1152. */
  1153. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU80_OFFSET_OFFSET 0x0000000000000048
  1154. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU80_OFFSET_LSB 46
  1155. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU80_OFFSET_MSB 52
  1156. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU80_OFFSET_MASK 0x001fc00000000000
  1157. /* Description VHT_SIG_B_MU160_OFFSET
  1158. Offset in units of 4 bytes of 'PHYRX_VHT_SIG_B_MU160' within
  1159. 'RX_PPDU_END' Set to zero if the TLV is not included<legal
  1160. 0, 67, 74>
  1161. */
  1162. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU160_OFFSET_OFFSET 0x0000000000000048
  1163. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU160_OFFSET_LSB 53
  1164. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU160_OFFSET_MSB 59
  1165. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_VHT_SIG_B_MU160_OFFSET_MASK 0x0fe0000000000000
  1166. /* Description RESERVED_3A
  1167. <legal 0>
  1168. */
  1169. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_3A_OFFSET 0x0000000000000048
  1170. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_3A_LSB 60
  1171. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_3A_MSB 63
  1172. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_3A_MASK 0xf000000000000000
  1173. /* Description HE_SIG_B1_MU_OFFSET
  1174. Offset in units of 4 bytes of 'PHYRX_HE_SIG_B1_MU' within
  1175. 'RX_PPDU_END' Set to zero if the TLV is not included<legal
  1176. 0, 51, 58>
  1177. */
  1178. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B1_MU_OFFSET_OFFSET 0x0000000000000050
  1179. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B1_MU_OFFSET_LSB 0
  1180. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B1_MU_OFFSET_MSB 6
  1181. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B1_MU_OFFSET_MASK 0x000000000000007f
  1182. /* Description HE_SIG_B2_MU_OFFSET
  1183. Offset in units of 4 bytes of 'PHYRX_HE_SIG_B2_MU' within
  1184. 'RX_PPDU_END' Set to zero if the TLV is not included<legal
  1185. 0, 51, 58>
  1186. */
  1187. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B2_MU_OFFSET_OFFSET 0x0000000000000050
  1188. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B2_MU_OFFSET_LSB 7
  1189. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B2_MU_OFFSET_MSB 13
  1190. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B2_MU_OFFSET_MASK 0x0000000000003f80
  1191. /* Description HE_SIG_B2_OFDMA_OFFSET
  1192. Offset in units of 4 bytes of 'PHYRX_HE_SIG_B2_OFDMA' within
  1193. 'RX_PPDU_END' Set to zero if the TLV is not included<legal
  1194. 0, 53, 62>
  1195. */
  1196. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B2_OFDMA_OFFSET_OFFSET 0x0000000000000050
  1197. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B2_OFDMA_OFFSET_LSB 14
  1198. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B2_OFDMA_OFFSET_MSB 20
  1199. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_HE_SIG_B2_OFDMA_OFFSET_MASK 0x00000000001fc000
  1200. /* Description FIRST_GENERIC_EHT_SIG_OFFSET
  1201. Offset in units of 4 bytes of the first 'PHYRX_GENERIC_EHT_SIG'
  1202. within 'RX_PPDU_END' Set to zero if the TLV is not included<legal
  1203. 0, 51, 58>
  1204. */
  1205. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_GENERIC_EHT_SIG_OFFSET_OFFSET 0x0000000000000050
  1206. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_GENERIC_EHT_SIG_OFFSET_LSB 21
  1207. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_GENERIC_EHT_SIG_OFFSET_MSB 27
  1208. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_GENERIC_EHT_SIG_OFFSET_MASK 0x000000000fe00000
  1209. /* Description MULTIPLE_GENERIC_EHT_SIG_INCLUDED
  1210. Set to one if more than one 'PHYRX_GENERIC_EHT_SIG' TLVs
  1211. are included in 'RX_PPDU_END,' set to zero otherwise
  1212. <legal all>
  1213. */
  1214. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_GENERIC_EHT_SIG_INCLUDED_OFFSET 0x0000000000000050
  1215. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_GENERIC_EHT_SIG_INCLUDED_LSB 28
  1216. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_GENERIC_EHT_SIG_INCLUDED_MSB 28
  1217. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_GENERIC_EHT_SIG_INCLUDED_MASK 0x0000000010000000
  1218. /* Description RESERVED_4A
  1219. <legal 0>
  1220. */
  1221. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_4A_OFFSET 0x0000000000000050
  1222. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_4A_LSB 29
  1223. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_4A_MSB 31
  1224. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_4A_MASK 0x00000000e0000000
  1225. /* Description COMMON_USER_INFO_OFFSET
  1226. Offset in units of 4 bytes of 'PHYRX_COMMON_USER_INFO' within
  1227. 'RX_PPDU_END' Set to zero if the TLV is not included<legal
  1228. 0, 46, 50, 67, 70-127>
  1229. */
  1230. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_COMMON_USER_INFO_OFFSET_OFFSET 0x0000000000000050
  1231. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_COMMON_USER_INFO_OFFSET_LSB 32
  1232. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_COMMON_USER_INFO_OFFSET_MSB 38
  1233. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_COMMON_USER_INFO_OFFSET_MASK 0x0000007f00000000
  1234. /* Description FIRST_DEBUG_INFO_OFFSET
  1235. Offset in units of 4 bytes of the first 'PHYRX_DEBUG_INFO'
  1236. within 'RX_PPDU_END' Set to zero if the TLV is not included<legal
  1237. all>
  1238. */
  1239. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_DEBUG_INFO_OFFSET_OFFSET 0x0000000000000050
  1240. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_DEBUG_INFO_OFFSET_LSB 39
  1241. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_DEBUG_INFO_OFFSET_MSB 46
  1242. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_DEBUG_INFO_OFFSET_MASK 0x00007f8000000000
  1243. /* Description MULTIPLE_DEBUG_INFO_INCLUDED
  1244. Set to one if more than one 'PHYRX_DEBUG_INFO' TLVs are
  1245. included in 'RX_PPDU_END,' set to zero otherwise<legal all>
  1246. */
  1247. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_DEBUG_INFO_INCLUDED_OFFSET 0x0000000000000050
  1248. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_DEBUG_INFO_INCLUDED_LSB 47
  1249. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_DEBUG_INFO_INCLUDED_MSB 47
  1250. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_DEBUG_INFO_INCLUDED_MASK 0x0000800000000000
  1251. /* Description FIRST_OTHER_RECEIVE_INFO_OFFSET
  1252. Offset in units of 4 bytes of the first 'PHYRX_OTHER_RECEIVE_INFO'
  1253. within 'RX_PPDU_END' Set to zero if the TLV is not included<legal
  1254. all>
  1255. */
  1256. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_OTHER_RECEIVE_INFO_OFFSET_OFFSET 0x0000000000000050
  1257. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_OTHER_RECEIVE_INFO_OFFSET_LSB 48
  1258. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_OTHER_RECEIVE_INFO_OFFSET_MSB 55
  1259. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_FIRST_OTHER_RECEIVE_INFO_OFFSET_MASK 0x00ff000000000000
  1260. /* Description MULTIPLE_OTHER_RECEIVE_INFO_INCLUDED
  1261. Set to one if more than one 'PHYRX_OTHER_RECEIVE_INFO' TLVs
  1262. are included in 'RX_PPDU_END,' set to zero otherwise<legal
  1263. all>
  1264. */
  1265. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_OTHER_RECEIVE_INFO_INCLUDED_OFFSET 0x0000000000000050
  1266. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_OTHER_RECEIVE_INFO_INCLUDED_LSB 56
  1267. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_OTHER_RECEIVE_INFO_INCLUDED_MSB 56
  1268. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_MULTIPLE_OTHER_RECEIVE_INFO_INCLUDED_MASK 0x0100000000000000
  1269. /* Description RESERVED_5A
  1270. <legal 0>
  1271. */
  1272. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_5A_OFFSET 0x0000000000000050
  1273. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_5A_LSB 57
  1274. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_5A_MSB 63
  1275. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_5A_MASK 0xfe00000000000000
  1276. /* Description DATA_DONE_OFFSET
  1277. Offset in units of 4 bytes of 'PHYRX_DATA_DONE' within 'RX_PPDU_END'
  1278. Set to zero if the TLV is not included<legal all>
  1279. */
  1280. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_DATA_DONE_OFFSET_OFFSET 0x0000000000000058
  1281. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_DATA_DONE_OFFSET_LSB 0
  1282. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_DATA_DONE_OFFSET_MSB 7
  1283. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_DATA_DONE_OFFSET_MASK 0x00000000000000ff
  1284. /* Description GENERATED_CBF_DETAILS_OFFSET
  1285. Offset in units of 4 bytes of 'PHYRX_GENERATED_CBF_DETAILS'
  1286. within 'RX_PPDU_END'Set to zero if the TLV is not included<legal
  1287. 0, 70-127>
  1288. */
  1289. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_GENERATED_CBF_DETAILS_OFFSET_OFFSET 0x0000000000000058
  1290. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_GENERATED_CBF_DETAILS_OFFSET_LSB 8
  1291. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_GENERATED_CBF_DETAILS_OFFSET_MSB 15
  1292. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_GENERATED_CBF_DETAILS_OFFSET_MASK 0x000000000000ff00
  1293. /* Description PKT_END_PART1_OFFSET
  1294. Offset in units of 4 bytes of 'PHYRX_PKT_END_PART1' within
  1295. 'RX_PPDU_END' Set to zero if the TLV is not included<legal
  1296. all>
  1297. */
  1298. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_PKT_END_PART1_OFFSET_OFFSET 0x0000000000000058
  1299. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_PKT_END_PART1_OFFSET_LSB 16
  1300. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_PKT_END_PART1_OFFSET_MSB 23
  1301. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_PKT_END_PART1_OFFSET_MASK 0x0000000000ff0000
  1302. /* Description LOCATION_OFFSET
  1303. Offset in units of 4 bytes of 'PHYRX_LOCATION' within 'RX_PPDU_END'
  1304. Set to zero if the TLV is not included<legal all>
  1305. */
  1306. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_LOCATION_OFFSET_OFFSET 0x0000000000000058
  1307. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_LOCATION_OFFSET_LSB 24
  1308. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_LOCATION_OFFSET_MSB 31
  1309. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_LOCATION_OFFSET_MASK 0x00000000ff000000
  1310. /* Description AZ_INTEGRITY_DATA_OFFSET
  1311. Offset in units of 4 bytes of 'PHYRX_11AZ_INTEGRITY_DATA'
  1312. within 'RX_PPDU_END'
  1313. Set to zero if the TLV is not included
  1314. <legal all>
  1315. */
  1316. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_AZ_INTEGRITY_DATA_OFFSET_OFFSET 0x0000000000000058
  1317. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_AZ_INTEGRITY_DATA_OFFSET_LSB 32
  1318. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_AZ_INTEGRITY_DATA_OFFSET_MSB 39
  1319. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_AZ_INTEGRITY_DATA_OFFSET_MASK 0x000000ff00000000
  1320. /* Description PKT_END_OFFSET
  1321. Offset in units of 4 bytes of 'PHYRX_PKT_END' within 'RX_PPDU_END'
  1322. Set to zero if the TLV is not included<legal all>
  1323. */
  1324. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_PKT_END_OFFSET_OFFSET 0x0000000000000058
  1325. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_PKT_END_OFFSET_LSB 40
  1326. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_PKT_END_OFFSET_MSB 47
  1327. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_PKT_END_OFFSET_MASK 0x0000ff0000000000
  1328. /* Description ABORT_REQUEST_ACK_OFFSET
  1329. Offset in units of 4 bytes of either 'PHYRX_ABORT_REQUEST'
  1330. or 'PHYRX_ABORT_ACK' within 'RX_PPDU_END'
  1331. Set to zero if the TLV is not included
  1332. <legal all>
  1333. */
  1334. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_ABORT_REQUEST_ACK_OFFSET_OFFSET 0x0000000000000058
  1335. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_ABORT_REQUEST_ACK_OFFSET_LSB 48
  1336. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_ABORT_REQUEST_ACK_OFFSET_MSB 55
  1337. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_ABORT_REQUEST_ACK_OFFSET_MASK 0x00ff000000000000
  1338. /* Description RESERVED_7A
  1339. Spare space in case the widths of the above offsets grow<legal
  1340. all>
  1341. */
  1342. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_7A_OFFSET 0x0000000000000058
  1343. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_7A_LSB 56
  1344. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_7A_MSB 63
  1345. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_7A_MASK 0xff00000000000000
  1346. /* Description RESERVED_8A
  1347. Spare space in case the widths of the above offsets grow
  1348. <legal all>
  1349. */
  1350. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_8A_OFFSET 0x0000000000000060
  1351. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_8A_LSB 0
  1352. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_8A_MSB 31
  1353. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_8A_MASK 0x00000000ffffffff
  1354. /* Description RESERVED_9A
  1355. Spare space in case the widths of the above offsets grow
  1356. <legal all>
  1357. */
  1358. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_9A_OFFSET 0x0000000000000060
  1359. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_9A_LSB 32
  1360. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_9A_MSB 63
  1361. #define RXPCU_PPDU_END_INFO_RXPCU_PPDU_END_LAYOUT_DETAILS_RESERVED_9A_MASK 0xffffffff00000000
  1362. /* Description CORRUPTED_DUE_TO_FIFO_DELAY
  1363. Set if Rx PCU avoided a hang due to SFM delays by writing
  1364. a corrupted 'RX_PPDU_END_USER_STATS' and/or 'RX_PPDU_END.'
  1365. */
  1366. #define RXPCU_PPDU_END_INFO_CORRUPTED_DUE_TO_FIFO_DELAY_OFFSET 0x0000000000000068
  1367. #define RXPCU_PPDU_END_INFO_CORRUPTED_DUE_TO_FIFO_DELAY_LSB 0
  1368. #define RXPCU_PPDU_END_INFO_CORRUPTED_DUE_TO_FIFO_DELAY_MSB 0
  1369. #define RXPCU_PPDU_END_INFO_CORRUPTED_DUE_TO_FIFO_DELAY_MASK 0x0000000000000001
  1370. /* Description QOS_SN_1_MORE_FRAG_STATE
  1371. Field only valid when QoS_SN_1_info_valid is set.
  1372. The 'more fragments' state of the QoS frames with TID QoS_SN_1_TID
  1373. at the end of this PPDU
  1374. <legal all>
  1375. */
  1376. #define RXPCU_PPDU_END_INFO_QOS_SN_1_MORE_FRAG_STATE_OFFSET 0x0000000000000068
  1377. #define RXPCU_PPDU_END_INFO_QOS_SN_1_MORE_FRAG_STATE_LSB 1
  1378. #define RXPCU_PPDU_END_INFO_QOS_SN_1_MORE_FRAG_STATE_MSB 1
  1379. #define RXPCU_PPDU_END_INFO_QOS_SN_1_MORE_FRAG_STATE_MASK 0x0000000000000002
  1380. /* Description QOS_SN_1_FRAG_NUM_STATE
  1381. Field only valid when QoS_SN_1_info_valid is set.
  1382. The 'fragment number' state of the QoS frames with TID QoS_SN_1_TID
  1383. at the end of this PPDU
  1384. <legal all>
  1385. */
  1386. #define RXPCU_PPDU_END_INFO_QOS_SN_1_FRAG_NUM_STATE_OFFSET 0x0000000000000068
  1387. #define RXPCU_PPDU_END_INFO_QOS_SN_1_FRAG_NUM_STATE_LSB 2
  1388. #define RXPCU_PPDU_END_INFO_QOS_SN_1_FRAG_NUM_STATE_MSB 5
  1389. #define RXPCU_PPDU_END_INFO_QOS_SN_1_FRAG_NUM_STATE_MASK 0x000000000000003c
  1390. /* Description QOS_SN_2_MORE_FRAG_STATE
  1391. Field only valid when QoS_SN_2_info_valid is set.
  1392. The 'more fragments' state of the QoS frames with TID QoS_SN_2_TID
  1393. at the end of this PPDU
  1394. <legal all>
  1395. */
  1396. #define RXPCU_PPDU_END_INFO_QOS_SN_2_MORE_FRAG_STATE_OFFSET 0x0000000000000068
  1397. #define RXPCU_PPDU_END_INFO_QOS_SN_2_MORE_FRAG_STATE_LSB 6
  1398. #define RXPCU_PPDU_END_INFO_QOS_SN_2_MORE_FRAG_STATE_MSB 6
  1399. #define RXPCU_PPDU_END_INFO_QOS_SN_2_MORE_FRAG_STATE_MASK 0x0000000000000040
  1400. /* Description QOS_SN_2_FRAG_NUM_STATE
  1401. Field only valid when QoS_SN_2_info_valid is set.
  1402. The 'fragment number' state of the QoS frames with TID QoS_SN_2_TID
  1403. at the end of this PPDU
  1404. <legal all>
  1405. */
  1406. #define RXPCU_PPDU_END_INFO_QOS_SN_2_FRAG_NUM_STATE_OFFSET 0x0000000000000068
  1407. #define RXPCU_PPDU_END_INFO_QOS_SN_2_FRAG_NUM_STATE_LSB 7
  1408. #define RXPCU_PPDU_END_INFO_QOS_SN_2_FRAG_NUM_STATE_MSB 10
  1409. #define RXPCU_PPDU_END_INFO_QOS_SN_2_FRAG_NUM_STATE_MASK 0x0000000000000780
  1410. /* Description RESERVED_26A
  1411. <legal 0>
  1412. */
  1413. #define RXPCU_PPDU_END_INFO_RESERVED_26A_OFFSET 0x0000000000000068
  1414. #define RXPCU_PPDU_END_INFO_RESERVED_26A_LSB 11
  1415. #define RXPCU_PPDU_END_INFO_RESERVED_26A_MSB 31
  1416. #define RXPCU_PPDU_END_INFO_RESERVED_26A_MASK 0x00000000fffff800
  1417. /* Description RX_PPDU_END_MARKER
  1418. Field used by SW to double check that their structure alignment
  1419. is in sync with what HW has done.
  1420. <legal 0xAABBCCDD>
  1421. */
  1422. #define RXPCU_PPDU_END_INFO_RX_PPDU_END_MARKER_OFFSET 0x0000000000000068
  1423. #define RXPCU_PPDU_END_INFO_RX_PPDU_END_MARKER_LSB 32
  1424. #define RXPCU_PPDU_END_INFO_RX_PPDU_END_MARKER_MSB 63
  1425. #define RXPCU_PPDU_END_INFO_RX_PPDU_END_MARKER_MASK 0xffffffff00000000
  1426. #endif // RXPCU_PPDU_END_INFO