rxpcu_ppdu_end_info.h 88 KB

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