tx_fes_setup.h 67 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617
  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_SETUP_H_
  16. #define _TX_FES_SETUP_H_
  17. #if !defined(__ASSEMBLER__)
  18. #endif
  19. #define NUM_OF_DWORDS_TX_FES_SETUP 10
  20. #define NUM_OF_QWORDS_TX_FES_SETUP 5
  21. struct tx_fes_setup {
  22. #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
  23. uint32_t schedule_id : 32; // [31:0]
  24. uint32_t fes_in_11ax_trigger_response_config : 1, // [0:0]
  25. bo_based_tid_aggregation_limit : 4, // [4:1]
  26. ranging : 1, // [5:5]
  27. expect_i2r_lmr : 1, // [6:6]
  28. transmit_start_reason : 3, // [9:7]
  29. use_alt_power_sr : 1, // [10:10]
  30. static_2_pwr_mode_status : 1, // [11:11]
  31. obss_srg_opport_transmit_status : 1, // [12:12]
  32. srp_based_transmit_status : 1, // [13:13]
  33. obss_pd_based_transmit_status : 1, // [14:14]
  34. puncture_from_all_allowed_modes : 1, // [15:15]
  35. schedule_cmd_ring_id : 5, // [20:16]
  36. fes_control_mode : 2, // [22:21]
  37. number_of_users : 6, // [28:23]
  38. mu_type : 1, // [29:29]
  39. ofdma_triggered_response : 1, // [30:30]
  40. response_to_response_cmd : 1; // [31:31]
  41. uint32_t schedule_try : 4, // [3:0]
  42. ndp_frame : 2, // [5:4]
  43. txbf : 1, // [6:6]
  44. allow_txop_exceed_in_1st_pkt : 1, // [7:7]
  45. ignore_bw_available : 1, // [8:8]
  46. ignore_tbtt : 1, // [9:9]
  47. static_bandwidth : 3, // [12:10]
  48. set_txop_duration_all_ones : 1, // [13:13]
  49. transmission_contains_mu_rts : 1, // [14:14]
  50. bw_restricted_frames_embedded : 1, // [15:15]
  51. ast_index : 16; // [31:16]
  52. uint32_t cv_id : 8, // [7:0]
  53. trigger_resp_txpdu_ppdu_boundary : 2, // [9:8]
  54. rxpcu_setup_complete_present : 1, // [10:10]
  55. rbo_must_have_data_user_limit : 4, // [14:11]
  56. mu_ndp : 1, // [15:15]
  57. bf_type : 2, // [17:16]
  58. cbf_nc_index_mask : 1, // [18:18]
  59. cbf_nc_index : 3, // [21:19]
  60. cbf_nr_index_mask : 1, // [22:22]
  61. cbf_nr_index : 3, // [25:23]
  62. secure_ranging_ista : 1, // [26:26]
  63. ndpa : 1, // [27:27]
  64. wait_sifs : 2, // [29:28]
  65. cbf_feedback_type_mask : 1, // [30:30]
  66. cbf_feedback_type : 1; // [31:31]
  67. uint32_t cbf_sounding_token : 6, // [5:0]
  68. cbf_sounding_token_mask : 1, // [6:6]
  69. cbf_bw_mask : 1, // [7:7]
  70. cbf_bw : 3, // [10:8]
  71. use_static_bw : 1, // [11:11]
  72. coex_nack_count : 5, // [16:12]
  73. sch_tx_burst_ongoing : 1, // [17:17]
  74. gen_tqm_update_mpdu_count_tlv : 1, // [18:18]
  75. transmit_vif : 4, // [22:19]
  76. optimal_bw_retry_count : 4, // [26:23]
  77. fes_continuation_ratio_threshold : 5; // [31:27]
  78. uint32_t transmit_cca_bitmap : 32; // [31:0]
  79. uint32_t tb_ranging : 1, // [0:0]
  80. ranging_trigger_subtype : 4, // [4:1]
  81. min_cts2self_count : 4, // [8:5]
  82. max_cts2self_count : 4, // [12:9]
  83. wifi_radar_enable : 1, // [13:13]
  84. reserved_6a : 18; // [31:14]
  85. uint32_t monitor_override_sta_31_0 : 32; // [31:0]
  86. uint32_t monitor_override_sta_36_32 : 5, // [4:0]
  87. reserved_8a : 27; // [31:5]
  88. uint32_t fw2sw_info : 32; // [31:0]
  89. #else
  90. uint32_t schedule_id : 32; // [31:0]
  91. uint32_t response_to_response_cmd : 1, // [31:31]
  92. ofdma_triggered_response : 1, // [30:30]
  93. mu_type : 1, // [29:29]
  94. number_of_users : 6, // [28:23]
  95. fes_control_mode : 2, // [22:21]
  96. schedule_cmd_ring_id : 5, // [20:16]
  97. puncture_from_all_allowed_modes : 1, // [15:15]
  98. obss_pd_based_transmit_status : 1, // [14:14]
  99. srp_based_transmit_status : 1, // [13:13]
  100. obss_srg_opport_transmit_status : 1, // [12:12]
  101. static_2_pwr_mode_status : 1, // [11:11]
  102. use_alt_power_sr : 1, // [10:10]
  103. transmit_start_reason : 3, // [9:7]
  104. expect_i2r_lmr : 1, // [6:6]
  105. ranging : 1, // [5:5]
  106. bo_based_tid_aggregation_limit : 4, // [4:1]
  107. fes_in_11ax_trigger_response_config : 1; // [0:0]
  108. uint32_t ast_index : 16, // [31:16]
  109. bw_restricted_frames_embedded : 1, // [15:15]
  110. transmission_contains_mu_rts : 1, // [14:14]
  111. set_txop_duration_all_ones : 1, // [13:13]
  112. static_bandwidth : 3, // [12:10]
  113. ignore_tbtt : 1, // [9:9]
  114. ignore_bw_available : 1, // [8:8]
  115. allow_txop_exceed_in_1st_pkt : 1, // [7:7]
  116. txbf : 1, // [6:6]
  117. ndp_frame : 2, // [5:4]
  118. schedule_try : 4; // [3:0]
  119. uint32_t cbf_feedback_type : 1, // [31:31]
  120. cbf_feedback_type_mask : 1, // [30:30]
  121. wait_sifs : 2, // [29:28]
  122. ndpa : 1, // [27:27]
  123. secure_ranging_ista : 1, // [26:26]
  124. cbf_nr_index : 3, // [25:23]
  125. cbf_nr_index_mask : 1, // [22:22]
  126. cbf_nc_index : 3, // [21:19]
  127. cbf_nc_index_mask : 1, // [18:18]
  128. bf_type : 2, // [17:16]
  129. mu_ndp : 1, // [15:15]
  130. rbo_must_have_data_user_limit : 4, // [14:11]
  131. rxpcu_setup_complete_present : 1, // [10:10]
  132. trigger_resp_txpdu_ppdu_boundary : 2, // [9:8]
  133. cv_id : 8; // [7:0]
  134. uint32_t fes_continuation_ratio_threshold : 5, // [31:27]
  135. optimal_bw_retry_count : 4, // [26:23]
  136. transmit_vif : 4, // [22:19]
  137. gen_tqm_update_mpdu_count_tlv : 1, // [18:18]
  138. sch_tx_burst_ongoing : 1, // [17:17]
  139. coex_nack_count : 5, // [16:12]
  140. use_static_bw : 1, // [11:11]
  141. cbf_bw : 3, // [10:8]
  142. cbf_bw_mask : 1, // [7:7]
  143. cbf_sounding_token_mask : 1, // [6:6]
  144. cbf_sounding_token : 6; // [5:0]
  145. uint32_t transmit_cca_bitmap : 32; // [31:0]
  146. uint32_t reserved_6a : 18, // [31:14]
  147. wifi_radar_enable : 1, // [13:13]
  148. max_cts2self_count : 4, // [12:9]
  149. min_cts2self_count : 4, // [8:5]
  150. ranging_trigger_subtype : 4, // [4:1]
  151. tb_ranging : 1; // [0:0]
  152. uint32_t monitor_override_sta_31_0 : 32; // [31:0]
  153. uint32_t reserved_8a : 27, // [31:5]
  154. monitor_override_sta_36_32 : 5; // [4:0]
  155. uint32_t fw2sw_info : 32; // [31:0]
  156. #endif
  157. };
  158. /* Description SCHEDULE_ID
  159. Consumer: PDG/TXDMA/TXOLE/TXCRYPTO/TXPCU
  160. Producer: SCH
  161. This field is overwritten by the scheduler module and it's
  162. value is coming from the"schedule_id" field in the Scheduler
  163. command.
  164. Configured by scheduler in HW transmit mode
  165. A field that HW copies over into the scheduling status report,
  166. so that SW can determine to which scheduler command the
  167. status report belongs.
  168. This schedule ID is also reported in the PPDU status.
  169. <legal all>
  170. */
  171. #define TX_FES_SETUP_SCHEDULE_ID_OFFSET 0x0000000000000000
  172. #define TX_FES_SETUP_SCHEDULE_ID_LSB 0
  173. #define TX_FES_SETUP_SCHEDULE_ID_MSB 31
  174. #define TX_FES_SETUP_SCHEDULE_ID_MASK 0x00000000ffffffff
  175. /* Description FES_IN_11AX_TRIGGER_RESPONSE_CONFIG
  176. Consumer: PDG/TXPCU
  177. Producer: SW
  178. When set, this scheduler command has some additional settings
  179. that PDG and TXPCU need to take into account, depending
  180. on if the transmission has been iniated as a backoff expiration
  181. or as the result of an 11ax trigger reception.
  182. 0: not in special trigger response config
  183. 1: command is special trigger response config.
  184. When set to 1, there are some programming limitations: There
  185. can only be 1 group, up to 8 users, SW shall have specified
  186. the AC for each user, and AC order per user is from BE
  187. to VO
  188. (see PDG_USER_SETUP, fields Triggered_mpdu_AC_category)
  189. <legal all>
  190. */
  191. #define TX_FES_SETUP_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_OFFSET 0x0000000000000000
  192. #define TX_FES_SETUP_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_LSB 32
  193. #define TX_FES_SETUP_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_MSB 32
  194. #define TX_FES_SETUP_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_MASK 0x0000000100000000
  195. /* Description BO_BASED_TID_AGGREGATION_LIMIT
  196. Consumer: PDG
  197. Producer: SW
  198. Field only valid when Ofdma_triggered_response is NOT set
  199. (=> implies transmission started due to backoff expiration)
  200. Field only valid for SU and "MU_SU" transmissions.
  201. The requirements for what to transmit depend on what the
  202. reason is that this transmission started. If it is 11ax
  203. trigger based, the trigger frame will specify all the constrains
  204. like max TID count, prefered AC, etc.
  205. However if this command starts executing due to backoff
  206. expiration, the requirements could be different from those
  207. that might have come from the trigger frame.
  208. This field specifies what the constaints are when the transmission
  209. is Backoff initiated.
  210. If zero, this feature is disabled.
  211. If non-zero, this indicates the number of users within a
  212. group that can be aggregated by a STA in a multi-TID A-MPDU.
  213. This can also be used to block the series of QoS-null MPDUs
  214. when an RBO+Trig queue transmits using RBO.
  215. Based on this number, PDG will mask of user numbers >= this
  216. count
  217. <legal all>
  218. */
  219. #define TX_FES_SETUP_BO_BASED_TID_AGGREGATION_LIMIT_OFFSET 0x0000000000000000
  220. #define TX_FES_SETUP_BO_BASED_TID_AGGREGATION_LIMIT_LSB 33
  221. #define TX_FES_SETUP_BO_BASED_TID_AGGREGATION_LIMIT_MSB 36
  222. #define TX_FES_SETUP_BO_BASED_TID_AGGREGATION_LIMIT_MASK 0x0000001e00000000
  223. /* Description RANGING
  224. Consumer: TXPCU
  225. Producer: SW
  226. Set to 1 in case the frame queued is:
  227. a .11az ranging NDPA,
  228. a .11az ranging NDP, or
  229. an ISTA2RSTA LMR.
  230. Set to 0 for all other cases.
  231. */
  232. #define TX_FES_SETUP_RANGING_OFFSET 0x0000000000000000
  233. #define TX_FES_SETUP_RANGING_LSB 37
  234. #define TX_FES_SETUP_RANGING_MSB 37
  235. #define TX_FES_SETUP_RANGING_MASK 0x0000002000000000
  236. /* Description EXPECT_I2R_LMR
  237. Consumer: TXPCU
  238. Producer: SW
  239. Set to 1 in case the frame queued is a .11az randing NDPA/NDP
  240. and if the ISTA2RSTA LMR frame is also queued after SIFS.
  241. Set to 0 otherwise.
  242. */
  243. #define TX_FES_SETUP_EXPECT_I2R_LMR_OFFSET 0x0000000000000000
  244. #define TX_FES_SETUP_EXPECT_I2R_LMR_LSB 38
  245. #define TX_FES_SETUP_EXPECT_I2R_LMR_MSB 38
  246. #define TX_FES_SETUP_EXPECT_I2R_LMR_MASK 0x0000004000000000
  247. /* Description TRANSMIT_START_REASON
  248. Indicates what the SCH start reason reason was for initiating
  249. this transmission.
  250. <enum 0 BO_based_transmit_start> The transmission of this
  251. PPDU got initiated by the scheduler due to Backoff expiration
  252. <enum 1 Trigger_based_transmit_start> The transmission of
  253. this PPDU got initiated by the scheduler due to reception
  254. (by the SCH) of the TLV RECEIVED_TRIGGER_INFO that RXPCU
  255. generated. Note that this can be an OFDMA trigger frame
  256. based transmission as well as some legacy trigger (PS-POLL,
  257. Qboost, U-APSD, etc.) based transmission
  258. <enum 2 Sifs_continuation_in_ongoing_burst> This transmission
  259. of this PPDU got initiated as part of SIFS continuation.
  260. An earlier PPDU was transmitted due to RBO expiration. Next
  261. command is also expected to be transmitted in SIFS burst.
  262. <enum 3 Sifs_continuation_last_command> This transmission
  263. of this PPDU got initiated as part of SIFS continuation
  264. and this is the last command in the burst. An earlier PPDU
  265. was transmitted due to RBO expiration.
  266. <enum 4 NTBR_response_start> DO NOT USE
  267. <legal 0-4>
  268. */
  269. #define TX_FES_SETUP_TRANSMIT_START_REASON_OFFSET 0x0000000000000000
  270. #define TX_FES_SETUP_TRANSMIT_START_REASON_LSB 39
  271. #define TX_FES_SETUP_TRANSMIT_START_REASON_MSB 41
  272. #define TX_FES_SETUP_TRANSMIT_START_REASON_MASK 0x0000038000000000
  273. /* Description USE_ALT_POWER_SR
  274. 0: Primary/default power1: Alternate power
  275. <legal all>
  276. */
  277. #define TX_FES_SETUP_USE_ALT_POWER_SR_OFFSET 0x0000000000000000
  278. #define TX_FES_SETUP_USE_ALT_POWER_SR_LSB 42
  279. #define TX_FES_SETUP_USE_ALT_POWER_SR_MSB 42
  280. #define TX_FES_SETUP_USE_ALT_POWER_SR_MASK 0x0000040000000000
  281. /* Description STATIC_2_PWR_MODE_STATUS
  282. 0: Static 2 power mode disabled1: Static 2 power mode enabled
  283. <legal all>
  284. */
  285. #define TX_FES_SETUP_STATIC_2_PWR_MODE_STATUS_OFFSET 0x0000000000000000
  286. #define TX_FES_SETUP_STATIC_2_PWR_MODE_STATUS_LSB 43
  287. #define TX_FES_SETUP_STATIC_2_PWR_MODE_STATUS_MSB 43
  288. #define TX_FES_SETUP_STATIC_2_PWR_MODE_STATUS_MASK 0x0000080000000000
  289. /* Description OBSS_SRG_OPPORT_TRANSMIT_STATUS
  290. 0: Transmit based on SRG OBSS_PD opportunity initiated1:
  291. Transmit based on non-SRG OBSS_PD opportunity initiated
  292. <legal all>
  293. */
  294. #define TX_FES_SETUP_OBSS_SRG_OPPORT_TRANSMIT_STATUS_OFFSET 0x0000000000000000
  295. #define TX_FES_SETUP_OBSS_SRG_OPPORT_TRANSMIT_STATUS_LSB 44
  296. #define TX_FES_SETUP_OBSS_SRG_OPPORT_TRANSMIT_STATUS_MSB 44
  297. #define TX_FES_SETUP_OBSS_SRG_OPPORT_TRANSMIT_STATUS_MASK 0x0000100000000000
  298. /* Description SRP_BASED_TRANSMIT_STATUS
  299. 0: non-SRP based transmit initiated1: SRP based transmit
  300. initiated
  301. <legal all>
  302. */
  303. #define TX_FES_SETUP_SRP_BASED_TRANSMIT_STATUS_OFFSET 0x0000000000000000
  304. #define TX_FES_SETUP_SRP_BASED_TRANSMIT_STATUS_LSB 45
  305. #define TX_FES_SETUP_SRP_BASED_TRANSMIT_STATUS_MSB 45
  306. #define TX_FES_SETUP_SRP_BASED_TRANSMIT_STATUS_MASK 0x0000200000000000
  307. /* Description OBSS_PD_BASED_TRANSMIT_STATUS
  308. 0: non-OBSS_PD based transmit initiated1: obss_pd based
  309. transmit initiated
  310. <legal all>
  311. */
  312. #define TX_FES_SETUP_OBSS_PD_BASED_TRANSMIT_STATUS_OFFSET 0x0000000000000000
  313. #define TX_FES_SETUP_OBSS_PD_BASED_TRANSMIT_STATUS_LSB 46
  314. #define TX_FES_SETUP_OBSS_PD_BASED_TRANSMIT_STATUS_MSB 46
  315. #define TX_FES_SETUP_OBSS_PD_BASED_TRANSMIT_STATUS_MASK 0x0000400000000000
  316. /* Description PUNCTURE_FROM_ALL_ALLOWED_MODES
  317. Enables new scheme 2 puncturing in Beryllium:
  318. TXPCU registers determine which puncture patterns (up to
  319. 37) are enabled for the transmission.
  320. 'TX_PUNCTURE_SETUP' is unused.
  321. <legal all>
  322. */
  323. #define TX_FES_SETUP_PUNCTURE_FROM_ALL_ALLOWED_MODES_OFFSET 0x0000000000000000
  324. #define TX_FES_SETUP_PUNCTURE_FROM_ALL_ALLOWED_MODES_LSB 47
  325. #define TX_FES_SETUP_PUNCTURE_FROM_ALL_ALLOWED_MODES_MSB 47
  326. #define TX_FES_SETUP_PUNCTURE_FROM_ALL_ALLOWED_MODES_MASK 0x0000800000000000
  327. /* Description SCHEDULE_CMD_RING_ID
  328. Consumer: PDG/TXDMA/TXOLE/TXCRYPTO/TXPCU
  329. Producer: SCH
  330. This field is overwritten by the scheduler module and its
  331. value is based on the scheduler ring where the command
  332. is initiated.
  333. The schedule command ring that originated this transmission
  334. <enum 0 sch_cmd_ring_number0>
  335. <enum 1 sch_cmd_ring_number1>
  336. <enum 2 sch_cmd_ring_number2>
  337. <enum 3 sch_cmd_ring_number3>
  338. <enum 4 sch_cmd_ring_number4>
  339. <enum 5 sch_cmd_ring_number5>
  340. <enum 6 sch_cmd_ring_number6>
  341. <enum 7 sch_cmd_ring_number7>
  342. <enum 8 sch_cmd_ring_number8>
  343. <enum 9 sch_cmd_ring_number9>
  344. <enum 10 sch_cmd_ring_number10>
  345. <enum 11 sch_cmd_ring_number11>
  346. <enum 12 sch_cmd_ring_number12>
  347. <enum 13 sch_cmd_ring_number13>
  348. <enum 14 sch_cmd_ring_number14>
  349. <enum 15 sch_cmd_ring_number15>
  350. <enum 16 sch_cmd_ring_number16>
  351. <enum 17 sch_cmd_ring_number17>
  352. <enum 18 sch_cmd_ring_number18>
  353. <enum 19 sch_cmd_ring_number19>
  354. <enum 20 sch_cmd_ring_number20>
  355. <legal 0-20>
  356. */
  357. #define TX_FES_SETUP_SCHEDULE_CMD_RING_ID_OFFSET 0x0000000000000000
  358. #define TX_FES_SETUP_SCHEDULE_CMD_RING_ID_LSB 48
  359. #define TX_FES_SETUP_SCHEDULE_CMD_RING_ID_MSB 52
  360. #define TX_FES_SETUP_SCHEDULE_CMD_RING_ID_MASK 0x001f000000000000
  361. /* Description FES_CONTROL_MODE
  362. Consumer: PDG/TXDMA/TXOLE/TXCRYPTO/TXPCU
  363. Producer: SCH
  364. This field is overwritten by the scheduler module and it's
  365. value is coming from the "FES_control_mode" field in the
  366. Scheduler command.
  367. <enum 0 SW_transmit_mode> No HW generated TLVs
  368. <enum 1 PDG_transmit_mode> PDG is activated to generate
  369. TLVs
  370. Note: Final Bandwidth selection is always performed by TX
  371. PCU.
  372. <legal 0-1>
  373. */
  374. #define TX_FES_SETUP_FES_CONTROL_MODE_OFFSET 0x0000000000000000
  375. #define TX_FES_SETUP_FES_CONTROL_MODE_LSB 53
  376. #define TX_FES_SETUP_FES_CONTROL_MODE_MSB 54
  377. #define TX_FES_SETUP_FES_CONTROL_MODE_MASK 0x0060000000000000
  378. /* Description NUMBER_OF_USERS
  379. Consumer: PDG/TXDMA/TXOLE/TXCRYPTO/TXPCU
  380. Producer: SCH
  381. The number of users in this transmission. Can be MU-MIMO
  382. or OFDMA in case the number is > 1
  383. <legal 1-63>
  384. */
  385. #define TX_FES_SETUP_NUMBER_OF_USERS_OFFSET 0x0000000000000000
  386. #define TX_FES_SETUP_NUMBER_OF_USERS_LSB 55
  387. #define TX_FES_SETUP_NUMBER_OF_USERS_MSB 60
  388. #define TX_FES_SETUP_NUMBER_OF_USERS_MASK 0x1f80000000000000
  389. /* Description MU_TYPE
  390. In case the Number_of_users > 1, the transmission could
  391. be MU or OFDMA.
  392. This field indicates which one it is.
  393. 0: MU-MIMO
  394. 1: OFDMA
  395. In case the number_of_user == 1, and PDG_FES_SETUP.mu_su_transmission
  396. is set, this field indicates:0: SU transmitted in MU MIMO
  397. format in compressed mode;1: SU transmitted in MU-OFDMA
  398. format in uncompressed mode
  399. Note: Within OFDMA classification, it could be that within
  400. one or more RUs there will be MIMO transmission...This
  401. is still considered as an 'OFDMA' class of MU transmission.
  402. <legal all>
  403. */
  404. #define TX_FES_SETUP_MU_TYPE_OFFSET 0x0000000000000000
  405. #define TX_FES_SETUP_MU_TYPE_LSB 61
  406. #define TX_FES_SETUP_MU_TYPE_MSB 61
  407. #define TX_FES_SETUP_MU_TYPE_MASK 0x2000000000000000
  408. /* Description OFDMA_TRIGGERED_RESPONSE
  409. Consumer: TXPCU/PDG
  410. Producer: SCH/SW
  411. SW should always set this bit to 0
  412. SCH will always overwrite this field and set it to the appropriate
  413. value for the upcoming transmission.
  414. When set (by SCH), this FES is initiated as a result of
  415. receiving an OFDMA transmit trigger. PDG already has received
  416. all transmit info from RXPCU. PDG can ignore most of the
  417. transmit initialization info.
  418. <legal all>
  419. */
  420. #define TX_FES_SETUP_OFDMA_TRIGGERED_RESPONSE_OFFSET 0x0000000000000000
  421. #define TX_FES_SETUP_OFDMA_TRIGGERED_RESPONSE_LSB 62
  422. #define TX_FES_SETUP_OFDMA_TRIGGERED_RESPONSE_MSB 62
  423. #define TX_FES_SETUP_OFDMA_TRIGGERED_RESPONSE_MASK 0x4000000000000000
  424. /* Description RESPONSE_TO_RESPONSE_CMD
  425. When set, this scheduler command contains the transmission
  426. control for the response_to_response transmission
  427. <legal all>
  428. */
  429. #define TX_FES_SETUP_RESPONSE_TO_RESPONSE_CMD_OFFSET 0x0000000000000000
  430. #define TX_FES_SETUP_RESPONSE_TO_RESPONSE_CMD_LSB 63
  431. #define TX_FES_SETUP_RESPONSE_TO_RESPONSE_CMD_MSB 63
  432. #define TX_FES_SETUP_RESPONSE_TO_RESPONSE_CMD_MASK 0x8000000000000000
  433. /* Description SCHEDULE_TRY
  434. Consumer: TXPCU
  435. Producer: SCH
  436. This field is overwritten by the scheduler module and it's
  437. value is coming from an internal counter in the scheduler
  438. that keeps track of how many times a scheduling command
  439. has been tried.
  440. This count indicates how many times the FES did not successfully
  441. complete as the ACK/BA frame did not get received.
  442. <legal all>
  443. */
  444. #define TX_FES_SETUP_SCHEDULE_TRY_OFFSET 0x0000000000000008
  445. #define TX_FES_SETUP_SCHEDULE_TRY_LSB 0
  446. #define TX_FES_SETUP_SCHEDULE_TRY_MSB 3
  447. #define TX_FES_SETUP_SCHEDULE_TRY_MASK 0x000000000000000f
  448. /* Description NDP_FRAME
  449. Consumer: PDG/TXPCU
  450. Producer: SCH
  451. When set, the scheduling command contains an NDP frame.
  452. This can only be done using the SW transmit mode.
  453. <enum 0 no_ndp>No NDP transmission
  454. <enum 1 beamforming_ndp>Beamforming NDP
  455. <enum 2 he_ranging_ndp>11az NDP (HE Ranging NDP)
  456. <enum 3 he_feedback_ndp>Short TB (HE Feedback NDP)
  457. */
  458. #define TX_FES_SETUP_NDP_FRAME_OFFSET 0x0000000000000008
  459. #define TX_FES_SETUP_NDP_FRAME_LSB 4
  460. #define TX_FES_SETUP_NDP_FRAME_MSB 5
  461. #define TX_FES_SETUP_NDP_FRAME_MASK 0x0000000000000030
  462. /* Description TXBF
  463. Consumer: PDG/TXPCU
  464. Producer: SCH
  465. If set, this bit indicates that this is a TX beamformed
  466. SU transaction or MU transaction
  467. In case of a beamformed transmission, note that in the PCU_PPDU_SETUP_INIT
  468. TLV, SW can narrow down for which of the BW the beamforming
  469. shall take place. For example, SW can decide that BW is
  470. only desired for 40MHz BW, but not for 20...
  471. If for any of the allowed BW, beamforming is desired, this
  472. field should be set, and the 'bf_type' shall be properly
  473. programmed.
  474. TXPCU controls with bit 'beamforming' in the MACTX_PRE_PHY_DESC
  475. if the final actual transmission shall be beamformed.
  476. */
  477. #define TX_FES_SETUP_TXBF_OFFSET 0x0000000000000008
  478. #define TX_FES_SETUP_TXBF_LSB 6
  479. #define TX_FES_SETUP_TXBF_MSB 6
  480. #define TX_FES_SETUP_TXBF_MASK 0x0000000000000040
  481. /* Description ALLOW_TXOP_EXCEED_IN_1ST_PKT
  482. Consumer: PDG
  483. Producer: SCH
  484. Field only valid for SU transmissions.
  485. When set, a single MPDU transmission after RBO is allowed
  486. to exceed TXOP. In this setting, this field has priority
  487. over the setting of the duration_field_boundary. Reason
  488. for this is that if Coex issues on the receiver STA start
  489. preventing the transmission of frames on this device, it
  490. can lead to a death spiral. With some luck, this frame
  491. although maybe too long, might still be received.
  492. When 0, single MPDU after RBO is not allowed to exceed TXOP.
  493. <legal all>
  494. */
  495. #define TX_FES_SETUP_ALLOW_TXOP_EXCEED_IN_1ST_PKT_OFFSET 0x0000000000000008
  496. #define TX_FES_SETUP_ALLOW_TXOP_EXCEED_IN_1ST_PKT_LSB 7
  497. #define TX_FES_SETUP_ALLOW_TXOP_EXCEED_IN_1ST_PKT_MSB 7
  498. #define TX_FES_SETUP_ALLOW_TXOP_EXCEED_IN_1ST_PKT_MASK 0x0000000000000080
  499. /* Description IGNORE_BW_AVAILABLE
  500. Consumer: TXPCU
  501. Producer: SCH
  502. If set, TXPCU ignores 'BW available signals' from the scheduler
  503. and transmit using the single BW that SW has programmed
  504. the transmission to go out in. This bit should be set for
  505. SIFS response frame to PS-Poll/uAPSD/QBoost and note that
  506. for this mode, SW is only allowed to program a single transmit
  507. BW.
  508. Also note that this bit can not be set in combination with
  509. preamble puncturing.
  510. <legal all>
  511. */
  512. #define TX_FES_SETUP_IGNORE_BW_AVAILABLE_OFFSET 0x0000000000000008
  513. #define TX_FES_SETUP_IGNORE_BW_AVAILABLE_LSB 8
  514. #define TX_FES_SETUP_IGNORE_BW_AVAILABLE_MSB 8
  515. #define TX_FES_SETUP_IGNORE_BW_AVAILABLE_MASK 0x0000000000000100
  516. /* Description IGNORE_TBTT
  517. Consumer: PDG
  518. Producer: SCH
  519. If set, PDG ignores remaining TBTTs in PPDU time calculation.
  520. <legal all>
  521. */
  522. #define TX_FES_SETUP_IGNORE_TBTT_OFFSET 0x0000000000000008
  523. #define TX_FES_SETUP_IGNORE_TBTT_LSB 9
  524. #define TX_FES_SETUP_IGNORE_TBTT_MSB 9
  525. #define TX_FES_SETUP_IGNORE_TBTT_MASK 0x0000000000000200
  526. /* Description STATIC_BANDWIDTH
  527. Consumer: PDG/TXPCU
  528. Producer: SCH
  529. Field is reserved when use_static_bw is clear.
  530. <enum 0 20_mhz>20 Mhz BW
  531. <enum 1 40_mhz>40 Mhz BW
  532. <enum 2 80_mhz>80 Mhz BW
  533. <enum 3 160_mhz>160 Mhz BW
  534. <enum 4 320_mhz>320 Mhz BW
  535. <enum 5 240_mhz>240 Mhz BW
  536. */
  537. #define TX_FES_SETUP_STATIC_BANDWIDTH_OFFSET 0x0000000000000008
  538. #define TX_FES_SETUP_STATIC_BANDWIDTH_LSB 10
  539. #define TX_FES_SETUP_STATIC_BANDWIDTH_MSB 12
  540. #define TX_FES_SETUP_STATIC_BANDWIDTH_MASK 0x0000000000001c00
  541. /* Description SET_TXOP_DURATION_ALL_ONES
  542. Consumer: PDG
  543. Producer: SCH
  544. When set, SW embedded a PS_POLL frame in this transmission
  545. or the frame in this transmission is for a BSS with BSS
  546. Color disabled, e.g. due to BSS color collision.
  547. PDG sets the TXOP_DURATION of the transmit PPDU to all 1s.
  548. <legal all>
  549. */
  550. #define TX_FES_SETUP_SET_TXOP_DURATION_ALL_ONES_OFFSET 0x0000000000000008
  551. #define TX_FES_SETUP_SET_TXOP_DURATION_ALL_ONES_LSB 13
  552. #define TX_FES_SETUP_SET_TXOP_DURATION_ALL_ONES_MSB 13
  553. #define TX_FES_SETUP_SET_TXOP_DURATION_ALL_ONES_MASK 0x0000000000002000
  554. /* Description TRANSMISSION_CONTAINS_MU_RTS
  555. Consumer: PDG
  556. Producer: SCH
  557. When set, SW embedded a MU-RTS trigger frame in this transmission.
  558. TXPCU will have to do something special for this with the
  559. CTS response timeout (whose value comes from a MU-CTS timeout
  560. register)
  561. <legal all>
  562. */
  563. #define TX_FES_SETUP_TRANSMISSION_CONTAINS_MU_RTS_OFFSET 0x0000000000000008
  564. #define TX_FES_SETUP_TRANSMISSION_CONTAINS_MU_RTS_LSB 14
  565. #define TX_FES_SETUP_TRANSMISSION_CONTAINS_MU_RTS_MSB 14
  566. #define TX_FES_SETUP_TRANSMISSION_CONTAINS_MU_RTS_MASK 0x0000000000004000
  567. /* Description BW_RESTRICTED_FRAMES_EMBEDDED
  568. Consumer: TXPCU
  569. Producer: SW
  570. This bit should be set by SW when the transmission includes
  571. bandwidth restricted frames. As a result of this bit being
  572. set, TXPCU will hold of indicating that buffer space is
  573. available to TXDMA till the BW decision is done. This allows
  574. TXPCU to drop the BW restricted frames at SFM input.
  575. <legal all>
  576. */
  577. #define TX_FES_SETUP_BW_RESTRICTED_FRAMES_EMBEDDED_OFFSET 0x0000000000000008
  578. #define TX_FES_SETUP_BW_RESTRICTED_FRAMES_EMBEDDED_LSB 15
  579. #define TX_FES_SETUP_BW_RESTRICTED_FRAMES_EMBEDDED_MSB 15
  580. #define TX_FES_SETUP_BW_RESTRICTED_FRAMES_EMBEDDED_MASK 0x0000000000008000
  581. /* Description AST_INDEX
  582. Consumer: RXPCU
  583. Producer: SCH
  584. Used for implicit BF sounding capture on receive Ack/BA.
  585. The RXPCU needs to tag the receive sounding with ast_index
  586. so FW will know which STA is associated with Ack/BA sounding.
  587. <legal all>
  588. */
  589. #define TX_FES_SETUP_AST_INDEX_OFFSET 0x0000000000000008
  590. #define TX_FES_SETUP_AST_INDEX_LSB 16
  591. #define TX_FES_SETUP_AST_INDEX_MSB 31
  592. #define TX_FES_SETUP_AST_INDEX_MASK 0x00000000ffff0000
  593. /* Description CV_ID
  594. Consumer: TXPCU
  595. Producer: SCH
  596. This field is only valid when expect_cbf is set.
  597. A unique ID corresponding to the CV data expected from the
  598. CBF frame.
  599. TXPCU copies this field over to the TX_FES_STATUS TLV
  600. <legal all>
  601. */
  602. #define TX_FES_SETUP_CV_ID_OFFSET 0x0000000000000008
  603. #define TX_FES_SETUP_CV_ID_LSB 32
  604. #define TX_FES_SETUP_CV_ID_MSB 39
  605. #define TX_FES_SETUP_CV_ID_MASK 0x000000ff00000000
  606. /* Description TRIGGER_RESP_TXPDU_PPDU_BOUNDARY
  607. This field indicates to TXPCU how far into the 11ax trigger
  608. response transmission, TXPCU should still accept Trigger
  609. response related configuration info from the SCHEDULER (and
  610. PDG) to be processed.
  611. The field indicates a percentage of the total byte count
  612. to be given to the PHY, up to which point TXPCU will still
  613. accept all the setup related TLVS to arrive. After that,
  614. TXPCU will ignore any remaining setup TLVs to come in and
  615. not initiate any MPDU based transfers to the PHY anymore.
  616. This is to help avoid corner cases.
  617. If any setup TLVs did arrive after this point, TXPCU will
  618. keep on continuing giving NULL data to the PHY, but once
  619. PHYTX_PKT_END is received, TXPCU shall issue a FLUSH request
  620. to the SCH, with flush code: TXPCU_TRIG_RESPONSE_INFO_TOO_LATE
  621. TXPCU should not abort the transmission halfway, as that
  622. can cause problems for the MU UL receiver...
  623. <enum 0 txpcu_trig_response_boundary_75> TXPCU will not
  624. initiate SCH based MPDU transfers after 75% of the PPDU
  625. octed count has already been given to the PHY.
  626. <enum 1 txpcu_trig_response_boundary_50> TXPCU will not
  627. initiate SCH based MPDU transfers after 50% of the PPDU
  628. octed count has already been given to the PHY.
  629. <enum 2 txpcu_trig_response_boundary_25> TXPCU will not
  630. initiate SCH based MPDU transfers after 75% of the PPDU
  631. octed count has already been given to the PHY.
  632. Note that if TXPCU receives a TX_FES_SETUP with "11ax trigger
  633. response transmission" set, and it had already finished
  634. sending a response , it should generate a flush with code:
  635. TXPCU_TRIG_RESPONSE_MODE_CORRUPTION
  636. <legal 0-2>
  637. */
  638. #define TX_FES_SETUP_TRIGGER_RESP_TXPDU_PPDU_BOUNDARY_OFFSET 0x0000000000000008
  639. #define TX_FES_SETUP_TRIGGER_RESP_TXPDU_PPDU_BOUNDARY_LSB 40
  640. #define TX_FES_SETUP_TRIGGER_RESP_TXPDU_PPDU_BOUNDARY_MSB 41
  641. #define TX_FES_SETUP_TRIGGER_RESP_TXPDU_PPDU_BOUNDARY_MASK 0x0000030000000000
  642. /* Description RXPCU_SETUP_COMPLETE_PRESENT
  643. To notify current TXFES use new mode and delay "RXPCU_*_SETUP"
  644. for HWSCH/TXPCU/RXPCU module
  645. <legal all>
  646. */
  647. #define TX_FES_SETUP_RXPCU_SETUP_COMPLETE_PRESENT_OFFSET 0x0000000000000008
  648. #define TX_FES_SETUP_RXPCU_SETUP_COMPLETE_PRESENT_LSB 42
  649. #define TX_FES_SETUP_RXPCU_SETUP_COMPLETE_PRESENT_MSB 42
  650. #define TX_FES_SETUP_RXPCU_SETUP_COMPLETE_PRESENT_MASK 0x0000040000000000
  651. /* Description RBO_MUST_HAVE_DATA_USER_LIMIT
  652. Consumer: PDG
  653. Producer: SW
  654. Field only valid when Ofdma_triggered_response is NOT set
  655. (=> implies transmission started due to backoff expiration)
  656. Field only valid for SU and "MU_SU" transmissions.
  657. The requirements for what to transmit depend on what the
  658. reason is that this transmission started. If it is 11ax
  659. trigger based, the trigger frame will specify all the constrains
  660. like max TID count, prefered AC, etc.
  661. However if this command starts executing due to backoff
  662. expiration, the requirements could be different from those
  663. that might have come from the trigger frame.
  664. This field specifies what the constaints are when the transmission
  665. is Backoff initiated.
  666. When set to 0, this feature is disabled
  667. When set to 1, user 0 must have data otherwise PDG should
  668. flush the transmission
  669. When set to 2, user 0 AND/OR user 1 must have data otherwise
  670. PDG should flush the transmission
  671. When set to 3, user 0 AND/OR user 1 AND/OR user 2 must have
  672. data otherwise PDG should flush the transmission
  673. ...
  674. <legal all>
  675. */
  676. #define TX_FES_SETUP_RBO_MUST_HAVE_DATA_USER_LIMIT_OFFSET 0x0000000000000008
  677. #define TX_FES_SETUP_RBO_MUST_HAVE_DATA_USER_LIMIT_LSB 43
  678. #define TX_FES_SETUP_RBO_MUST_HAVE_DATA_USER_LIMIT_MSB 46
  679. #define TX_FES_SETUP_RBO_MUST_HAVE_DATA_USER_LIMIT_MASK 0x0000780000000000
  680. /* Description MU_NDP
  681. Field only valid when ndp_frame is set.
  682. If set indicates that this packet is an NDP used for MU
  683. channel estimation. This bit will be used by the TPC to
  684. signal that the analog gain settings can be updated. The
  685. analog gain settings will not change for subsequent MU
  686. data packets.
  687. <legal all>
  688. */
  689. #define TX_FES_SETUP_MU_NDP_OFFSET 0x0000000000000008
  690. #define TX_FES_SETUP_MU_NDP_LSB 47
  691. #define TX_FES_SETUP_MU_NDP_MSB 47
  692. #define TX_FES_SETUP_MU_NDP_MASK 0x0000800000000000
  693. /* Description BF_TYPE
  694. Consumer: PDG/TXPCU
  695. Producer: SCH
  696. Field is ONLY valid when 'txbf' is set...
  697. Defines the type of beamforming that is required using this
  698. transmission.
  699. Note that in the PCU_PPDU_SETUP_INIT TLV, SW can narrow
  700. down for which BW the beamforming shall take place. For
  701. example, SW can decide that BW is only desired for 40MHz
  702. BW, but not for 20...
  703. If for any of the allowed BW, beamforming is desired, this
  704. field should indicate which type of BF.
  705. <enum 0 NO_BF>
  706. <enum 1 LEGACY_BF>
  707. <enum 2 SU_BF>
  708. <enum 3 MU_BF>
  709. <legal all>
  710. */
  711. #define TX_FES_SETUP_BF_TYPE_OFFSET 0x0000000000000008
  712. #define TX_FES_SETUP_BF_TYPE_LSB 48
  713. #define TX_FES_SETUP_BF_TYPE_MSB 49
  714. #define TX_FES_SETUP_BF_TYPE_MASK 0x0003000000000000
  715. /* Description CBF_NC_INDEX_MASK
  716. Consumer: TXPCU
  717. Producer: SCH
  718. When set, TXPCU shall confirm that the received cbf_nc_index
  719. is equal to the expected one, indicated by field: cbf_nc_index
  720. This field is only allowed to be set in case of a single
  721. SU CBF reception.
  722. <legal all>
  723. */
  724. #define TX_FES_SETUP_CBF_NC_INDEX_MASK_OFFSET 0x0000000000000008
  725. #define TX_FES_SETUP_CBF_NC_INDEX_MASK_LSB 50
  726. #define TX_FES_SETUP_CBF_NC_INDEX_MASK_MSB 50
  727. #define TX_FES_SETUP_CBF_NC_INDEX_MASK_MASK 0x0004000000000000
  728. /* Description CBF_NC_INDEX
  729. Consumer: TXPCU
  730. Producer: SCH
  731. Field only valid when cbf_nc_index_mask is set
  732. Expected Nc_index of received CBF frame after sending NDP
  733. or BR-Poll.
  734. <enum 0 nc_1>
  735. <enum 1 nc_2>
  736. <enum 2 nc_3>
  737. <enum 3 nc_4>
  738. <enum 4 nc_5>
  739. <enum 5 nc_6>
  740. <enum 6 nc_7>
  741. <enum 7 nc_8>
  742. <legal 0-7>
  743. */
  744. #define TX_FES_SETUP_CBF_NC_INDEX_OFFSET 0x0000000000000008
  745. #define TX_FES_SETUP_CBF_NC_INDEX_LSB 51
  746. #define TX_FES_SETUP_CBF_NC_INDEX_MSB 53
  747. #define TX_FES_SETUP_CBF_NC_INDEX_MASK 0x0038000000000000
  748. /* Description CBF_NR_INDEX_MASK
  749. Consumer: TXPCU
  750. Producer: SCH
  751. When set, TXPCU shall confirm that the received cbf_nr_index
  752. is equal to the expected one, indicated in the field: cbf_nr_index
  753. This field is only allowed to be set in case of a single
  754. SU CBF reception.
  755. <legal all>
  756. */
  757. #define TX_FES_SETUP_CBF_NR_INDEX_MASK_OFFSET 0x0000000000000008
  758. #define TX_FES_SETUP_CBF_NR_INDEX_MASK_LSB 54
  759. #define TX_FES_SETUP_CBF_NR_INDEX_MASK_MSB 54
  760. #define TX_FES_SETUP_CBF_NR_INDEX_MASK_MASK 0x0040000000000000
  761. /* Description CBF_NR_INDEX
  762. Expected Nr_index of received CBF frame after sending NDP
  763. or BR-Poll. This field is compared only if cbf_nr_index_mask
  764. is set to 1.
  765. <enum 0 nr_1>
  766. <enum 1 nr_2>
  767. <enum 2 nr_3>
  768. <enum 3 nr_4>
  769. <enum 4 nr_5>
  770. <enum 5 nr_6>
  771. <enum 6 nr_7>
  772. <enum 7 nr_8>
  773. <legal 0-7>
  774. */
  775. #define TX_FES_SETUP_CBF_NR_INDEX_OFFSET 0x0000000000000008
  776. #define TX_FES_SETUP_CBF_NR_INDEX_LSB 55
  777. #define TX_FES_SETUP_CBF_NR_INDEX_MSB 57
  778. #define TX_FES_SETUP_CBF_NR_INDEX_MASK 0x0380000000000000
  779. /* Description SECURE_RANGING_ISTA
  780. Consumer: Crypto
  781. Producer: SW
  782. If set to 1, Crypto will use the 'TX_PEER_ENTRY' for encryption
  783. but not for the 'TX_DATA' from TXOLE interface but will
  784. wait for 'LMR_{MPDU_START, DATA, MPDU_END}' TLVs from TXPCU
  785. to encrypt the ISTA2RSTA LMR.
  786. If set to 0, Crypto will encrypt 'TX_DATA' as for any non-.11az-ranging
  787. frame.
  788. */
  789. #define TX_FES_SETUP_SECURE_RANGING_ISTA_OFFSET 0x0000000000000008
  790. #define TX_FES_SETUP_SECURE_RANGING_ISTA_LSB 58
  791. #define TX_FES_SETUP_SECURE_RANGING_ISTA_MSB 58
  792. #define TX_FES_SETUP_SECURE_RANGING_ISTA_MASK 0x0400000000000000
  793. /* Description NDPA
  794. When set, this packet is an NDP announcement.
  795. */
  796. #define TX_FES_SETUP_NDPA_OFFSET 0x0000000000000008
  797. #define TX_FES_SETUP_NDPA_LSB 59
  798. #define TX_FES_SETUP_NDPA_MSB 59
  799. #define TX_FES_SETUP_NDPA_MASK 0x0800000000000000
  800. /* Description WAIT_SIFS
  801. Consumer: TXPCU
  802. Producer: SCH
  803. This field is passed over to the tx_phy_desc by the PDG
  804. module. If set, the AMPI will hold this tx_phy_desc TLV
  805. from the TX PCU until SIFS has elapsed and then forward
  806. the tx_phy_desc to the PHY. The PHY should ignore this
  807. bit. This bit is used to make sure that transmit SIFS response
  808. to a receive frame is cycle accurate and consistent to
  809. enable accurate RTT measurement.
  810. <enum 0 NO_SIFS_TIMING> Transmission shall start with the
  811. normal delay in PHY after receiving this notification
  812. <enum 1 SIFS_TIMING_DESIRED> Transmission shall be made
  813. at the SIFS boundary. If shall never start before SIFS boundary,
  814. but if it a little later, it is not ideal and should be
  815. flagged, but transmission shall not be aborted.
  816. <enum 2 SIFS_TIMING_MANDATED> Transmission shall be made
  817. at exactly SIFS boundary. If this notification is received
  818. by the PHY after SIFS boundary already passed, the PHY
  819. shall abort the transmission
  820. <legal 0-2>
  821. */
  822. #define TX_FES_SETUP_WAIT_SIFS_OFFSET 0x0000000000000008
  823. #define TX_FES_SETUP_WAIT_SIFS_LSB 60
  824. #define TX_FES_SETUP_WAIT_SIFS_MSB 61
  825. #define TX_FES_SETUP_WAIT_SIFS_MASK 0x3000000000000000
  826. /* Description CBF_FEEDBACK_TYPE_MASK
  827. Consumer: TXPCU
  828. Producer: SCH
  829. When set, TXPCU shall confirm that the cbf_feedback_type
  830. is equal to the expected one, indicated in the field: cbf_feedback_type
  831. This field is only allowed to be set in case of a single
  832. SU CBF reception.
  833. <legal all>
  834. */
  835. #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK_OFFSET 0x0000000000000008
  836. #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK_LSB 62
  837. #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK_MSB 62
  838. #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK_MASK 0x4000000000000000
  839. /* Description CBF_FEEDBACK_TYPE
  840. Consumer: TXPCU
  841. Producer: SCH
  842. Expected feedback type of received CBF frame after sending
  843. NDP or BR-Poll. This field is compared only if cbf_feedback_type_mask
  844. is set to 1.
  845. <enum 0 SU>
  846. <enum 1 MU>
  847. <legal all>
  848. */
  849. #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_OFFSET 0x0000000000000008
  850. #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_LSB 63
  851. #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MSB 63
  852. #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK 0x8000000000000000
  853. /* Description CBF_SOUNDING_TOKEN
  854. Consumer: TXPCU
  855. Producer: SCH
  856. Expected sounding token of received CBF frame after sending
  857. NDP or BR-Poll. This field is compared only if cbf_sounding_token_mask
  858. is set to 1.
  859. <legal all>
  860. */
  861. #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_OFFSET 0x0000000000000010
  862. #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_LSB 0
  863. #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MSB 5
  864. #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK 0x000000000000003f
  865. /* Description CBF_SOUNDING_TOKEN_MASK
  866. Consumer: TXPCU
  867. Producer: SCH
  868. When set, TXPCU shall confirm that the cbf_sounding_token
  869. is equal to the expected one, indicated in the field: cbf_sounding_token
  870. This field is only allowed to be set in case of a single
  871. SU CBF reception.
  872. <legal all>
  873. */
  874. #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK_OFFSET 0x0000000000000010
  875. #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK_LSB 6
  876. #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK_MSB 6
  877. #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK_MASK 0x0000000000000040
  878. /* Description CBF_BW_MASK
  879. Consumer: TXPCU
  880. Producer: SCH
  881. When set, TXPCU shall confirm that the cbf_bw_mask is equal
  882. to the expected one, indicated in the field: cbf_bw
  883. This field is only allowed to be set in case of a single
  884. SU CBF reception.
  885. <legal all>
  886. */
  887. #define TX_FES_SETUP_CBF_BW_MASK_OFFSET 0x0000000000000010
  888. #define TX_FES_SETUP_CBF_BW_MASK_LSB 7
  889. #define TX_FES_SETUP_CBF_BW_MASK_MSB 7
  890. #define TX_FES_SETUP_CBF_BW_MASK_MASK 0x0000000000000080
  891. /* Description CBF_BW
  892. Consumer: TXPCU
  893. Producer: SCH
  894. Expected channel width of received CBF frame after sending
  895. NDP or BR-Poll. This field is compared only if cbf_bw_mask
  896. is set to 1.
  897. <enum 0 20_mhz>20 Mhz BW
  898. <enum 1 40_mhz>40 Mhz BW
  899. <enum 2 80_mhz>80 Mhz BW
  900. <enum 3 160_mhz>160 Mhz BW
  901. <enum 4 320_mhz>320 Mhz BW
  902. <enum 5 240_mhz>240 Mhz BW
  903. */
  904. #define TX_FES_SETUP_CBF_BW_OFFSET 0x0000000000000010
  905. #define TX_FES_SETUP_CBF_BW_LSB 8
  906. #define TX_FES_SETUP_CBF_BW_MSB 10
  907. #define TX_FES_SETUP_CBF_BW_MASK 0x0000000000000700
  908. /* Description USE_STATIC_BW
  909. Consumer: TXPCU
  910. Producer: SCH
  911. Part of TX_BF_PARAMS: This field is used to indicate to
  912. the SVD that the b/w that will be defined in the TX_PHY_DESC
  913. for the upcoming TXBF packet will be the same as the static
  914. bandwidth, i.e. the bandwidth that was in operation during
  915. sounding for the clients in question
  916. <legal all>
  917. */
  918. #define TX_FES_SETUP_USE_STATIC_BW_OFFSET 0x0000000000000010
  919. #define TX_FES_SETUP_USE_STATIC_BW_LSB 11
  920. #define TX_FES_SETUP_USE_STATIC_BW_MSB 11
  921. #define TX_FES_SETUP_USE_STATIC_BW_MASK 0x0000000000000800
  922. /* Description COEX_NACK_COUNT
  923. Consumer: TXPCU
  924. Producer: SCH
  925. The number of times PDG informed the SCHeduler module that
  926. for this scheduling command, the WLAN transmission can
  927. not be initialized due to getting a NACK response from the
  928. Coex engine, or PDG not being able to fit a transmission
  929. within the timing constraints given by Coex.
  930. Note that SCH will (re)set this count to 0 at the start
  931. of reading a new SCH command.
  932. This count is maintained on a per ring basis by the SCHeduler
  933. <legal all>
  934. */
  935. #define TX_FES_SETUP_COEX_NACK_COUNT_OFFSET 0x0000000000000010
  936. #define TX_FES_SETUP_COEX_NACK_COUNT_LSB 12
  937. #define TX_FES_SETUP_COEX_NACK_COUNT_MSB 16
  938. #define TX_FES_SETUP_COEX_NACK_COUNT_MASK 0x000000000001f000
  939. /* Description SCH_TX_BURST_ONGOING
  940. Consumer: PDG/TXPCU
  941. Producer: SCH
  942. This field is overwritten by the scheduler module and it's
  943. value is coming from the" sifs_burst_continuation" field
  944. in the Scheduler command.
  945. 0: No action
  946. 1: The next scheduling command needs to start at SIFS time
  947. after finishing the frame transmissions in this command.
  948. This allows for SIFS based bursting
  949. <legal all>
  950. */
  951. #define TX_FES_SETUP_SCH_TX_BURST_ONGOING_OFFSET 0x0000000000000010
  952. #define TX_FES_SETUP_SCH_TX_BURST_ONGOING_LSB 17
  953. #define TX_FES_SETUP_SCH_TX_BURST_ONGOING_MSB 17
  954. #define TX_FES_SETUP_SCH_TX_BURST_ONGOING_MASK 0x0000000000020000
  955. /* Description GEN_TQM_UPDATE_MPDU_COUNT_TLV
  956. Consumer: TXPCU
  957. Producer: SW
  958. NOTE: When PDG is configured to do transmissions in SW mode,
  959. this bit shall NEVER be set.
  960. When set, TXPCU shall generate the TQM_UPDATE_TX_MPDU_COUNT
  961. TLV immediately after PPDU transmission has finished (and
  962. before any response frame might have been received)
  963. When set, SW shall also generate the RXPCU_USER_SETUP TLVs
  964. as this is where TXPCU will get the MPDU_queue addresses.
  965. <legal all>
  966. */
  967. #define TX_FES_SETUP_GEN_TQM_UPDATE_MPDU_COUNT_TLV_OFFSET 0x0000000000000010
  968. #define TX_FES_SETUP_GEN_TQM_UPDATE_MPDU_COUNT_TLV_LSB 18
  969. #define TX_FES_SETUP_GEN_TQM_UPDATE_MPDU_COUNT_TLV_MSB 18
  970. #define TX_FES_SETUP_GEN_TQM_UPDATE_MPDU_COUNT_TLV_MASK 0x0000000000040000
  971. /* Description TRANSMIT_VIF
  972. Consumer: TXOLE
  973. Producer: SW
  974. The VIF for this transmission. Used in MCC mode to control/overwrite
  975. the PM bit settings. Based on this VIF value, TXOLE gets
  976. the pm bit control instructions from the pm_state_overwrite_per_vif
  977. register
  978. <legal all>
  979. */
  980. #define TX_FES_SETUP_TRANSMIT_VIF_OFFSET 0x0000000000000010
  981. #define TX_FES_SETUP_TRANSMIT_VIF_LSB 19
  982. #define TX_FES_SETUP_TRANSMIT_VIF_MSB 22
  983. #define TX_FES_SETUP_TRANSMIT_VIF_MASK 0x0000000000780000
  984. /* Description OPTIMAL_BW_RETRY_COUNT
  985. Consumer: TXPCU
  986. Producer: SCH
  987. This field is overwritten by the scheduler module and it's
  988. value is coming from an internal counter in the scheduler
  989. that keeps track of how many times this scheduling command
  990. has been flushed by TXPCU as a result of most desired BW
  991. not being available (=> flush code: TXPCU_FLREQ_RETRY_FOR_OPTIMAL_BW)
  992. For the first transmission, this count is always set to
  993. 0.
  994. <legal all>
  995. */
  996. #define TX_FES_SETUP_OPTIMAL_BW_RETRY_COUNT_OFFSET 0x0000000000000010
  997. #define TX_FES_SETUP_OPTIMAL_BW_RETRY_COUNT_LSB 23
  998. #define TX_FES_SETUP_OPTIMAL_BW_RETRY_COUNT_MSB 26
  999. #define TX_FES_SETUP_OPTIMAL_BW_RETRY_COUNT_MASK 0x0000000007800000
  1000. /* Description FES_CONTINUATION_RATIO_THRESHOLD
  1001. Field evaluated by TXPCU only.
  1002. This Feature is not supported in Napier and Hastings.
  1003. Field can be used in both SU and MU transmissions, but might
  1004. be most useful in MU transmissions.
  1005. TXPCU keeps track of how many MPDU data words are transmited
  1006. as well as how many Null delimiters are transmitted. In
  1007. case of an MU and/or multi TID transmission, these two
  1008. counters are the aggregates over all the users.
  1009. At the end of the FES, TXPCU determines the ratio between
  1010. the actual MPDU data words and Null delimiters. If this
  1011. ratio is LESS then the ratio indicated here, TXPCU should
  1012. indicate "Transmit_data_null_ratio_not_met" in the TX_FES_STATUS_END
  1013. <enum 0 No_Data_Null_ratio_requirement> TXPCU does not need
  1014. to do any evaluation on the ratio between actual data transmitted
  1015. and NULL delimiters inserted.
  1016. <enum 1 Data_Null_ratio_16_1> At the end of the FES, TXPCU
  1017. shall confirm that the DATA:NULL delimiter ratio was at
  1018. least 16:1. If not met, TXPCU should terminate FES.
  1019. <enum 2 Data_Null_ratio_8_1> At the end of the FES, TXPCU
  1020. shall confirm that the DATA:NULL delimiter ratio was at
  1021. least 8:1. If not met, TXPCU should terminate FES.
  1022. <enum 3 Data_Null_ratio_4_1> At the end of the FES, TXPCU
  1023. shall confirm that the DATA:NULL delimiter ratio was at
  1024. least 4:1. If not met, TXPCU should terminate FES.
  1025. <enum 4 Data_Null_ratio_2_1> At the end of the FES, TXPCU
  1026. shall confirm that the DATA:NULL delimiter ratio was at
  1027. least 2:1. If not met, TXPCU should terminate FES.
  1028. <enum 5 Data_Null_ratio_1_1> At the end of the FES, TXPCU
  1029. shall confirm that the DATA:NULL delimiter ratio was at
  1030. least 1:1. If not met, TXPCU should terminate FES.
  1031. <enum 6 Data_Null_ratio_1_2> At the end of the FES, TXPCU
  1032. shall confirm that the DATA:NULL delimiter ratio was at
  1033. least 1:2. If not met, TXPCU should terminate FES.
  1034. <enum 7 Data_Null_ratio_1_4> At the end of the FES, TXPCU
  1035. shall confirm that the DATA:NULL delimiter ratio was at
  1036. least 1:4. If not met, TXPCU should terminate FES.
  1037. <enum 8 Data_Null_ratio_1_8> At the end of the FES, TXPCU
  1038. shall confirm that the DATA:NULL delimiter ratio was at
  1039. least 1:8. If not met, TXPCU should terminate FES.
  1040. <enum 9 Data_Null_ratio_1_16> At the end of the FES, TXPCU
  1041. shall confirm that the DATA:NULL delimiter ratio was at
  1042. least 1:16. If not met, TXPCU should terminate FES.
  1043. <legal 0-9>
  1044. */
  1045. #define TX_FES_SETUP_FES_CONTINUATION_RATIO_THRESHOLD_OFFSET 0x0000000000000010
  1046. #define TX_FES_SETUP_FES_CONTINUATION_RATIO_THRESHOLD_LSB 27
  1047. #define TX_FES_SETUP_FES_CONTINUATION_RATIO_THRESHOLD_MSB 31
  1048. #define TX_FES_SETUP_FES_CONTINUATION_RATIO_THRESHOLD_MASK 0x00000000f8000000
  1049. /* Description TRANSMIT_CCA_BITMAP
  1050. The CCA signals that shall be evaluated by TXPCU to determine
  1051. the BW/puncture pattern available for transmission.
  1052. 0: CCA signal not needed. Ignore the CCA setting
  1053. 1: CCA signals shall be evaluated
  1054. Bit [1:0] => cca20_0 related signals
  1055. Bit [3:2] => cca20_1 related signals
  1056. ...
  1057. Bit [31:30] => cca20_15 related signals
  1058. Within the 2 bits, the order is always:
  1059. Bit0: ED
  1060. Bit1: GI
  1061. NOTE: HW Sch takes care of MUXing ED1/ED2 with ED0 and MUXing
  1062. GI1 with GI0. Hence this field should be set to 0x55555555
  1063. for chips not supporting GI-correlation and 0xFFFFFFFF
  1064. for chips that support, usually.
  1065. <legal all>
  1066. */
  1067. #define TX_FES_SETUP_TRANSMIT_CCA_BITMAP_OFFSET 0x0000000000000010
  1068. #define TX_FES_SETUP_TRANSMIT_CCA_BITMAP_LSB 32
  1069. #define TX_FES_SETUP_TRANSMIT_CCA_BITMAP_MSB 63
  1070. #define TX_FES_SETUP_TRANSMIT_CCA_BITMAP_MASK 0xffffffff00000000
  1071. /* Description TB_RANGING
  1072. Indicates that this frame is generated for a TB ranging
  1073. sequence
  1074. <legal all>
  1075. */
  1076. #define TX_FES_SETUP_TB_RANGING_OFFSET 0x0000000000000018
  1077. #define TX_FES_SETUP_TB_RANGING_LSB 0
  1078. #define TX_FES_SETUP_TB_RANGING_MSB 0
  1079. #define TX_FES_SETUP_TB_RANGING_MASK 0x0000000000000001
  1080. /* Description RANGING_TRIGGER_SUBTYPE
  1081. Field only valid if TB_Ranging is set
  1082. Indicates the Trigger subtype for the current ranging TF
  1083. <enum 0 TF_Poll>
  1084. <enum 1 TF_Sound>
  1085. <enum 2 TF_Secure_Sound>
  1086. <enum 3 TF_Report>
  1087. <legal 0-3>
  1088. */
  1089. #define TX_FES_SETUP_RANGING_TRIGGER_SUBTYPE_OFFSET 0x0000000000000018
  1090. #define TX_FES_SETUP_RANGING_TRIGGER_SUBTYPE_LSB 1
  1091. #define TX_FES_SETUP_RANGING_TRIGGER_SUBTYPE_MSB 4
  1092. #define TX_FES_SETUP_RANGING_TRIGGER_SUBTYPE_MASK 0x000000000000001e
  1093. /* Description MIN_CTS2SELF_COUNT
  1094. Field only valid when max_cts2self_count is non-zero
  1095. This is the minimum number of CTS2SELF frames that PDG should
  1096. transmit before the actual data transmission.
  1097. */
  1098. #define TX_FES_SETUP_MIN_CTS2SELF_COUNT_OFFSET 0x0000000000000018
  1099. #define TX_FES_SETUP_MIN_CTS2SELF_COUNT_LSB 5
  1100. #define TX_FES_SETUP_MIN_CTS2SELF_COUNT_MSB 8
  1101. #define TX_FES_SETUP_MIN_CTS2SELF_COUNT_MASK 0x00000000000001e0
  1102. /* Description MAX_CTS2SELF_COUNT
  1103. Field only valid when non-zero
  1104. This is the maximum number of CTS2SELF frames that PDG is
  1105. allowed to transmit before the actual data transmission.
  1106. PDG will only use these additional frames if MPDU info from
  1107. TQM or CV-correlation info from microcode is delayed.
  1108. */
  1109. #define TX_FES_SETUP_MAX_CTS2SELF_COUNT_OFFSET 0x0000000000000018
  1110. #define TX_FES_SETUP_MAX_CTS2SELF_COUNT_LSB 9
  1111. #define TX_FES_SETUP_MAX_CTS2SELF_COUNT_MSB 12
  1112. #define TX_FES_SETUP_MAX_CTS2SELF_COUNT_MASK 0x0000000000001e00
  1113. /* Description WIFI_RADAR_ENABLE
  1114. When set to 1, the packet is intended to be used by PHY
  1115. for WiFi radar (by sensing the reflected WiFi signal).
  1116. <legal all>
  1117. */
  1118. #define TX_FES_SETUP_WIFI_RADAR_ENABLE_OFFSET 0x0000000000000018
  1119. #define TX_FES_SETUP_WIFI_RADAR_ENABLE_LSB 13
  1120. #define TX_FES_SETUP_WIFI_RADAR_ENABLE_MSB 13
  1121. #define TX_FES_SETUP_WIFI_RADAR_ENABLE_MASK 0x0000000000002000
  1122. /* Description RESERVED_6A
  1123. Bit 14: cqi_feedback:
  1124. Consumer: TXPCU
  1125. Producer: SCH
  1126. MSB of the expected feedback type of received CBF frame
  1127. after sending NDP or BR-Poll in case of HE/EHT sounding.
  1128. See field cbf_feedback_type above for the LSB. This field
  1129. is compared only if cbf_feedback_type_mask is set to 1.
  1130. 0: compressed beamforming feedback
  1131. 1: CQI feedback
  1132. <legal 0-1>
  1133. */
  1134. #define TX_FES_SETUP_RESERVED_6A_OFFSET 0x0000000000000018
  1135. #define TX_FES_SETUP_RESERVED_6A_LSB 14
  1136. #define TX_FES_SETUP_RESERVED_6A_MSB 31
  1137. #define TX_FES_SETUP_RESERVED_6A_MASK 0x00000000ffffc000
  1138. /* Description MONITOR_OVERRIDE_STA_31_0
  1139. Used by TXMON
  1140. LSB 32 bits of a 37-bit user bitmap with 1s denoting the
  1141. 'tlv_usr' values that correspond to'Monitor override client's
  1142. When enabled in TXMON, it will discard the user-TLVs of
  1143. the users not selected by the bitmap. FW should program
  1144. this setting in line with the 'Monitor_override_sta' setting
  1145. in the 'ADDR_SEARCH_ENTRY' corresponding to each of the
  1146. clients.
  1147. <legal all>
  1148. */
  1149. #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_31_0_OFFSET 0x0000000000000018
  1150. #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_31_0_LSB 32
  1151. #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_31_0_MSB 63
  1152. #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_31_0_MASK 0xffffffff00000000
  1153. /* Description MONITOR_OVERRIDE_STA_36_32
  1154. Used by TXMON
  1155. MSB 5 bits of a 37-bit user bitmap with 1s denoting the 'tlv_usr'
  1156. values that correspond to 'Monitor override client's
  1157. See 'Monitor_override_sta_31_0.'
  1158. Hamilton v1 did not include this (and any subsequent) word.
  1159. <legal all>
  1160. */
  1161. #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_36_32_OFFSET 0x0000000000000020
  1162. #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_36_32_LSB 0
  1163. #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_36_32_MSB 4
  1164. #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_36_32_MASK 0x000000000000001f
  1165. /* Description RESERVED_8A
  1166. <legal 0>
  1167. */
  1168. #define TX_FES_SETUP_RESERVED_8A_OFFSET 0x0000000000000020
  1169. #define TX_FES_SETUP_RESERVED_8A_LSB 5
  1170. #define TX_FES_SETUP_RESERVED_8A_MSB 31
  1171. #define TX_FES_SETUP_RESERVED_8A_MASK 0x00000000ffffffe0
  1172. /* Description FW2SW_INFO
  1173. This field is provided by FW, to be logged via TXMON to
  1174. host SW. It is transparent to HW.
  1175. <legal all>
  1176. */
  1177. #define TX_FES_SETUP_FW2SW_INFO_OFFSET 0x0000000000000020
  1178. #define TX_FES_SETUP_FW2SW_INFO_LSB 32
  1179. #define TX_FES_SETUP_FW2SW_INFO_MSB 63
  1180. #define TX_FES_SETUP_FW2SW_INFO_MASK 0xffffffff00000000
  1181. #endif // TX_FES_SETUP