tx_fes_status_end.h 94 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229
  1. /* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
  2. *
  3. * Permission to use, copy, modify, and/or distribute this software for any
  4. * purpose with or without fee is hereby granted, provided that the above
  5. * copyright notice and this permission notice appear in all copies.
  6. *
  7. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  8. * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  9. * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  10. * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  11. * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  12. * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  13. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  14. */
  15. #ifndef _TX_FES_STATUS_END_H_
  16. #define _TX_FES_STATUS_END_H_
  17. #if !defined(__ASSEMBLER__)
  18. #endif
  19. #include "phytx_abort_request_info.h"
  20. #define NUM_OF_DWORDS_TX_FES_STATUS_END 22
  21. #define NUM_OF_QWORDS_TX_FES_STATUS_END 11
  22. struct tx_fes_status_end {
  23. #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
  24. uint32_t prot_coex_bt_tx_while_wlan_tx : 1, // [0:0]
  25. prot_coex_bt_tx_while_wlan_rx : 1, // [1:1]
  26. prot_coex_wan_tx_while_wlan_tx : 1, // [2:2]
  27. prot_coex_wan_tx_while_wlan_rx : 1, // [3:3]
  28. prot_coex_wlan_tx_while_wlan_tx : 1, // [4:4]
  29. prot_coex_wlan_tx_while_wlan_rx : 1, // [5:5]
  30. coex_bt_tx_while_wlan_tx : 1, // [6:6]
  31. coex_bt_tx_while_wlan_rx : 1, // [7:7]
  32. coex_wan_tx_while_wlan_tx : 1, // [8:8]
  33. coex_wan_tx_while_wlan_rx : 1, // [9:9]
  34. coex_wlan_tx_while_wlan_tx : 1, // [10:10]
  35. coex_wlan_tx_while_wlan_rx : 1, // [11:11]
  36. global_data_underflow_warning : 1, // [12:12]
  37. global_fes_transmit_result : 4, // [16:13]
  38. cbf_bw_received_valid : 1, // [17:17]
  39. cbf_bw_received : 3, // [20:18]
  40. actual_received_ack_type : 4, // [24:21]
  41. sta_response_count : 6, // [30:25]
  42. dpdtrain_done : 1; // [31:31]
  43. struct phytx_abort_request_info phytx_abort_request_info_details;
  44. uint16_t reserved_after_struct16 : 4, // [19:16]
  45. brp_info_valid : 1, // [20:20]
  46. reserved_1a : 6, // [26:21]
  47. phytx_pkt_end_info_valid : 1, // [27:27]
  48. phytx_abort_request_info_valid : 1, // [28:28]
  49. fes_in_11ax_trigger_response_config : 1, // [29:29]
  50. null_delim_inserted_before_mpdus : 1, // [30:30]
  51. only_null_delim_sent : 1; // [31:31]
  52. uint32_t start_of_frame_timestamp_15_0 : 16, // [15:0]
  53. start_of_frame_timestamp_31_16 : 16; // [31:16]
  54. uint32_t end_of_frame_timestamp_15_0 : 16, // [15:0]
  55. end_of_frame_timestamp_31_16 : 16; // [31:16]
  56. uint32_t terminate_ranging_sequence : 1, // [0:0]
  57. reserved_4a : 7, // [7:1]
  58. timing_status : 2, // [9:8]
  59. response_type : 5, // [14:10]
  60. r2r_end_status_to_follow : 1, // [15:15]
  61. transmit_delay : 16; // [31:16]
  62. uint32_t tx_group_delay : 12, // [11:0]
  63. reserved_5a : 4, // [15:12]
  64. tpc_dbg_info_cmn_15_0 : 16; // [31:16]
  65. uint32_t tpc_dbg_info_cmn_31_16 : 16, // [15:0]
  66. tpc_dbg_info_47_32 : 16; // [31:16]
  67. uint32_t tpc_dbg_info_chn1_15_0 : 16, // [15:0]
  68. tpc_dbg_info_chn1_31_16 : 16; // [31:16]
  69. uint32_t tpc_dbg_info_chn1_47_32 : 16, // [15:0]
  70. tpc_dbg_info_chn1_63_48 : 16; // [31:16]
  71. uint32_t tpc_dbg_info_chn1_79_64 : 16, // [15:0]
  72. tpc_dbg_info_chn2_15_0 : 16; // [31:16]
  73. uint32_t tpc_dbg_info_chn2_31_16 : 16, // [15:0]
  74. tpc_dbg_info_chn2_47_32 : 16; // [31:16]
  75. uint32_t tpc_dbg_info_chn2_63_48 : 16, // [15:0]
  76. tpc_dbg_info_chn2_79_64 : 16; // [31:16]
  77. uint32_t phytx_tx_end_sw_info_15_0 : 16, // [15:0]
  78. phytx_tx_end_sw_info_31_16 : 16; // [31:16]
  79. uint32_t phytx_tx_end_sw_info_47_32 : 16, // [15:0]
  80. phytx_tx_end_sw_info_63_48 : 16; // [31:16]
  81. uint32_t beamform_masked_user_bitmap_15_0 : 16, // [15:0]
  82. beamform_masked_user_bitmap_31_16 : 16; // [31:16]
  83. uint32_t cbf_segment_request_mask : 8, // [7:0]
  84. cbf_segment_sent_mask : 8, // [15:8]
  85. highest_achieved_data_null_ratio : 5, // [20:16]
  86. use_alt_power_sr : 1, // [21:21]
  87. static_2_pwr_mode_status : 1, // [22:22]
  88. obss_srg_opport_transmit_status : 1, // [23:23]
  89. srp_based_transmit_status : 1, // [24:24]
  90. obss_pd_based_transmit_status : 1, // [25:25]
  91. beamform_masked_user_bitmap_36_32 : 5, // [30:26]
  92. pdg_mpdu_ready : 1; // [31:31]
  93. uint32_t pdg_mpdu_count : 16, // [15:0]
  94. pdg_est_mpdu_tx_count : 16; // [31:16]
  95. uint32_t pdg_overview_length : 24, // [23:0]
  96. txop_duration : 7, // [30:24]
  97. pdg_dropped_mpdu_warning : 1; // [31:31]
  98. uint32_t packet_extension_a_factor : 2, // [1:0]
  99. packet_extension_pe_disambiguity : 1, // [2:2]
  100. packet_extension : 3, // [5:3]
  101. fec_type : 1, // [6:6]
  102. stbc : 1, // [7:7]
  103. num_data_symbols : 16, // [23:8]
  104. ru_size : 4, // [27:24]
  105. reserved_17a : 4; // [31:28]
  106. uint32_t num_ltf_symbols : 3, // [2:0]
  107. ltf_size : 2, // [4:3]
  108. cp_setting : 2, // [6:5]
  109. reserved_18a : 5, // [11:7]
  110. dcm : 1, // [12:12]
  111. ldpc_extra_symbol : 1, // [13:13]
  112. force_extra_symbol : 1, // [14:14]
  113. reserved_18b : 1, // [15:15]
  114. tx_pwr_shared : 8, // [23:16]
  115. tx_pwr_unshared : 8; // [31:24]
  116. uint32_t ranging_active_user_map : 16, // [15:0]
  117. ranging_sent_dummy_tx : 1, // [16:16]
  118. ranging_ftm_frame_sent : 1, // [17:17]
  119. reserved_20a : 6, // [23:18]
  120. cv_corr_status : 8; // [31:24]
  121. uint32_t current_tx_duration : 16, // [15:0]
  122. reserved_21a : 16; // [31:16]
  123. #else
  124. uint32_t dpdtrain_done : 1, // [31:31]
  125. sta_response_count : 6, // [30:25]
  126. actual_received_ack_type : 4, // [24:21]
  127. cbf_bw_received : 3, // [20:18]
  128. cbf_bw_received_valid : 1, // [17:17]
  129. global_fes_transmit_result : 4, // [16:13]
  130. global_data_underflow_warning : 1, // [12:12]
  131. coex_wlan_tx_while_wlan_rx : 1, // [11:11]
  132. coex_wlan_tx_while_wlan_tx : 1, // [10:10]
  133. coex_wan_tx_while_wlan_rx : 1, // [9:9]
  134. coex_wan_tx_while_wlan_tx : 1, // [8:8]
  135. coex_bt_tx_while_wlan_rx : 1, // [7:7]
  136. coex_bt_tx_while_wlan_tx : 1, // [6:6]
  137. prot_coex_wlan_tx_while_wlan_rx : 1, // [5:5]
  138. prot_coex_wlan_tx_while_wlan_tx : 1, // [4:4]
  139. prot_coex_wan_tx_while_wlan_rx : 1, // [3:3]
  140. prot_coex_wan_tx_while_wlan_tx : 1, // [2:2]
  141. prot_coex_bt_tx_while_wlan_rx : 1, // [1:1]
  142. prot_coex_bt_tx_while_wlan_tx : 1; // [0:0]
  143. uint32_t only_null_delim_sent : 1, // [31:31]
  144. null_delim_inserted_before_mpdus : 1, // [30:30]
  145. fes_in_11ax_trigger_response_config : 1, // [29:29]
  146. phytx_abort_request_info_valid : 1, // [28:28]
  147. phytx_pkt_end_info_valid : 1, // [27:27]
  148. reserved_1a : 6, // [26:21]
  149. brp_info_valid : 1, // [20:20]
  150. reserved_after_struct16 : 4; // [19:16]
  151. struct phytx_abort_request_info phytx_abort_request_info_details;
  152. uint32_t start_of_frame_timestamp_31_16 : 16, // [31:16]
  153. start_of_frame_timestamp_15_0 : 16; // [15:0]
  154. uint32_t end_of_frame_timestamp_31_16 : 16, // [31:16]
  155. end_of_frame_timestamp_15_0 : 16; // [15:0]
  156. uint32_t transmit_delay : 16, // [31:16]
  157. r2r_end_status_to_follow : 1, // [15:15]
  158. response_type : 5, // [14:10]
  159. timing_status : 2, // [9:8]
  160. reserved_4a : 7, // [7:1]
  161. terminate_ranging_sequence : 1; // [0:0]
  162. uint32_t tpc_dbg_info_cmn_15_0 : 16, // [31:16]
  163. reserved_5a : 4, // [15:12]
  164. tx_group_delay : 12; // [11:0]
  165. uint32_t tpc_dbg_info_47_32 : 16, // [31:16]
  166. tpc_dbg_info_cmn_31_16 : 16; // [15:0]
  167. uint32_t tpc_dbg_info_chn1_31_16 : 16, // [31:16]
  168. tpc_dbg_info_chn1_15_0 : 16; // [15:0]
  169. uint32_t tpc_dbg_info_chn1_63_48 : 16, // [31:16]
  170. tpc_dbg_info_chn1_47_32 : 16; // [15:0]
  171. uint32_t tpc_dbg_info_chn2_15_0 : 16, // [31:16]
  172. tpc_dbg_info_chn1_79_64 : 16; // [15:0]
  173. uint32_t tpc_dbg_info_chn2_47_32 : 16, // [31:16]
  174. tpc_dbg_info_chn2_31_16 : 16; // [15:0]
  175. uint32_t tpc_dbg_info_chn2_79_64 : 16, // [31:16]
  176. tpc_dbg_info_chn2_63_48 : 16; // [15:0]
  177. uint32_t phytx_tx_end_sw_info_31_16 : 16, // [31:16]
  178. phytx_tx_end_sw_info_15_0 : 16; // [15:0]
  179. uint32_t phytx_tx_end_sw_info_63_48 : 16, // [31:16]
  180. phytx_tx_end_sw_info_47_32 : 16; // [15:0]
  181. uint32_t beamform_masked_user_bitmap_31_16 : 16, // [31:16]
  182. beamform_masked_user_bitmap_15_0 : 16; // [15:0]
  183. uint32_t pdg_mpdu_ready : 1, // [31:31]
  184. beamform_masked_user_bitmap_36_32 : 5, // [30:26]
  185. obss_pd_based_transmit_status : 1, // [25:25]
  186. srp_based_transmit_status : 1, // [24:24]
  187. obss_srg_opport_transmit_status : 1, // [23:23]
  188. static_2_pwr_mode_status : 1, // [22:22]
  189. use_alt_power_sr : 1, // [21:21]
  190. highest_achieved_data_null_ratio : 5, // [20:16]
  191. cbf_segment_sent_mask : 8, // [15:8]
  192. cbf_segment_request_mask : 8; // [7:0]
  193. uint32_t pdg_est_mpdu_tx_count : 16, // [31:16]
  194. pdg_mpdu_count : 16; // [15:0]
  195. uint32_t pdg_dropped_mpdu_warning : 1, // [31:31]
  196. txop_duration : 7, // [30:24]
  197. pdg_overview_length : 24; // [23:0]
  198. uint32_t reserved_17a : 4, // [31:28]
  199. ru_size : 4, // [27:24]
  200. num_data_symbols : 16, // [23:8]
  201. stbc : 1, // [7:7]
  202. fec_type : 1, // [6:6]
  203. packet_extension : 3, // [5:3]
  204. packet_extension_pe_disambiguity : 1, // [2:2]
  205. packet_extension_a_factor : 2; // [1:0]
  206. uint32_t tx_pwr_unshared : 8, // [31:24]
  207. tx_pwr_shared : 8, // [23:16]
  208. reserved_18b : 1, // [15:15]
  209. force_extra_symbol : 1, // [14:14]
  210. ldpc_extra_symbol : 1, // [13:13]
  211. dcm : 1, // [12:12]
  212. reserved_18a : 5, // [11:7]
  213. cp_setting : 2, // [6:5]
  214. ltf_size : 2, // [4:3]
  215. num_ltf_symbols : 3; // [2:0]
  216. uint32_t cv_corr_status : 8, // [31:24]
  217. reserved_20a : 6, // [23:18]
  218. ranging_ftm_frame_sent : 1, // [17:17]
  219. ranging_sent_dummy_tx : 1, // [16:16]
  220. ranging_active_user_map : 16; // [15:0]
  221. uint32_t reserved_21a : 16, // [31:16]
  222. current_tx_duration : 16; // [15:0]
  223. #endif
  224. };
  225. /* Description PROT_COEX_BT_TX_WHILE_WLAN_TX
  226. When set, a BT tx coex event started while wlan was in the
  227. middle of TX a transmission.
  228. Field set when coex_status_broadcast TLV received with bt
  229. tx activity set and during WLAN tx
  230. <legal all>
  231. */
  232. #define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_TX_OFFSET 0x0000000000000000
  233. #define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_TX_LSB 0
  234. #define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_TX_MSB 0
  235. #define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_TX_MASK 0x0000000000000001
  236. /* Description PROT_COEX_BT_TX_WHILE_WLAN_RX
  237. When set, a BT tx coex event started while wlan was in the
  238. middle of TX a transmission.
  239. Field set when coex broadcast TLV received with bt tx activity
  240. set and during WLAN rx
  241. <legal all>
  242. */
  243. #define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_RX_OFFSET 0x0000000000000000
  244. #define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_RX_LSB 1
  245. #define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_RX_MSB 1
  246. #define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_RX_MASK 0x0000000000000002
  247. /* Description PROT_COEX_WAN_TX_WHILE_WLAN_TX
  248. When set, a WAN tx coex event started while wlan was in
  249. the middle of TX a transmission.
  250. Field set when coex_status_broadcast TLV received with WAN
  251. tx activity set and during WLAN tx
  252. <legal all>
  253. */
  254. #define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_TX_OFFSET 0x0000000000000000
  255. #define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_TX_LSB 2
  256. #define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_TX_MSB 2
  257. #define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_TX_MASK 0x0000000000000004
  258. /* Description PROT_COEX_WAN_TX_WHILE_WLAN_RX
  259. When set, a WAN tx coex event started while wlan was in
  260. the middle of TX a transmission.
  261. Field set when coex broadcast TLV received with WAN tx activity
  262. set and during WLAN rx
  263. <legal all>
  264. */
  265. #define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_RX_OFFSET 0x0000000000000000
  266. #define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_RX_LSB 3
  267. #define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_RX_MSB 3
  268. #define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_RX_MASK 0x0000000000000008
  269. /* Description PROT_COEX_WLAN_TX_WHILE_WLAN_TX
  270. When set, a WLAN tx coex event started while wlan was in
  271. the middle of TX a transmission.
  272. Field set when coex_status_broadcast TLV received with WLAN
  273. tx activity set and during WLAN tx
  274. <legal all>
  275. */
  276. #define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_TX_OFFSET 0x0000000000000000
  277. #define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_TX_LSB 4
  278. #define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_TX_MSB 4
  279. #define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_TX_MASK 0x0000000000000010
  280. /* Description PROT_COEX_WLAN_TX_WHILE_WLAN_RX
  281. When set, a WLAN tx coex event started while wlan was in
  282. the middle of TX a transmission.
  283. Field set when coex broadcast TLV received with WLAN tx
  284. activity set and during WLAN rx
  285. <legal all>
  286. */
  287. #define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_RX_OFFSET 0x0000000000000000
  288. #define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_RX_LSB 5
  289. #define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_RX_MSB 5
  290. #define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_RX_MASK 0x0000000000000020
  291. /* Description COEX_BT_TX_WHILE_WLAN_TX
  292. When set, a BT tx coex event started while wlan was in the
  293. middle of TX a transmission.
  294. Field set when coex_status_broadcast TLV received with bt
  295. tx activity set and during WLAN tx
  296. <legal all>
  297. */
  298. #define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_TX_OFFSET 0x0000000000000000
  299. #define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_TX_LSB 6
  300. #define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_TX_MSB 6
  301. #define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_TX_MASK 0x0000000000000040
  302. /* Description COEX_BT_TX_WHILE_WLAN_RX
  303. When set, a BT tx coex event started while wlan was in the
  304. middle of TX a transmission.
  305. Field set when coex broadcast TLV received with bt tx activity
  306. set and during WLAN rx
  307. <legal all>
  308. */
  309. #define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_RX_OFFSET 0x0000000000000000
  310. #define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_RX_LSB 7
  311. #define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_RX_MSB 7
  312. #define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_RX_MASK 0x0000000000000080
  313. /* Description COEX_WAN_TX_WHILE_WLAN_TX
  314. When set, a WAN tx coex event started while wlan was in
  315. the middle of TX a transmission.
  316. Field set when coex_status_broadcast TLV received with WAN
  317. tx activity set and during WLAN tx
  318. <legal all>
  319. */
  320. #define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_TX_OFFSET 0x0000000000000000
  321. #define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_TX_LSB 8
  322. #define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_TX_MSB 8
  323. #define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_TX_MASK 0x0000000000000100
  324. /* Description COEX_WAN_TX_WHILE_WLAN_RX
  325. When set, a WAN tx coex event started while wlan was in
  326. the middle of TX a transmission.
  327. Field set when coex broadcast TLV received with WAN tx activity
  328. set and during WLAN rx
  329. <legal all>
  330. */
  331. #define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_RX_OFFSET 0x0000000000000000
  332. #define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_RX_LSB 9
  333. #define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_RX_MSB 9
  334. #define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_RX_MASK 0x0000000000000200
  335. /* Description COEX_WLAN_TX_WHILE_WLAN_TX
  336. When set, a WLAN tx coex event started while wlan was in
  337. the middle of TX a transmission.
  338. Field set when coex_status_broadcast TLV received with WLAN
  339. tx activity set and during WLAN tx
  340. <legal all>
  341. */
  342. #define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_TX_OFFSET 0x0000000000000000
  343. #define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_TX_LSB 10
  344. #define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_TX_MSB 10
  345. #define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_TX_MASK 0x0000000000000400
  346. /* Description COEX_WLAN_TX_WHILE_WLAN_RX
  347. When set, a WLAN tx coex event started while wlan was in
  348. the middle of TX a transmission.
  349. Field set when coex broadcast TLV received with WLAN tx
  350. activity set and during WLAN rx
  351. <legal all>
  352. */
  353. #define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_RX_OFFSET 0x0000000000000000
  354. #define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_RX_LSB 11
  355. #define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_RX_MSB 11
  356. #define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_RX_MASK 0x0000000000000800
  357. /* Description GLOBAL_DATA_UNDERFLOW_WARNING
  358. Consumer: SCH/SW
  359. Producer: TXPCU
  360. When set, during transmission a data underflow occurred
  361. for one or more users.<legal all>
  362. */
  363. #define TX_FES_STATUS_END_GLOBAL_DATA_UNDERFLOW_WARNING_OFFSET 0x0000000000000000
  364. #define TX_FES_STATUS_END_GLOBAL_DATA_UNDERFLOW_WARNING_LSB 12
  365. #define TX_FES_STATUS_END_GLOBAL_DATA_UNDERFLOW_WARNING_MSB 12
  366. #define TX_FES_STATUS_END_GLOBAL_DATA_UNDERFLOW_WARNING_MASK 0x0000000000001000
  367. /* Description GLOBAL_FES_TRANSMIT_RESULT
  368. Consumer: SCH/SW
  369. Producer: TXPCU
  370. Global Transmit result, not per USER transmit result
  371. Note: field "Response_type" indicates if the expected response
  372. was MU related or not.
  373. <enum 0 tx_ok> Successful transmission of entire Frame exchange
  374. sequence
  375. <enum 1 prot_resp_rx_timeout>
  376. No Protection response frame received so timeout is triggered.
  377. <enum 2 ppdu_resp_rx_timeout> No PPDU response frame received
  378. so timeout is triggered.
  379. <enum 3 resp_frame_crc_err> Response frame was received
  380. with an invalid FCS.
  381. <enum 4 SU_Response_type_mismatch> Response frame is received
  382. without CRC error but it's not matched with expected SU_Response_type.
  383. <enum 5 cbf_mimo_ctrl_mismatch> Set if CBF is received without
  384. any error but the Nr, Nc, BW, type or token in VHT MIMO
  385. control field is not matched with expected values which
  386. are specified by TX_FES_SETUP.cbf_* fields.
  387. <enum 7 MU_Response_type_mismatch> Response frame is received
  388. without CRC error but it's not matched with expected SU_Response_type.
  389. <enum 8 MU_Response_mpdu_not_valid> For this user, no MPDU
  390. was received at all, or all received MPDUs had an FCS error.
  391. <enum 9 MU_UL_not_enough_user_response> An MU UL response
  392. reception was expected. That response came but the threshold
  393. for number of successful user receptions was not met.
  394. NOTE: This e-num will only be used in the TX_FES_STATUS_END
  395. TLV...
  396. <enum 10 Transmit_data_null_ratio_not_met> transmission
  397. was successful and proper responses have been received.
  398. But the required ratio between useful MPDU data and null
  399. delimiters was not met as specified by field : Fes_continuation_ratio_threshold.
  400. The FES (and potentially the SIFS burst) shall be terminated
  401. by the SCHeduler
  402. NOTE 1: This e-num will only be used in the TX_FES_STATUS_END
  403. TLV...
  404. NOTE 2: This Feature is not supported in Napier and Hastings.
  405. <enum 6 TB_ranging_resp_timeout> A TB ranging response was
  406. expected for a sounding TF, but the response did not arrive
  407. and timeout is triggered.
  408. NOTE: This e-num will only be used in the TX_FES_STATUS_END
  409. TLV...
  410. <enum 11 tb_ranging_resp_mismatch> A TB ranging response
  411. was expected for a sounding TF, but the reception did not
  412. match the expected response.
  413. NOTE: This e-num will only be used in the TX_FES_STATUS_END
  414. TLV...
  415. <legal 0-11>
  416. */
  417. #define TX_FES_STATUS_END_GLOBAL_FES_TRANSMIT_RESULT_OFFSET 0x0000000000000000
  418. #define TX_FES_STATUS_END_GLOBAL_FES_TRANSMIT_RESULT_LSB 13
  419. #define TX_FES_STATUS_END_GLOBAL_FES_TRANSMIT_RESULT_MSB 16
  420. #define TX_FES_STATUS_END_GLOBAL_FES_TRANSMIT_RESULT_MASK 0x000000000001e000
  421. /* Description CBF_BW_RECEIVED_VALID
  422. Field only valid in case of SU reception.
  423. In MU set to 0
  424. When set, the cbf_bw_received field contains valid info
  425. */
  426. #define TX_FES_STATUS_END_CBF_BW_RECEIVED_VALID_OFFSET 0x0000000000000000
  427. #define TX_FES_STATUS_END_CBF_BW_RECEIVED_VALID_LSB 17
  428. #define TX_FES_STATUS_END_CBF_BW_RECEIVED_VALID_MSB 17
  429. #define TX_FES_STATUS_END_CBF_BW_RECEIVED_VALID_MASK 0x0000000000020000
  430. /* Description CBF_BW_RECEIVED
  431. Field only valid when cbf_bw_received_valid is set.
  432. In MU set to 0
  433. <enum 0 20_mhz>20 Mhz BW
  434. <enum 1 40_mhz>40 Mhz BW
  435. <enum 2 80_mhz>80 Mhz BW
  436. <enum 3 160_mhz>160 Mhz BW
  437. <enum 4 320_mhz>320 Mhz BW
  438. <enum 5 240_mhz>240 Mhz BW
  439. */
  440. #define TX_FES_STATUS_END_CBF_BW_RECEIVED_OFFSET 0x0000000000000000
  441. #define TX_FES_STATUS_END_CBF_BW_RECEIVED_LSB 18
  442. #define TX_FES_STATUS_END_CBF_BW_RECEIVED_MSB 20
  443. #define TX_FES_STATUS_END_CBF_BW_RECEIVED_MASK 0x00000000001c0000
  444. /* Description ACTUAL_RECEIVED_ACK_TYPE
  445. Field only valid in case of SU reception.
  446. In MU set to 0
  447. Field indicates what type of ACK was received. Can help
  448. determine if unexpected ACK Types (like 256 BA instead of
  449. 64 BA) is received.
  450. <enum 0 Ack_not_applicable> No ACK type response was received
  451. or expected
  452. <enum 1 ACK_basic_received > a basic ACk frame is received
  453. <enum 2 ACK_BA_0 > An ACK embedded in BA frame is received
  454. <enum 3 ACK_BA_32_received > a 32 bit BA has been received
  455. <enum 4 ACK_BA_64_received > a 64 bit BA has been received
  456. <enum 5 ACK_BA_128_received > a 128 bit BA has been received
  457. <enum 6 ACK_BA_256_received > a 256 bit BA has been received
  458. <enum 8 ACK_BA_512_received> a 512-bit BA has been received
  459. <enum 9 ACK_BA_1024_received> a 1024-bit BA has been received
  460. <enum 7 ACK_BA_multiple_received > multiple BA responses
  461. have been received. This field to be used in scenarios
  462. where multi TID data was send or data with management frames
  463. was send
  464. <legal 0-9>
  465. */
  466. #define TX_FES_STATUS_END_ACTUAL_RECEIVED_ACK_TYPE_OFFSET 0x0000000000000000
  467. #define TX_FES_STATUS_END_ACTUAL_RECEIVED_ACK_TYPE_LSB 21
  468. #define TX_FES_STATUS_END_ACTUAL_RECEIVED_ACK_TYPE_MSB 24
  469. #define TX_FES_STATUS_END_ACTUAL_RECEIVED_ACK_TYPE_MASK 0x0000000001e00000
  470. /* Description STA_RESPONSE_COUNT
  471. In of case of a transmission where a response from multiple
  472. STAs in SIFS time is expected, this field indicates how
  473. many STAs actually send a response.
  474. <legal 0-63>
  475. */
  476. #define TX_FES_STATUS_END_STA_RESPONSE_COUNT_OFFSET 0x0000000000000000
  477. #define TX_FES_STATUS_END_STA_RESPONSE_COUNT_LSB 25
  478. #define TX_FES_STATUS_END_STA_RESPONSE_COUNT_MSB 30
  479. #define TX_FES_STATUS_END_STA_RESPONSE_COUNT_MASK 0x000000007e000000
  480. /* Description DPDTRAIN_DONE
  481. Field only valid when PHYTX_PKT_END_info_valid is set
  482. For DPD Training packets, this bit is set to indicate that
  483. DPD Training was successfully run to completion. Also
  484. reused by Implicit BF Calibration Packets. This bit is intended
  485. for debug purposes.
  486. <legal all>
  487. */
  488. #define TX_FES_STATUS_END_DPDTRAIN_DONE_OFFSET 0x0000000000000000
  489. #define TX_FES_STATUS_END_DPDTRAIN_DONE_LSB 31
  490. #define TX_FES_STATUS_END_DPDTRAIN_DONE_MSB 31
  491. #define TX_FES_STATUS_END_DPDTRAIN_DONE_MASK 0x0000000080000000
  492. /* Description PHYTX_ABORT_REQUEST_INFO_DETAILS
  493. Field only valid when PHYTX_ABORT_REQUEST_info_valid is
  494. set
  495. The reason why PHYTX is requested an abort
  496. */
  497. /* Description PHYTX_ABORT_REASON
  498. Reason for early termination of TX packet by the PHY
  499. <enum_type PHYTX_ABORT_ENUM>
  500. */
  501. #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_OFFSET 0x0000000000000000
  502. #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_LSB 32
  503. #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_MSB 39
  504. #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_MASK 0x000000ff00000000
  505. /* Description USER_NUMBER
  506. For some errors, the user for which this error was detected
  507. can be indicated in this field.
  508. <legal 0-36>
  509. */
  510. #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_OFFSET 0x0000000000000000
  511. #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_LSB 40
  512. #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_MSB 45
  513. #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_MASK 0x00003f0000000000
  514. /* Description RESERVED
  515. <legal 0>
  516. */
  517. #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_OFFSET 0x0000000000000000
  518. #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_LSB 46
  519. #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_MSB 47
  520. #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_MASK 0x0000c00000000000
  521. /* Description RESERVED_AFTER_STRUCT16
  522. <legal 0>
  523. */
  524. #define TX_FES_STATUS_END_RESERVED_AFTER_STRUCT16_OFFSET 0x0000000000000000
  525. #define TX_FES_STATUS_END_RESERVED_AFTER_STRUCT16_LSB 48
  526. #define TX_FES_STATUS_END_RESERVED_AFTER_STRUCT16_MSB 51
  527. #define TX_FES_STATUS_END_RESERVED_AFTER_STRUCT16_MASK 0x000f000000000000
  528. /* Description BRP_INFO_VALID
  529. When set, TXPCU sent CBF segments.
  530. Fields cbf_segment_request_mask and cbf_segment_sent_mask
  531. contain valid info.
  532. <legal all>
  533. */
  534. #define TX_FES_STATUS_END_BRP_INFO_VALID_OFFSET 0x0000000000000000
  535. #define TX_FES_STATUS_END_BRP_INFO_VALID_LSB 52
  536. #define TX_FES_STATUS_END_BRP_INFO_VALID_MSB 52
  537. #define TX_FES_STATUS_END_BRP_INFO_VALID_MASK 0x0010000000000000
  538. /* Description RESERVED_1A
  539. <legal 0>
  540. */
  541. #define TX_FES_STATUS_END_RESERVED_1A_OFFSET 0x0000000000000000
  542. #define TX_FES_STATUS_END_RESERVED_1A_LSB 53
  543. #define TX_FES_STATUS_END_RESERVED_1A_MSB 58
  544. #define TX_FES_STATUS_END_RESERVED_1A_MASK 0x07e0000000000000
  545. /* Description PHYTX_PKT_END_INFO_VALID
  546. All the fields originating from PHYTX_PKT_END TLV contain
  547. valid info
  548. */
  549. #define TX_FES_STATUS_END_PHYTX_PKT_END_INFO_VALID_OFFSET 0x0000000000000000
  550. #define TX_FES_STATUS_END_PHYTX_PKT_END_INFO_VALID_LSB 59
  551. #define TX_FES_STATUS_END_PHYTX_PKT_END_INFO_VALID_MSB 59
  552. #define TX_FES_STATUS_END_PHYTX_PKT_END_INFO_VALID_MASK 0x0800000000000000
  553. /* Description PHYTX_ABORT_REQUEST_INFO_VALID
  554. Field Phytx_abort_request_info_details contains valid info
  555. */
  556. #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_VALID_OFFSET 0x0000000000000000
  557. #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_VALID_LSB 60
  558. #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_VALID_MSB 60
  559. #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_VALID_MASK 0x1000000000000000
  560. /* Description FES_IN_11AX_TRIGGER_RESPONSE_CONFIG
  561. When set, this transmission was the result of responding
  562. to the reception of an 11ax trigger. This is a copy of
  563. field Fes_in_11ax_Trigger_response_config in the TX_FES_SETUP
  564. TLV.
  565. <legal all>
  566. */
  567. #define TX_FES_STATUS_END_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_OFFSET 0x0000000000000000
  568. #define TX_FES_STATUS_END_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_LSB 61
  569. #define TX_FES_STATUS_END_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_MSB 61
  570. #define TX_FES_STATUS_END_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_MASK 0x2000000000000000
  571. /* Description NULL_DELIM_INSERTED_BEFORE_MPDUS
  572. Field only valid when "Fes_in_11ax_Trigger_response_config"
  573. is set.
  574. This bit will get set if any NULL delimiter is sent out
  575. to PHY, during the whole transmit duration(self_gen + FES).
  576. This bit will NOT be set, if no MPDU data is sent out to
  577. PHY and whole transmit duration is filled with NULL delimiters.
  578. Note that SCH does not evaluate this field. It is only for
  579. SW to look at.
  580. <legal all>
  581. */
  582. #define TX_FES_STATUS_END_NULL_DELIM_INSERTED_BEFORE_MPDUS_OFFSET 0x0000000000000000
  583. #define TX_FES_STATUS_END_NULL_DELIM_INSERTED_BEFORE_MPDUS_LSB 62
  584. #define TX_FES_STATUS_END_NULL_DELIM_INSERTED_BEFORE_MPDUS_MSB 62
  585. #define TX_FES_STATUS_END_NULL_DELIM_INSERTED_BEFORE_MPDUS_MASK 0x4000000000000000
  586. /* Description ONLY_NULL_DELIM_SENT
  587. Field only valid when "Fes_in_11ax_Trigger_response_config"
  588. is set.
  589. This bit will be set if only NULL delimiters are sent to
  590. the PHY and no SCH sourced MPDU data is sent out.
  591. NOTE here that self-gen MPDU data will not be considered
  592. while evaluating this bit.
  593. Note that SCH does not evaluate this field. It is only for
  594. SW to look at.
  595. <legal all>
  596. */
  597. #define TX_FES_STATUS_END_ONLY_NULL_DELIM_SENT_OFFSET 0x0000000000000000
  598. #define TX_FES_STATUS_END_ONLY_NULL_DELIM_SENT_LSB 63
  599. #define TX_FES_STATUS_END_ONLY_NULL_DELIM_SENT_MSB 63
  600. #define TX_FES_STATUS_END_ONLY_NULL_DELIM_SENT_MASK 0x8000000000000000
  601. /* Description START_OF_FRAME_TIMESTAMP_15_0
  602. PHYTX_PKT_END info
  603. Field only valid when PHYTX_PKT_END_info_valid is set
  604. bits 15:0 of a 64 bit time stamp
  605. Start of frame in the medium @960 MHz
  606. <legal all>
  607. */
  608. #define TX_FES_STATUS_END_START_OF_FRAME_TIMESTAMP_15_0_OFFSET 0x0000000000000008
  609. #define TX_FES_STATUS_END_START_OF_FRAME_TIMESTAMP_15_0_LSB 0
  610. #define TX_FES_STATUS_END_START_OF_FRAME_TIMESTAMP_15_0_MSB 15
  611. #define TX_FES_STATUS_END_START_OF_FRAME_TIMESTAMP_15_0_MASK 0x000000000000ffff
  612. /* Description START_OF_FRAME_TIMESTAMP_31_16
  613. PHYTX_PKT_END info
  614. Field only valid when PHYTX_PKT_END_info_valid is set
  615. bits 31:16 of a 64 bit time stamp
  616. Start of frame in the medium @960 MHz
  617. <legal all>
  618. */
  619. #define TX_FES_STATUS_END_START_OF_FRAME_TIMESTAMP_31_16_OFFSET 0x0000000000000008
  620. #define TX_FES_STATUS_END_START_OF_FRAME_TIMESTAMP_31_16_LSB 16
  621. #define TX_FES_STATUS_END_START_OF_FRAME_TIMESTAMP_31_16_MSB 31
  622. #define TX_FES_STATUS_END_START_OF_FRAME_TIMESTAMP_31_16_MASK 0x00000000ffff0000
  623. /* Description END_OF_FRAME_TIMESTAMP_15_0
  624. PHYTX_PKT_END info
  625. Field only valid when PHYTX_PKT_END_info_valid is set
  626. bits 15:0 of a 64 bit time stamp
  627. End of frame in the medium @960 MHz
  628. <legal all>
  629. */
  630. #define TX_FES_STATUS_END_END_OF_FRAME_TIMESTAMP_15_0_OFFSET 0x0000000000000008
  631. #define TX_FES_STATUS_END_END_OF_FRAME_TIMESTAMP_15_0_LSB 32
  632. #define TX_FES_STATUS_END_END_OF_FRAME_TIMESTAMP_15_0_MSB 47
  633. #define TX_FES_STATUS_END_END_OF_FRAME_TIMESTAMP_15_0_MASK 0x0000ffff00000000
  634. /* Description END_OF_FRAME_TIMESTAMP_31_16
  635. PHYTX_PKT_END info
  636. Field only valid when PHYTX_PKT_END_info_valid is set
  637. bits 31:16 of a 64 bit time stamp
  638. End of frame in the medium @960 MHz
  639. <legal all>
  640. */
  641. #define TX_FES_STATUS_END_END_OF_FRAME_TIMESTAMP_31_16_OFFSET 0x0000000000000008
  642. #define TX_FES_STATUS_END_END_OF_FRAME_TIMESTAMP_31_16_LSB 48
  643. #define TX_FES_STATUS_END_END_OF_FRAME_TIMESTAMP_31_16_MSB 63
  644. #define TX_FES_STATUS_END_END_OF_FRAME_TIMESTAMP_31_16_MASK 0xffff000000000000
  645. /* Description TERMINATE_RANGING_SEQUENCE
  646. Consumer: SW/SCH
  647. Producer: TXPCU
  648. If set to 1, HWSCH will flush the TX pipeline and terminate
  649. the ongoing SIFS sequence for TB Ranging.
  650. TXPCU to set it only in the context of TB Ranging, when
  651. the condition to terminate the TB Ranging sequence is met
  652. <legal all>
  653. */
  654. #define TX_FES_STATUS_END_TERMINATE_RANGING_SEQUENCE_OFFSET 0x0000000000000010
  655. #define TX_FES_STATUS_END_TERMINATE_RANGING_SEQUENCE_LSB 0
  656. #define TX_FES_STATUS_END_TERMINATE_RANGING_SEQUENCE_MSB 0
  657. #define TX_FES_STATUS_END_TERMINATE_RANGING_SEQUENCE_MASK 0x0000000000000001
  658. /* Description RESERVED_4A
  659. <legal 0>
  660. */
  661. #define TX_FES_STATUS_END_RESERVED_4A_OFFSET 0x0000000000000010
  662. #define TX_FES_STATUS_END_RESERVED_4A_LSB 1
  663. #define TX_FES_STATUS_END_RESERVED_4A_MSB 7
  664. #define TX_FES_STATUS_END_RESERVED_4A_MASK 0x00000000000000fe
  665. /* Description TIMING_STATUS
  666. PHYTX_PKT_END info
  667. Field only valid when PHYTX_PKT_END_info_valid is set
  668. <enum 0 No_tx_timing_request> The MAC did not request for
  669. the transmission to start at a particular time
  670. <enum 1 successful_tx_timing > MAC did request for transmission
  671. to start at a particular time and PHY was able to do so.
  672. <enum 2 tx_timing_not_honoured> PHY was not able to honour
  673. the requested transmit time by the MAC. The transmission
  674. started later, and field transmit_delay indicates how much
  675. later.
  676. <legal 0-2>
  677. */
  678. #define TX_FES_STATUS_END_TIMING_STATUS_OFFSET 0x0000000000000010
  679. #define TX_FES_STATUS_END_TIMING_STATUS_LSB 8
  680. #define TX_FES_STATUS_END_TIMING_STATUS_MSB 9
  681. #define TX_FES_STATUS_END_TIMING_STATUS_MASK 0x0000000000000300
  682. /* Description RESPONSE_TYPE
  683. The response type that TXPCU was checking for
  684. <enum 0 no_response_expected>After transmission of this
  685. frame, no response in SIFS time is expected
  686. When TXPCU sees this setting, it shall not generated the
  687. EXPECTED_RESPONSE TLV.
  688. RXPCU should never see this setting
  689. <enum 1 ack_expected>An ACK frame is expected as response
  690. RXPCU is just expecting any response. It is TXPCU who checks
  691. that the right response was received.
  692. <enum 2 ba_64_bitmap_expected>BA with 64 bitmap is expected.
  693. PDG DOES NOT use the size info to calculated response duration.
  694. The length of the response will have to be programmed by
  695. SW in the per-BW 'Expected_ppdu_resp_length' field.
  696. For TXPCU only the fact that it is a BA is important. Actual
  697. received BA size is not important
  698. RXPCU is just expecting any response. It is TXPCU who checks
  699. that the right response was received.
  700. <enum 3 ba_256_expected>BA with 256 bitmap is expected.
  701. PDG DOES NOT use the size info to calculated response duration.
  702. The length of the response will have to be programmed by
  703. SW in the per-BW 'Expected_ppdu_resp_length' field.
  704. For TXPCU only the fact that it is a BA is important. Actual
  705. received BA size is not important
  706. RXPCU is just expecting any response. It is TXPCU who checks
  707. that the right response was received.
  708. <enum 4 actionnoack_expected>SW sets this after sending
  709. NDP or BR-Poll.
  710. As PDG has no idea on how long the reception is going to
  711. be, the reception time of the response will have to be
  712. programmed by SW in the 'Extend_duration_value_bw...' field
  713. RXPCU is just expecting any response. It is TXPCU who checks
  714. that the right response was received.
  715. <enum 5 ack_ba_expected>PDG uses the size info and assumes
  716. single BA format with ACK and 64 bitmap embedded.
  717. If SW expects more bitmaps in case of multi-TID, is shall
  718. program the 'Extend_duration_value_bw...' field for additional
  719. duration time.
  720. For TXPCU only the fact that an ACK and/or BA is received
  721. is important. Reception of only ACK or BA is also considered
  722. a success.
  723. SW also typically sets this when sending VHT single MPDU.
  724. Some chip vendors might send BA rather than ACK in response
  725. to VHT single MPDU but still we want to accept BA as well.
  726. RXPCU is just expecting any response. It is TXPCU who checks
  727. that the right response was received.
  728. <enum 6 cts_expected>SW sets this after queuing RTS frame
  729. as standalone packet and sending it.
  730. RXPCU is just expecting any response. It is TXPCU who checks
  731. that the right response was received.
  732. <enum 7 ack_data_expected>SW sets this after sending PS-Poll.
  733. For TXPCU either ACK and/or data reception is considered
  734. success.
  735. PDG basis it's response duration calculation on an ACK.
  736. For the data portion, SW shall program the 'Extend_duration_value_bw...'
  737. field
  738. <enum 8 ndp_ack_expected>Reserved for 11ah usage.
  739. <enum 9 ndp_modified_ack>Reserved for 11ah usage
  740. <enum 10 ndp_ba_expected>Reserved for 11ah usage.
  741. <enum 11 ndp_cts_expected>Reserved for 11ah usage
  742. <enum 12 ndp_ack_or_ndp_modified_ack_expected>Reserved for
  743. 11ah usage
  744. <enum 13 ul_mu_ba_expected>NOT SUPPORTED IN NAPIER AX AND
  745. HASTINGS
  746. TXPCU expects UL MU OFDMA or UL MU MIMO reception.
  747. As PDG does not know how RUs are assigned for the uplink
  748. portion, PDG can not calculate the uplink duration. Therefor
  749. SW shall program the 'Extend_duration_value_bw...' field
  750. RXPCU will report any frame received, irrespective of it
  751. having been UL MU or SU It is TXPCUs responsibility to
  752. distinguish between the UL MU or SU
  753. TXPCU can check in TLV RECEIVED_RESPONSE_INFO MU_Response_BA_bitmap
  754. if indeed BA was received
  755. <enum 14 ul_mu_ba_and_data_expected>NOT SUPPORTED IN NAPIER
  756. AX AND HASTINGS
  757. TXPCU expects UL MU OFDMA or UL MU MIMO reception.
  758. As PDG does not know how RUs are assigned for the uplink
  759. portion, PDG can not calculate the uplink duration. Therefor
  760. SW shall program the 'Extend_duration_value_bw...' field
  761. RXPCU will report any frame received, irrespective of it
  762. having been UL MU or SU It is TXPCUs responsibility to
  763. distinguish between the UL MU or SU
  764. TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_data_bitmap
  765. and MU_Response_BA_bitmap if indeed BA and data was received
  766. <enum 15 ul_mu_cbf_expected>NOT SUPPORTED IN NAPIER AX AND
  767. HASTINGS
  768. When selected, CBF frames are expected to be received in
  769. MU reception (uplink OFDMA or uplink MIMO)
  770. RXPCU is just expecting any response. It is TXPCU who checks
  771. that the right response was received
  772. TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_cbf_bitmap
  773. if indeed CBF frames were received.
  774. <enum 16 ul_mu_frames_expected>When selected, MPDU frames
  775. are expected in the MU reception (uplink OFDMA or uplink
  776. MIMO)
  777. RXPCU is just expecting any response. It is TXPCU who checks
  778. that the right response was received
  779. TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_bitmap
  780. if indeed frames were received.
  781. <enum 17 any_response_to_this_device>Any response expected
  782. to be send to this device in SIFS time is acceptable.
  783. RXPCU is just expecting any response. It is TXPCU who checks
  784. that the right response was received
  785. For TXPCU, UL MU or SU is both acceptable.
  786. Can be used for complex OFDMA scenarios. PDG can not calculate
  787. the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...'
  788. field
  789. <enum 18 any_response_accepted>Any frame in the medium to
  790. this or any other device, is acceptable as response.
  791. RXPCU is just expecting any response. It is TXPCU who checks
  792. that the right response was received
  793. For TXPCU, UL MU or SU is both acceptable.
  794. Can be used for complex OFDMA scenarios. PDG can not calculate
  795. the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...'
  796. field
  797. <enum 19 frameless_phyrx_response_accepted>Any MU frameless
  798. reception generated by the PHY is acceptable.
  799. PHY indicates this type of reception explicitly in TLV PHYRX_RSSI_LEGACY,
  800. field Reception_type == reception_is_frameless
  801. RXPCU will report any frame received, irrespective of it
  802. having been UL MU or SU.
  803. This can be used for complex MU-MIMO or OFDMA scenarios,
  804. like receiving MU-CTS.
  805. PDG can not calculate the uplink duration. Therefor SW shall
  806. program the 'Extend_duration_value_bw...' field
  807. <enum 20 ranging_ndp_and_lmr_expected>SW sets this after
  808. sending ranging NDPA followed by NDP as an ISTA and NDP
  809. and LMR (Action No Ack) are expected as back-to-back reception
  810. in SIFS.
  811. As PDG has no idea on how long the reception is going to
  812. be, the reception time of the response will have to be
  813. programmed by SW in the 'Extend_duration_value_bw...' field
  814. RXPCU is just expecting any response. It is TXPCU who checks
  815. that the right response was received.
  816. <enum 21 ba_512_expected>BA with 512 bitmap is expected.
  817. PDG DOES NOT use the size info to calculated response duration.
  818. The length of the response will have to be programmed by
  819. SW in the per-BW 'Expected_ppdu_resp_length' field.
  820. For TXPCU only the fact that it is a BA is important. Actual
  821. received BA size is not important
  822. RXPCU is just expecting any response. It is TXPCU who checks
  823. that the right response was received.
  824. <enum 22 ba_1024_expected>BA with 1024 bitmap is expected.
  825. PDG DOES NOT use the size info to calculated response duration.
  826. The length of the response will have to be programmed by
  827. SW in the per-BW 'Expected_ppdu_resp_length' field.
  828. For TXPCU only the fact that it is a BA is important. Actual
  829. received BA size is not important
  830. RXPCU is just expecting any response. It is TXPCU who checks
  831. that the right response was received.
  832. <enum 23 ul_mu_ranging_cts2s_expected>When selected, CTS2S
  833. frames are expected to be received in MU reception (uplink
  834. OFDMA)
  835. RXPCU shall check each response for CTS2S and report to
  836. TXPCU.
  837. TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
  838. 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed CTS2S
  839. frames were received.
  840. <enum 24 ul_mu_ranging_ndp_expected>When selected, UL NDP
  841. frames are expected to be received in MU reception (uplink
  842. spatial multiplexing)
  843. RXPCU shall check each response for NDP and report to TXPCU.
  844. TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
  845. 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed NDP
  846. frames were received.
  847. <enum 25 ul_mu_ranging_lmr_expected>When selected, LMR frames
  848. are expected to be received in MU reception (uplink OFDMA
  849. or uplink MIMO)
  850. RXPCU shall check each response for LMR and report to TXPCU.
  851. TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
  852. 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed LMR
  853. frames were received.
  854. */
  855. #define TX_FES_STATUS_END_RESPONSE_TYPE_OFFSET 0x0000000000000010
  856. #define TX_FES_STATUS_END_RESPONSE_TYPE_LSB 10
  857. #define TX_FES_STATUS_END_RESPONSE_TYPE_MSB 14
  858. #define TX_FES_STATUS_END_RESPONSE_TYPE_MASK 0x0000000000007c00
  859. /* Description R2R_END_STATUS_TO_FOLLOW
  860. When set, TXPCU will still generate an R2R frame (typically
  861. M-BA), and the 'R2R_STATUS_END' TLV.
  862. <legal all>
  863. */
  864. #define TX_FES_STATUS_END_R2R_END_STATUS_TO_FOLLOW_OFFSET 0x0000000000000010
  865. #define TX_FES_STATUS_END_R2R_END_STATUS_TO_FOLLOW_LSB 15
  866. #define TX_FES_STATUS_END_R2R_END_STATUS_TO_FOLLOW_MSB 15
  867. #define TX_FES_STATUS_END_R2R_END_STATUS_TO_FOLLOW_MASK 0x0000000000008000
  868. /* Description TRANSMIT_DELAY
  869. PHYTX_PKT_END info
  870. Field only valid when PHYTX_PKT_END_info_valid is set
  871. The number of 480 MHz clock cycles that the transmission
  872. started after the actual requested transmit start time.
  873. Value saturates at 0xFFFF
  874. <legal all>
  875. */
  876. #define TX_FES_STATUS_END_TRANSMIT_DELAY_OFFSET 0x0000000000000010
  877. #define TX_FES_STATUS_END_TRANSMIT_DELAY_LSB 16
  878. #define TX_FES_STATUS_END_TRANSMIT_DELAY_MSB 31
  879. #define TX_FES_STATUS_END_TRANSMIT_DELAY_MASK 0x00000000ffff0000
  880. /* Description TX_GROUP_DELAY
  881. PHYTX_PKT_END info
  882. Field only valid when PHYTX_PKT_END_info_valid is set
  883. Group delay on TxTD+PHYRF path for this PPDU (packet BW
  884. dependent), useful for RTT
  885. Unit is 960MHz cycles.
  886. <legal all>
  887. */
  888. #define TX_FES_STATUS_END_TX_GROUP_DELAY_OFFSET 0x0000000000000010
  889. #define TX_FES_STATUS_END_TX_GROUP_DELAY_LSB 32
  890. #define TX_FES_STATUS_END_TX_GROUP_DELAY_MSB 43
  891. #define TX_FES_STATUS_END_TX_GROUP_DELAY_MASK 0x00000fff00000000
  892. /* Description RESERVED_5A
  893. Bits [14:12]: service_cbw:
  894. Field only valid when a response was received
  895. Source of the info here is the 'RECEIVED_RESPONSE_INFO'
  896. TLV
  897. This field reflects the BW extracted from the Serivce Field
  898. for 11ac mode of operation .
  899. This field is used in the context of Dynamic BW evaluation
  900. purposes in SCH in case of SW-queued protection frame.
  901. Please refer 'BW_ENUM' e-num for the values used.
  902. <legal 0-5>
  903. */
  904. #define TX_FES_STATUS_END_RESERVED_5A_OFFSET 0x0000000000000010
  905. #define TX_FES_STATUS_END_RESERVED_5A_LSB 44
  906. #define TX_FES_STATUS_END_RESERVED_5A_MSB 47
  907. #define TX_FES_STATUS_END_RESERVED_5A_MASK 0x0000f00000000000
  908. /* Description TPC_DBG_INFO_CMN_15_0
  909. PHYTX_PKT_END info
  910. Field only valid when PHYTX_PKT_END_info_valid is set
  911. Some TPC debug info that PHY can pass back to MAC FW
  912. <legal all>
  913. */
  914. #define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_15_0_OFFSET 0x0000000000000010
  915. #define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_15_0_LSB 48
  916. #define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_15_0_MSB 63
  917. #define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_15_0_MASK 0xffff000000000000
  918. /* Description TPC_DBG_INFO_CMN_31_16
  919. PHYTX_PKT_END info
  920. Field only valid when PHYTX_PKT_END_info_valid is set
  921. Some TPC debug info that PHY can pass back to MAC FW
  922. <legal all>
  923. */
  924. #define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_31_16_OFFSET 0x0000000000000018
  925. #define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_31_16_LSB 0
  926. #define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_31_16_MSB 15
  927. #define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_31_16_MASK 0x000000000000ffff
  928. /* Description TPC_DBG_INFO_47_32
  929. PHYTX_PKT_END info
  930. Field only valid when PHYTX_PKT_END_info_valid is set
  931. Some TPC debu info that PHY can pass back to MAC FW
  932. <legal all>
  933. */
  934. #define TX_FES_STATUS_END_TPC_DBG_INFO_47_32_OFFSET 0x0000000000000018
  935. #define TX_FES_STATUS_END_TPC_DBG_INFO_47_32_LSB 16
  936. #define TX_FES_STATUS_END_TPC_DBG_INFO_47_32_MSB 31
  937. #define TX_FES_STATUS_END_TPC_DBG_INFO_47_32_MASK 0x00000000ffff0000
  938. /* Description TPC_DBG_INFO_CHN1_15_0
  939. PHYTX_PKT_END info
  940. Field only valid when PHYTX_PKT_END_info_valid is set
  941. Some per-chain TPC debug info for the first selected chain
  942. that PHY can pass back to MAC FW
  943. <legal all>
  944. */
  945. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_15_0_OFFSET 0x0000000000000018
  946. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_15_0_LSB 32
  947. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_15_0_MSB 47
  948. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_15_0_MASK 0x0000ffff00000000
  949. /* Description TPC_DBG_INFO_CHN1_31_16
  950. PHYTX_PKT_END info
  951. Field only valid when PHYTX_PKT_END_info_valid is set
  952. Some per-chain TPC debug info for the first selected chain
  953. that PHY can pass back to MAC FW
  954. <legal all>
  955. */
  956. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_31_16_OFFSET 0x0000000000000018
  957. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_31_16_LSB 48
  958. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_31_16_MSB 63
  959. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_31_16_MASK 0xffff000000000000
  960. /* Description TPC_DBG_INFO_CHN1_47_32
  961. PHYTX_PKT_END info
  962. Field only valid when PHYTX_PKT_END_info_valid is set
  963. Some per-chain TPC debug info for the first selected chain
  964. that PHY can pass back to MAC FW
  965. <legal all>
  966. */
  967. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_47_32_OFFSET 0x0000000000000020
  968. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_47_32_LSB 0
  969. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_47_32_MSB 15
  970. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_47_32_MASK 0x000000000000ffff
  971. /* Description TPC_DBG_INFO_CHN1_63_48
  972. PHYTX_PKT_END info
  973. Field only valid when PHYTX_PKT_END_info_valid is set
  974. Some per-chain TPC debug info for the first selected chain
  975. that PHY can pass back to MAC FW
  976. <legal all>
  977. */
  978. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_63_48_OFFSET 0x0000000000000020
  979. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_63_48_LSB 16
  980. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_63_48_MSB 31
  981. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_63_48_MASK 0x00000000ffff0000
  982. /* Description TPC_DBG_INFO_CHN1_79_64
  983. PHYTX_PKT_END info
  984. Field only valid when PHYTX_PKT_END_info_valid is set
  985. Some per-chain TPC debug info for the first selected chain
  986. that PHY can pass back to MAC FW
  987. <legal all>
  988. */
  989. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_79_64_OFFSET 0x0000000000000020
  990. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_79_64_LSB 32
  991. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_79_64_MSB 47
  992. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_79_64_MASK 0x0000ffff00000000
  993. /* Description TPC_DBG_INFO_CHN2_15_0
  994. PHYTX_PKT_END info
  995. Field only valid when PHYTX_PKT_END_info_valid is set
  996. Some per-chain TPC debug info for the second selected chain
  997. that PHY can pass back to MAC FW
  998. <legal all>
  999. */
  1000. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_15_0_OFFSET 0x0000000000000020
  1001. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_15_0_LSB 48
  1002. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_15_0_MSB 63
  1003. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_15_0_MASK 0xffff000000000000
  1004. /* Description TPC_DBG_INFO_CHN2_31_16
  1005. PHYTX_PKT_END info
  1006. Field only valid when PHYTX_PKT_END_info_valid is set
  1007. Some per-chain TPC debug info for the second selected chain
  1008. that PHY can pass back to MAC FW
  1009. <legal all>
  1010. */
  1011. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_31_16_OFFSET 0x0000000000000028
  1012. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_31_16_LSB 0
  1013. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_31_16_MSB 15
  1014. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_31_16_MASK 0x000000000000ffff
  1015. /* Description TPC_DBG_INFO_CHN2_47_32
  1016. PHYTX_PKT_END info
  1017. Field only valid when PHYTX_PKT_END_info_valid is set
  1018. Some per-chain TPC debug info for the second selected chain
  1019. that PHY can pass back to MAC FW
  1020. <legal all>
  1021. */
  1022. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_47_32_OFFSET 0x0000000000000028
  1023. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_47_32_LSB 16
  1024. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_47_32_MSB 31
  1025. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_47_32_MASK 0x00000000ffff0000
  1026. /* Description TPC_DBG_INFO_CHN2_63_48
  1027. PHYTX_PKT_END info
  1028. Field only valid when PHYTX_PKT_END_info_valid is set
  1029. Some per-chain TPC debug info for the second selected chain
  1030. that PHY can pass back to MAC FW
  1031. <legal all>
  1032. */
  1033. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_63_48_OFFSET 0x0000000000000028
  1034. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_63_48_LSB 32
  1035. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_63_48_MSB 47
  1036. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_63_48_MASK 0x0000ffff00000000
  1037. /* Description TPC_DBG_INFO_CHN2_79_64
  1038. PHYTX_PKT_END info
  1039. Field only valid when PHYTX_PKT_END_info_valid is set
  1040. Some per-chain TPC debug info for the second selected chain
  1041. that PHY can pass back to MAC FW
  1042. <legal all>
  1043. */
  1044. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_79_64_OFFSET 0x0000000000000028
  1045. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_79_64_LSB 48
  1046. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_79_64_MSB 63
  1047. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_79_64_MASK 0xffff000000000000
  1048. /* Description PHYTX_TX_END_SW_INFO_15_0
  1049. PHYTX_PKT_END info
  1050. Field only valid when PHYTX_PKT_END_info_valid is set
  1051. Some PHY status data that PHY microcode can pass back to
  1052. MAC FW, for any future requests, e.g. any DMA download
  1053. time
  1054. <legal all>
  1055. */
  1056. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_15_0_OFFSET 0x0000000000000030
  1057. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_15_0_LSB 0
  1058. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_15_0_MSB 15
  1059. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_15_0_MASK 0x000000000000ffff
  1060. /* Description PHYTX_TX_END_SW_INFO_31_16
  1061. PHYTX_PKT_END info
  1062. Field only valid when PHYTX_PKT_END_info_valid is set
  1063. Some PHY status data that PHY microcode can pass back to
  1064. MAC FW, for any future requests, e.g. any DMA download
  1065. time
  1066. <legal all>
  1067. */
  1068. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_31_16_OFFSET 0x0000000000000030
  1069. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_31_16_LSB 16
  1070. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_31_16_MSB 31
  1071. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_31_16_MASK 0x00000000ffff0000
  1072. /* Description PHYTX_TX_END_SW_INFO_47_32
  1073. PHYTX_PKT_END info
  1074. Field only valid when PHYTX_PKT_END_info_valid is set
  1075. Some PHY status data that PHY microcode can pass back to
  1076. MAC FW, for any future requests, e.g. any DMA download
  1077. time
  1078. <legal all>
  1079. */
  1080. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_47_32_OFFSET 0x0000000000000030
  1081. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_47_32_LSB 32
  1082. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_47_32_MSB 47
  1083. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_47_32_MASK 0x0000ffff00000000
  1084. /* Description PHYTX_TX_END_SW_INFO_63_48
  1085. PHYTX_PKT_END info
  1086. Field only valid when PHYTX_PKT_END_info_valid is set
  1087. Some PHY status data that PHY microcode can pass back to
  1088. MAC FW, for any future requests, e.g. any DMA download
  1089. time
  1090. <legal all>
  1091. */
  1092. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_63_48_OFFSET 0x0000000000000030
  1093. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_63_48_LSB 48
  1094. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_63_48_MSB 63
  1095. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_63_48_MASK 0xffff000000000000
  1096. /* Description BEAMFORM_MASKED_USER_BITMAP_15_0
  1097. Lower 16 bits of 'Beamform_masked_user_bitmap'
  1098. PHY indicates in this field for which users it actually
  1099. did not beamform it's transmission even though this was
  1100. requested
  1101. Bit 0: user 0, bit 1: user 1, etc.
  1102. When 0: No beamform issue for this user
  1103. When 1: PHY could not beamform for this user, but did not
  1104. terminate the transmission
  1105. <legal all>
  1106. */
  1107. #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_15_0_OFFSET 0x0000000000000038
  1108. #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_15_0_LSB 0
  1109. #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_15_0_MSB 15
  1110. #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_15_0_MASK 0x000000000000ffff
  1111. /* Description BEAMFORM_MASKED_USER_BITMAP_31_16
  1112. Middle 16 bits of 'Beamform_masked_user_bitmap'
  1113. See description above.
  1114. <legal all>
  1115. */
  1116. #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_31_16_OFFSET 0x0000000000000038
  1117. #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_31_16_LSB 16
  1118. #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_31_16_MSB 31
  1119. #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_31_16_MASK 0x00000000ffff0000
  1120. /* Description CBF_SEGMENT_REQUEST_MASK
  1121. Field only valid when brp_info_valid is set.
  1122. Field equal to the 'Feedback Segment Retransmission Bitmap'
  1123. from the Beamform Report Poll frame OR Beamform Report Poll
  1124. Trigger frame
  1125. Bit 0 represents segment 0
  1126. Bit 1 represents segment 1
  1127. Etc.
  1128. 1'b1: Segment is requested
  1129. 1'b0: Segment is NOT requested
  1130. <legal all>
  1131. */
  1132. #define TX_FES_STATUS_END_CBF_SEGMENT_REQUEST_MASK_OFFSET 0x0000000000000038
  1133. #define TX_FES_STATUS_END_CBF_SEGMENT_REQUEST_MASK_LSB 32
  1134. #define TX_FES_STATUS_END_CBF_SEGMENT_REQUEST_MASK_MSB 39
  1135. #define TX_FES_STATUS_END_CBF_SEGMENT_REQUEST_MASK_MASK 0x000000ff00000000
  1136. /* Description CBF_SEGMENT_SENT_MASK
  1137. Field only valid when brp_info_valid is set.
  1138. Bit 0 represents segment 0
  1139. Bit 1 represents segment 1
  1140. Etc.
  1141. 1'b1: Segment is sent
  1142. 1'b0: Segment is not sent
  1143. <legal all>
  1144. */
  1145. #define TX_FES_STATUS_END_CBF_SEGMENT_SENT_MASK_OFFSET 0x0000000000000038
  1146. #define TX_FES_STATUS_END_CBF_SEGMENT_SENT_MASK_LSB 40
  1147. #define TX_FES_STATUS_END_CBF_SEGMENT_SENT_MASK_MSB 47
  1148. #define TX_FES_STATUS_END_CBF_SEGMENT_SENT_MASK_MASK 0x0000ff0000000000
  1149. /* Description HIGHEST_ACHIEVED_DATA_NULL_RATIO
  1150. Highest DATA:NULL ratio achieved for the current FES
  1151. <enum 0 No_Data_Null_ratio_requirement> There was no Data:NULL
  1152. ratio established.
  1153. <enum 1 Data_Null_ratio_16_1> Best Data:NULL ratio was 16:1.
  1154. <enum 2 Data_Null_ratio_8_1> Best Data:NULL ratio was 8:1.
  1155. <enum 3 Data_Null_ratio_4_1> Best Data:NULL ratio was 4:1.
  1156. <enum 4 Data_Null_ratio_2_1> Best Data:NULL ratio was 2:1.
  1157. <enum 5 Data_Null_ratio_1_1> Best Data:NULL ratio was 1:1.
  1158. terminate FES.
  1159. <enum 6 Data_Null_ratio_1_2> Best Data:NULL ratio was 1:2.
  1160. <enum 7 Data_Null_ratio_1_4> Best Data:NULL ratio was 1:4.
  1161. <enum 8 Data_Null_ratio_1_8> Best Data:NULL ratio was 1:8.
  1162. <enum 9 Data_Null_ratio_1_16> Best Data:NULL ratio was 1:16.
  1163. <legal 0-9>
  1164. */
  1165. #define TX_FES_STATUS_END_HIGHEST_ACHIEVED_DATA_NULL_RATIO_OFFSET 0x0000000000000038
  1166. #define TX_FES_STATUS_END_HIGHEST_ACHIEVED_DATA_NULL_RATIO_LSB 48
  1167. #define TX_FES_STATUS_END_HIGHEST_ACHIEVED_DATA_NULL_RATIO_MSB 52
  1168. #define TX_FES_STATUS_END_HIGHEST_ACHIEVED_DATA_NULL_RATIO_MASK 0x001f000000000000
  1169. /* Description USE_ALT_POWER_SR
  1170. 0: Primary/default power1: Alternate power
  1171. <legal all>
  1172. */
  1173. #define TX_FES_STATUS_END_USE_ALT_POWER_SR_OFFSET 0x0000000000000038
  1174. #define TX_FES_STATUS_END_USE_ALT_POWER_SR_LSB 53
  1175. #define TX_FES_STATUS_END_USE_ALT_POWER_SR_MSB 53
  1176. #define TX_FES_STATUS_END_USE_ALT_POWER_SR_MASK 0x0020000000000000
  1177. /* Description STATIC_2_PWR_MODE_STATUS
  1178. 0: Static 2 power mode disabled1: Static 2 power mode enabled
  1179. <legal all>
  1180. */
  1181. #define TX_FES_STATUS_END_STATIC_2_PWR_MODE_STATUS_OFFSET 0x0000000000000038
  1182. #define TX_FES_STATUS_END_STATIC_2_PWR_MODE_STATUS_LSB 54
  1183. #define TX_FES_STATUS_END_STATIC_2_PWR_MODE_STATUS_MSB 54
  1184. #define TX_FES_STATUS_END_STATIC_2_PWR_MODE_STATUS_MASK 0x0040000000000000
  1185. /* Description OBSS_SRG_OPPORT_TRANSMIT_STATUS
  1186. 0: Transmit based on SRG OBSS_PD opportunity initiated1:
  1187. Transmit based on non-SRG OBSS_PD opportunity initiated
  1188. <legal all>
  1189. */
  1190. #define TX_FES_STATUS_END_OBSS_SRG_OPPORT_TRANSMIT_STATUS_OFFSET 0x0000000000000038
  1191. #define TX_FES_STATUS_END_OBSS_SRG_OPPORT_TRANSMIT_STATUS_LSB 55
  1192. #define TX_FES_STATUS_END_OBSS_SRG_OPPORT_TRANSMIT_STATUS_MSB 55
  1193. #define TX_FES_STATUS_END_OBSS_SRG_OPPORT_TRANSMIT_STATUS_MASK 0x0080000000000000
  1194. /* Description SRP_BASED_TRANSMIT_STATUS
  1195. 0: non-SRP based transmit initiated1: SRP based transmit
  1196. initiated
  1197. <legal all>
  1198. */
  1199. #define TX_FES_STATUS_END_SRP_BASED_TRANSMIT_STATUS_OFFSET 0x0000000000000038
  1200. #define TX_FES_STATUS_END_SRP_BASED_TRANSMIT_STATUS_LSB 56
  1201. #define TX_FES_STATUS_END_SRP_BASED_TRANSMIT_STATUS_MSB 56
  1202. #define TX_FES_STATUS_END_SRP_BASED_TRANSMIT_STATUS_MASK 0x0100000000000000
  1203. /* Description OBSS_PD_BASED_TRANSMIT_STATUS
  1204. 0: non-OBSS_PD based transmit initiated1: obss_pd based
  1205. transmit initiated
  1206. <legal all>
  1207. */
  1208. #define TX_FES_STATUS_END_OBSS_PD_BASED_TRANSMIT_STATUS_OFFSET 0x0000000000000038
  1209. #define TX_FES_STATUS_END_OBSS_PD_BASED_TRANSMIT_STATUS_LSB 57
  1210. #define TX_FES_STATUS_END_OBSS_PD_BASED_TRANSMIT_STATUS_MSB 57
  1211. #define TX_FES_STATUS_END_OBSS_PD_BASED_TRANSMIT_STATUS_MASK 0x0200000000000000
  1212. /* Description BEAMFORM_MASKED_USER_BITMAP_36_32
  1213. Upper 5 bits of 'Beamform_masked_user_bitmap'
  1214. See description above.
  1215. <legal all>
  1216. */
  1217. #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_36_32_OFFSET 0x0000000000000038
  1218. #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_36_32_LSB 58
  1219. #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_36_32_MSB 62
  1220. #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_36_32_MASK 0x7c00000000000000
  1221. /* Description PDG_MPDU_READY
  1222. Field only valid in case of SU transmissions, copied over
  1223. by TXPCU from 'PCU_PPDU_SETUP_END'
  1224. Indicates the 'MPDU_INFO' or 'MPDU_QUEUE_OVERVIEW' ready
  1225. status in PDG.
  1226. <legal all>
  1227. */
  1228. #define TX_FES_STATUS_END_PDG_MPDU_READY_OFFSET 0x0000000000000038
  1229. #define TX_FES_STATUS_END_PDG_MPDU_READY_LSB 63
  1230. #define TX_FES_STATUS_END_PDG_MPDU_READY_MSB 63
  1231. #define TX_FES_STATUS_END_PDG_MPDU_READY_MASK 0x8000000000000000
  1232. /* Description PDG_MPDU_COUNT
  1233. Field only valid in case of SU transmissions when pdg_MPDU_ready
  1234. is set, copied over by TXPCU from 'PCU_PPDU_SETUP_END'
  1235. Total MPDU count from 'MPDU_INFO' or 'MPDU_QUEUE_OVERVIEW'
  1236. <legal 0-2130>
  1237. */
  1238. #define TX_FES_STATUS_END_PDG_MPDU_COUNT_OFFSET 0x0000000000000040
  1239. #define TX_FES_STATUS_END_PDG_MPDU_COUNT_LSB 0
  1240. #define TX_FES_STATUS_END_PDG_MPDU_COUNT_MSB 15
  1241. #define TX_FES_STATUS_END_PDG_MPDU_COUNT_MASK 0x000000000000ffff
  1242. /* Description PDG_EST_MPDU_TX_COUNT
  1243. Field only valid in case of SU transmissions when pdg_MPDU_ready
  1244. is set, copied over by TXPCU from 'PCU_PPDU_SETUP_END'
  1245. PDG estimated MPDU Tx count from 'MPDU_INFO' or 'MPDU_QUEUE_OVERVIEW'
  1246. limited by timing boundaries (HWSCH, COEX, SR, etc.)
  1247. <legal 0-1024>
  1248. */
  1249. #define TX_FES_STATUS_END_PDG_EST_MPDU_TX_COUNT_OFFSET 0x0000000000000040
  1250. #define TX_FES_STATUS_END_PDG_EST_MPDU_TX_COUNT_LSB 16
  1251. #define TX_FES_STATUS_END_PDG_EST_MPDU_TX_COUNT_MSB 31
  1252. #define TX_FES_STATUS_END_PDG_EST_MPDU_TX_COUNT_MASK 0x00000000ffff0000
  1253. /* Description PDG_OVERVIEW_LENGTH
  1254. Field only valid in case of SU transmissions when pdg_MPDU_ready
  1255. is set, copied over by TXPCU from 'PCU_PPDU_SETUP_END'
  1256. PDG estimated A-MPDU length from 'MPDU_QUEUE_OVERVIEW' limited
  1257. by timing boundaries (HWSCH, COEX, SR, etc.)
  1258. <legal all>
  1259. */
  1260. #define TX_FES_STATUS_END_PDG_OVERVIEW_LENGTH_OFFSET 0x0000000000000040
  1261. #define TX_FES_STATUS_END_PDG_OVERVIEW_LENGTH_LSB 32
  1262. #define TX_FES_STATUS_END_PDG_OVERVIEW_LENGTH_MSB 55
  1263. #define TX_FES_STATUS_END_PDG_OVERVIEW_LENGTH_MASK 0x00ffffff00000000
  1264. /* Description TXOP_DURATION
  1265. TXOP_DURATION of HE-SIG-A calculated by PDG, to be copied
  1266. from 'PCU_PPDU_SETUP_END' by TXPCU
  1267. */
  1268. #define TX_FES_STATUS_END_TXOP_DURATION_OFFSET 0x0000000000000040
  1269. #define TX_FES_STATUS_END_TXOP_DURATION_LSB 56
  1270. #define TX_FES_STATUS_END_TXOP_DURATION_MSB 62
  1271. #define TX_FES_STATUS_END_TXOP_DURATION_MASK 0x7f00000000000000
  1272. /* Description PDG_DROPPED_MPDU_WARNING
  1273. Warning that PDG has dropped MPDUs due to SFM FIFO full
  1274. condition, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU
  1275. */
  1276. #define TX_FES_STATUS_END_PDG_DROPPED_MPDU_WARNING_OFFSET 0x0000000000000040
  1277. #define TX_FES_STATUS_END_PDG_DROPPED_MPDU_WARNING_LSB 63
  1278. #define TX_FES_STATUS_END_PDG_DROPPED_MPDU_WARNING_MSB 63
  1279. #define TX_FES_STATUS_END_PDG_DROPPED_MPDU_WARNING_MASK 0x8000000000000000
  1280. /* Description PACKET_EXTENSION_A_FACTOR
  1281. The "a-factor" of the trigger-based PPDU response, to be
  1282. copied from 'PCU_PPDU_SETUP_END' by TXPCU
  1283. This affects the packet extension duration.
  1284. <enum 0 a_factor_4>
  1285. <enum 1 a_factor_1>
  1286. <enum 2 a_factor_2>
  1287. <enum 3 a_factor_3>
  1288. <legal all>
  1289. */
  1290. #define TX_FES_STATUS_END_PACKET_EXTENSION_A_FACTOR_OFFSET 0x0000000000000048
  1291. #define TX_FES_STATUS_END_PACKET_EXTENSION_A_FACTOR_LSB 0
  1292. #define TX_FES_STATUS_END_PACKET_EXTENSION_A_FACTOR_MSB 1
  1293. #define TX_FES_STATUS_END_PACKET_EXTENSION_A_FACTOR_MASK 0x0000000000000003
  1294. /* Description PACKET_EXTENSION_PE_DISAMBIGUITY
  1295. The "PE-Disambiguity" of the trigger-based PPDU response,
  1296. to be copied from 'PCU_PPDU_SETUP_END' by TXPCU
  1297. This affects the packet extension duration.
  1298. <legal all>
  1299. */
  1300. #define TX_FES_STATUS_END_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET 0x0000000000000048
  1301. #define TX_FES_STATUS_END_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB 2
  1302. #define TX_FES_STATUS_END_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB 2
  1303. #define TX_FES_STATUS_END_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK 0x0000000000000004
  1304. /* Description PACKET_EXTENSION
  1305. Packet extension size, to be copied from 'PCU_PPDU_SETUP_END'
  1306. by TXPCU
  1307. This is valid for all PPDUs including HE-Ranging NDPs (11az)
  1308. and Short-NDPs.
  1309. <enum 0 packet_ext_0>
  1310. <enum 1 packet_ext_4>
  1311. <enum 2 packet_ext_8>
  1312. <enum 3 packet_ext_12>
  1313. <enum 4 packet_ext_16>
  1314. <enum 5 packet_ext_20>
  1315. <legal 0 - 5>
  1316. */
  1317. #define TX_FES_STATUS_END_PACKET_EXTENSION_OFFSET 0x0000000000000048
  1318. #define TX_FES_STATUS_END_PACKET_EXTENSION_LSB 3
  1319. #define TX_FES_STATUS_END_PACKET_EXTENSION_MSB 5
  1320. #define TX_FES_STATUS_END_PACKET_EXTENSION_MASK 0x0000000000000038
  1321. /* Description FEC_TYPE
  1322. For trigger-based PPDU response, to be copied from 'PCU_PPDU_SETUP_END'
  1323. by TXPCU
  1324. 0: BCC
  1325. 1: LDPC
  1326. <legal all>
  1327. */
  1328. #define TX_FES_STATUS_END_FEC_TYPE_OFFSET 0x0000000000000048
  1329. #define TX_FES_STATUS_END_FEC_TYPE_LSB 6
  1330. #define TX_FES_STATUS_END_FEC_TYPE_MSB 6
  1331. #define TX_FES_STATUS_END_FEC_TYPE_MASK 0x0000000000000040
  1332. /* Description STBC
  1333. For trigger-based PPDU response, to be copied from 'PCU_PPDU_SETUP_END'
  1334. by TXPCU
  1335. When set, this transmission is based on STBC rates.
  1336. */
  1337. #define TX_FES_STATUS_END_STBC_OFFSET 0x0000000000000048
  1338. #define TX_FES_STATUS_END_STBC_LSB 7
  1339. #define TX_FES_STATUS_END_STBC_MSB 7
  1340. #define TX_FES_STATUS_END_STBC_MASK 0x0000000000000080
  1341. /* Description NUM_DATA_SYMBOLS
  1342. The number of data symbols in the transmission, to be copied
  1343. from 'PCU_PPDU_SETUP_END' by TXPCU
  1344. This does not include PE_LTF. Also for STBC packets this
  1345. has to be an even number. This is valid for all PPDUs.
  1346. */
  1347. #define TX_FES_STATUS_END_NUM_DATA_SYMBOLS_OFFSET 0x0000000000000048
  1348. #define TX_FES_STATUS_END_NUM_DATA_SYMBOLS_LSB 8
  1349. #define TX_FES_STATUS_END_NUM_DATA_SYMBOLS_MSB 23
  1350. #define TX_FES_STATUS_END_NUM_DATA_SYMBOLS_MASK 0x0000000000ffff00
  1351. /* Description RU_SIZE
  1352. The size of the RU for this user, for trigger-based PPDU
  1353. response, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU
  1354. <enum 0 RU_26>
  1355. <enum 1 RU_52>
  1356. <enum 2 RU_106>
  1357. <enum 3 RU_242>
  1358. <enum 4 RU_484>
  1359. <enum 5 RU_996>
  1360. <enum 6 RU_1992>
  1361. <enum 7 RU_FULLBW> Set when the RU occupies the full packet
  1362. bandwidth
  1363. <enum 8 RU_FULLBW_240> Set when the RU occupies the full
  1364. packet bandwidth
  1365. <enum 9 RU_FULLBW_320> Set when the RU occupies the full
  1366. packet bandwidth
  1367. <enum 10 RU_MULTI_LARGE> HW will use per-user sub-band-mask
  1368. to infer the actual RU-size for Multi-large-RU/SU-Puncturing
  1369. <enum 11 RU_78> multi small RU
  1370. <enum 12 RU_132> multi small RU
  1371. <legal 0-12>
  1372. */
  1373. #define TX_FES_STATUS_END_RU_SIZE_OFFSET 0x0000000000000048
  1374. #define TX_FES_STATUS_END_RU_SIZE_LSB 24
  1375. #define TX_FES_STATUS_END_RU_SIZE_MSB 27
  1376. #define TX_FES_STATUS_END_RU_SIZE_MASK 0x000000000f000000
  1377. /* Description RESERVED_17A
  1378. Hamilton v1 used this for 'Nss' for trigger-based PPDU response.
  1379. <legal 0>
  1380. */
  1381. #define TX_FES_STATUS_END_RESERVED_17A_OFFSET 0x0000000000000048
  1382. #define TX_FES_STATUS_END_RESERVED_17A_LSB 28
  1383. #define TX_FES_STATUS_END_RESERVED_17A_MSB 31
  1384. #define TX_FES_STATUS_END_RESERVED_17A_MASK 0x00000000f0000000
  1385. /* Description NUM_LTF_SYMBOLS
  1386. Indicates the number of HE-LTF symbols, for trigger-based
  1387. PPDU response, to be copied from 'PCU_PPDU_SETUP_END' by
  1388. TXPCU
  1389. 0: 1 symbol
  1390. 1: 2 symbols
  1391. 2: 3 symbols
  1392. 3: 4 symbols
  1393. 4: 5 symbols
  1394. 5: 6 symbols
  1395. 6: 7 symbols
  1396. 7: 8 symbols
  1397. NOTE that this encoding is different from what is in "Num_LTF_symbols"
  1398. in the HE_SIG_A_MU_DL.
  1399. <legal all>
  1400. */
  1401. #define TX_FES_STATUS_END_NUM_LTF_SYMBOLS_OFFSET 0x0000000000000048
  1402. #define TX_FES_STATUS_END_NUM_LTF_SYMBOLS_LSB 32
  1403. #define TX_FES_STATUS_END_NUM_LTF_SYMBOLS_MSB 34
  1404. #define TX_FES_STATUS_END_NUM_LTF_SYMBOLS_MASK 0x0000000700000000
  1405. /* Description LTF_SIZE
  1406. Ltf size, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU
  1407. This is valid for all PPDUs including HE-Ranging NDPs (11az)
  1408. and Short-NDPs.
  1409. <enum 0 ltf_1x >
  1410. <enum 1 ltf_2x >
  1411. <enum 2 ltf_4x >
  1412. <legal 0 - 2>
  1413. */
  1414. #define TX_FES_STATUS_END_LTF_SIZE_OFFSET 0x0000000000000048
  1415. #define TX_FES_STATUS_END_LTF_SIZE_LSB 35
  1416. #define TX_FES_STATUS_END_LTF_SIZE_MSB 36
  1417. #define TX_FES_STATUS_END_LTF_SIZE_MASK 0x0000001800000000
  1418. /* Description CP_SETTING
  1419. Field only valid when pkt type is HT, VHT or HE
  1420. GI setting, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU
  1421. This is valid for all PPDUs including HE-Ranging NDPs (11az)
  1422. and Short-NDPs.
  1423. <enum 0 gi_0_8_us > Legacy normal GI
  1424. <enum 1 gi_0_4_us > Legacy short GI
  1425. <enum 2 gi_1_6_us > HE related GI
  1426. <enum 3 gi_3_2_us > HE related GI
  1427. <legal 0 - 3>
  1428. */
  1429. #define TX_FES_STATUS_END_CP_SETTING_OFFSET 0x0000000000000048
  1430. #define TX_FES_STATUS_END_CP_SETTING_LSB 37
  1431. #define TX_FES_STATUS_END_CP_SETTING_MSB 38
  1432. #define TX_FES_STATUS_END_CP_SETTING_MASK 0x0000006000000000
  1433. /* Description RESERVED_18A
  1434. Hamilton v1 used bits [11:8] for 'Mcs' for trigger-based
  1435. PPDU response.
  1436. <legal 0>
  1437. */
  1438. #define TX_FES_STATUS_END_RESERVED_18A_OFFSET 0x0000000000000048
  1439. #define TX_FES_STATUS_END_RESERVED_18A_LSB 39
  1440. #define TX_FES_STATUS_END_RESERVED_18A_MSB 43
  1441. #define TX_FES_STATUS_END_RESERVED_18A_MASK 0x00000f8000000000
  1442. /* Description DCM
  1443. Field only valid in case of 11ax transmission
  1444. Indicates whether dual sub-carrier modulation is applied,
  1445. for trigger-based PPDU response, to be copied from 'PCU_PPDU_SETUP_END'
  1446. by TXPCU
  1447. 0: No DCM
  1448. 1:DCM
  1449. <legal all>
  1450. */
  1451. #define TX_FES_STATUS_END_DCM_OFFSET 0x0000000000000048
  1452. #define TX_FES_STATUS_END_DCM_LSB 44
  1453. #define TX_FES_STATUS_END_DCM_MSB 44
  1454. #define TX_FES_STATUS_END_DCM_MASK 0x0000100000000000
  1455. /* Description LDPC_EXTRA_SYMBOL
  1456. Set to 1 if the LDPC PPDU encoding process (if an SU PPDU),
  1457. or at least one LDPC user's PPDU encoding process (if an
  1458. MU PPDU), results in an extra OFDM symbol (or symbols)
  1459. as described in 22.3.10.5.4 (LDPC coding) and 22.3.10.5.5
  1460. (Encoding process for MU PPDUs). Set to 0 otherwise.
  1461. To be copied from 'PCU_PPDU_SETUP_END' by TXPCU
  1462. <legal all>
  1463. */
  1464. #define TX_FES_STATUS_END_LDPC_EXTRA_SYMBOL_OFFSET 0x0000000000000048
  1465. #define TX_FES_STATUS_END_LDPC_EXTRA_SYMBOL_LSB 45
  1466. #define TX_FES_STATUS_END_LDPC_EXTRA_SYMBOL_MSB 45
  1467. #define TX_FES_STATUS_END_LDPC_EXTRA_SYMBOL_MASK 0x0000200000000000
  1468. /* Description FORCE_EXTRA_SYMBOL
  1469. Set to 1 to force an extra OFDM symbol (or symbols) even
  1470. if none of the users' PPDU encoding process resuls in an
  1471. extra OFDM symbol (or symbols).
  1472. To be copied from 'PCU_PPDU_SETUP_END' by TXPCU
  1473. <legal all>
  1474. */
  1475. #define TX_FES_STATUS_END_FORCE_EXTRA_SYMBOL_OFFSET 0x0000000000000048
  1476. #define TX_FES_STATUS_END_FORCE_EXTRA_SYMBOL_LSB 46
  1477. #define TX_FES_STATUS_END_FORCE_EXTRA_SYMBOL_MSB 46
  1478. #define TX_FES_STATUS_END_FORCE_EXTRA_SYMBOL_MASK 0x0000400000000000
  1479. /* Description RESERVED_18B
  1480. <legal 0>
  1481. */
  1482. #define TX_FES_STATUS_END_RESERVED_18B_OFFSET 0x0000000000000048
  1483. #define TX_FES_STATUS_END_RESERVED_18B_LSB 47
  1484. #define TX_FES_STATUS_END_RESERVED_18B_MSB 47
  1485. #define TX_FES_STATUS_END_RESERVED_18B_MASK 0x0000800000000000
  1486. /* Description TX_PWR_SHARED
  1487. Transmit Power (signed value) in units of 0.25 dBm, to be
  1488. copied from 'PCU_PPDU_SETUP_END' by TXPCU
  1489. <legal all>
  1490. */
  1491. #define TX_FES_STATUS_END_TX_PWR_SHARED_OFFSET 0x0000000000000048
  1492. #define TX_FES_STATUS_END_TX_PWR_SHARED_LSB 48
  1493. #define TX_FES_STATUS_END_TX_PWR_SHARED_MSB 55
  1494. #define TX_FES_STATUS_END_TX_PWR_SHARED_MASK 0x00ff000000000000
  1495. /* Description TX_PWR_UNSHARED
  1496. Transmit Power (signed value) in units of 0.25 dBm, to be
  1497. copied from 'PCU_PPDU_SETUP_END' by TXPCU
  1498. <legal all>
  1499. */
  1500. #define TX_FES_STATUS_END_TX_PWR_UNSHARED_OFFSET 0x0000000000000048
  1501. #define TX_FES_STATUS_END_TX_PWR_UNSHARED_LSB 56
  1502. #define TX_FES_STATUS_END_TX_PWR_UNSHARED_MSB 63
  1503. #define TX_FES_STATUS_END_TX_PWR_UNSHARED_MASK 0xff00000000000000
  1504. /* Description RANGING_ACTIVE_USER_MAP
  1505. Field only valid for TB Ranging transmissions
  1506. TXPCU sets this to the current active user bitmap, with
  1507. each bit set to:
  1508. 1: for an active user, and
  1509. 0: for any user not part of the ranging.
  1510. Hamilton v1 did not include this (and any subsequent) word.
  1511. */
  1512. #define TX_FES_STATUS_END_RANGING_ACTIVE_USER_MAP_OFFSET 0x0000000000000050
  1513. #define TX_FES_STATUS_END_RANGING_ACTIVE_USER_MAP_LSB 0
  1514. #define TX_FES_STATUS_END_RANGING_ACTIVE_USER_MAP_MSB 15
  1515. #define TX_FES_STATUS_END_RANGING_ACTIVE_USER_MAP_MASK 0x000000000000ffff
  1516. /* Description RANGING_SENT_DUMMY_TX
  1517. Field only valid for TB Ranging transmissions
  1518. TXPCU sets this bit if some user's 'STA Info' or 'User Info'
  1519. was sent out as dummy, or the whole transmission was sent
  1520. out as dummy.
  1521. */
  1522. #define TX_FES_STATUS_END_RANGING_SENT_DUMMY_TX_OFFSET 0x0000000000000050
  1523. #define TX_FES_STATUS_END_RANGING_SENT_DUMMY_TX_LSB 16
  1524. #define TX_FES_STATUS_END_RANGING_SENT_DUMMY_TX_MSB 16
  1525. #define TX_FES_STATUS_END_RANGING_SENT_DUMMY_TX_MASK 0x0000000000010000
  1526. /* Description RANGING_FTM_FRAME_SENT
  1527. Field only valid for Ranging transmissions
  1528. TXPCU sets this bit if an FTM frame aggregated with an LMR
  1529. was sent.
  1530. */
  1531. #define TX_FES_STATUS_END_RANGING_FTM_FRAME_SENT_OFFSET 0x0000000000000050
  1532. #define TX_FES_STATUS_END_RANGING_FTM_FRAME_SENT_LSB 17
  1533. #define TX_FES_STATUS_END_RANGING_FTM_FRAME_SENT_MSB 17
  1534. #define TX_FES_STATUS_END_RANGING_FTM_FRAME_SENT_MASK 0x0000000000020000
  1535. /* Description RESERVED_20A
  1536. <legal 0>
  1537. */
  1538. #define TX_FES_STATUS_END_RESERVED_20A_OFFSET 0x0000000000000050
  1539. #define TX_FES_STATUS_END_RESERVED_20A_LSB 18
  1540. #define TX_FES_STATUS_END_RESERVED_20A_MSB 23
  1541. #define TX_FES_STATUS_END_RESERVED_20A_MASK 0x0000000000fc0000
  1542. /* Description CV_CORR_STATUS
  1543. CV correlation status from 'PHYTX_CV_CORR_STATUS,' to be
  1544. copied from 'PCU_PPDU_SETUP_END' by TXPCU
  1545. <legal all>
  1546. */
  1547. #define TX_FES_STATUS_END_CV_CORR_STATUS_OFFSET 0x0000000000000050
  1548. #define TX_FES_STATUS_END_CV_CORR_STATUS_LSB 24
  1549. #define TX_FES_STATUS_END_CV_CORR_STATUS_MSB 31
  1550. #define TX_FES_STATUS_END_CV_CORR_STATUS_MASK 0x00000000ff000000
  1551. /* Description CURRENT_TX_DURATION
  1552. The duration of the transmission in us, copied over from
  1553. PCU_PPDU_SETUP_{END, START} as the case may be
  1554. <legal all>
  1555. */
  1556. #define TX_FES_STATUS_END_CURRENT_TX_DURATION_OFFSET 0x0000000000000050
  1557. #define TX_FES_STATUS_END_CURRENT_TX_DURATION_LSB 32
  1558. #define TX_FES_STATUS_END_CURRENT_TX_DURATION_MSB 47
  1559. #define TX_FES_STATUS_END_CURRENT_TX_DURATION_MASK 0x0000ffff00000000
  1560. /* Description RESERVED_21A
  1561. Bits [19:16]: num_cts2self_transmitted:
  1562. Number of CTS2SELF frames transmitted in this FES
  1563. <legal 0-15>
  1564. */
  1565. #define TX_FES_STATUS_END_RESERVED_21A_OFFSET 0x0000000000000050
  1566. #define TX_FES_STATUS_END_RESERVED_21A_LSB 48
  1567. #define TX_FES_STATUS_END_RESERVED_21A_MSB 63
  1568. #define TX_FES_STATUS_END_RESERVED_21A_MASK 0xffff000000000000
  1569. #endif // TX_FES_STATUS_END