tx_fes_status_end.h 93 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198
  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 _TX_FES_STATUS_END_H_
  17. #define _TX_FES_STATUS_END_H_
  18. #if !defined(__ASSEMBLER__)
  19. #endif
  20. #include "phytx_abort_request_info.h"
  21. #define NUM_OF_DWORDS_TX_FES_STATUS_END 22
  22. #define NUM_OF_QWORDS_TX_FES_STATUS_END 11
  23. struct tx_fes_status_end {
  24. #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
  25. uint32_t prot_coex_bt_tx_while_wlan_tx : 1, // [0:0]
  26. prot_coex_bt_tx_while_wlan_rx : 1, // [1:1]
  27. prot_coex_wan_tx_while_wlan_tx : 1, // [2:2]
  28. prot_coex_wan_tx_while_wlan_rx : 1, // [3:3]
  29. prot_coex_wlan_tx_while_wlan_tx : 1, // [4:4]
  30. prot_coex_wlan_tx_while_wlan_rx : 1, // [5:5]
  31. coex_bt_tx_while_wlan_tx : 1, // [6:6]
  32. coex_bt_tx_while_wlan_rx : 1, // [7:7]
  33. coex_wan_tx_while_wlan_tx : 1, // [8:8]
  34. coex_wan_tx_while_wlan_rx : 1, // [9:9]
  35. coex_wlan_tx_while_wlan_tx : 1, // [10:10]
  36. coex_wlan_tx_while_wlan_rx : 1, // [11:11]
  37. global_data_underflow_warning : 1, // [12:12]
  38. global_fes_transmit_result : 4, // [16:13]
  39. cbf_bw_received_valid : 1, // [17:17]
  40. cbf_bw_received : 3, // [20:18]
  41. actual_received_ack_type : 4, // [24:21]
  42. sta_response_count : 6, // [30:25]
  43. dpdtrain_done : 1; // [31:31]
  44. struct phytx_abort_request_info phytx_abort_request_info_details;
  45. uint16_t reserved_after_struct16 : 4, // [19:16]
  46. brp_info_valid : 1, // [20:20]
  47. reserved_1a : 6, // [26:21]
  48. phytx_pkt_end_info_valid : 1, // [27:27]
  49. phytx_abort_request_info_valid : 1, // [28:28]
  50. fes_in_11ax_trigger_response_config : 1, // [29:29]
  51. null_delim_inserted_before_mpdus : 1, // [30:30]
  52. only_null_delim_sent : 1; // [31:31]
  53. uint32_t start_of_frame_timestamp_15_0 : 16, // [15:0]
  54. start_of_frame_timestamp_31_16 : 16; // [31:16]
  55. uint32_t end_of_frame_timestamp_15_0 : 16, // [15:0]
  56. end_of_frame_timestamp_31_16 : 16; // [31:16]
  57. uint32_t terminate_ranging_sequence : 1, // [0:0]
  58. reserved_4a : 7, // [7:1]
  59. timing_status : 2, // [9:8]
  60. response_type : 5, // [14:10]
  61. r2r_end_status_to_follow : 1, // [15:15]
  62. transmit_delay : 16; // [31:16]
  63. uint32_t tx_group_delay : 12, // [11:0]
  64. reserved_5a : 4, // [15:12]
  65. tpc_dbg_info_cmn_15_0 : 16; // [31:16]
  66. uint32_t tpc_dbg_info_cmn_31_16 : 16, // [15:0]
  67. tpc_dbg_info_47_32 : 16; // [31:16]
  68. uint32_t tpc_dbg_info_chn1_15_0 : 16, // [15:0]
  69. tpc_dbg_info_chn1_31_16 : 16; // [31:16]
  70. uint32_t tpc_dbg_info_chn1_47_32 : 16, // [15:0]
  71. tpc_dbg_info_chn1_63_48 : 16; // [31:16]
  72. uint32_t tpc_dbg_info_chn1_79_64 : 16, // [15:0]
  73. tpc_dbg_info_chn2_15_0 : 16; // [31:16]
  74. uint32_t tpc_dbg_info_chn2_31_16 : 16, // [15:0]
  75. tpc_dbg_info_chn2_47_32 : 16; // [31:16]
  76. uint32_t tpc_dbg_info_chn2_63_48 : 16, // [15:0]
  77. tpc_dbg_info_chn2_79_64 : 16; // [31:16]
  78. uint32_t phytx_tx_end_sw_info_15_0 : 16, // [15:0]
  79. phytx_tx_end_sw_info_31_16 : 16; // [31:16]
  80. uint32_t phytx_tx_end_sw_info_47_32 : 16, // [15:0]
  81. phytx_tx_end_sw_info_63_48 : 16; // [31:16]
  82. uint32_t beamform_masked_user_bitmap_15_0 : 16, // [15:0]
  83. beamform_masked_user_bitmap_31_16 : 16; // [31:16]
  84. uint32_t cbf_segment_request_mask : 8, // [7:0]
  85. cbf_segment_sent_mask : 8, // [15:8]
  86. highest_achieved_data_null_ratio : 5, // [20:16]
  87. use_alt_power_sr : 1, // [21:21]
  88. static_2_pwr_mode_status : 1, // [22:22]
  89. obss_srg_opport_transmit_status : 1, // [23:23]
  90. srp_based_transmit_status : 1, // [24:24]
  91. obss_pd_based_transmit_status : 1, // [25:25]
  92. beamform_masked_user_bitmap_36_32 : 5, // [30:26]
  93. pdg_mpdu_ready : 1; // [31:31]
  94. uint32_t pdg_mpdu_count : 16, // [15:0]
  95. pdg_est_mpdu_tx_count : 16; // [31:16]
  96. uint32_t pdg_overview_length : 24, // [23:0]
  97. txop_duration : 7, // [30:24]
  98. pdg_dropped_mpdu_warning : 1; // [31:31]
  99. uint32_t packet_extension_a_factor : 2, // [1:0]
  100. packet_extension_pe_disambiguity : 1, // [2:2]
  101. packet_extension : 3, // [5:3]
  102. fec_type : 1, // [6:6]
  103. stbc : 1, // [7:7]
  104. num_data_symbols : 16, // [23:8]
  105. ru_size : 4, // [27:24]
  106. reserved_17a : 4; // [31:28]
  107. uint32_t num_ltf_symbols : 3, // [2:0]
  108. ltf_size : 2, // [4:3]
  109. cp_setting : 2, // [6:5]
  110. reserved_18a : 5, // [11:7]
  111. dcm : 1, // [12:12]
  112. ldpc_extra_symbol : 1, // [13:13]
  113. force_extra_symbol : 1, // [14:14]
  114. reserved_18b : 1, // [15:15]
  115. tx_pwr_shared : 8, // [23:16]
  116. tx_pwr_unshared : 8; // [31:24]
  117. uint32_t ranging_active_user_map : 16, // [15:0]
  118. ranging_sent_dummy_tx : 1, // [16:16]
  119. ranging_ftm_frame_sent : 1, // [17:17]
  120. reserved_20a : 6, // [23:18]
  121. cv_corr_status : 8; // [31:24]
  122. uint32_t current_tx_duration : 16, // [15:0]
  123. reserved_21a : 16; // [31:16]
  124. #else
  125. uint32_t dpdtrain_done : 1, // [31:31]
  126. sta_response_count : 6, // [30:25]
  127. actual_received_ack_type : 4, // [24:21]
  128. cbf_bw_received : 3, // [20:18]
  129. cbf_bw_received_valid : 1, // [17:17]
  130. global_fes_transmit_result : 4, // [16:13]
  131. global_data_underflow_warning : 1, // [12:12]
  132. coex_wlan_tx_while_wlan_rx : 1, // [11:11]
  133. coex_wlan_tx_while_wlan_tx : 1, // [10:10]
  134. coex_wan_tx_while_wlan_rx : 1, // [9:9]
  135. coex_wan_tx_while_wlan_tx : 1, // [8:8]
  136. coex_bt_tx_while_wlan_rx : 1, // [7:7]
  137. coex_bt_tx_while_wlan_tx : 1, // [6:6]
  138. prot_coex_wlan_tx_while_wlan_rx : 1, // [5:5]
  139. prot_coex_wlan_tx_while_wlan_tx : 1, // [4:4]
  140. prot_coex_wan_tx_while_wlan_rx : 1, // [3:3]
  141. prot_coex_wan_tx_while_wlan_tx : 1, // [2:2]
  142. prot_coex_bt_tx_while_wlan_rx : 1, // [1:1]
  143. prot_coex_bt_tx_while_wlan_tx : 1; // [0:0]
  144. uint32_t only_null_delim_sent : 1, // [31:31]
  145. null_delim_inserted_before_mpdus : 1, // [30:30]
  146. fes_in_11ax_trigger_response_config : 1, // [29:29]
  147. phytx_abort_request_info_valid : 1, // [28:28]
  148. phytx_pkt_end_info_valid : 1, // [27:27]
  149. reserved_1a : 6, // [26:21]
  150. brp_info_valid : 1, // [20:20]
  151. reserved_after_struct16 : 4; // [19:16]
  152. struct phytx_abort_request_info phytx_abort_request_info_details;
  153. uint32_t start_of_frame_timestamp_31_16 : 16, // [31:16]
  154. start_of_frame_timestamp_15_0 : 16; // [15:0]
  155. uint32_t end_of_frame_timestamp_31_16 : 16, // [31:16]
  156. end_of_frame_timestamp_15_0 : 16; // [15:0]
  157. uint32_t transmit_delay : 16, // [31:16]
  158. r2r_end_status_to_follow : 1, // [15:15]
  159. response_type : 5, // [14:10]
  160. timing_status : 2, // [9:8]
  161. reserved_4a : 7, // [7:1]
  162. terminate_ranging_sequence : 1; // [0:0]
  163. uint32_t tpc_dbg_info_cmn_15_0 : 16, // [31:16]
  164. reserved_5a : 4, // [15:12]
  165. tx_group_delay : 12; // [11:0]
  166. uint32_t tpc_dbg_info_47_32 : 16, // [31:16]
  167. tpc_dbg_info_cmn_31_16 : 16; // [15:0]
  168. uint32_t tpc_dbg_info_chn1_31_16 : 16, // [31:16]
  169. tpc_dbg_info_chn1_15_0 : 16; // [15:0]
  170. uint32_t tpc_dbg_info_chn1_63_48 : 16, // [31:16]
  171. tpc_dbg_info_chn1_47_32 : 16; // [15:0]
  172. uint32_t tpc_dbg_info_chn2_15_0 : 16, // [31:16]
  173. tpc_dbg_info_chn1_79_64 : 16; // [15:0]
  174. uint32_t tpc_dbg_info_chn2_47_32 : 16, // [31:16]
  175. tpc_dbg_info_chn2_31_16 : 16; // [15:0]
  176. uint32_t tpc_dbg_info_chn2_79_64 : 16, // [31:16]
  177. tpc_dbg_info_chn2_63_48 : 16; // [15:0]
  178. uint32_t phytx_tx_end_sw_info_31_16 : 16, // [31:16]
  179. phytx_tx_end_sw_info_15_0 : 16; // [15:0]
  180. uint32_t phytx_tx_end_sw_info_63_48 : 16, // [31:16]
  181. phytx_tx_end_sw_info_47_32 : 16; // [15:0]
  182. uint32_t beamform_masked_user_bitmap_31_16 : 16, // [31:16]
  183. beamform_masked_user_bitmap_15_0 : 16; // [15:0]
  184. uint32_t pdg_mpdu_ready : 1, // [31:31]
  185. beamform_masked_user_bitmap_36_32 : 5, // [30:26]
  186. obss_pd_based_transmit_status : 1, // [25:25]
  187. srp_based_transmit_status : 1, // [24:24]
  188. obss_srg_opport_transmit_status : 1, // [23:23]
  189. static_2_pwr_mode_status : 1, // [22:22]
  190. use_alt_power_sr : 1, // [21:21]
  191. highest_achieved_data_null_ratio : 5, // [20:16]
  192. cbf_segment_sent_mask : 8, // [15:8]
  193. cbf_segment_request_mask : 8; // [7:0]
  194. uint32_t pdg_est_mpdu_tx_count : 16, // [31:16]
  195. pdg_mpdu_count : 16; // [15:0]
  196. uint32_t pdg_dropped_mpdu_warning : 1, // [31:31]
  197. txop_duration : 7, // [30:24]
  198. pdg_overview_length : 24; // [23:0]
  199. uint32_t reserved_17a : 4, // [31:28]
  200. ru_size : 4, // [27:24]
  201. num_data_symbols : 16, // [23:8]
  202. stbc : 1, // [7:7]
  203. fec_type : 1, // [6:6]
  204. packet_extension : 3, // [5:3]
  205. packet_extension_pe_disambiguity : 1, // [2:2]
  206. packet_extension_a_factor : 2; // [1:0]
  207. uint32_t tx_pwr_unshared : 8, // [31:24]
  208. tx_pwr_shared : 8, // [23:16]
  209. reserved_18b : 1, // [15:15]
  210. force_extra_symbol : 1, // [14:14]
  211. ldpc_extra_symbol : 1, // [13:13]
  212. dcm : 1, // [12:12]
  213. reserved_18a : 5, // [11:7]
  214. cp_setting : 2, // [6:5]
  215. ltf_size : 2, // [4:3]
  216. num_ltf_symbols : 3; // [2:0]
  217. uint32_t cv_corr_status : 8, // [31:24]
  218. reserved_20a : 6, // [23:18]
  219. ranging_ftm_frame_sent : 1, // [17:17]
  220. ranging_sent_dummy_tx : 1, // [16:16]
  221. ranging_active_user_map : 16; // [15:0]
  222. uint32_t reserved_21a : 16, // [31:16]
  223. current_tx_duration : 16; // [15:0]
  224. #endif
  225. };
  226. /* Description PROT_COEX_BT_TX_WHILE_WLAN_TX
  227. When set, a BT tx coex event started while wlan was in the
  228. middle of TX a transmission.
  229. Field set when coex_status_broadcast TLV received with bt
  230. tx activity set and during WLAN tx
  231. <legal all>
  232. */
  233. #define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_TX_OFFSET 0x0000000000000000
  234. #define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_TX_LSB 0
  235. #define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_TX_MSB 0
  236. #define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_TX_MASK 0x0000000000000001
  237. /* Description PROT_COEX_BT_TX_WHILE_WLAN_RX
  238. When set, a BT tx coex event started while wlan was in the
  239. middle of TX a transmission.
  240. Field set when coex broadcast TLV received with bt tx activity
  241. set and during WLAN rx
  242. <legal all>
  243. */
  244. #define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_RX_OFFSET 0x0000000000000000
  245. #define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_RX_LSB 1
  246. #define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_RX_MSB 1
  247. #define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_RX_MASK 0x0000000000000002
  248. /* Description PROT_COEX_WAN_TX_WHILE_WLAN_TX
  249. When set, a WAN tx coex event started while wlan was in
  250. the middle of TX a transmission.
  251. Field set when coex_status_broadcast TLV received with WAN
  252. tx activity set and during WLAN tx
  253. <legal all>
  254. */
  255. #define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_TX_OFFSET 0x0000000000000000
  256. #define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_TX_LSB 2
  257. #define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_TX_MSB 2
  258. #define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_TX_MASK 0x0000000000000004
  259. /* Description PROT_COEX_WAN_TX_WHILE_WLAN_RX
  260. When set, a WAN tx coex event started while wlan was in
  261. the middle of TX a transmission.
  262. Field set when coex broadcast TLV received with WAN tx activity
  263. set and during WLAN rx
  264. <legal all>
  265. */
  266. #define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_RX_OFFSET 0x0000000000000000
  267. #define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_RX_LSB 3
  268. #define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_RX_MSB 3
  269. #define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_RX_MASK 0x0000000000000008
  270. /* Description PROT_COEX_WLAN_TX_WHILE_WLAN_TX
  271. When set, a WLAN tx coex event started while wlan was in
  272. the middle of TX a transmission.
  273. Field set when coex_status_broadcast TLV received with WLAN
  274. tx activity set and during WLAN tx
  275. <legal all>
  276. */
  277. #define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_TX_OFFSET 0x0000000000000000
  278. #define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_TX_LSB 4
  279. #define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_TX_MSB 4
  280. #define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_TX_MASK 0x0000000000000010
  281. /* Description PROT_COEX_WLAN_TX_WHILE_WLAN_RX
  282. When set, a WLAN tx coex event started while wlan was in
  283. the middle of TX a transmission.
  284. Field set when coex broadcast TLV received with WLAN tx
  285. activity set and during WLAN rx
  286. <legal all>
  287. */
  288. #define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_RX_OFFSET 0x0000000000000000
  289. #define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_RX_LSB 5
  290. #define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_RX_MSB 5
  291. #define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_RX_MASK 0x0000000000000020
  292. /* Description COEX_BT_TX_WHILE_WLAN_TX
  293. When set, a BT tx coex event started while wlan was in the
  294. middle of TX a transmission.
  295. Field set when coex_status_broadcast TLV received with bt
  296. tx activity set and during WLAN tx
  297. <legal all>
  298. */
  299. #define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_TX_OFFSET 0x0000000000000000
  300. #define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_TX_LSB 6
  301. #define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_TX_MSB 6
  302. #define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_TX_MASK 0x0000000000000040
  303. /* Description COEX_BT_TX_WHILE_WLAN_RX
  304. When set, a BT tx coex event started while wlan was in the
  305. middle of TX a transmission.
  306. Field set when coex broadcast TLV received with bt tx activity
  307. set and during WLAN rx
  308. <legal all>
  309. */
  310. #define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_RX_OFFSET 0x0000000000000000
  311. #define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_RX_LSB 7
  312. #define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_RX_MSB 7
  313. #define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_RX_MASK 0x0000000000000080
  314. /* Description COEX_WAN_TX_WHILE_WLAN_TX
  315. When set, a WAN tx coex event started while wlan was in
  316. the middle of TX a transmission.
  317. Field set when coex_status_broadcast TLV received with WAN
  318. tx activity set and during WLAN tx
  319. <legal all>
  320. */
  321. #define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_TX_OFFSET 0x0000000000000000
  322. #define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_TX_LSB 8
  323. #define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_TX_MSB 8
  324. #define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_TX_MASK 0x0000000000000100
  325. /* Description COEX_WAN_TX_WHILE_WLAN_RX
  326. When set, a WAN tx coex event started while wlan was in
  327. the middle of TX a transmission.
  328. Field set when coex broadcast TLV received with WAN tx activity
  329. set and during WLAN rx
  330. <legal all>
  331. */
  332. #define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_RX_OFFSET 0x0000000000000000
  333. #define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_RX_LSB 9
  334. #define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_RX_MSB 9
  335. #define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_RX_MASK 0x0000000000000200
  336. /* Description COEX_WLAN_TX_WHILE_WLAN_TX
  337. When set, a WLAN tx coex event started while wlan was in
  338. the middle of TX a transmission.
  339. Field set when coex_status_broadcast TLV received with WLAN
  340. tx activity set and during WLAN tx
  341. <legal all>
  342. */
  343. #define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_TX_OFFSET 0x0000000000000000
  344. #define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_TX_LSB 10
  345. #define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_TX_MSB 10
  346. #define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_TX_MASK 0x0000000000000400
  347. /* Description COEX_WLAN_TX_WHILE_WLAN_RX
  348. When set, a WLAN tx coex event started while wlan was in
  349. the middle of TX a transmission.
  350. Field set when coex broadcast TLV received with WLAN tx
  351. activity set and during WLAN rx
  352. <legal all>
  353. */
  354. #define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_RX_OFFSET 0x0000000000000000
  355. #define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_RX_LSB 11
  356. #define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_RX_MSB 11
  357. #define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_RX_MASK 0x0000000000000800
  358. /* Description GLOBAL_DATA_UNDERFLOW_WARNING
  359. Consumer: SCH/SW
  360. Producer: TXPCU
  361. When set, during transmission a data underflow occurred
  362. for one or more users.<legal all>
  363. */
  364. #define TX_FES_STATUS_END_GLOBAL_DATA_UNDERFLOW_WARNING_OFFSET 0x0000000000000000
  365. #define TX_FES_STATUS_END_GLOBAL_DATA_UNDERFLOW_WARNING_LSB 12
  366. #define TX_FES_STATUS_END_GLOBAL_DATA_UNDERFLOW_WARNING_MSB 12
  367. #define TX_FES_STATUS_END_GLOBAL_DATA_UNDERFLOW_WARNING_MASK 0x0000000000001000
  368. /* Description GLOBAL_FES_TRANSMIT_RESULT
  369. Consumer: SCH/SW
  370. Producer: TXPCU
  371. Global Transmit result, not per USER transmit result
  372. Note: field "Response_type" indicates if the expected response
  373. was MU related or not.
  374. <enum 0 tx_ok> Successful transmission of entire Frame exchange
  375. sequence
  376. <enum 1 prot_resp_rx_timeout>
  377. No Protection response frame received so timeout is triggered.
  378. <enum 2 ppdu_resp_rx_timeout> No PPDU response frame received
  379. so timeout is triggered.
  380. <enum 3 resp_frame_crc_err> Response frame was received
  381. with an invalid FCS.
  382. <enum 4 SU_Response_type_mismatch> Response frame is received
  383. without CRC error but it's not matched with expected SU_Response_type.
  384. <enum 5 cbf_mimo_ctrl_mismatch> Set if CBF is received without
  385. any error but the Nr, Nc, BW, type or token in VHT MIMO
  386. control field is not matched with expected values which
  387. are specified by TX_FES_SETUP.cbf_* fields.
  388. <enum 7 MU_Response_type_mismatch> Response frame is received
  389. without CRC error but it's not matched with expected SU_Response_type.
  390. <enum 8 MU_Response_mpdu_not_valid> For this user, no MPDU
  391. was received at all, or all received MPDUs had an FCS error.
  392. <enum 9 MU_UL_not_enough_user_response> An MU UL response
  393. reception was expected. That response came but the threshold
  394. for number of successful user receptions was not met.
  395. NOTE: This e-num will only be used in the TX_FES_STATUS_END
  396. TLV...
  397. <enum 10 Transmit_data_null_ratio_not_met> transmission
  398. was successful and proper responses have been received.
  399. But the required ratio between useful MPDU data and null
  400. delimiters was not met as specified by field : Fes_continuation_ratio_threshold.
  401. The FES (and potentially the SIFS burst) shall be terminated
  402. by the SCHeduler
  403. NOTE 1: This e-num will only be used in the TX_FES_STATUS_END
  404. TLV...
  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. TXPCU expects UL MU OFDMA or UL MU MIMO reception.
  745. As PDG does not know how RUs are assigned for the uplink
  746. portion, PDG can not calculate the uplink duration. Therefor
  747. SW shall program the 'Extend_duration_value_bw...' field
  748. RXPCU will report any frame received, irrespective of it
  749. having been UL MU or SU It is TXPCUs responsibility to
  750. distinguish between the UL MU or SU
  751. TXPCU can check in TLV RECEIVED_RESPONSE_INFO MU_Response_BA_bitmap
  752. if indeed BA was received
  753. TXPCU expects UL MU OFDMA or UL MU MIMO reception.
  754. As PDG does not know how RUs are assigned for the uplink
  755. portion, PDG can not calculate the uplink duration. Therefor
  756. SW shall program the 'Extend_duration_value_bw...' field
  757. RXPCU will report any frame received, irrespective of it
  758. having been UL MU or SU It is TXPCUs responsibility to
  759. distinguish between the UL MU or SU
  760. TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_data_bitmap
  761. and MU_Response_BA_bitmap if indeed BA and data was received
  762. When selected, CBF frames are expected to be received in
  763. MU reception (uplink OFDMA or uplink MIMO)
  764. RXPCU is just expecting any response. It is TXPCU who checks
  765. that the right response was received
  766. TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_cbf_bitmap
  767. if indeed CBF frames were received.
  768. <enum 16 ul_mu_frames_expected>When selected, MPDU frames
  769. are expected in the MU reception (uplink OFDMA or uplink
  770. MIMO)
  771. RXPCU is just expecting any response. It is TXPCU who checks
  772. that the right response was received
  773. TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_bitmap
  774. if indeed frames were received.
  775. <enum 17 any_response_to_this_device>Any response expected
  776. to be send to this device in SIFS time is acceptable.
  777. RXPCU is just expecting any response. It is TXPCU who checks
  778. that the right response was received
  779. For TXPCU, UL MU or SU is both acceptable.
  780. Can be used for complex OFDMA scenarios. PDG can not calculate
  781. the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...'
  782. field
  783. <enum 18 any_response_accepted>Any frame in the medium to
  784. this or any other device, is acceptable as response.
  785. RXPCU is just expecting any response. It is TXPCU who checks
  786. that the right response was received
  787. For TXPCU, UL MU or SU is both acceptable.
  788. Can be used for complex OFDMA scenarios. PDG can not calculate
  789. the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...'
  790. field
  791. <enum 19 frameless_phyrx_response_accepted>Any MU frameless
  792. reception generated by the PHY is acceptable.
  793. PHY indicates this type of reception explicitly in TLV PHYRX_RSSI_LEGACY,
  794. field Reception_type == reception_is_frameless
  795. RXPCU will report any frame received, irrespective of it
  796. having been UL MU or SU.
  797. This can be used for complex MU-MIMO or OFDMA scenarios,
  798. like receiving MU-CTS.
  799. PDG can not calculate the uplink duration. Therefor SW shall
  800. program the 'Extend_duration_value_bw...' field
  801. <enum 20 ranging_ndp_and_lmr_expected>SW sets this after
  802. sending ranging NDPA followed by NDP as an ISTA and NDP
  803. and LMR (Action No Ack) are expected as back-to-back reception
  804. in SIFS.
  805. As PDG has no idea on how long the reception is going to
  806. be, the reception time of the response will have to be
  807. programmed by SW in the 'Extend_duration_value_bw...' field
  808. RXPCU is just expecting any response. It is TXPCU who checks
  809. that the right response was received.
  810. <enum 21 ba_512_expected>BA with 512 bitmap is expected.
  811. PDG DOES NOT use the size info to calculated response duration.
  812. The length of the response will have to be programmed by
  813. SW in the per-BW 'Expected_ppdu_resp_length' field.
  814. For TXPCU only the fact that it is a BA is important. Actual
  815. received BA size is not important
  816. RXPCU is just expecting any response. It is TXPCU who checks
  817. that the right response was received.
  818. <enum 22 ba_1024_expected>BA with 1024 bitmap is expected.
  819. PDG DOES NOT use the size info to calculated response duration.
  820. The length of the response will have to be programmed by
  821. SW in the per-BW 'Expected_ppdu_resp_length' field.
  822. For TXPCU only the fact that it is a BA is important. Actual
  823. received BA size is not important
  824. RXPCU is just expecting any response. It is TXPCU who checks
  825. that the right response was received.
  826. <enum 23 ul_mu_ranging_cts2s_expected>When selected, CTS2S
  827. frames are expected to be received in MU reception (uplink
  828. OFDMA)
  829. RXPCU shall check each response for CTS2S and report to
  830. TXPCU.
  831. TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
  832. 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed CTS2S
  833. frames were received.
  834. <enum 24 ul_mu_ranging_ndp_expected>When selected, UL NDP
  835. frames are expected to be received in MU reception (uplink
  836. spatial multiplexing)
  837. RXPCU shall check each response for NDP and report to TXPCU.
  838. TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
  839. 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed NDP
  840. frames were received.
  841. <enum 25 ul_mu_ranging_lmr_expected>When selected, LMR frames
  842. are expected to be received in MU reception (uplink OFDMA
  843. or uplink MIMO)
  844. RXPCU shall check each response for LMR and report to TXPCU.
  845. TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
  846. 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed LMR
  847. frames were received.
  848. */
  849. #define TX_FES_STATUS_END_RESPONSE_TYPE_OFFSET 0x0000000000000010
  850. #define TX_FES_STATUS_END_RESPONSE_TYPE_LSB 10
  851. #define TX_FES_STATUS_END_RESPONSE_TYPE_MSB 14
  852. #define TX_FES_STATUS_END_RESPONSE_TYPE_MASK 0x0000000000007c00
  853. /* Description R2R_END_STATUS_TO_FOLLOW
  854. When set, TXPCU will still generate an R2R frame (typically
  855. M-BA), and the 'R2R_STATUS_END' TLV.
  856. <legal all>
  857. */
  858. #define TX_FES_STATUS_END_R2R_END_STATUS_TO_FOLLOW_OFFSET 0x0000000000000010
  859. #define TX_FES_STATUS_END_R2R_END_STATUS_TO_FOLLOW_LSB 15
  860. #define TX_FES_STATUS_END_R2R_END_STATUS_TO_FOLLOW_MSB 15
  861. #define TX_FES_STATUS_END_R2R_END_STATUS_TO_FOLLOW_MASK 0x0000000000008000
  862. /* Description TRANSMIT_DELAY
  863. PHYTX_PKT_END info
  864. Field only valid when PHYTX_PKT_END_info_valid is set
  865. The number of 480 MHz clock cycles that the transmission
  866. started after the actual requested transmit start time.
  867. Value saturates at 0xFFFF
  868. <legal all>
  869. */
  870. #define TX_FES_STATUS_END_TRANSMIT_DELAY_OFFSET 0x0000000000000010
  871. #define TX_FES_STATUS_END_TRANSMIT_DELAY_LSB 16
  872. #define TX_FES_STATUS_END_TRANSMIT_DELAY_MSB 31
  873. #define TX_FES_STATUS_END_TRANSMIT_DELAY_MASK 0x00000000ffff0000
  874. /* Description TX_GROUP_DELAY
  875. PHYTX_PKT_END info
  876. Field only valid when PHYTX_PKT_END_info_valid is set
  877. Group delay on TxTD+PHYRF path for this PPDU (packet BW
  878. dependent), useful for RTT
  879. Unit is 960MHz cycles.
  880. <legal all>
  881. */
  882. #define TX_FES_STATUS_END_TX_GROUP_DELAY_OFFSET 0x0000000000000010
  883. #define TX_FES_STATUS_END_TX_GROUP_DELAY_LSB 32
  884. #define TX_FES_STATUS_END_TX_GROUP_DELAY_MSB 43
  885. #define TX_FES_STATUS_END_TX_GROUP_DELAY_MASK 0x00000fff00000000
  886. /* Description RESERVED_5A
  887. Bits [14:12]: service_cbw:
  888. Field only valid when a response was received
  889. Source of the info here is the 'RECEIVED_RESPONSE_INFO'
  890. TLV
  891. This field reflects the BW extracted from the Serivce Field
  892. for 11ac mode of operation .
  893. This field is used in the context of Dynamic BW evaluation
  894. purposes in SCH in case of SW-queued protection frame.
  895. Please refer 'BW_ENUM' e-num for the values used.
  896. <legal 0-5>
  897. */
  898. #define TX_FES_STATUS_END_RESERVED_5A_OFFSET 0x0000000000000010
  899. #define TX_FES_STATUS_END_RESERVED_5A_LSB 44
  900. #define TX_FES_STATUS_END_RESERVED_5A_MSB 47
  901. #define TX_FES_STATUS_END_RESERVED_5A_MASK 0x0000f00000000000
  902. /* Description TPC_DBG_INFO_CMN_15_0
  903. PHYTX_PKT_END info
  904. Field only valid when PHYTX_PKT_END_info_valid is set
  905. Some TPC debug info that PHY can pass back to MAC FW
  906. <legal all>
  907. */
  908. #define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_15_0_OFFSET 0x0000000000000010
  909. #define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_15_0_LSB 48
  910. #define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_15_0_MSB 63
  911. #define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_15_0_MASK 0xffff000000000000
  912. /* Description TPC_DBG_INFO_CMN_31_16
  913. PHYTX_PKT_END info
  914. Field only valid when PHYTX_PKT_END_info_valid is set
  915. Some TPC debug info that PHY can pass back to MAC FW
  916. <legal all>
  917. */
  918. #define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_31_16_OFFSET 0x0000000000000018
  919. #define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_31_16_LSB 0
  920. #define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_31_16_MSB 15
  921. #define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_31_16_MASK 0x000000000000ffff
  922. /* Description TPC_DBG_INFO_47_32
  923. PHYTX_PKT_END info
  924. Field only valid when PHYTX_PKT_END_info_valid is set
  925. Some TPC debu info that PHY can pass back to MAC FW
  926. <legal all>
  927. */
  928. #define TX_FES_STATUS_END_TPC_DBG_INFO_47_32_OFFSET 0x0000000000000018
  929. #define TX_FES_STATUS_END_TPC_DBG_INFO_47_32_LSB 16
  930. #define TX_FES_STATUS_END_TPC_DBG_INFO_47_32_MSB 31
  931. #define TX_FES_STATUS_END_TPC_DBG_INFO_47_32_MASK 0x00000000ffff0000
  932. /* Description TPC_DBG_INFO_CHN1_15_0
  933. PHYTX_PKT_END info
  934. Field only valid when PHYTX_PKT_END_info_valid is set
  935. Some per-chain TPC debug info for the first selected chain
  936. that PHY can pass back to MAC FW
  937. <legal all>
  938. */
  939. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_15_0_OFFSET 0x0000000000000018
  940. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_15_0_LSB 32
  941. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_15_0_MSB 47
  942. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_15_0_MASK 0x0000ffff00000000
  943. /* Description TPC_DBG_INFO_CHN1_31_16
  944. PHYTX_PKT_END info
  945. Field only valid when PHYTX_PKT_END_info_valid is set
  946. Some per-chain TPC debug info for the first selected chain
  947. that PHY can pass back to MAC FW
  948. <legal all>
  949. */
  950. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_31_16_OFFSET 0x0000000000000018
  951. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_31_16_LSB 48
  952. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_31_16_MSB 63
  953. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_31_16_MASK 0xffff000000000000
  954. /* Description TPC_DBG_INFO_CHN1_47_32
  955. PHYTX_PKT_END info
  956. Field only valid when PHYTX_PKT_END_info_valid is set
  957. Some per-chain TPC debug info for the first selected chain
  958. that PHY can pass back to MAC FW
  959. <legal all>
  960. */
  961. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_47_32_OFFSET 0x0000000000000020
  962. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_47_32_LSB 0
  963. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_47_32_MSB 15
  964. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_47_32_MASK 0x000000000000ffff
  965. /* Description TPC_DBG_INFO_CHN1_63_48
  966. PHYTX_PKT_END info
  967. Field only valid when PHYTX_PKT_END_info_valid is set
  968. Some per-chain TPC debug info for the first selected chain
  969. that PHY can pass back to MAC FW
  970. <legal all>
  971. */
  972. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_63_48_OFFSET 0x0000000000000020
  973. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_63_48_LSB 16
  974. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_63_48_MSB 31
  975. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_63_48_MASK 0x00000000ffff0000
  976. /* Description TPC_DBG_INFO_CHN1_79_64
  977. PHYTX_PKT_END info
  978. Field only valid when PHYTX_PKT_END_info_valid is set
  979. Some per-chain TPC debug info for the first selected chain
  980. that PHY can pass back to MAC FW
  981. <legal all>
  982. */
  983. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_79_64_OFFSET 0x0000000000000020
  984. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_79_64_LSB 32
  985. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_79_64_MSB 47
  986. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_79_64_MASK 0x0000ffff00000000
  987. /* Description TPC_DBG_INFO_CHN2_15_0
  988. PHYTX_PKT_END info
  989. Field only valid when PHYTX_PKT_END_info_valid is set
  990. Some per-chain TPC debug info for the second selected chain
  991. that PHY can pass back to MAC FW
  992. <legal all>
  993. */
  994. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_15_0_OFFSET 0x0000000000000020
  995. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_15_0_LSB 48
  996. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_15_0_MSB 63
  997. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_15_0_MASK 0xffff000000000000
  998. /* Description TPC_DBG_INFO_CHN2_31_16
  999. PHYTX_PKT_END info
  1000. Field only valid when PHYTX_PKT_END_info_valid is set
  1001. Some per-chain TPC debug info for the second selected chain
  1002. that PHY can pass back to MAC FW
  1003. <legal all>
  1004. */
  1005. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_31_16_OFFSET 0x0000000000000028
  1006. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_31_16_LSB 0
  1007. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_31_16_MSB 15
  1008. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_31_16_MASK 0x000000000000ffff
  1009. /* Description TPC_DBG_INFO_CHN2_47_32
  1010. PHYTX_PKT_END info
  1011. Field only valid when PHYTX_PKT_END_info_valid is set
  1012. Some per-chain TPC debug info for the second selected chain
  1013. that PHY can pass back to MAC FW
  1014. <legal all>
  1015. */
  1016. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_47_32_OFFSET 0x0000000000000028
  1017. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_47_32_LSB 16
  1018. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_47_32_MSB 31
  1019. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_47_32_MASK 0x00000000ffff0000
  1020. /* Description TPC_DBG_INFO_CHN2_63_48
  1021. PHYTX_PKT_END info
  1022. Field only valid when PHYTX_PKT_END_info_valid is set
  1023. Some per-chain TPC debug info for the second selected chain
  1024. that PHY can pass back to MAC FW
  1025. <legal all>
  1026. */
  1027. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_63_48_OFFSET 0x0000000000000028
  1028. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_63_48_LSB 32
  1029. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_63_48_MSB 47
  1030. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_63_48_MASK 0x0000ffff00000000
  1031. /* Description TPC_DBG_INFO_CHN2_79_64
  1032. PHYTX_PKT_END info
  1033. Field only valid when PHYTX_PKT_END_info_valid is set
  1034. Some per-chain TPC debug info for the second selected chain
  1035. that PHY can pass back to MAC FW
  1036. <legal all>
  1037. */
  1038. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_79_64_OFFSET 0x0000000000000028
  1039. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_79_64_LSB 48
  1040. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_79_64_MSB 63
  1041. #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_79_64_MASK 0xffff000000000000
  1042. /* Description PHYTX_TX_END_SW_INFO_15_0
  1043. PHYTX_PKT_END info
  1044. Field only valid when PHYTX_PKT_END_info_valid is set
  1045. Some PHY status data that PHY microcode can pass back to
  1046. MAC FW, for any future requests, e.g. any DMA download
  1047. time
  1048. <legal all>
  1049. */
  1050. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_15_0_OFFSET 0x0000000000000030
  1051. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_15_0_LSB 0
  1052. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_15_0_MSB 15
  1053. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_15_0_MASK 0x000000000000ffff
  1054. /* Description PHYTX_TX_END_SW_INFO_31_16
  1055. PHYTX_PKT_END info
  1056. Field only valid when PHYTX_PKT_END_info_valid is set
  1057. Some PHY status data that PHY microcode can pass back to
  1058. MAC FW, for any future requests, e.g. any DMA download
  1059. time
  1060. <legal all>
  1061. */
  1062. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_31_16_OFFSET 0x0000000000000030
  1063. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_31_16_LSB 16
  1064. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_31_16_MSB 31
  1065. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_31_16_MASK 0x00000000ffff0000
  1066. /* Description PHYTX_TX_END_SW_INFO_47_32
  1067. PHYTX_PKT_END info
  1068. Field only valid when PHYTX_PKT_END_info_valid is set
  1069. Some PHY status data that PHY microcode can pass back to
  1070. MAC FW, for any future requests, e.g. any DMA download
  1071. time
  1072. <legal all>
  1073. */
  1074. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_47_32_OFFSET 0x0000000000000030
  1075. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_47_32_LSB 32
  1076. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_47_32_MSB 47
  1077. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_47_32_MASK 0x0000ffff00000000
  1078. /* Description PHYTX_TX_END_SW_INFO_63_48
  1079. PHYTX_PKT_END info
  1080. Field only valid when PHYTX_PKT_END_info_valid is set
  1081. Some PHY status data that PHY microcode can pass back to
  1082. MAC FW, for any future requests, e.g. any DMA download
  1083. time
  1084. <legal all>
  1085. */
  1086. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_63_48_OFFSET 0x0000000000000030
  1087. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_63_48_LSB 48
  1088. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_63_48_MSB 63
  1089. #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_63_48_MASK 0xffff000000000000
  1090. /* Description BEAMFORM_MASKED_USER_BITMAP_15_0
  1091. Lower 16 bits of 'Beamform_masked_user_bitmap'
  1092. PHY indicates in this field for which users it actually
  1093. did not beamform it's transmission even though this was
  1094. requested
  1095. Bit 0: user 0, bit 1: user 1, etc.
  1096. When 0: No beamform issue for this user
  1097. When 1: PHY could not beamform for this user, but did not
  1098. terminate the transmission
  1099. <legal all>
  1100. */
  1101. #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_15_0_OFFSET 0x0000000000000038
  1102. #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_15_0_LSB 0
  1103. #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_15_0_MSB 15
  1104. #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_15_0_MASK 0x000000000000ffff
  1105. /* Description BEAMFORM_MASKED_USER_BITMAP_31_16
  1106. Middle 16 bits of 'Beamform_masked_user_bitmap'
  1107. See description above.
  1108. <legal all>
  1109. */
  1110. #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_31_16_OFFSET 0x0000000000000038
  1111. #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_31_16_LSB 16
  1112. #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_31_16_MSB 31
  1113. #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_31_16_MASK 0x00000000ffff0000
  1114. /* Description CBF_SEGMENT_REQUEST_MASK
  1115. Field only valid when brp_info_valid is set.
  1116. Field equal to the 'Feedback Segment Retransmission Bitmap'
  1117. from the Beamform Report Poll frame OR Beamform Report Poll
  1118. Trigger frame
  1119. Bit 0 represents segment 0
  1120. Bit 1 represents segment 1
  1121. Etc.
  1122. 1'b1: Segment is requested
  1123. 1'b0: Segment is NOT requested
  1124. <legal all>
  1125. */
  1126. #define TX_FES_STATUS_END_CBF_SEGMENT_REQUEST_MASK_OFFSET 0x0000000000000038
  1127. #define TX_FES_STATUS_END_CBF_SEGMENT_REQUEST_MASK_LSB 32
  1128. #define TX_FES_STATUS_END_CBF_SEGMENT_REQUEST_MASK_MSB 39
  1129. #define TX_FES_STATUS_END_CBF_SEGMENT_REQUEST_MASK_MASK 0x000000ff00000000
  1130. /* Description CBF_SEGMENT_SENT_MASK
  1131. Field only valid when brp_info_valid is set.
  1132. Bit 0 represents segment 0
  1133. Bit 1 represents segment 1
  1134. Etc.
  1135. 1'b1: Segment is sent
  1136. 1'b0: Segment is not sent
  1137. <legal all>
  1138. */
  1139. #define TX_FES_STATUS_END_CBF_SEGMENT_SENT_MASK_OFFSET 0x0000000000000038
  1140. #define TX_FES_STATUS_END_CBF_SEGMENT_SENT_MASK_LSB 40
  1141. #define TX_FES_STATUS_END_CBF_SEGMENT_SENT_MASK_MSB 47
  1142. #define TX_FES_STATUS_END_CBF_SEGMENT_SENT_MASK_MASK 0x0000ff0000000000
  1143. /* Description HIGHEST_ACHIEVED_DATA_NULL_RATIO
  1144. Highest DATA:NULL ratio achieved for the current FES
  1145. <enum 0 No_Data_Null_ratio_requirement> There was no Data:NULL
  1146. ratio established.
  1147. <enum 1 Data_Null_ratio_16_1> Best Data:NULL ratio was 16:1.
  1148. <enum 2 Data_Null_ratio_8_1> Best Data:NULL ratio was 8:1.
  1149. <enum 3 Data_Null_ratio_4_1> Best Data:NULL ratio was 4:1.
  1150. <enum 4 Data_Null_ratio_2_1> Best Data:NULL ratio was 2:1.
  1151. <enum 5 Data_Null_ratio_1_1> Best Data:NULL ratio was 1:1.
  1152. terminate FES.
  1153. <enum 6 Data_Null_ratio_1_2> Best Data:NULL ratio was 1:2.
  1154. <enum 7 Data_Null_ratio_1_4> Best Data:NULL ratio was 1:4.
  1155. <enum 8 Data_Null_ratio_1_8> Best Data:NULL ratio was 1:8.
  1156. <enum 9 Data_Null_ratio_1_16> Best Data:NULL ratio was 1:16.
  1157. <legal 0-9>
  1158. */
  1159. #define TX_FES_STATUS_END_HIGHEST_ACHIEVED_DATA_NULL_RATIO_OFFSET 0x0000000000000038
  1160. #define TX_FES_STATUS_END_HIGHEST_ACHIEVED_DATA_NULL_RATIO_LSB 48
  1161. #define TX_FES_STATUS_END_HIGHEST_ACHIEVED_DATA_NULL_RATIO_MSB 52
  1162. #define TX_FES_STATUS_END_HIGHEST_ACHIEVED_DATA_NULL_RATIO_MASK 0x001f000000000000
  1163. /* Description USE_ALT_POWER_SR
  1164. 0: Primary/default power1: Alternate power
  1165. <legal all>
  1166. */
  1167. #define TX_FES_STATUS_END_USE_ALT_POWER_SR_OFFSET 0x0000000000000038
  1168. #define TX_FES_STATUS_END_USE_ALT_POWER_SR_LSB 53
  1169. #define TX_FES_STATUS_END_USE_ALT_POWER_SR_MSB 53
  1170. #define TX_FES_STATUS_END_USE_ALT_POWER_SR_MASK 0x0020000000000000
  1171. /* Description STATIC_2_PWR_MODE_STATUS
  1172. 0: Static 2 power mode disabled1: Static 2 power mode enabled
  1173. <legal all>
  1174. */
  1175. #define TX_FES_STATUS_END_STATIC_2_PWR_MODE_STATUS_OFFSET 0x0000000000000038
  1176. #define TX_FES_STATUS_END_STATIC_2_PWR_MODE_STATUS_LSB 54
  1177. #define TX_FES_STATUS_END_STATIC_2_PWR_MODE_STATUS_MSB 54
  1178. #define TX_FES_STATUS_END_STATIC_2_PWR_MODE_STATUS_MASK 0x0040000000000000
  1179. /* Description OBSS_SRG_OPPORT_TRANSMIT_STATUS
  1180. 0: Transmit based on SRG OBSS_PD opportunity initiated1:
  1181. Transmit based on non-SRG OBSS_PD opportunity initiated
  1182. <legal all>
  1183. */
  1184. #define TX_FES_STATUS_END_OBSS_SRG_OPPORT_TRANSMIT_STATUS_OFFSET 0x0000000000000038
  1185. #define TX_FES_STATUS_END_OBSS_SRG_OPPORT_TRANSMIT_STATUS_LSB 55
  1186. #define TX_FES_STATUS_END_OBSS_SRG_OPPORT_TRANSMIT_STATUS_MSB 55
  1187. #define TX_FES_STATUS_END_OBSS_SRG_OPPORT_TRANSMIT_STATUS_MASK 0x0080000000000000
  1188. /* Description SRP_BASED_TRANSMIT_STATUS
  1189. 0: non-SRP based transmit initiated1: SRP based transmit
  1190. initiated
  1191. <legal all>
  1192. */
  1193. #define TX_FES_STATUS_END_SRP_BASED_TRANSMIT_STATUS_OFFSET 0x0000000000000038
  1194. #define TX_FES_STATUS_END_SRP_BASED_TRANSMIT_STATUS_LSB 56
  1195. #define TX_FES_STATUS_END_SRP_BASED_TRANSMIT_STATUS_MSB 56
  1196. #define TX_FES_STATUS_END_SRP_BASED_TRANSMIT_STATUS_MASK 0x0100000000000000
  1197. /* Description OBSS_PD_BASED_TRANSMIT_STATUS
  1198. 0: non-OBSS_PD based transmit initiated1: obss_pd based
  1199. transmit initiated
  1200. <legal all>
  1201. */
  1202. #define TX_FES_STATUS_END_OBSS_PD_BASED_TRANSMIT_STATUS_OFFSET 0x0000000000000038
  1203. #define TX_FES_STATUS_END_OBSS_PD_BASED_TRANSMIT_STATUS_LSB 57
  1204. #define TX_FES_STATUS_END_OBSS_PD_BASED_TRANSMIT_STATUS_MSB 57
  1205. #define TX_FES_STATUS_END_OBSS_PD_BASED_TRANSMIT_STATUS_MASK 0x0200000000000000
  1206. /* Description BEAMFORM_MASKED_USER_BITMAP_36_32
  1207. Upper 5 bits of 'Beamform_masked_user_bitmap'
  1208. See description above.
  1209. <legal all>
  1210. */
  1211. #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_36_32_OFFSET 0x0000000000000038
  1212. #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_36_32_LSB 58
  1213. #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_36_32_MSB 62
  1214. #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_36_32_MASK 0x7c00000000000000
  1215. /* Description PDG_MPDU_READY
  1216. Field only valid in case of SU transmissions, copied over
  1217. by TXPCU from 'PCU_PPDU_SETUP_END'
  1218. Indicates the 'MPDU_INFO' or 'MPDU_QUEUE_OVERVIEW' ready
  1219. status in PDG.
  1220. <legal all>
  1221. */
  1222. #define TX_FES_STATUS_END_PDG_MPDU_READY_OFFSET 0x0000000000000038
  1223. #define TX_FES_STATUS_END_PDG_MPDU_READY_LSB 63
  1224. #define TX_FES_STATUS_END_PDG_MPDU_READY_MSB 63
  1225. #define TX_FES_STATUS_END_PDG_MPDU_READY_MASK 0x8000000000000000
  1226. /* Description PDG_MPDU_COUNT
  1227. Field only valid in case of SU transmissions when pdg_MPDU_ready
  1228. is set, copied over by TXPCU from 'PCU_PPDU_SETUP_END'
  1229. Total MPDU count from 'MPDU_INFO' or 'MPDU_QUEUE_OVERVIEW'
  1230. <legal 0-2130>
  1231. */
  1232. #define TX_FES_STATUS_END_PDG_MPDU_COUNT_OFFSET 0x0000000000000040
  1233. #define TX_FES_STATUS_END_PDG_MPDU_COUNT_LSB 0
  1234. #define TX_FES_STATUS_END_PDG_MPDU_COUNT_MSB 15
  1235. #define TX_FES_STATUS_END_PDG_MPDU_COUNT_MASK 0x000000000000ffff
  1236. /* Description PDG_EST_MPDU_TX_COUNT
  1237. Field only valid in case of SU transmissions when pdg_MPDU_ready
  1238. is set, copied over by TXPCU from 'PCU_PPDU_SETUP_END'
  1239. PDG estimated MPDU Tx count from 'MPDU_INFO' or 'MPDU_QUEUE_OVERVIEW'
  1240. limited by timing boundaries (HWSCH, COEX, SR, etc.)
  1241. <legal 0-1024>
  1242. */
  1243. #define TX_FES_STATUS_END_PDG_EST_MPDU_TX_COUNT_OFFSET 0x0000000000000040
  1244. #define TX_FES_STATUS_END_PDG_EST_MPDU_TX_COUNT_LSB 16
  1245. #define TX_FES_STATUS_END_PDG_EST_MPDU_TX_COUNT_MSB 31
  1246. #define TX_FES_STATUS_END_PDG_EST_MPDU_TX_COUNT_MASK 0x00000000ffff0000
  1247. /* Description PDG_OVERVIEW_LENGTH
  1248. Field only valid in case of SU transmissions when pdg_MPDU_ready
  1249. is set, copied over by TXPCU from 'PCU_PPDU_SETUP_END'
  1250. PDG estimated A-MPDU length from 'MPDU_QUEUE_OVERVIEW' limited
  1251. by timing boundaries (HWSCH, COEX, SR, etc.)
  1252. <legal all>
  1253. */
  1254. #define TX_FES_STATUS_END_PDG_OVERVIEW_LENGTH_OFFSET 0x0000000000000040
  1255. #define TX_FES_STATUS_END_PDG_OVERVIEW_LENGTH_LSB 32
  1256. #define TX_FES_STATUS_END_PDG_OVERVIEW_LENGTH_MSB 55
  1257. #define TX_FES_STATUS_END_PDG_OVERVIEW_LENGTH_MASK 0x00ffffff00000000
  1258. /* Description TXOP_DURATION
  1259. TXOP_DURATION of HE-SIG-A calculated by PDG, to be copied
  1260. from 'PCU_PPDU_SETUP_END' by TXPCU
  1261. */
  1262. #define TX_FES_STATUS_END_TXOP_DURATION_OFFSET 0x0000000000000040
  1263. #define TX_FES_STATUS_END_TXOP_DURATION_LSB 56
  1264. #define TX_FES_STATUS_END_TXOP_DURATION_MSB 62
  1265. #define TX_FES_STATUS_END_TXOP_DURATION_MASK 0x7f00000000000000
  1266. /* Description PDG_DROPPED_MPDU_WARNING
  1267. Warning that PDG has dropped MPDUs due to SFM FIFO full
  1268. condition, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU
  1269. */
  1270. #define TX_FES_STATUS_END_PDG_DROPPED_MPDU_WARNING_OFFSET 0x0000000000000040
  1271. #define TX_FES_STATUS_END_PDG_DROPPED_MPDU_WARNING_LSB 63
  1272. #define TX_FES_STATUS_END_PDG_DROPPED_MPDU_WARNING_MSB 63
  1273. #define TX_FES_STATUS_END_PDG_DROPPED_MPDU_WARNING_MASK 0x8000000000000000
  1274. /* Description PACKET_EXTENSION_A_FACTOR
  1275. The "a-factor" of the trigger-based PPDU response, to be
  1276. copied from 'PCU_PPDU_SETUP_END' by TXPCU
  1277. This affects the packet extension duration.
  1278. <enum 0 a_factor_4>
  1279. <enum 1 a_factor_1>
  1280. <enum 2 a_factor_2>
  1281. <enum 3 a_factor_3>
  1282. <legal all>
  1283. */
  1284. #define TX_FES_STATUS_END_PACKET_EXTENSION_A_FACTOR_OFFSET 0x0000000000000048
  1285. #define TX_FES_STATUS_END_PACKET_EXTENSION_A_FACTOR_LSB 0
  1286. #define TX_FES_STATUS_END_PACKET_EXTENSION_A_FACTOR_MSB 1
  1287. #define TX_FES_STATUS_END_PACKET_EXTENSION_A_FACTOR_MASK 0x0000000000000003
  1288. /* Description PACKET_EXTENSION_PE_DISAMBIGUITY
  1289. The "PE-Disambiguity" of the trigger-based PPDU response,
  1290. to be copied from 'PCU_PPDU_SETUP_END' by TXPCU
  1291. This affects the packet extension duration.
  1292. <legal all>
  1293. */
  1294. #define TX_FES_STATUS_END_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET 0x0000000000000048
  1295. #define TX_FES_STATUS_END_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB 2
  1296. #define TX_FES_STATUS_END_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB 2
  1297. #define TX_FES_STATUS_END_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK 0x0000000000000004
  1298. /* Description PACKET_EXTENSION
  1299. Packet extension size, to be copied from 'PCU_PPDU_SETUP_END'
  1300. by TXPCU
  1301. This is valid for all PPDUs including HE-Ranging NDPs (11az)
  1302. and Short-NDPs.
  1303. <enum 0 packet_ext_0>
  1304. <enum 1 packet_ext_4>
  1305. <enum 2 packet_ext_8>
  1306. <enum 3 packet_ext_12>
  1307. <enum 4 packet_ext_16>
  1308. <enum 5 packet_ext_20>
  1309. <legal 0 - 5>
  1310. */
  1311. #define TX_FES_STATUS_END_PACKET_EXTENSION_OFFSET 0x0000000000000048
  1312. #define TX_FES_STATUS_END_PACKET_EXTENSION_LSB 3
  1313. #define TX_FES_STATUS_END_PACKET_EXTENSION_MSB 5
  1314. #define TX_FES_STATUS_END_PACKET_EXTENSION_MASK 0x0000000000000038
  1315. /* Description FEC_TYPE
  1316. For trigger-based PPDU response, to be copied from 'PCU_PPDU_SETUP_END'
  1317. by TXPCU
  1318. 0: BCC
  1319. 1: LDPC
  1320. <legal all>
  1321. */
  1322. #define TX_FES_STATUS_END_FEC_TYPE_OFFSET 0x0000000000000048
  1323. #define TX_FES_STATUS_END_FEC_TYPE_LSB 6
  1324. #define TX_FES_STATUS_END_FEC_TYPE_MSB 6
  1325. #define TX_FES_STATUS_END_FEC_TYPE_MASK 0x0000000000000040
  1326. /* Description STBC
  1327. For trigger-based PPDU response, to be copied from 'PCU_PPDU_SETUP_END'
  1328. by TXPCU
  1329. When set, this transmission is based on STBC rates.
  1330. */
  1331. #define TX_FES_STATUS_END_STBC_OFFSET 0x0000000000000048
  1332. #define TX_FES_STATUS_END_STBC_LSB 7
  1333. #define TX_FES_STATUS_END_STBC_MSB 7
  1334. #define TX_FES_STATUS_END_STBC_MASK 0x0000000000000080
  1335. /* Description NUM_DATA_SYMBOLS
  1336. The number of data symbols in the transmission, to be copied
  1337. from 'PCU_PPDU_SETUP_END' by TXPCU
  1338. This does not include PE_LTF. Also for STBC packets this
  1339. has to be an even number. This is valid for all PPDUs.
  1340. */
  1341. #define TX_FES_STATUS_END_NUM_DATA_SYMBOLS_OFFSET 0x0000000000000048
  1342. #define TX_FES_STATUS_END_NUM_DATA_SYMBOLS_LSB 8
  1343. #define TX_FES_STATUS_END_NUM_DATA_SYMBOLS_MSB 23
  1344. #define TX_FES_STATUS_END_NUM_DATA_SYMBOLS_MASK 0x0000000000ffff00
  1345. /* Description RU_SIZE
  1346. The size of the RU for this user, for trigger-based PPDU
  1347. response, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU
  1348. <enum 0 RU_26>
  1349. <enum 1 RU_52>
  1350. <enum 2 RU_106>
  1351. <enum 3 RU_242>
  1352. <enum 4 RU_484>
  1353. <enum 5 RU_996>
  1354. <enum 6 RU_1992>
  1355. <enum 7 RU_FULLBW> Set when the RU occupies the full packet
  1356. bandwidth
  1357. <enum 8 RU_FULLBW_240> Set when the RU occupies the full
  1358. packet bandwidth
  1359. <enum 9 RU_FULLBW_320> Set when the RU occupies the full
  1360. packet bandwidth
  1361. <enum 10 RU_MULTI_LARGE> HW will use per-user sub-band-mask
  1362. to infer the actual RU-size for Multi-large-RU/SU-Puncturing
  1363. <enum 11 RU_78> multi small RU
  1364. <enum 12 RU_132> multi small RU
  1365. <legal 0-12>
  1366. */
  1367. #define TX_FES_STATUS_END_RU_SIZE_OFFSET 0x0000000000000048
  1368. #define TX_FES_STATUS_END_RU_SIZE_LSB 24
  1369. #define TX_FES_STATUS_END_RU_SIZE_MSB 27
  1370. #define TX_FES_STATUS_END_RU_SIZE_MASK 0x000000000f000000
  1371. #define TX_FES_STATUS_END_RESERVED_17A_OFFSET 0x0000000000000048
  1372. #define TX_FES_STATUS_END_RESERVED_17A_LSB 28
  1373. #define TX_FES_STATUS_END_RESERVED_17A_MSB 31
  1374. #define TX_FES_STATUS_END_RESERVED_17A_MASK 0x00000000f0000000
  1375. /* Description NUM_LTF_SYMBOLS
  1376. Indicates the number of HE-LTF symbols, for trigger-based
  1377. PPDU response, to be copied from 'PCU_PPDU_SETUP_END' by
  1378. TXPCU
  1379. 0: 1 symbol
  1380. 1: 2 symbols
  1381. 2: 3 symbols
  1382. 3: 4 symbols
  1383. 4: 5 symbols
  1384. 5: 6 symbols
  1385. 6: 7 symbols
  1386. 7: 8 symbols
  1387. NOTE that this encoding is different from what is in "Num_LTF_symbols"
  1388. in the HE_SIG_A_MU_DL.
  1389. <legal all>
  1390. */
  1391. #define TX_FES_STATUS_END_NUM_LTF_SYMBOLS_OFFSET 0x0000000000000048
  1392. #define TX_FES_STATUS_END_NUM_LTF_SYMBOLS_LSB 32
  1393. #define TX_FES_STATUS_END_NUM_LTF_SYMBOLS_MSB 34
  1394. #define TX_FES_STATUS_END_NUM_LTF_SYMBOLS_MASK 0x0000000700000000
  1395. /* Description LTF_SIZE
  1396. Ltf size, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU
  1397. This is valid for all PPDUs including HE-Ranging NDPs (11az)
  1398. and Short-NDPs.
  1399. <enum 0 ltf_1x >
  1400. <enum 1 ltf_2x >
  1401. <enum 2 ltf_4x >
  1402. <legal 0 - 2>
  1403. */
  1404. #define TX_FES_STATUS_END_LTF_SIZE_OFFSET 0x0000000000000048
  1405. #define TX_FES_STATUS_END_LTF_SIZE_LSB 35
  1406. #define TX_FES_STATUS_END_LTF_SIZE_MSB 36
  1407. #define TX_FES_STATUS_END_LTF_SIZE_MASK 0x0000001800000000
  1408. /* Description CP_SETTING
  1409. Field only valid when pkt type is HT, VHT or HE
  1410. GI setting, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU
  1411. This is valid for all PPDUs including HE-Ranging NDPs (11az)
  1412. and Short-NDPs.
  1413. <enum 0 gi_0_8_us > Legacy normal GI
  1414. <enum 1 gi_0_4_us > Legacy short GI
  1415. <enum 2 gi_1_6_us > HE related GI
  1416. <enum 3 gi_3_2_us > HE related GI
  1417. <legal 0 - 3>
  1418. */
  1419. #define TX_FES_STATUS_END_CP_SETTING_OFFSET 0x0000000000000048
  1420. #define TX_FES_STATUS_END_CP_SETTING_LSB 37
  1421. #define TX_FES_STATUS_END_CP_SETTING_MSB 38
  1422. #define TX_FES_STATUS_END_CP_SETTING_MASK 0x0000006000000000
  1423. #define TX_FES_STATUS_END_RESERVED_18A_OFFSET 0x0000000000000048
  1424. #define TX_FES_STATUS_END_RESERVED_18A_LSB 39
  1425. #define TX_FES_STATUS_END_RESERVED_18A_MSB 43
  1426. #define TX_FES_STATUS_END_RESERVED_18A_MASK 0x00000f8000000000
  1427. /* Description DCM
  1428. Field only valid in case of 11ax transmission
  1429. Indicates whether dual sub-carrier modulation is applied,
  1430. for trigger-based PPDU response, to be copied from 'PCU_PPDU_SETUP_END'
  1431. by TXPCU
  1432. 0: No DCM
  1433. 1:DCM
  1434. <legal all>
  1435. */
  1436. #define TX_FES_STATUS_END_DCM_OFFSET 0x0000000000000048
  1437. #define TX_FES_STATUS_END_DCM_LSB 44
  1438. #define TX_FES_STATUS_END_DCM_MSB 44
  1439. #define TX_FES_STATUS_END_DCM_MASK 0x0000100000000000
  1440. /* Description LDPC_EXTRA_SYMBOL
  1441. Set to 1 if the LDPC PPDU encoding process (if an SU PPDU),
  1442. or at least one LDPC user's PPDU encoding process (if an
  1443. MU PPDU), results in an extra OFDM symbol (or symbols)
  1444. as described in 22.3.10.5.4 (LDPC coding) and 22.3.10.5.5
  1445. (Encoding process for MU PPDUs). Set to 0 otherwise.
  1446. To be copied from 'PCU_PPDU_SETUP_END' by TXPCU
  1447. <legal all>
  1448. */
  1449. #define TX_FES_STATUS_END_LDPC_EXTRA_SYMBOL_OFFSET 0x0000000000000048
  1450. #define TX_FES_STATUS_END_LDPC_EXTRA_SYMBOL_LSB 45
  1451. #define TX_FES_STATUS_END_LDPC_EXTRA_SYMBOL_MSB 45
  1452. #define TX_FES_STATUS_END_LDPC_EXTRA_SYMBOL_MASK 0x0000200000000000
  1453. /* Description FORCE_EXTRA_SYMBOL
  1454. Set to 1 to force an extra OFDM symbol (or symbols) even
  1455. if none of the users' PPDU encoding process resuls in an
  1456. extra OFDM symbol (or symbols).
  1457. To be copied from 'PCU_PPDU_SETUP_END' by TXPCU
  1458. <legal all>
  1459. */
  1460. #define TX_FES_STATUS_END_FORCE_EXTRA_SYMBOL_OFFSET 0x0000000000000048
  1461. #define TX_FES_STATUS_END_FORCE_EXTRA_SYMBOL_LSB 46
  1462. #define TX_FES_STATUS_END_FORCE_EXTRA_SYMBOL_MSB 46
  1463. #define TX_FES_STATUS_END_FORCE_EXTRA_SYMBOL_MASK 0x0000400000000000
  1464. /* Description RESERVED_18B
  1465. <legal 0>
  1466. */
  1467. #define TX_FES_STATUS_END_RESERVED_18B_OFFSET 0x0000000000000048
  1468. #define TX_FES_STATUS_END_RESERVED_18B_LSB 47
  1469. #define TX_FES_STATUS_END_RESERVED_18B_MSB 47
  1470. #define TX_FES_STATUS_END_RESERVED_18B_MASK 0x0000800000000000
  1471. /* Description TX_PWR_SHARED
  1472. Transmit Power (signed value) in units of 0.25 dBm, to be
  1473. copied from 'PCU_PPDU_SETUP_END' by TXPCU
  1474. <legal all>
  1475. */
  1476. #define TX_FES_STATUS_END_TX_PWR_SHARED_OFFSET 0x0000000000000048
  1477. #define TX_FES_STATUS_END_TX_PWR_SHARED_LSB 48
  1478. #define TX_FES_STATUS_END_TX_PWR_SHARED_MSB 55
  1479. #define TX_FES_STATUS_END_TX_PWR_SHARED_MASK 0x00ff000000000000
  1480. /* Description TX_PWR_UNSHARED
  1481. Transmit Power (signed value) in units of 0.25 dBm, to be
  1482. copied from 'PCU_PPDU_SETUP_END' by TXPCU
  1483. <legal all>
  1484. */
  1485. #define TX_FES_STATUS_END_TX_PWR_UNSHARED_OFFSET 0x0000000000000048
  1486. #define TX_FES_STATUS_END_TX_PWR_UNSHARED_LSB 56
  1487. #define TX_FES_STATUS_END_TX_PWR_UNSHARED_MSB 63
  1488. #define TX_FES_STATUS_END_TX_PWR_UNSHARED_MASK 0xff00000000000000
  1489. /* Description RANGING_ACTIVE_USER_MAP
  1490. Field only valid for TB Ranging transmissions
  1491. TXPCU sets this to the current active user bitmap, with
  1492. each bit set to:
  1493. 1: for an active user, and
  1494. 0: for any user not part of the ranging.
  1495. */
  1496. #define TX_FES_STATUS_END_RANGING_ACTIVE_USER_MAP_OFFSET 0x0000000000000050
  1497. #define TX_FES_STATUS_END_RANGING_ACTIVE_USER_MAP_LSB 0
  1498. #define TX_FES_STATUS_END_RANGING_ACTIVE_USER_MAP_MSB 15
  1499. #define TX_FES_STATUS_END_RANGING_ACTIVE_USER_MAP_MASK 0x000000000000ffff
  1500. /* Description RANGING_SENT_DUMMY_TX
  1501. Field only valid for TB Ranging transmissions
  1502. TXPCU sets this bit if some user's 'STA Info' or 'User Info'
  1503. was sent out as dummy, or the whole transmission was sent
  1504. out as dummy.
  1505. */
  1506. #define TX_FES_STATUS_END_RANGING_SENT_DUMMY_TX_OFFSET 0x0000000000000050
  1507. #define TX_FES_STATUS_END_RANGING_SENT_DUMMY_TX_LSB 16
  1508. #define TX_FES_STATUS_END_RANGING_SENT_DUMMY_TX_MSB 16
  1509. #define TX_FES_STATUS_END_RANGING_SENT_DUMMY_TX_MASK 0x0000000000010000
  1510. /* Description RANGING_FTM_FRAME_SENT
  1511. Field only valid for Ranging transmissions
  1512. TXPCU sets this bit if an FTM frame aggregated with an LMR
  1513. was sent.
  1514. */
  1515. #define TX_FES_STATUS_END_RANGING_FTM_FRAME_SENT_OFFSET 0x0000000000000050
  1516. #define TX_FES_STATUS_END_RANGING_FTM_FRAME_SENT_LSB 17
  1517. #define TX_FES_STATUS_END_RANGING_FTM_FRAME_SENT_MSB 17
  1518. #define TX_FES_STATUS_END_RANGING_FTM_FRAME_SENT_MASK 0x0000000000020000
  1519. /* Description RESERVED_20A
  1520. <legal 0>
  1521. */
  1522. #define TX_FES_STATUS_END_RESERVED_20A_OFFSET 0x0000000000000050
  1523. #define TX_FES_STATUS_END_RESERVED_20A_LSB 18
  1524. #define TX_FES_STATUS_END_RESERVED_20A_MSB 23
  1525. #define TX_FES_STATUS_END_RESERVED_20A_MASK 0x0000000000fc0000
  1526. /* Description CV_CORR_STATUS
  1527. CV correlation status from 'PHYTX_CV_CORR_STATUS,' to be
  1528. copied from 'PCU_PPDU_SETUP_END' by TXPCU
  1529. <legal all>
  1530. */
  1531. #define TX_FES_STATUS_END_CV_CORR_STATUS_OFFSET 0x0000000000000050
  1532. #define TX_FES_STATUS_END_CV_CORR_STATUS_LSB 24
  1533. #define TX_FES_STATUS_END_CV_CORR_STATUS_MSB 31
  1534. #define TX_FES_STATUS_END_CV_CORR_STATUS_MASK 0x00000000ff000000
  1535. /* Description CURRENT_TX_DURATION
  1536. The duration of the transmission in us, copied over from
  1537. PCU_PPDU_SETUP_{END, START} as the case may be
  1538. <legal all>
  1539. */
  1540. #define TX_FES_STATUS_END_CURRENT_TX_DURATION_OFFSET 0x0000000000000050
  1541. #define TX_FES_STATUS_END_CURRENT_TX_DURATION_LSB 32
  1542. #define TX_FES_STATUS_END_CURRENT_TX_DURATION_MSB 47
  1543. #define TX_FES_STATUS_END_CURRENT_TX_DURATION_MASK 0x0000ffff00000000
  1544. /* Description RESERVED_21A
  1545. Bits [19:16]: num_cts2self_transmitted:
  1546. Number of CTS2SELF frames transmitted in this FES
  1547. <legal 0-15>
  1548. */
  1549. #define TX_FES_STATUS_END_RESERVED_21A_OFFSET 0x0000000000000050
  1550. #define TX_FES_STATUS_END_RESERVED_21A_LSB 48
  1551. #define TX_FES_STATUS_END_RESERVED_21A_MSB 63
  1552. #define TX_FES_STATUS_END_RESERVED_21A_MASK 0xffff000000000000
  1553. #endif // TX_FES_STATUS_END