mactx_phy_desc.h 46 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079
  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 _MACTX_PHY_DESC_H_
  17. #define _MACTX_PHY_DESC_H_
  18. #if !defined(__ASSEMBLER__)
  19. #endif
  20. #define NUM_OF_DWORDS_MACTX_PHY_DESC 4
  21. #define NUM_OF_QWORDS_MACTX_PHY_DESC 2
  22. struct mactx_phy_desc {
  23. #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
  24. uint32_t reserved_0a : 16, // [15:0]
  25. bf_type : 2, // [17:16]
  26. wait_sifs : 2, // [19:18]
  27. dot11b_preamble_type : 1, // [20:20]
  28. pkt_type : 4, // [24:21]
  29. su_or_mu : 2, // [26:25]
  30. mu_type : 1, // [27:27]
  31. bandwidth : 3, // [30:28]
  32. channel_capture : 1; // [31:31]
  33. uint32_t mcs : 4, // [3:0]
  34. global_ofdma_mimo_enable : 1, // [4:4]
  35. reserved_1a : 1, // [5:5]
  36. stbc : 1, // [6:6]
  37. dot11ax_su_extended : 1, // [7:7]
  38. dot11ax_trigger_frame_embedded : 1, // [8:8]
  39. tx_pwr_shared : 8, // [16:9]
  40. tx_pwr_unshared : 8, // [24:17]
  41. measure_power : 1, // [25:25]
  42. tpc_glut_self_cal : 1, // [26:26]
  43. back_to_back_transmission_expected : 1, // [27:27]
  44. heavy_clip_nss : 3, // [30:28]
  45. txbf_per_packet_no_csd_no_walsh : 1; // [31:31]
  46. uint32_t ndp : 2, // [1:0]
  47. ul_flag : 1, // [2:2]
  48. triggered : 1, // [3:3]
  49. ap_pkt_bw : 3, // [6:4]
  50. ru_position_start : 8, // [14:7]
  51. pcu_ppdu_setup_start_reason : 3, // [17:15]
  52. tlv_source : 1, // [18:18]
  53. reserved_2a : 2, // [20:19]
  54. nss : 3, // [23:21]
  55. stream_offset : 3, // [26:24]
  56. reserved_2b : 2, // [28:27]
  57. clpc_enable : 1, // [29:29]
  58. mu_ndp : 1, // [30:30]
  59. response_expected : 1; // [31:31]
  60. uint32_t rx_chain_mask : 8, // [7:0]
  61. rx_chain_mask_valid : 1, // [8:8]
  62. ant_sel_valid : 1, // [9:9]
  63. ant_sel : 1, // [10:10]
  64. cp_setting : 2, // [12:11]
  65. he_ppdu_subtype : 2, // [14:13]
  66. active_channel : 3, // [17:15]
  67. generate_phyrx_tx_start_timing : 1, // [18:18]
  68. ltf_size : 2, // [20:19]
  69. ru_size_updated_v2 : 4, // [24:21]
  70. reserved_3c : 1, // [25:25]
  71. u_sig_puncture_pattern_encoding : 6; // [31:26]
  72. #else
  73. uint32_t channel_capture : 1, // [31:31]
  74. bandwidth : 3, // [30:28]
  75. mu_type : 1, // [27:27]
  76. su_or_mu : 2, // [26:25]
  77. pkt_type : 4, // [24:21]
  78. dot11b_preamble_type : 1, // [20:20]
  79. wait_sifs : 2, // [19:18]
  80. bf_type : 2, // [17:16]
  81. reserved_0a : 16; // [15:0]
  82. uint32_t txbf_per_packet_no_csd_no_walsh : 1, // [31:31]
  83. heavy_clip_nss : 3, // [30:28]
  84. back_to_back_transmission_expected : 1, // [27:27]
  85. tpc_glut_self_cal : 1, // [26:26]
  86. measure_power : 1, // [25:25]
  87. tx_pwr_unshared : 8, // [24:17]
  88. tx_pwr_shared : 8, // [16:9]
  89. dot11ax_trigger_frame_embedded : 1, // [8:8]
  90. dot11ax_su_extended : 1, // [7:7]
  91. stbc : 1, // [6:6]
  92. reserved_1a : 1, // [5:5]
  93. global_ofdma_mimo_enable : 1, // [4:4]
  94. mcs : 4; // [3:0]
  95. uint32_t response_expected : 1, // [31:31]
  96. mu_ndp : 1, // [30:30]
  97. clpc_enable : 1, // [29:29]
  98. reserved_2b : 2, // [28:27]
  99. stream_offset : 3, // [26:24]
  100. nss : 3, // [23:21]
  101. reserved_2a : 2, // [20:19]
  102. tlv_source : 1, // [18:18]
  103. pcu_ppdu_setup_start_reason : 3, // [17:15]
  104. ru_position_start : 8, // [14:7]
  105. ap_pkt_bw : 3, // [6:4]
  106. triggered : 1, // [3:3]
  107. ul_flag : 1, // [2:2]
  108. ndp : 2; // [1:0]
  109. uint32_t u_sig_puncture_pattern_encoding : 6, // [31:26]
  110. reserved_3c : 1, // [25:25]
  111. ru_size_updated_v2 : 4, // [24:21]
  112. ltf_size : 2, // [20:19]
  113. generate_phyrx_tx_start_timing : 1, // [18:18]
  114. active_channel : 3, // [17:15]
  115. he_ppdu_subtype : 2, // [14:13]
  116. cp_setting : 2, // [12:11]
  117. ant_sel : 1, // [10:10]
  118. ant_sel_valid : 1, // [9:9]
  119. rx_chain_mask_valid : 1, // [8:8]
  120. rx_chain_mask : 8; // [7:0]
  121. #endif
  122. };
  123. /* Description RESERVED_0A
  124. <legal 0>
  125. */
  126. #define MACTX_PHY_DESC_RESERVED_0A_OFFSET 0x0000000000000000
  127. #define MACTX_PHY_DESC_RESERVED_0A_LSB 0
  128. #define MACTX_PHY_DESC_RESERVED_0A_MSB 15
  129. #define MACTX_PHY_DESC_RESERVED_0A_MASK 0x000000000000ffff
  130. /* Description BF_TYPE
  131. <enum 0 NO_BF> Transmit a non-beamformed packet. NOTE
  132. that MAC might have send MACTX_BF_PARAMS... related TLVs
  133. to the PHY for this upcoming transmission, but if this
  134. field indicates NO_BF, MAC_TX has for some reason decided
  135. at the last moment that actual beamform transmission shall
  136. not happen anymore...
  137. <enum 1 LEGACY_BF> Transmit a legacy beamformed packet.
  138. This means beamforming starts at the L-STF. The possible
  139. preamble formats are 11a, 11n mixed mode and 11ac. This
  140. is used to support legacy implicit beamforming.
  141. <enum 2 SU_BF> Transmit a single-user beamformed packet
  142. starting at the HT-STF or VHT-STF.
  143. <enum 3 MU_BF> Transmit a multi-user beamformed packet
  144. starting at the VHT-STF. In case of an MU transmission,
  145. where maybe not all users are being transmitted in a 'beamformed'
  146. way, but at least one is, this e_num setting will be used
  147. as well
  148. <legal all>
  149. */
  150. #define MACTX_PHY_DESC_BF_TYPE_OFFSET 0x0000000000000000
  151. #define MACTX_PHY_DESC_BF_TYPE_LSB 16
  152. #define MACTX_PHY_DESC_BF_TYPE_MSB 17
  153. #define MACTX_PHY_DESC_BF_TYPE_MASK 0x0000000000030000
  154. /* Description WAIT_SIFS
  155. This bit is evaluated by the PHY TX to determine if this
  156. transmission start on the air needs to be exactly SIFS
  157. aligned compared to the end of the previous reception or
  158. previous transmission.
  159. This feature is typically required for Triggered UL response
  160. transmissions, where SIFS accuracy is really required.
  161. For RTT this is also usefull, but not absolutely needed.
  162. This field is filled in by TXPCU.
  163. <enum 0 NO_SIFS_TIMING> Transmission shall start with the
  164. normal delay in PHY after receiving this notification
  165. <enum 1 SIFS_TIMING_DESIRED> Transmission shall be made
  166. at the SIFS boundary. If shall never start before SIFS boundary,
  167. but if it a little later, it is not ideal and should be
  168. flagged, but transmission shall not be aborted.
  169. <enum 2 SIFS_TIMING_MANDATED> Transmission shall be made
  170. at exactly SIFS boundary. If this notification is received
  171. by the PHY after SIFS boundary already passed, the PHY
  172. shall abort the transmission
  173. <legal 0-2>
  174. */
  175. #define MACTX_PHY_DESC_WAIT_SIFS_OFFSET 0x0000000000000000
  176. #define MACTX_PHY_DESC_WAIT_SIFS_LSB 18
  177. #define MACTX_PHY_DESC_WAIT_SIFS_MSB 19
  178. #define MACTX_PHY_DESC_WAIT_SIFS_MASK 0x00000000000c0000
  179. /* Description DOT11B_PREAMBLE_TYPE
  180. Valid for 802.11b packets only.
  181. <enum 0 short_preamble>
  182. <enum 1 long_preamble>
  183. <legal all>
  184. */
  185. #define MACTX_PHY_DESC_DOT11B_PREAMBLE_TYPE_OFFSET 0x0000000000000000
  186. #define MACTX_PHY_DESC_DOT11B_PREAMBLE_TYPE_LSB 20
  187. #define MACTX_PHY_DESC_DOT11B_PREAMBLE_TYPE_MSB 20
  188. #define MACTX_PHY_DESC_DOT11B_PREAMBLE_TYPE_MASK 0x0000000000100000
  189. /* Description PKT_TYPE
  190. Packet type:
  191. Note: in case of 11ax, see field he_ppdu_subtype for additional
  192. info...
  193. <enum 0 dot11a>802.11a PPDU type
  194. <enum 1 dot11b>802.11b PPDU type
  195. <enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
  196. <enum 3 dot11ac>802.11ac PPDU type
  197. <enum 4 dot11ax>802.11ax PPDU type
  198. <enum 5 dot11ba>802.11ba (WUR) PPDU type
  199. <enum 6 dot11be>802.11be PPDU type
  200. <enum 7 dot11az>802.11az (ranging) PPDU type
  201. <enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
  202. & aborted)
  203. */
  204. #define MACTX_PHY_DESC_PKT_TYPE_OFFSET 0x0000000000000000
  205. #define MACTX_PHY_DESC_PKT_TYPE_LSB 21
  206. #define MACTX_PHY_DESC_PKT_TYPE_MSB 24
  207. #define MACTX_PHY_DESC_PKT_TYPE_MASK 0x0000000001e00000
  208. /* Description SU_OR_MU
  209. Type of transmission:
  210. For 11ax:
  211. <enum 0 SU_transmission>
  212. 11ax:
  213. This setting is used for the following preamble type of
  214. transmissions:
  215. 11ax HE_SU PPDU
  216. 11ax HE_EXT_SU PPDU
  217. 11ax HE_TRIG PPDU
  218. Note that the above implies all single user transmissions
  219. 11ac and other pkt_types:
  220. Single user transmission
  221. <enum 1 MU_transmission>
  222. 11ax:
  223. This setting is used for the following preamble type of
  224. transmissions:
  225. 11ax HE_MU
  226. Note that this type of transmission implies multiple users
  227. For 11ac:
  228. Multi-user transmission
  229. <enum 2 MU_SU_transmission>
  230. 11ax:
  231. This setting is used for the following preamble type of
  232. transmissions:
  233. 11ax HE_MU
  234. Note that this type of transmission implies a SINGLE user,
  235. but using HE_MU preamble type...
  236. 11ac and other pkt_types:
  237. Reserved
  238. <legal 0-2>
  239. */
  240. #define MACTX_PHY_DESC_SU_OR_MU_OFFSET 0x0000000000000000
  241. #define MACTX_PHY_DESC_SU_OR_MU_LSB 25
  242. #define MACTX_PHY_DESC_SU_OR_MU_MSB 26
  243. #define MACTX_PHY_DESC_SU_OR_MU_MASK 0x0000000006000000
  244. /* Description MU_TYPE
  245. Field only valid when
  246. SU_or_MU == MU_transmission or
  247. SU_or_MU == MU_SU_transmission
  248. <enum 0 MU_MIMO_Transmission>
  249. <enum 1 MU_OFDMA_Transmission> Note that within the RUs,
  250. there might still be MU-MIMO...
  251. <legal all>
  252. */
  253. #define MACTX_PHY_DESC_MU_TYPE_OFFSET 0x0000000000000000
  254. #define MACTX_PHY_DESC_MU_TYPE_LSB 27
  255. #define MACTX_PHY_DESC_MU_TYPE_MSB 27
  256. #define MACTX_PHY_DESC_MU_TYPE_MASK 0x0000000008000000
  257. /* Description BANDWIDTH
  258. Packet bandwidth:
  259. The physical bandwidth that this device will be transmitting
  260. in.
  261. Note that for 11ax Trigger response transmissions (when
  262. Field triggered == is_triggered), this bandwith is min(AP_pkt_bw,
  263. STA_ch_bw)
  264. <enum 0 20_mhz>20 Mhz BW
  265. <enum 1 40_mhz>40 Mhz BW
  266. <enum 2 80_mhz>80 Mhz BW
  267. <enum 3 160_mhz>160 Mhz BW
  268. <enum 4 320_mhz>320 Mhz BW
  269. <enum 5 240_mhz>240 Mhz BW
  270. */
  271. #define MACTX_PHY_DESC_BANDWIDTH_OFFSET 0x0000000000000000
  272. #define MACTX_PHY_DESC_BANDWIDTH_LSB 28
  273. #define MACTX_PHY_DESC_BANDWIDTH_MSB 30
  274. #define MACTX_PHY_DESC_BANDWIDTH_MASK 0x0000000070000000
  275. /* Description CHANNEL_CAPTURE
  276. Indicates that the PHY should be armed to capture the channel
  277. on the next received packet. This channel estimate is passed
  278. to the MAC if the packet is successfully received.
  279. <legal 0-1>
  280. This field is not applicable for 11ah since implicit beamforming
  281. is not supported
  282. */
  283. #define MACTX_PHY_DESC_CHANNEL_CAPTURE_OFFSET 0x0000000000000000
  284. #define MACTX_PHY_DESC_CHANNEL_CAPTURE_LSB 31
  285. #define MACTX_PHY_DESC_CHANNEL_CAPTURE_MSB 31
  286. #define MACTX_PHY_DESC_CHANNEL_CAPTURE_MASK 0x0000000080000000
  287. /* Description MCS
  288. In case of SU_or_MU == SU_transmission
  289. Note that this includes trigger response transmission
  290. The MCS to be used for the upcoming transmission. It must
  291. match the 4-bit MCS value that is sent in the appropriate
  292. signal field for the given packet type, except that EHT
  293. BPSK with DCM and/or duplicate is encoded as '0.'
  294. In case of .11ba (WUR), this field is filled according to
  295. what is on the MAC side defined as "MCS_TYPE"
  296. In case of SU_or_MU == MU_transmission
  297. .11ac: highest MCS of all users
  298. .11ax or .11be: highest 4-bit MCS field in all the HE_SIG_B
  299. or EHT_SIG TLVs that MAC S/W informs to MAC H/W. Actual
  300. highest 4-bit MCS to be sent to PHY might be lower after
  301. MAC H/W computation.
  302. For details, refer to the SIG field, related to this pkt_type.
  303. (Note that this is slightly different then what is on the
  304. MAC side defined as "MCS_TYPE". For this reason, the 'legal
  305. values' here are NOT defined as MCS_TYPE)
  306. <legal all>
  307. */
  308. #define MACTX_PHY_DESC_MCS_OFFSET 0x0000000000000000
  309. #define MACTX_PHY_DESC_MCS_LSB 32
  310. #define MACTX_PHY_DESC_MCS_MSB 35
  311. #define MACTX_PHY_DESC_MCS_MASK 0x0000000f00000000
  312. /* Description GLOBAL_OFDMA_MIMO_ENABLE
  313. When set, this transmission contains at least 1 user for
  314. which MU-MIMO is enabled in its RU.
  315. After per-BW/puncture pattern user disabling, in case of
  316. pure OFDMA, PDG will clear this bit, but full BW MU-MIMO
  317. is still possible with this bit set.
  318. <legal all>
  319. */
  320. #define MACTX_PHY_DESC_GLOBAL_OFDMA_MIMO_ENABLE_OFFSET 0x0000000000000000
  321. #define MACTX_PHY_DESC_GLOBAL_OFDMA_MIMO_ENABLE_LSB 36
  322. #define MACTX_PHY_DESC_GLOBAL_OFDMA_MIMO_ENABLE_MSB 36
  323. #define MACTX_PHY_DESC_GLOBAL_OFDMA_MIMO_ENABLE_MASK 0x0000001000000000
  324. /* Description RESERVED_1A
  325. */
  326. #define MACTX_PHY_DESC_RESERVED_1A_OFFSET 0x0000000000000000
  327. #define MACTX_PHY_DESC_RESERVED_1A_LSB 37
  328. #define MACTX_PHY_DESC_RESERVED_1A_MSB 37
  329. #define MACTX_PHY_DESC_RESERVED_1A_MASK 0x0000002000000000
  330. /* Description STBC
  331. When set, this transmission is based on stbc rates.
  332. */
  333. #define MACTX_PHY_DESC_STBC_OFFSET 0x0000000000000000
  334. #define MACTX_PHY_DESC_STBC_LSB 38
  335. #define MACTX_PHY_DESC_STBC_MSB 38
  336. #define MACTX_PHY_DESC_STBC_MASK 0x0000004000000000
  337. /* Description DOT11AX_SU_EXTENDED
  338. This field is only valid for pkt_type == 11ax OR pkt_type
  339. == 11be
  340. When set, the 11ax or 11be transmission is extended range
  341. SU
  342. */
  343. #define MACTX_PHY_DESC_DOT11AX_SU_EXTENDED_OFFSET 0x0000000000000000
  344. #define MACTX_PHY_DESC_DOT11AX_SU_EXTENDED_LSB 39
  345. #define MACTX_PHY_DESC_DOT11AX_SU_EXTENDED_MSB 39
  346. #define MACTX_PHY_DESC_DOT11AX_SU_EXTENDED_MASK 0x0000008000000000
  347. /* Description DOT11AX_TRIGGER_FRAME_EMBEDDED
  348. When set, there is an 11ax trigger frame OR 11be trigger
  349. frame embedded in this transmission. PHY shall latch the
  350. transmit BW of this transmission and use it to select the
  351. 'MACTX_UPLINK_COMMON/USER...' TLVs parameters belonging
  352. to this BW. Note that these 'MACTX_UPLINK_COMMON/USER...'
  353. might already have been received by the PHY, or will come
  354. in later.
  355. <legal all>
  356. */
  357. #define MACTX_PHY_DESC_DOT11AX_TRIGGER_FRAME_EMBEDDED_OFFSET 0x0000000000000000
  358. #define MACTX_PHY_DESC_DOT11AX_TRIGGER_FRAME_EMBEDDED_LSB 40
  359. #define MACTX_PHY_DESC_DOT11AX_TRIGGER_FRAME_EMBEDDED_MSB 40
  360. #define MACTX_PHY_DESC_DOT11AX_TRIGGER_FRAME_EMBEDDED_MASK 0x0000010000000000
  361. /* Description TX_PWR_SHARED
  362. Transmit Power (signed value) in units of 0.25 dBm
  363. <legal all>
  364. */
  365. #define MACTX_PHY_DESC_TX_PWR_SHARED_OFFSET 0x0000000000000000
  366. #define MACTX_PHY_DESC_TX_PWR_SHARED_LSB 41
  367. #define MACTX_PHY_DESC_TX_PWR_SHARED_MSB 48
  368. #define MACTX_PHY_DESC_TX_PWR_SHARED_MASK 0x0001fe0000000000
  369. /* Description TX_PWR_UNSHARED
  370. Transmit Power (signed value) in units of 0.25 dBm <legal
  371. all>
  372. */
  373. #define MACTX_PHY_DESC_TX_PWR_UNSHARED_OFFSET 0x0000000000000000
  374. #define MACTX_PHY_DESC_TX_PWR_UNSHARED_LSB 49
  375. #define MACTX_PHY_DESC_TX_PWR_UNSHARED_MSB 56
  376. #define MACTX_PHY_DESC_TX_PWR_UNSHARED_MASK 0x01fe000000000000
  377. /* Description MEASURE_POWER
  378. This field enables the TPC to use power measurement for
  379. current packet in CLPC updates.
  380. <enum 0 measure_dis> TPC will not latch power measurement
  381. result for current packet
  382. <enum 1 measure_en> TPC will latch power measurement
  383. result for current packet
  384. <legal all>
  385. */
  386. #define MACTX_PHY_DESC_MEASURE_POWER_OFFSET 0x0000000000000000
  387. #define MACTX_PHY_DESC_MEASURE_POWER_LSB 57
  388. #define MACTX_PHY_DESC_MEASURE_POWER_MSB 57
  389. #define MACTX_PHY_DESC_MEASURE_POWER_MASK 0x0200000000000000
  390. /* Description TPC_GLUT_SELF_CAL
  391. Setting related to transmit power control calibration.
  392. <legal all>
  393. */
  394. #define MACTX_PHY_DESC_TPC_GLUT_SELF_CAL_OFFSET 0x0000000000000000
  395. #define MACTX_PHY_DESC_TPC_GLUT_SELF_CAL_LSB 58
  396. #define MACTX_PHY_DESC_TPC_GLUT_SELF_CAL_MSB 58
  397. #define MACTX_PHY_DESC_TPC_GLUT_SELF_CAL_MASK 0x0400000000000000
  398. /* Description BACK_TO_BACK_TRANSMISSION_EXPECTED
  399. When set, the next transmission is expected to follow this
  400. one in SIFS time (without any response reception in between).
  401. For example used when transmitting beacons followed by the
  402. broadcast or multicast frames
  403. <legal all>
  404. */
  405. #define MACTX_PHY_DESC_BACK_TO_BACK_TRANSMISSION_EXPECTED_OFFSET 0x0000000000000000
  406. #define MACTX_PHY_DESC_BACK_TO_BACK_TRANSMISSION_EXPECTED_LSB 59
  407. #define MACTX_PHY_DESC_BACK_TO_BACK_TRANSMISSION_EXPECTED_MSB 59
  408. #define MACTX_PHY_DESC_BACK_TO_BACK_TRANSMISSION_EXPECTED_MASK 0x0800000000000000
  409. /* Description HEAVY_CLIP_NSS
  410. Number of active spatial streams in current packet. This
  411. parameter is used by the heavy clip function in the transmitter.
  412. In case of MU PPDU, this is total Nss of all users.
  413. <enum 0 1_spatial_stream>Single spatial stream
  414. <enum 1 2_spatial_streams>2 spatial streams
  415. <enum 2 3_spatial_streams>3 spatial streams
  416. <enum 3 4_spatial_streams>4 spatial streams
  417. <enum 4 5_spatial_streams>5 spatial streams
  418. <enum 5 6_spatial_streams>6 spatial streams
  419. <enum 6 7_spatial_streams>7 spatial streams
  420. <enum 7 8_spatial_streams>8 spatial streams
  421. */
  422. #define MACTX_PHY_DESC_HEAVY_CLIP_NSS_OFFSET 0x0000000000000000
  423. #define MACTX_PHY_DESC_HEAVY_CLIP_NSS_LSB 60
  424. #define MACTX_PHY_DESC_HEAVY_CLIP_NSS_MSB 62
  425. #define MACTX_PHY_DESC_HEAVY_CLIP_NSS_MASK 0x7000000000000000
  426. /* Description TXBF_PER_PACKET_NO_CSD_NO_WALSH
  427. This is a global switch that is applied to beamformed packets
  428. If set, no_csd and no_walsh is applied to steering packet.
  429. */
  430. #define MACTX_PHY_DESC_TXBF_PER_PACKET_NO_CSD_NO_WALSH_OFFSET 0x0000000000000000
  431. #define MACTX_PHY_DESC_TXBF_PER_PACKET_NO_CSD_NO_WALSH_LSB 63
  432. #define MACTX_PHY_DESC_TXBF_PER_PACKET_NO_CSD_NO_WALSH_MSB 63
  433. #define MACTX_PHY_DESC_TXBF_PER_PACKET_NO_CSD_NO_WALSH_MASK 0x8000000000000000
  434. /* Description NDP
  435. When not "0", upcoming transmission is one of the indicated
  436. NDP types.
  437. <enum 0 no_ndp>No NDP transmission
  438. <enum 1 beamforming_ndp>Beamforming NDP
  439. <enum 2 he_ranging_ndp>11az NDP (HE Ranging NDP)
  440. <enum 3 he_feedback_ndp>Short TB (HE Feedback NDP)
  441. */
  442. #define MACTX_PHY_DESC_NDP_OFFSET 0x0000000000000008
  443. #define MACTX_PHY_DESC_NDP_LSB 0
  444. #define MACTX_PHY_DESC_NDP_MSB 1
  445. #define MACTX_PHY_DESC_NDP_MASK 0x0000000000000003
  446. /* Description UL_FLAG
  447. This field is only valid for pkt_type == 11ax OR pkt_type
  448. == 11be
  449. Used for HE_SIGB
  450. <enum 1 uplink>
  451. <enum 0 downlink>
  452. <legal all>
  453. */
  454. #define MACTX_PHY_DESC_UL_FLAG_OFFSET 0x0000000000000008
  455. #define MACTX_PHY_DESC_UL_FLAG_LSB 2
  456. #define MACTX_PHY_DESC_UL_FLAG_MSB 2
  457. #define MACTX_PHY_DESC_UL_FLAG_MASK 0x0000000000000004
  458. /* Description TRIGGERED
  459. This field is only valid for pkt_type == 11ax OR pkt_type
  460. == 11be
  461. Denotes whether it's a triggered uplink transmission
  462. Must be set for HE-TB NDPs used in Secure Ranging NDPs (11az)
  463. and Short-NDP (HE TB Feedback NDP).
  464. <enum 0 non_trigerred>
  465. <enum 1 is_triggered>
  466. <legal all>
  467. */
  468. #define MACTX_PHY_DESC_TRIGGERED_OFFSET 0x0000000000000008
  469. #define MACTX_PHY_DESC_TRIGGERED_LSB 3
  470. #define MACTX_PHY_DESC_TRIGGERED_MSB 3
  471. #define MACTX_PHY_DESC_TRIGGERED_MASK 0x0000000000000008
  472. /* Description AP_PKT_BW
  473. Field only valid when triggered == is_triggered
  474. This indicates the total bandwidth of the UL_TRIG packet
  475. as indicated in the Trigger Frame.
  476. <enum 0 20_mhz>20 Mhz BW
  477. <enum 1 40_mhz>40 Mhz BW
  478. <enum 2 80_mhz>80 Mhz BW
  479. <enum 3 160_mhz>160 Mhz BW
  480. <enum 4 320_mhz>320 Mhz BW
  481. <enum 5 240_mhz>240 Mhz BW
  482. */
  483. #define MACTX_PHY_DESC_AP_PKT_BW_OFFSET 0x0000000000000008
  484. #define MACTX_PHY_DESC_AP_PKT_BW_LSB 4
  485. #define MACTX_PHY_DESC_AP_PKT_BW_MSB 6
  486. #define MACTX_PHY_DESC_AP_PKT_BW_MASK 0x0000000000000070
  487. /* Description RU_POSITION_START
  488. Field only valid when triggered == is_triggered
  489. This field indicates the start basic (26 tone) RU number
  490. assigned to this user
  491. RU Numbering is based only on the order in which the RUs
  492. are allocated over the available BW, starting from 0 and
  493. in increasing frequency order and not primary-secondary
  494. order.
  495. The RU number within 80 MHz is available from the RU allocation
  496. information in the trigger. For 160 MHz transmissions,
  497. the trigger RU allocation only mentions primary/secondary
  498. 80 MHz. PDG needs to convert this to lower/higher 80 MHz.
  499. If in 'PCU_PPDU_SETUP_START'/'MACTX_PRE_PHY_DESC,' CCA_Subband_channel_bonding_mask
  500. bit 0 is mapped to any of bits 4 - 7 of Freq_Subband_channel_bonding_mask,
  501. then the primary 80 MHz is the higher 80 MHz and the secondary
  502. 80 MHz is the lower one.
  503. Otherwise (if CCA_Subband_channel_bonding_mask bit 0 is
  504. mapped to any of bits 0 - 3 of Freq_Subband_channel_bonding_mask,
  505. then the primary 80 MHz is the lower 80 MHz and the secondary
  506. 80 MHz is the higher one.
  507. Note: this type of encoding decouples the formatting of
  508. the trigger from from how info between MAC-PHY is exchanged
  509. <legal 0- 147>
  510. */
  511. #define MACTX_PHY_DESC_RU_POSITION_START_OFFSET 0x0000000000000008
  512. #define MACTX_PHY_DESC_RU_POSITION_START_LSB 7
  513. #define MACTX_PHY_DESC_RU_POSITION_START_MSB 14
  514. #define MACTX_PHY_DESC_RU_POSITION_START_MASK 0x0000000000007f80
  515. /* Description PCU_PPDU_SETUP_START_REASON
  516. PDG shall fill this with the value it fills in the setup_start_reason
  517. in 'PCU_PPDU_SETUP_START.' It indicates what triggered
  518. the PDG to start Tx setup.
  519. Used for debugging purposes.
  520. <enum 0 fes_protection_frame> RTS or CTS-to-self transmission
  521. preceding the regular PPDU portion of the coming FES. The
  522. transmit is initiated by PDG_TX_REQ TLV from TXPCU
  523. <enum 1 fes_after_protection > Regular PPDU transmission
  524. that follows the transmission of medium protection: Either
  525. RTS - CTS exchanges or CTS to self. The transmit is initiated
  526. by PDG_TX_REQ TLV from TXPCU
  527. <enum 2 fes_only> Regular PPDU transmission without
  528. preceding medium protection frame exchanges. The transmit
  529. is initiated by PDG_TX_REQ TLV from TXPCU
  530. <enum 3 response_frame> response frame transmission.
  531. The transmit is initiated by PDG_RESPONSE TLV from TXPCU
  532. <enum 4 trig_response_frame> 11ax triggered response
  533. frame transmission. The transmit is initiated by PDG_TRIG_RESPONSE
  534. TLV from TXPCU
  535. <enum 5 dynamic_protection_fes_only> Regular PPDU transmission
  536. without preceding medium protection frame exchanges, because
  537. the dynamic medium protection constraints were not satisfied.
  538. The transmit is initiated by PDG_TX_REQ TLV from TXPCU.
  539. <legal 0-5>
  540. */
  541. #define MACTX_PHY_DESC_PCU_PPDU_SETUP_START_REASON_OFFSET 0x0000000000000008
  542. #define MACTX_PHY_DESC_PCU_PPDU_SETUP_START_REASON_LSB 15
  543. #define MACTX_PHY_DESC_PCU_PPDU_SETUP_START_REASON_MSB 17
  544. #define MACTX_PHY_DESC_PCU_PPDU_SETUP_START_REASON_MASK 0x0000000000038000
  545. /* Description TLV_SOURCE
  546. <enum 1 phy_desc_from_pdg> This MACTX_PHY_DESC TLV is generated
  547. by PDG.
  548. <enum 0 phy_desc_from_fw> PDG is in bypass mode and this
  549. MACTX_PHY_DESC TLV is queued by firmware.
  550. <legal all>
  551. */
  552. #define MACTX_PHY_DESC_TLV_SOURCE_OFFSET 0x0000000000000008
  553. #define MACTX_PHY_DESC_TLV_SOURCE_LSB 18
  554. #define MACTX_PHY_DESC_TLV_SOURCE_MSB 18
  555. #define MACTX_PHY_DESC_TLV_SOURCE_MASK 0x0000000000040000
  556. /* Description RESERVED_2A
  557. <legal 0>
  558. */
  559. #define MACTX_PHY_DESC_RESERVED_2A_OFFSET 0x0000000000000008
  560. #define MACTX_PHY_DESC_RESERVED_2A_LSB 19
  561. #define MACTX_PHY_DESC_RESERVED_2A_MSB 20
  562. #define MACTX_PHY_DESC_RESERVED_2A_MASK 0x0000000000180000
  563. /* Description NSS
  564. Field only valid when triggered == is_triggered
  565. Number of Spatial Streams occupied by the User
  566. <enum 0 1_spatial_stream>Single spatial stream
  567. <enum 1 2_spatial_streams>2 spatial streams
  568. <enum 2 3_spatial_streams>3 spatial streams
  569. <enum 3 4_spatial_streams>4 spatial streams
  570. <enum 4 5_spatial_streams>5 spatial streams
  571. <enum 5 6_spatial_streams>6 spatial streams
  572. <enum 6 7_spatial_streams>7 spatial streams
  573. <enum 7 8_spatial_streams>8 spatial streams
  574. */
  575. #define MACTX_PHY_DESC_NSS_OFFSET 0x0000000000000008
  576. #define MACTX_PHY_DESC_NSS_LSB 21
  577. #define MACTX_PHY_DESC_NSS_MSB 23
  578. #define MACTX_PHY_DESC_NSS_MASK 0x0000000000e00000
  579. /* Description STREAM_OFFSET
  580. Field only valid when triggered == is_triggered
  581. Specify Stream-offset of the user for HE_TB Ranging NDP
  582. or Short-NDP
  583. Stream Offset from which the User occupies the Streams
  584. */
  585. #define MACTX_PHY_DESC_STREAM_OFFSET_OFFSET 0x0000000000000008
  586. #define MACTX_PHY_DESC_STREAM_OFFSET_LSB 24
  587. #define MACTX_PHY_DESC_STREAM_OFFSET_MSB 26
  588. #define MACTX_PHY_DESC_STREAM_OFFSET_MASK 0x0000000007000000
  589. /* Description RESERVED_2B
  590. <legal 0>
  591. */
  592. #define MACTX_PHY_DESC_RESERVED_2B_OFFSET 0x0000000000000008
  593. #define MACTX_PHY_DESC_RESERVED_2B_LSB 27
  594. #define MACTX_PHY_DESC_RESERVED_2B_MSB 28
  595. #define MACTX_PHY_DESC_RESERVED_2B_MASK 0x0000000018000000
  596. /* Description CLPC_ENABLE
  597. This field enables closed-loop TPC operation by enabling
  598. CLPC adjustment of DAC gain for the next packet.
  599. <enum 0 clpc_off> TPC error update disabled
  600. <enum 1 clpc_on> TPC error will be applied to DAC gain
  601. setting for the next packet
  602. <legal 0-1>
  603. */
  604. #define MACTX_PHY_DESC_CLPC_ENABLE_OFFSET 0x0000000000000008
  605. #define MACTX_PHY_DESC_CLPC_ENABLE_LSB 29
  606. #define MACTX_PHY_DESC_CLPC_ENABLE_MSB 29
  607. #define MACTX_PHY_DESC_CLPC_ENABLE_MASK 0x0000000020000000
  608. /* Description MU_NDP
  609. If set indicates that this packet is an NDP used for MU
  610. channel estimation. This bit will be used by the TPC to
  611. signal that the analog gain settings can be updated. The
  612. analog gain settings will not change for subsequent MU
  613. data packets.
  614. */
  615. #define MACTX_PHY_DESC_MU_NDP_OFFSET 0x0000000000000008
  616. #define MACTX_PHY_DESC_MU_NDP_LSB 30
  617. #define MACTX_PHY_DESC_MU_NDP_MSB 30
  618. #define MACTX_PHY_DESC_MU_NDP_MASK 0x0000000040000000
  619. /* Description RESPONSE_EXPECTED
  620. When set, a response frame in SIFS time is expected after
  621. this transmission.
  622. <legal all>
  623. */
  624. #define MACTX_PHY_DESC_RESPONSE_EXPECTED_OFFSET 0x0000000000000008
  625. #define MACTX_PHY_DESC_RESPONSE_EXPECTED_LSB 31
  626. #define MACTX_PHY_DESC_RESPONSE_EXPECTED_MSB 31
  627. #define MACTX_PHY_DESC_RESPONSE_EXPECTED_MASK 0x0000000080000000
  628. /* Description RX_CHAIN_MASK
  629. Chain mask to support up to 8 antennas.
  630. <legal 1-255>
  631. */
  632. #define MACTX_PHY_DESC_RX_CHAIN_MASK_OFFSET 0x0000000000000008
  633. #define MACTX_PHY_DESC_RX_CHAIN_MASK_LSB 32
  634. #define MACTX_PHY_DESC_RX_CHAIN_MASK_MSB 39
  635. #define MACTX_PHY_DESC_RX_CHAIN_MASK_MASK 0x000000ff00000000
  636. /* Description RX_CHAIN_MASK_VALID
  637. Indicates rx_chain_mask field is valid.
  638. <enum 0 RX_CHAIN_MASK_IS_NOT_VALID>
  639. <enum 1 RX_CHAIN_MASK_IS_VALID>
  640. <legal all>
  641. */
  642. #define MACTX_PHY_DESC_RX_CHAIN_MASK_VALID_OFFSET 0x0000000000000008
  643. #define MACTX_PHY_DESC_RX_CHAIN_MASK_VALID_LSB 40
  644. #define MACTX_PHY_DESC_RX_CHAIN_MASK_VALID_MSB 40
  645. #define MACTX_PHY_DESC_RX_CHAIN_MASK_VALID_MASK 0x0000010000000000
  646. /* Description ANT_SEL_VALID
  647. Field only valid when ant_sel_valid is set.
  648. TX Antenna select valid
  649. <enum 0 ANT_SEL_IS_NOT_VALID>
  650. <enum 1 ANT_SEL_IS_VALID>
  651. <legal all>
  652. */
  653. #define MACTX_PHY_DESC_ANT_SEL_VALID_OFFSET 0x0000000000000008
  654. #define MACTX_PHY_DESC_ANT_SEL_VALID_LSB 41
  655. #define MACTX_PHY_DESC_ANT_SEL_VALID_MSB 41
  656. #define MACTX_PHY_DESC_ANT_SEL_VALID_MASK 0x0000020000000000
  657. /* Description ANT_SEL
  658. Field only valid when ant_sel_valid is set.
  659. Antenna select for TX antenna diversity.
  660. <enum 0 ANTENNA_0>
  661. <enum 1 ANTENNA_1>
  662. <legal all>
  663. */
  664. #define MACTX_PHY_DESC_ANT_SEL_OFFSET 0x0000000000000008
  665. #define MACTX_PHY_DESC_ANT_SEL_LSB 42
  666. #define MACTX_PHY_DESC_ANT_SEL_MSB 42
  667. #define MACTX_PHY_DESC_ANT_SEL_MASK 0x0000040000000000
  668. /* Description CP_SETTING
  669. Field only valid when pkt type is HT, VHT or HE.
  670. Specify the right CP for HE-Ranging NDPs (11az)/Short NDP
  671. <enum 0 gi_0_8_us > Legacy normal GI
  672. <enum 1 gi_0_4_us > Legacy short GI
  673. <enum 2 gi_1_6_us > HE related GI
  674. <enum 3 gi_3_2_us > HE related GI
  675. <legal 0 - 3>
  676. */
  677. #define MACTX_PHY_DESC_CP_SETTING_OFFSET 0x0000000000000008
  678. #define MACTX_PHY_DESC_CP_SETTING_LSB 43
  679. #define MACTX_PHY_DESC_CP_SETTING_MSB 44
  680. #define MACTX_PHY_DESC_CP_SETTING_MASK 0x0000180000000000
  681. /* Description HE_PPDU_SUBTYPE
  682. The subtype of HE transmission:
  683. Specify as HE-SU for HE-SU Ranging NDP in 11az ;
  684. Specify as HE-TB for HE-TB Ranging NDP in 11az ;
  685. Specify as HE-TB for Short -NDP
  686. Re-use the same for EHT PPDU types also
  687. <enum 0 he_subtype_SU>
  688. <enum 1 he_subtype_TRIG>
  689. <enum 2 he_subtype_MU>
  690. <enum 3 he_subtype_EXT_SU>
  691. <legal all>
  692. */
  693. #define MACTX_PHY_DESC_HE_PPDU_SUBTYPE_OFFSET 0x0000000000000008
  694. #define MACTX_PHY_DESC_HE_PPDU_SUBTYPE_LSB 45
  695. #define MACTX_PHY_DESC_HE_PPDU_SUBTYPE_MSB 46
  696. #define MACTX_PHY_DESC_HE_PPDU_SUBTYPE_MASK 0x0000600000000000
  697. /* Description ACTIVE_CHANNEL
  698. Field only valid when triggered == non_trigerred
  699. In case of a triggered response transmission, this field
  700. will always be set to 0
  701. This field indicates the active frequency band when the
  702. packet bandwidth is less than the channel bandwidth. For
  703. non 11ax packets this is same as the primary channel
  704. <legal all>
  705. */
  706. #define MACTX_PHY_DESC_ACTIVE_CHANNEL_OFFSET 0x0000000000000008
  707. #define MACTX_PHY_DESC_ACTIVE_CHANNEL_LSB 47
  708. #define MACTX_PHY_DESC_ACTIVE_CHANNEL_MSB 49
  709. #define MACTX_PHY_DESC_ACTIVE_CHANNEL_MASK 0x0003800000000000
  710. /* Description GENERATE_PHYRX_TX_START_TIMING
  711. When set, PHY shall generate the PHYRX_TX_START_TIMING TLV
  712. at the earliest opportunity during the preamble transmission
  713. <legal all>
  714. */
  715. #define MACTX_PHY_DESC_GENERATE_PHYRX_TX_START_TIMING_OFFSET 0x0000000000000008
  716. #define MACTX_PHY_DESC_GENERATE_PHYRX_TX_START_TIMING_LSB 50
  717. #define MACTX_PHY_DESC_GENERATE_PHYRX_TX_START_TIMING_MSB 50
  718. #define MACTX_PHY_DESC_GENERATE_PHYRX_TX_START_TIMING_MASK 0x0004000000000000
  719. /* Description LTF_SIZE
  720. Field only valid when pkt type is HE.
  721. Ltf size
  722. Specify right LTF-size for HE-Ranging NDPs (11az)/Short-NDP
  723. <enum 0 ltf_1x >
  724. <enum 1 ltf_2x >
  725. <enum 2 ltf_4x >
  726. <legal 0 - 2>
  727. */
  728. #define MACTX_PHY_DESC_LTF_SIZE_OFFSET 0x0000000000000008
  729. #define MACTX_PHY_DESC_LTF_SIZE_LSB 51
  730. #define MACTX_PHY_DESC_LTF_SIZE_MSB 52
  731. #define MACTX_PHY_DESC_LTF_SIZE_MASK 0x0018000000000000
  732. /* Description RU_SIZE_UPDATED_V2
  733. Field only valid for pkt_type == 11ax or 11be and
  734. SU_or_MU == SU_transmission or
  735. SU_or_MU == MU_SU_transmission
  736. The RU size of the upcoming transmission.
  737. PHY uses this info to apply different min/max BO if payload
  738. bandwidth is less than 10MHz
  739. In case of HE extended range transmission, e-num 2 (10MHz)
  740. or e-num 7 (20MHz) are used.
  741. In case of trig transmission or OFDMA single user or MU-MIMO
  742. single user transmission, if the ru_size allocated to the
  743. user is the fullBW (with respect to AP_bw) ru size then
  744. the e-num 7 is used.
  745. For all other cases, e-nums corresponding to the ru size
  746. allocated to the user is used.
  747. In case of EHT duplicate transmissions, this field indicates
  748. the width of the actual content before duplication, e.g.
  749. a 40 MHz PPDU duplicated to 160 MHz will have the bandwidth
  750. fields indicating 160 MHz and this field set to e-num 4
  751. (RU_484).
  752. <enum 0 RU_26>
  753. <enum 1 RU_52>
  754. <enum 2 RU_106>
  755. <enum 3 RU_242><enum 4 RU_484><enum 5 RU_996><enum 6 RU_1992>
  756. <enum 7 RU_FULLBW> Set when the RU occupies the full packet
  757. bandwidth
  758. Note that for an MU-RTS trigger, the response will also
  759. go out in legacy CTS rate... and thus e-num 7 will be used.
  760. <enum 8 RU_FULLBW_240> Set when the RU occupies the full
  761. packet bandwidth
  762. <enum 9 RU_FULLBW_320> Set when the RU occupies the full
  763. packet bandwidth
  764. <enum 10 RU_MULTI_LARGE> HW will use per-user sub-band-mask
  765. to infer the actual RU-size for Multi-large-RU/SU-Puncturing
  766. <enum 11 RU_78> multi small RU
  767. <enum 12 RU_132> multi small RU
  768. NOTE: See the table following this TLV definition that explains
  769. the relationship between this field and the RU size allocated
  770. to users.
  771. <legal all>
  772. */
  773. #define MACTX_PHY_DESC_RU_SIZE_UPDATED_V2_OFFSET 0x0000000000000008
  774. #define MACTX_PHY_DESC_RU_SIZE_UPDATED_V2_LSB 53
  775. #define MACTX_PHY_DESC_RU_SIZE_UPDATED_V2_MSB 56
  776. #define MACTX_PHY_DESC_RU_SIZE_UPDATED_V2_MASK 0x01e0000000000000
  777. /* Description RESERVED_3C
  778. <legal 0>
  779. */
  780. #define MACTX_PHY_DESC_RESERVED_3C_OFFSET 0x0000000000000008
  781. #define MACTX_PHY_DESC_RESERVED_3C_LSB 57
  782. #define MACTX_PHY_DESC_RESERVED_3C_MSB 57
  783. #define MACTX_PHY_DESC_RESERVED_3C_MASK 0x0200000000000000
  784. /* Description U_SIG_PUNCTURE_PATTERN_ENCODING
  785. Field only valid for pkt_type == 11be
  786. The 6-bit value to be used in U-SIG and/or EHT-SIG Common
  787. field for the puncture pattern
  788. <legal 0-29>
  789. */
  790. #define MACTX_PHY_DESC_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET 0x0000000000000008
  791. #define MACTX_PHY_DESC_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB 58
  792. #define MACTX_PHY_DESC_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB 63
  793. #define MACTX_PHY_DESC_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK 0xfc00000000000000
  794. #endif // MACTX_PHY_DESC