mactx_phy_desc.h 46 KB

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