tx_cbf_info.h 51 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199
  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_CBF_INFO_H_
  16. #define _TX_CBF_INFO_H_
  17. #if !defined(__ASSEMBLER__)
  18. #endif
  19. #define NUM_OF_DWORDS_TX_CBF_INFO 16
  20. #define NUM_OF_QWORDS_TX_CBF_INFO 8
  21. struct tx_cbf_info {
  22. #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
  23. uint32_t sw_peer_id : 16, // [15:0]
  24. pre_cbf_duration : 16; // [31:16]
  25. uint32_t brpoll_info_valid : 1, // [0:0]
  26. trigger_brpoll_info_valid : 1, // [1:1]
  27. npda_info_11ac_valid : 1, // [2:2]
  28. npda_info_11ax_valid : 1, // [3:3]
  29. dot11ax_su_extended : 1, // [4:4]
  30. bandwidth : 3, // [7:5]
  31. brpoll_info : 8, // [15:8]
  32. cbf_response_table_base_index : 8, // [23:16]
  33. peer_index : 3, // [26:24]
  34. pkt_type : 4, // [30:27]
  35. txop_duration_all_ones : 1; // [31:31]
  36. uint32_t trigger_brpoll_common_info_15_0 : 16, // [15:0]
  37. trigger_brpoll_common_info_31_16 : 16; // [31:16]
  38. uint32_t trigger_brpoll_user_info_15_0 : 16, // [15:0]
  39. trigger_brpoll_user_info_31_16 : 16; // [31:16]
  40. uint32_t addr1_31_0 : 32; // [31:0]
  41. uint32_t addr1_47_32 : 16, // [15:0]
  42. addr2_15_0 : 16; // [31:16]
  43. uint32_t addr2_47_16 : 32; // [31:0]
  44. uint32_t addr3_31_0 : 32; // [31:0]
  45. uint32_t addr3_47_32 : 16, // [15:0]
  46. sta_partial_aid : 11, // [26:16]
  47. reserved_8a : 4, // [30:27]
  48. cbf_resp_pwr_mgmt : 1; // [31:31]
  49. uint32_t group_id : 6, // [5:0]
  50. rssi_comb : 8, // [13:6]
  51. reserved_9a : 2, // [15:14]
  52. vht_ndpa_sta_info : 16; // [31:16]
  53. uint32_t he_eht_sta_info_15_0 : 16, // [15:0]
  54. he_eht_sta_info_31_16 : 16; // [31:16]
  55. uint32_t dot11ax_received_format_indication : 1, // [0:0]
  56. dot11ax_received_dl_ul_flag : 1, // [1:1]
  57. dot11ax_received_bss_color_id : 6, // [7:2]
  58. dot11ax_received_spatial_reuse : 4, // [11:8]
  59. dot11ax_received_cp_size : 2, // [13:12]
  60. dot11ax_received_ltf_size : 2, // [15:14]
  61. dot11ax_received_coding : 1, // [16:16]
  62. dot11ax_received_dcm : 1, // [17:17]
  63. dot11ax_received_doppler_indication : 1, // [18:18]
  64. dot11ax_received_ext_ru_size : 4, // [22:19]
  65. dot11ax_dl_ul_flag : 1, // [23:23]
  66. reserved_11a : 8; // [31:24]
  67. uint32_t sw_response_frame_length : 16, // [15:0]
  68. sw_response_tlv_from_crypto : 1, // [16:16]
  69. wait_sifs_config_valid : 1, // [17:17]
  70. wait_sifs : 2, // [19:18]
  71. ranging : 1, // [20:20]
  72. secure : 1, // [21:21]
  73. tb_ranging_response_required : 2, // [23:22]
  74. reserved_12a : 2, // [25:24]
  75. u_sig_puncture_pattern_encoding : 6; // [31:26]
  76. uint32_t dot11be_puncture_bitmap : 16, // [15:0]
  77. dot11be_response : 1, // [16:16]
  78. punctured_response : 1, // [17:17]
  79. npda_info_11be_valid : 1, // [18:18]
  80. eht_duplicate_mode : 2, // [20:19]
  81. reserved_13a : 11; // [31:21]
  82. uint32_t eht_sta_info_39_32 : 8, // [7:0]
  83. reserved_14a : 24; // [31:8]
  84. uint32_t tlv64_padding : 32; // [31:0]
  85. #else
  86. uint32_t pre_cbf_duration : 16, // [31:16]
  87. sw_peer_id : 16; // [15:0]
  88. uint32_t txop_duration_all_ones : 1, // [31:31]
  89. pkt_type : 4, // [30:27]
  90. peer_index : 3, // [26:24]
  91. cbf_response_table_base_index : 8, // [23:16]
  92. brpoll_info : 8, // [15:8]
  93. bandwidth : 3, // [7:5]
  94. dot11ax_su_extended : 1, // [4:4]
  95. npda_info_11ax_valid : 1, // [3:3]
  96. npda_info_11ac_valid : 1, // [2:2]
  97. trigger_brpoll_info_valid : 1, // [1:1]
  98. brpoll_info_valid : 1; // [0:0]
  99. uint32_t trigger_brpoll_common_info_31_16 : 16, // [31:16]
  100. trigger_brpoll_common_info_15_0 : 16; // [15:0]
  101. uint32_t trigger_brpoll_user_info_31_16 : 16, // [31:16]
  102. trigger_brpoll_user_info_15_0 : 16; // [15:0]
  103. uint32_t addr1_31_0 : 32; // [31:0]
  104. uint32_t addr2_15_0 : 16, // [31:16]
  105. addr1_47_32 : 16; // [15:0]
  106. uint32_t addr2_47_16 : 32; // [31:0]
  107. uint32_t addr3_31_0 : 32; // [31:0]
  108. uint32_t cbf_resp_pwr_mgmt : 1, // [31:31]
  109. reserved_8a : 4, // [30:27]
  110. sta_partial_aid : 11, // [26:16]
  111. addr3_47_32 : 16; // [15:0]
  112. uint32_t vht_ndpa_sta_info : 16, // [31:16]
  113. reserved_9a : 2, // [15:14]
  114. rssi_comb : 8, // [13:6]
  115. group_id : 6; // [5:0]
  116. uint32_t he_eht_sta_info_31_16 : 16, // [31:16]
  117. he_eht_sta_info_15_0 : 16; // [15:0]
  118. uint32_t reserved_11a : 8, // [31:24]
  119. dot11ax_dl_ul_flag : 1, // [23:23]
  120. dot11ax_received_ext_ru_size : 4, // [22:19]
  121. dot11ax_received_doppler_indication : 1, // [18:18]
  122. dot11ax_received_dcm : 1, // [17:17]
  123. dot11ax_received_coding : 1, // [16:16]
  124. dot11ax_received_ltf_size : 2, // [15:14]
  125. dot11ax_received_cp_size : 2, // [13:12]
  126. dot11ax_received_spatial_reuse : 4, // [11:8]
  127. dot11ax_received_bss_color_id : 6, // [7:2]
  128. dot11ax_received_dl_ul_flag : 1, // [1:1]
  129. dot11ax_received_format_indication : 1; // [0:0]
  130. uint32_t u_sig_puncture_pattern_encoding : 6, // [31:26]
  131. reserved_12a : 2, // [25:24]
  132. tb_ranging_response_required : 2, // [23:22]
  133. secure : 1, // [21:21]
  134. ranging : 1, // [20:20]
  135. wait_sifs : 2, // [19:18]
  136. wait_sifs_config_valid : 1, // [17:17]
  137. sw_response_tlv_from_crypto : 1, // [16:16]
  138. sw_response_frame_length : 16; // [15:0]
  139. uint32_t reserved_13a : 11, // [31:21]
  140. eht_duplicate_mode : 2, // [20:19]
  141. npda_info_11be_valid : 1, // [18:18]
  142. punctured_response : 1, // [17:17]
  143. dot11be_response : 1, // [16:16]
  144. dot11be_puncture_bitmap : 16; // [15:0]
  145. uint32_t reserved_14a : 24, // [31:8]
  146. eht_sta_info_39_32 : 8; // [7:0]
  147. uint32_t tlv64_padding : 32; // [31:0]
  148. #endif
  149. };
  150. /* Description SW_PEER_ID
  151. An identifier indicating from which AP this CBF is being
  152. requested. Helps in crosschecking that the MAC and PHY
  153. are still in sync on what is stored in the cbf_mem_index
  154. location.
  155. <legal all>
  156. */
  157. #define TX_CBF_INFO_SW_PEER_ID_OFFSET 0x0000000000000000
  158. #define TX_CBF_INFO_SW_PEER_ID_LSB 0
  159. #define TX_CBF_INFO_SW_PEER_ID_MSB 15
  160. #define TX_CBF_INFO_SW_PEER_ID_MASK 0x000000000000ffff
  161. /* Description PRE_CBF_DURATION
  162. NPDA_duration_field - SIFS - NDP_pkt_time or BRPOLL_duration_field.
  163. The cbf_duration_field = pre_cbf_duration - cbf_pkt_time
  164. This will be the pre-NDP duration or pre-LMR duration in
  165. case of .11az ranging (field Ranging below is set).
  166. */
  167. #define TX_CBF_INFO_PRE_CBF_DURATION_OFFSET 0x0000000000000000
  168. #define TX_CBF_INFO_PRE_CBF_DURATION_LSB 16
  169. #define TX_CBF_INFO_PRE_CBF_DURATION_MSB 31
  170. #define TX_CBF_INFO_PRE_CBF_DURATION_MASK 0x00000000ffff0000
  171. /* Description BRPOLL_INFO_VALID
  172. When set, legacy type brpoll info is valid. TXPCU will have
  173. to trigger the PDG for response transmission
  174. It will not be clear here what the PHY's response format
  175. will be. Could be 11ac or 11ax. MAC is not 'remembering'
  176. the format type, but PHY will know.
  177. MAC will get to know based on the field Cbf_response_type
  178. in the PHYRX_CBF_READ_REQUEST_ACK TLV.
  179. <legal all>
  180. */
  181. #define TX_CBF_INFO_BRPOLL_INFO_VALID_OFFSET 0x0000000000000000
  182. #define TX_CBF_INFO_BRPOLL_INFO_VALID_LSB 32
  183. #define TX_CBF_INFO_BRPOLL_INFO_VALID_MSB 32
  184. #define TX_CBF_INFO_BRPOLL_INFO_VALID_MASK 0x0000000100000000
  185. /* Description TRIGGER_BRPOLL_INFO_VALID
  186. When set with Ranging = 0, trigger based brpoll info is
  187. valid.
  188. When set with Ranging = 1, .11az sounding trigger info is
  189. valid for trigger-based ranging (TBR).
  190. This also implies that RXPCU has already triggered the PDG
  191. for response transmission
  192. <legal all>
  193. */
  194. #define TX_CBF_INFO_TRIGGER_BRPOLL_INFO_VALID_OFFSET 0x0000000000000000
  195. #define TX_CBF_INFO_TRIGGER_BRPOLL_INFO_VALID_LSB 33
  196. #define TX_CBF_INFO_TRIGGER_BRPOLL_INFO_VALID_MSB 33
  197. #define TX_CBF_INFO_TRIGGER_BRPOLL_INFO_VALID_MASK 0x0000000200000000
  198. /* Description NPDA_INFO_11AC_VALID
  199. When set, 11ac_NDPA info is valid.
  200. TXPCU will have to trigger the PDG for response transmission
  201. PHY's response will be be in 11ac format
  202. <legal all>
  203. */
  204. #define TX_CBF_INFO_NPDA_INFO_11AC_VALID_OFFSET 0x0000000000000000
  205. #define TX_CBF_INFO_NPDA_INFO_11AC_VALID_LSB 34
  206. #define TX_CBF_INFO_NPDA_INFO_11AC_VALID_MSB 34
  207. #define TX_CBF_INFO_NPDA_INFO_11AC_VALID_MASK 0x0000000400000000
  208. /* Description NPDA_INFO_11AX_VALID
  209. When set, 11ax_NDPA info is valid.
  210. TXPCU will have to trigger the PDG for response transmission
  211. PHY's response will be be in 11ax format
  212. There is a separate Npda_info_11be_valid field near the
  213. end of this TLV.
  214. <legal all>
  215. */
  216. #define TX_CBF_INFO_NPDA_INFO_11AX_VALID_OFFSET 0x0000000000000000
  217. #define TX_CBF_INFO_NPDA_INFO_11AX_VALID_LSB 35
  218. #define TX_CBF_INFO_NPDA_INFO_11AX_VALID_MSB 35
  219. #define TX_CBF_INFO_NPDA_INFO_11AX_VALID_MASK 0x0000000800000000
  220. /* Description DOT11AX_SU_EXTENDED
  221. When set, frame was received in 11ax or 11be extended range
  222. format
  223. */
  224. #define TX_CBF_INFO_DOT11AX_SU_EXTENDED_OFFSET 0x0000000000000000
  225. #define TX_CBF_INFO_DOT11AX_SU_EXTENDED_LSB 36
  226. #define TX_CBF_INFO_DOT11AX_SU_EXTENDED_MSB 36
  227. #define TX_CBF_INFO_DOT11AX_SU_EXTENDED_MASK 0x0000001000000000
  228. /* Description BANDWIDTH
  229. Field only valid when Brpoll_info_valid , Npda_info_11ac_valid
  230. or Npda_info_11ax_valid is set.
  231. The bandwidth that TXPCU uses to select the final response
  232. table entry. That entry will contain all response info
  233. for the CBF frame.
  234. <enum 0 20_mhz>20 Mhz BW
  235. <enum 1 40_mhz>40 Mhz BW
  236. <enum 2 80_mhz>80 Mhz BW
  237. <enum 3 160_mhz>160 Mhz BW
  238. <enum 4 320_mhz>320 Mhz BW
  239. <enum 5 240_mhz>240 Mhz BW
  240. */
  241. #define TX_CBF_INFO_BANDWIDTH_OFFSET 0x0000000000000000
  242. #define TX_CBF_INFO_BANDWIDTH_LSB 37
  243. #define TX_CBF_INFO_BANDWIDTH_MSB 39
  244. #define TX_CBF_INFO_BANDWIDTH_MASK 0x000000e000000000
  245. /* Description BRPOLL_INFO
  246. Field only valid when Brpoll_info_valid is set.
  247. Feedback Segment retransmission feedback field from the
  248. BRPOLL frame.
  249. <legal all>
  250. */
  251. #define TX_CBF_INFO_BRPOLL_INFO_OFFSET 0x0000000000000000
  252. #define TX_CBF_INFO_BRPOLL_INFO_LSB 40
  253. #define TX_CBF_INFO_BRPOLL_INFO_MSB 47
  254. #define TX_CBF_INFO_BRPOLL_INFO_MASK 0x0000ff0000000000
  255. /* Description CBF_RESPONSE_TABLE_BASE_INDEX
  256. Field only valid when Brpoll_info_valid or
  257. Npda_info_11ac_valid or Npda_info_11ax_valid is set.
  258. When set to 0, use the register based lookup for determining
  259. the CBF response rates.
  260. When > 0, TXPCU shall use this response table index for
  261. the 20 MHz response, and higher BW responses are in the
  262. subsequent response table entries
  263. This will be the LMR response table base index in case of
  264. .11az ranging (field Ranging below is set).
  265. <legal all>
  266. */
  267. #define TX_CBF_INFO_CBF_RESPONSE_TABLE_BASE_INDEX_OFFSET 0x0000000000000000
  268. #define TX_CBF_INFO_CBF_RESPONSE_TABLE_BASE_INDEX_LSB 48
  269. #define TX_CBF_INFO_CBF_RESPONSE_TABLE_BASE_INDEX_MSB 55
  270. #define TX_CBF_INFO_CBF_RESPONSE_TABLE_BASE_INDEX_MASK 0x00ff000000000000
  271. /* Description PEER_INDEX
  272. Field only valid when Brpoll_info_valid or
  273. Npda_info_11ac_valid or Npda_info_11ax_valid is set.
  274. Indicates the CBF peer index to be used by TxPCU to determine
  275. the look-up table index for CBF response frames. RxPCU
  276. populate this field from the peer_entry.
  277. <legal 0-7>
  278. */
  279. #define TX_CBF_INFO_PEER_INDEX_OFFSET 0x0000000000000000
  280. #define TX_CBF_INFO_PEER_INDEX_LSB 56
  281. #define TX_CBF_INFO_PEER_INDEX_MSB 58
  282. #define TX_CBF_INFO_PEER_INDEX_MASK 0x0700000000000000
  283. /* Description PKT_TYPE
  284. Received Packet type:
  285. <enum 0 dot11a>802.11a PPDU type
  286. <enum 1 dot11b>802.11b PPDU type
  287. <enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
  288. <enum 3 dot11ac>802.11ac PPDU type
  289. <enum 4 dot11ax>802.11ax PPDU type
  290. <enum 5 dot11ba>802.11ba (WUR) PPDU type
  291. <enum 6 dot11be>802.11be PPDU type
  292. <enum 7 dot11az>802.11az (ranging) PPDU type
  293. <enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
  294. & aborted)
  295. */
  296. #define TX_CBF_INFO_PKT_TYPE_OFFSET 0x0000000000000000
  297. #define TX_CBF_INFO_PKT_TYPE_LSB 59
  298. #define TX_CBF_INFO_PKT_TYPE_MSB 62
  299. #define TX_CBF_INFO_PKT_TYPE_MASK 0x7800000000000000
  300. /* Description TXOP_DURATION_ALL_ONES
  301. When set, either the TXOP_DURATION of the received frame
  302. was set to all 1s or there is a BSS color collision. The
  303. TXOP_DURATION of the transmit response should be forced
  304. to all 1s.
  305. <legal all>
  306. */
  307. #define TX_CBF_INFO_TXOP_DURATION_ALL_ONES_OFFSET 0x0000000000000000
  308. #define TX_CBF_INFO_TXOP_DURATION_ALL_ONES_LSB 63
  309. #define TX_CBF_INFO_TXOP_DURATION_ALL_ONES_MSB 63
  310. #define TX_CBF_INFO_TXOP_DURATION_ALL_ONES_MASK 0x8000000000000000
  311. /* Description TRIGGER_BRPOLL_COMMON_INFO_15_0
  312. Field only valid when Trigger_Brpoll_info_valid is set.
  313. Trigger based BRPOLL or .11az sounding (TBR) request info...
  314. bits [15:0]
  315. This is the variable common info field from the trigger
  316. related to the BTPOLL. For field definition see IEEE spec
  317. Note: final IEEE field might not need all these bits. If
  318. so, the extra bits become reserved fields.
  319. <legal all>
  320. */
  321. #define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_15_0_OFFSET 0x0000000000000008
  322. #define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_15_0_LSB 0
  323. #define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_15_0_MSB 15
  324. #define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_15_0_MASK 0x000000000000ffff
  325. /* Description TRIGGER_BRPOLL_COMMON_INFO_31_16
  326. Field only valid when Trigger_Brpoll_info_valid is set.
  327. Trigger based BRPOLL or .11az sounding (TBR) request info...
  328. bits [31:15]
  329. This is the variable common info field from the trigger
  330. related to the BTPOLL. For field definition see IEEE spec
  331. Note: final IEEE field might not need all these bits. If
  332. so, the extra bits become reserved fields.
  333. <legal all>
  334. */
  335. #define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_31_16_OFFSET 0x0000000000000008
  336. #define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_31_16_LSB 16
  337. #define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_31_16_MSB 31
  338. #define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_31_16_MASK 0x00000000ffff0000
  339. /* Description TRIGGER_BRPOLL_USER_INFO_15_0
  340. Field only valid when Trigger_Brpoll_info_valid is set.
  341. BRPOLL or .11az sounding (TBR) trigger Type dependent User
  342. information bits [15:0]
  343. This is the variable user info field from the trigger related
  344. to the BTPOLL.
  345. For field definition see IEEE spec
  346. Note: final IEEE field might not need all these bits. If
  347. so, the extra bits become reserved fields.
  348. <legal all>
  349. */
  350. #define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_15_0_OFFSET 0x0000000000000008
  351. #define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_15_0_LSB 32
  352. #define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_15_0_MSB 47
  353. #define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_15_0_MASK 0x0000ffff00000000
  354. /* Description TRIGGER_BRPOLL_USER_INFO_31_16
  355. Field only valid when Trigger_Brpoll_info_valid is set.
  356. BRPOLL or .11az sounding (TBR) trigger Type dependent User
  357. information bits [31:16]
  358. This is the variable user info field from the trigger related
  359. to the BTPOLL.
  360. For field definition see IEEE spec
  361. Note: final IEEE field might not need all these bits. If
  362. so, the extra bits become reserved fields.
  363. <legal all>
  364. */
  365. #define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_31_16_OFFSET 0x0000000000000008
  366. #define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_31_16_LSB 48
  367. #define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_31_16_MSB 63
  368. #define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_31_16_MASK 0xffff000000000000
  369. /* Description ADDR1_31_0
  370. CBF address1[31:0]
  371. */
  372. #define TX_CBF_INFO_ADDR1_31_0_OFFSET 0x0000000000000010
  373. #define TX_CBF_INFO_ADDR1_31_0_LSB 0
  374. #define TX_CBF_INFO_ADDR1_31_0_MSB 31
  375. #define TX_CBF_INFO_ADDR1_31_0_MASK 0x00000000ffffffff
  376. /* Description ADDR1_47_32
  377. CBF address1[47:32]
  378. */
  379. #define TX_CBF_INFO_ADDR1_47_32_OFFSET 0x0000000000000010
  380. #define TX_CBF_INFO_ADDR1_47_32_LSB 32
  381. #define TX_CBF_INFO_ADDR1_47_32_MSB 47
  382. #define TX_CBF_INFO_ADDR1_47_32_MASK 0x0000ffff00000000
  383. /* Description ADDR2_15_0
  384. CBF address2[15:0]
  385. */
  386. #define TX_CBF_INFO_ADDR2_15_0_OFFSET 0x0000000000000010
  387. #define TX_CBF_INFO_ADDR2_15_0_LSB 48
  388. #define TX_CBF_INFO_ADDR2_15_0_MSB 63
  389. #define TX_CBF_INFO_ADDR2_15_0_MASK 0xffff000000000000
  390. /* Description ADDR2_47_16
  391. CBF address2[47:16]
  392. */
  393. #define TX_CBF_INFO_ADDR2_47_16_OFFSET 0x0000000000000018
  394. #define TX_CBF_INFO_ADDR2_47_16_LSB 0
  395. #define TX_CBF_INFO_ADDR2_47_16_MSB 31
  396. #define TX_CBF_INFO_ADDR2_47_16_MASK 0x00000000ffffffff
  397. /* Description ADDR3_31_0
  398. CBF address3[31:0]
  399. */
  400. #define TX_CBF_INFO_ADDR3_31_0_OFFSET 0x0000000000000018
  401. #define TX_CBF_INFO_ADDR3_31_0_LSB 32
  402. #define TX_CBF_INFO_ADDR3_31_0_MSB 63
  403. #define TX_CBF_INFO_ADDR3_31_0_MASK 0xffffffff00000000
  404. /* Description ADDR3_47_32
  405. CBF address3[47:16]
  406. */
  407. #define TX_CBF_INFO_ADDR3_47_32_OFFSET 0x0000000000000020
  408. #define TX_CBF_INFO_ADDR3_47_32_LSB 0
  409. #define TX_CBF_INFO_ADDR3_47_32_MSB 15
  410. #define TX_CBF_INFO_ADDR3_47_32_MASK 0x000000000000ffff
  411. /* Description STA_PARTIAL_AID
  412. Partial AID field
  413. */
  414. #define TX_CBF_INFO_STA_PARTIAL_AID_OFFSET 0x0000000000000020
  415. #define TX_CBF_INFO_STA_PARTIAL_AID_LSB 16
  416. #define TX_CBF_INFO_STA_PARTIAL_AID_MSB 26
  417. #define TX_CBF_INFO_STA_PARTIAL_AID_MASK 0x0000000007ff0000
  418. /* Description RESERVED_8A
  419. <legal 0>
  420. */
  421. #define TX_CBF_INFO_RESERVED_8A_OFFSET 0x0000000000000020
  422. #define TX_CBF_INFO_RESERVED_8A_LSB 27
  423. #define TX_CBF_INFO_RESERVED_8A_MSB 30
  424. #define TX_CBF_INFO_RESERVED_8A_MASK 0x0000000078000000
  425. /* Description CBF_RESP_PWR_MGMT
  426. Power management bit of the response CBF frame or LMR frame
  427. in case of .11az ranging (field Ranging below is set).
  428. */
  429. #define TX_CBF_INFO_CBF_RESP_PWR_MGMT_OFFSET 0x0000000000000020
  430. #define TX_CBF_INFO_CBF_RESP_PWR_MGMT_LSB 31
  431. #define TX_CBF_INFO_CBF_RESP_PWR_MGMT_MSB 31
  432. #define TX_CBF_INFO_CBF_RESP_PWR_MGMT_MASK 0x0000000080000000
  433. /* Description GROUP_ID
  434. Group ID field
  435. */
  436. #define TX_CBF_INFO_GROUP_ID_OFFSET 0x0000000000000020
  437. #define TX_CBF_INFO_GROUP_ID_LSB 32
  438. #define TX_CBF_INFO_GROUP_ID_MSB 37
  439. #define TX_CBF_INFO_GROUP_ID_MASK 0x0000003f00000000
  440. /* Description RSSI_COMB
  441. The combined RSSI of the legacy STF of RX PPDU of all active
  442. chains and bandwidths.
  443. */
  444. #define TX_CBF_INFO_RSSI_COMB_OFFSET 0x0000000000000020
  445. #define TX_CBF_INFO_RSSI_COMB_LSB 38
  446. #define TX_CBF_INFO_RSSI_COMB_MSB 45
  447. #define TX_CBF_INFO_RSSI_COMB_MASK 0x00003fc000000000
  448. /* Description RESERVED_9A
  449. Bit 14: force_extra_symbol:
  450. Set to 1 to force an extra OFDM symbol (or symbols) even
  451. if the PPDU encoding process does not result in an extra
  452. OFDM symbol (or symbols)
  453. Not supported in Hamilton v1
  454. <legal 0-1>
  455. */
  456. #define TX_CBF_INFO_RESERVED_9A_OFFSET 0x0000000000000020
  457. #define TX_CBF_INFO_RESERVED_9A_LSB 46
  458. #define TX_CBF_INFO_RESERVED_9A_MSB 47
  459. #define TX_CBF_INFO_RESERVED_9A_MASK 0x0000c00000000000
  460. /* Description VHT_NDPA_STA_INFO
  461. Field only valid when Npda_info_11ac_valid is set
  462. The complete (RAW) STA INFO field that MAC extracted from
  463. the VHT NDPA frame.
  464. Put here for backup reasons in case last moment fields got
  465. added that PHY needs to be able to interpret
  466. This field contains
  467. {
  468. VHT STA_INFO.NC_INDEX[2:0],
  469. VHT STA_INFO.FEEDBACK_TYPE,
  470. VHT STA_INFO.AID12[11:0]
  471. }
  472. <legal all>
  473. */
  474. #define TX_CBF_INFO_VHT_NDPA_STA_INFO_OFFSET 0x0000000000000020
  475. #define TX_CBF_INFO_VHT_NDPA_STA_INFO_LSB 48
  476. #define TX_CBF_INFO_VHT_NDPA_STA_INFO_MSB 63
  477. #define TX_CBF_INFO_VHT_NDPA_STA_INFO_MASK 0xffff000000000000
  478. /* Description HE_EHT_STA_INFO_15_0
  479. Field only valid when Npda_info_11ax_valid or Npda_info_11be_valid
  480. is set
  481. The first 16 bits of the RAW HE or EHT STA INFO field in
  482. the NDPA frame
  483. Put here for backup reasons in case last moment fields got
  484. added that PHY needs to be able to interpret
  485. <legal all>
  486. */
  487. #define TX_CBF_INFO_HE_EHT_STA_INFO_15_0_OFFSET 0x0000000000000028
  488. #define TX_CBF_INFO_HE_EHT_STA_INFO_15_0_LSB 0
  489. #define TX_CBF_INFO_HE_EHT_STA_INFO_15_0_MSB 15
  490. #define TX_CBF_INFO_HE_EHT_STA_INFO_15_0_MASK 0x000000000000ffff
  491. /* Description HE_EHT_STA_INFO_31_16
  492. Field only valid when Npda_info_11ax_valid or Npda_info_11be_valid
  493. is set
  494. The second 16 bits of the RAW HE or EHT STA INFO field in
  495. the NDPA frame
  496. Put here for backup reasons in case last moment fields got
  497. added that PHY needs to be able to interpret
  498. There is an EHT_STA_INFO_39_32 field near the end of this
  499. TLV.
  500. <legal all>
  501. */
  502. #define TX_CBF_INFO_HE_EHT_STA_INFO_31_16_OFFSET 0x0000000000000028
  503. #define TX_CBF_INFO_HE_EHT_STA_INFO_31_16_LSB 16
  504. #define TX_CBF_INFO_HE_EHT_STA_INFO_31_16_MSB 31
  505. #define TX_CBF_INFO_HE_EHT_STA_INFO_31_16_MASK 0x00000000ffff0000
  506. /* Description DOT11AX_RECEIVED_FORMAT_INDICATION
  507. This field is only valid for pkt_type == 11ax
  508. Format_Indication from the received frame.
  509. <enum 0 HE_SIGA_FORMAT_HE_TRIG>
  510. <enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU>
  511. <legal all>
  512. */
  513. #define TX_CBF_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_OFFSET 0x0000000000000028
  514. #define TX_CBF_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_LSB 32
  515. #define TX_CBF_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_MSB 32
  516. #define TX_CBF_INFO_DOT11AX_RECEIVED_FORMAT_INDICATION_MASK 0x0000000100000000
  517. /* Description DOT11AX_RECEIVED_DL_UL_FLAG
  518. This field is only valid for pkt_type == 11ax
  519. DL_UL_flag from the received frame
  520. Differentiates between DL and UL transmission
  521. <enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
  522. <enum 1 DL_UL_FLAG_IS_UL>
  523. <legal all>
  524. */
  525. #define TX_CBF_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_OFFSET 0x0000000000000028
  526. #define TX_CBF_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_LSB 33
  527. #define TX_CBF_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_MSB 33
  528. #define TX_CBF_INFO_DOT11AX_RECEIVED_DL_UL_FLAG_MASK 0x0000000200000000
  529. /* Description DOT11AX_RECEIVED_BSS_COLOR_ID
  530. This field is only valid for pkt_type == 11ax
  531. BSS_color_id from the received frame
  532. <legal all>
  533. */
  534. #define TX_CBF_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_OFFSET 0x0000000000000028
  535. #define TX_CBF_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_LSB 34
  536. #define TX_CBF_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_MSB 39
  537. #define TX_CBF_INFO_DOT11AX_RECEIVED_BSS_COLOR_ID_MASK 0x000000fc00000000
  538. /* Description DOT11AX_RECEIVED_SPATIAL_REUSE
  539. This field is only valid for pkt_type == 11ax
  540. Spatial reuse from the received frame
  541. <legal all>
  542. */
  543. #define TX_CBF_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_OFFSET 0x0000000000000028
  544. #define TX_CBF_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_LSB 40
  545. #define TX_CBF_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_MSB 43
  546. #define TX_CBF_INFO_DOT11AX_RECEIVED_SPATIAL_REUSE_MASK 0x00000f0000000000
  547. /* Description DOT11AX_RECEIVED_CP_SIZE
  548. This field is only valid for pkt_type == 11ax
  549. CP size of the received frame
  550. <enum 0 0_8_us_sgi > Legacy normal GI. Can also be used
  551. for HE
  552. <enum 1 0_4_us_sgi > Legacy short GI. Can also be used
  553. for HE
  554. <enum 2 1_6_us_sgi > HE related GI
  555. <enum 3 3_2_us_sgi > HE related GI
  556. <legal 0 - 3>
  557. */
  558. #define TX_CBF_INFO_DOT11AX_RECEIVED_CP_SIZE_OFFSET 0x0000000000000028
  559. #define TX_CBF_INFO_DOT11AX_RECEIVED_CP_SIZE_LSB 44
  560. #define TX_CBF_INFO_DOT11AX_RECEIVED_CP_SIZE_MSB 45
  561. #define TX_CBF_INFO_DOT11AX_RECEIVED_CP_SIZE_MASK 0x0000300000000000
  562. /* Description DOT11AX_RECEIVED_LTF_SIZE
  563. This field is only valid for pkt_type == 11ax
  564. LTF size of the received frame
  565. <enum 0 ltf_1x >
  566. <enum 1 ltf_2x >
  567. <enum 2 ltf_4x >
  568. <legal 0 - 2>
  569. */
  570. #define TX_CBF_INFO_DOT11AX_RECEIVED_LTF_SIZE_OFFSET 0x0000000000000028
  571. #define TX_CBF_INFO_DOT11AX_RECEIVED_LTF_SIZE_LSB 46
  572. #define TX_CBF_INFO_DOT11AX_RECEIVED_LTF_SIZE_MSB 47
  573. #define TX_CBF_INFO_DOT11AX_RECEIVED_LTF_SIZE_MASK 0x0000c00000000000
  574. /* Description DOT11AX_RECEIVED_CODING
  575. This field is only valid for pkt_type == 11ax
  576. Coding from the received frame
  577. <legal all>
  578. */
  579. #define TX_CBF_INFO_DOT11AX_RECEIVED_CODING_OFFSET 0x0000000000000028
  580. #define TX_CBF_INFO_DOT11AX_RECEIVED_CODING_LSB 48
  581. #define TX_CBF_INFO_DOT11AX_RECEIVED_CODING_MSB 48
  582. #define TX_CBF_INFO_DOT11AX_RECEIVED_CODING_MASK 0x0001000000000000
  583. /* Description DOT11AX_RECEIVED_DCM
  584. This field is only valid for pkt_type == 11ax
  585. DCM from the received frame
  586. <legal all>
  587. */
  588. #define TX_CBF_INFO_DOT11AX_RECEIVED_DCM_OFFSET 0x0000000000000028
  589. #define TX_CBF_INFO_DOT11AX_RECEIVED_DCM_LSB 49
  590. #define TX_CBF_INFO_DOT11AX_RECEIVED_DCM_MSB 49
  591. #define TX_CBF_INFO_DOT11AX_RECEIVED_DCM_MASK 0x0002000000000000
  592. /* Description DOT11AX_RECEIVED_DOPPLER_INDICATION
  593. This field is only valid for pkt_type == 11ax
  594. Doppler_indication from the received frame
  595. <legal all>
  596. */
  597. #define TX_CBF_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_OFFSET 0x0000000000000028
  598. #define TX_CBF_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_LSB 50
  599. #define TX_CBF_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_MSB 50
  600. #define TX_CBF_INFO_DOT11AX_RECEIVED_DOPPLER_INDICATION_MASK 0x0004000000000000
  601. /* Description DOT11AX_RECEIVED_EXT_RU_SIZE
  602. This field is only valid for pkt_type == 11ax OR pkt_type
  603. == 11be AND dot11ax_su_extended is set
  604. The number of (basic) RUs in this extended range reception
  605. RXPCU gets this from the received HE_SIG_A
  606. <legal all>
  607. */
  608. #define TX_CBF_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_OFFSET 0x0000000000000028
  609. #define TX_CBF_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_LSB 51
  610. #define TX_CBF_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_MSB 54
  611. #define TX_CBF_INFO_DOT11AX_RECEIVED_EXT_RU_SIZE_MASK 0x0078000000000000
  612. /* Description DOT11AX_DL_UL_FLAG
  613. This field is only valid for pkt_type == 11ax
  614. DL_UL_flag to be used for response frame sent to this device.
  615. Differentiates between DL and UL transmission
  616. <enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
  617. <enum 1 DL_UL_FLAG_IS_UL>
  618. Note: this setting can also come from response look-up table
  619. in TXPCU...
  620. The selection is SW programmable
  621. <legal all>
  622. */
  623. #define TX_CBF_INFO_DOT11AX_DL_UL_FLAG_OFFSET 0x0000000000000028
  624. #define TX_CBF_INFO_DOT11AX_DL_UL_FLAG_LSB 55
  625. #define TX_CBF_INFO_DOT11AX_DL_UL_FLAG_MSB 55
  626. #define TX_CBF_INFO_DOT11AX_DL_UL_FLAG_MASK 0x0080000000000000
  627. /* Description RESERVED_11A
  628. <legal 0>
  629. */
  630. #define TX_CBF_INFO_RESERVED_11A_OFFSET 0x0000000000000028
  631. #define TX_CBF_INFO_RESERVED_11A_LSB 56
  632. #define TX_CBF_INFO_RESERVED_11A_MSB 63
  633. #define TX_CBF_INFO_RESERVED_11A_MASK 0xff00000000000000
  634. /* Description SW_RESPONSE_FRAME_LENGTH
  635. Field only valid when SW_Response_tlv_from_crypto is set
  636. This is the size of the frame (in bytes) that SW will generate
  637. as the response frame. In those scenarios where TXPCU needs
  638. to indicate a frame_length in the PDG_RESPONSE TLV, this
  639. will be the value that TXPCU needs to use.
  640. Note that this length value includes the FCS.
  641. <legal all>
  642. */
  643. #define TX_CBF_INFO_SW_RESPONSE_FRAME_LENGTH_OFFSET 0x0000000000000030
  644. #define TX_CBF_INFO_SW_RESPONSE_FRAME_LENGTH_LSB 0
  645. #define TX_CBF_INFO_SW_RESPONSE_FRAME_LENGTH_MSB 15
  646. #define TX_CBF_INFO_SW_RESPONSE_FRAME_LENGTH_MASK 0x000000000000ffff
  647. /* Description SW_RESPONSE_TLV_FROM_CRYPTO
  648. Field can only be set by MAC mitigation logic
  649. The idea is here that normally TXPCU generates the response
  650. frame.
  651. But as a backup scenario, in case of a last moment some
  652. CBF frame BA format change happens or there is some other
  653. issue, the CBF frame could be fully generated in the MAC
  654. micro CPU and pushed into TXPCU through the Crypto - TXPCU
  655. TLV interface.
  656. From TXPCU perspective, all interaction with PDG remains
  657. exactly the same, accept that the frame length is now coming
  658. from field SW_Response_frame_length and the response frame
  659. is pushed into TXPCU over the CRYPTO - TXPCU TLV interface
  660. When set, this feature kick in
  661. When clear, this feature is not enabled
  662. <legal all>
  663. */
  664. #define TX_CBF_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_OFFSET 0x0000000000000030
  665. #define TX_CBF_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_LSB 16
  666. #define TX_CBF_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_MSB 16
  667. #define TX_CBF_INFO_SW_RESPONSE_TLV_FROM_CRYPTO_MASK 0x0000000000010000
  668. /* Description WAIT_SIFS_CONFIG_VALID
  669. When set, TXPCU shall follow the wait_sifs configuration.
  670. <legal all>
  671. */
  672. #define TX_CBF_INFO_WAIT_SIFS_CONFIG_VALID_OFFSET 0x0000000000000030
  673. #define TX_CBF_INFO_WAIT_SIFS_CONFIG_VALID_LSB 17
  674. #define TX_CBF_INFO_WAIT_SIFS_CONFIG_VALID_MSB 17
  675. #define TX_CBF_INFO_WAIT_SIFS_CONFIG_VALID_MASK 0x0000000000020000
  676. /* Description WAIT_SIFS
  677. Indicates to the TXPCU how precise the SIFS the response
  678. timing shall be...
  679. The configuration for this is coming from SW programmable
  680. registers in RXPCU, where RXPCU shall allow SW to program
  681. different settings for the following scenarios: BRPOLL,
  682. NDPA-NDP, 11ax trigger frame based BRPOLL
  683. <enum 0 NO_SIFS_TIMING> Transmission shall start with the
  684. normal delay in PHY after receiving this notification
  685. <enum 1 SIFS_TIMING_DESIRED> Transmission shall be made
  686. at the SIFS boundary. If shall never start before SIFS boundary,
  687. but if it a little later, it is not ideal and should be
  688. flagged, but transmission shall not be aborted.
  689. <enum 2 SIFS_TIMING_MANDATED> Transmission shall be made
  690. at exactly SIFS boundary. If this notification is received
  691. by the PHY after SIFS boundary already passed, the PHY
  692. shall abort the transmission
  693. <legal 0-2>
  694. */
  695. #define TX_CBF_INFO_WAIT_SIFS_OFFSET 0x0000000000000030
  696. #define TX_CBF_INFO_WAIT_SIFS_LSB 18
  697. #define TX_CBF_INFO_WAIT_SIFS_MSB 19
  698. #define TX_CBF_INFO_WAIT_SIFS_MASK 0x00000000000c0000
  699. /* Description RANGING
  700. 0: This TLV is generated for Tx CBF generation.
  701. 1: TLV is generated due to an active ranging session (.11az).
  702. <legal all>
  703. */
  704. #define TX_CBF_INFO_RANGING_OFFSET 0x0000000000000030
  705. #define TX_CBF_INFO_RANGING_LSB 20
  706. #define TX_CBF_INFO_RANGING_MSB 20
  707. #define TX_CBF_INFO_RANGING_MASK 0x0000000000100000
  708. /* Description SECURE
  709. Field only valid if Ranging is set to 1.
  710. 0: Current ranging session is non-secure.
  711. 1: Current ranging session is secure.
  712. <legal all>
  713. */
  714. #define TX_CBF_INFO_SECURE_OFFSET 0x0000000000000030
  715. #define TX_CBF_INFO_SECURE_LSB 21
  716. #define TX_CBF_INFO_SECURE_MSB 21
  717. #define TX_CBF_INFO_SECURE_MASK 0x0000000000200000
  718. /* Description TB_RANGING_RESPONSE_REQUIRED
  719. Field only valid in case of TB Ranging
  720. <enum 0 No_TB_Ranging_Resp>
  721. <enum 1 CTS2S_Resp_to_TF_poll > DO NOT USE.
  722. <enum 2 LMR_Resp_to_TF_report> DO NOT USE.
  723. <enum 3 NDP_Resp_to_TF_sound> TXPCU to generate TB ranging
  724. NDP in response
  725. <legal 0-3>
  726. */
  727. #define TX_CBF_INFO_TB_RANGING_RESPONSE_REQUIRED_OFFSET 0x0000000000000030
  728. #define TX_CBF_INFO_TB_RANGING_RESPONSE_REQUIRED_LSB 22
  729. #define TX_CBF_INFO_TB_RANGING_RESPONSE_REQUIRED_MSB 23
  730. #define TX_CBF_INFO_TB_RANGING_RESPONSE_REQUIRED_MASK 0x0000000000c00000
  731. /* Description RESERVED_12A
  732. <legal 0>
  733. */
  734. #define TX_CBF_INFO_RESERVED_12A_OFFSET 0x0000000000000030
  735. #define TX_CBF_INFO_RESERVED_12A_LSB 24
  736. #define TX_CBF_INFO_RESERVED_12A_MSB 25
  737. #define TX_CBF_INFO_RESERVED_12A_MASK 0x0000000003000000
  738. /* Description U_SIG_PUNCTURE_PATTERN_ENCODING
  739. This field is only valid if Punctured_response is set
  740. The 6-bit value used in U-SIG and/or EHT-SIG Common field
  741. for the puncture pattern
  742. <legal 0-29>
  743. */
  744. #define TX_CBF_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET 0x0000000000000030
  745. #define TX_CBF_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB 26
  746. #define TX_CBF_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB 31
  747. #define TX_CBF_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK 0x00000000fc000000
  748. /* Description DOT11BE_PUNCTURE_BITMAP
  749. This field is only valid if Punctured_response is set
  750. The bitmap of 20 MHz sub-bands valid in this EHT reception
  751. RXPCU gets this from the received U-SIG and/or EHT-SIG via
  752. PHY microcode.
  753. <legal all>
  754. */
  755. #define TX_CBF_INFO_DOT11BE_PUNCTURE_BITMAP_OFFSET 0x0000000000000030
  756. #define TX_CBF_INFO_DOT11BE_PUNCTURE_BITMAP_LSB 32
  757. #define TX_CBF_INFO_DOT11BE_PUNCTURE_BITMAP_MSB 47
  758. #define TX_CBF_INFO_DOT11BE_PUNCTURE_BITMAP_MASK 0x0000ffff00000000
  759. /* Description DOT11BE_RESPONSE
  760. Indicates that the peer supports .11be response protocols,
  761. e.g. .11be BW indication in scrambler seed, .11be dynamic
  762. BW procedure, punctured response, etc.
  763. */
  764. #define TX_CBF_INFO_DOT11BE_RESPONSE_OFFSET 0x0000000000000030
  765. #define TX_CBF_INFO_DOT11BE_RESPONSE_LSB 48
  766. #define TX_CBF_INFO_DOT11BE_RESPONSE_MSB 48
  767. #define TX_CBF_INFO_DOT11BE_RESPONSE_MASK 0x0001000000000000
  768. /* Description PUNCTURED_RESPONSE
  769. Field only valid if Dot11be_response is set
  770. Indicates that the response shall use preamble puncturing
  771. */
  772. #define TX_CBF_INFO_PUNCTURED_RESPONSE_OFFSET 0x0000000000000030
  773. #define TX_CBF_INFO_PUNCTURED_RESPONSE_LSB 49
  774. #define TX_CBF_INFO_PUNCTURED_RESPONSE_MSB 49
  775. #define TX_CBF_INFO_PUNCTURED_RESPONSE_MASK 0x0002000000000000
  776. /* Description NPDA_INFO_11BE_VALID
  777. When set, 11be_NDPA info is valid.
  778. TXPCU will have to trigger the PDG for response transmission
  779. .
  780. PHY's response will be in 11be format.
  781. <legal all>
  782. */
  783. #define TX_CBF_INFO_NPDA_INFO_11BE_VALID_OFFSET 0x0000000000000030
  784. #define TX_CBF_INFO_NPDA_INFO_11BE_VALID_LSB 50
  785. #define TX_CBF_INFO_NPDA_INFO_11BE_VALID_MSB 50
  786. #define TX_CBF_INFO_NPDA_INFO_11BE_VALID_MASK 0x0004000000000000
  787. /* Description EHT_DUPLICATE_MODE
  788. Field only valid for pkt_type == 11be
  789. Indicates EHT duplicate modulation
  790. <enum 0 eht_no_duplicate>
  791. <enum 1 eht_2x_duplicate>
  792. <enum 2 eht_4x_duplicate>
  793. <legal 0-2>
  794. */
  795. #define TX_CBF_INFO_EHT_DUPLICATE_MODE_OFFSET 0x0000000000000030
  796. #define TX_CBF_INFO_EHT_DUPLICATE_MODE_LSB 51
  797. #define TX_CBF_INFO_EHT_DUPLICATE_MODE_MSB 52
  798. #define TX_CBF_INFO_EHT_DUPLICATE_MODE_MASK 0x0018000000000000
  799. /* Description RESERVED_13A
  800. <legal 0>
  801. */
  802. #define TX_CBF_INFO_RESERVED_13A_OFFSET 0x0000000000000030
  803. #define TX_CBF_INFO_RESERVED_13A_LSB 53
  804. #define TX_CBF_INFO_RESERVED_13A_MSB 63
  805. #define TX_CBF_INFO_RESERVED_13A_MASK 0xffe0000000000000
  806. /* Description EHT_STA_INFO_39_32
  807. Field only valid when Npda_info_11be_valid is set
  808. The fifth 8 bits of the RAW EHT STA INFO field in the NDPA
  809. frame
  810. */
  811. #define TX_CBF_INFO_EHT_STA_INFO_39_32_OFFSET 0x0000000000000038
  812. #define TX_CBF_INFO_EHT_STA_INFO_39_32_LSB 0
  813. #define TX_CBF_INFO_EHT_STA_INFO_39_32_MSB 7
  814. #define TX_CBF_INFO_EHT_STA_INFO_39_32_MASK 0x00000000000000ff
  815. /* Description RESERVED_14A
  816. Can be used for future expansion
  817. <legal 0>
  818. */
  819. #define TX_CBF_INFO_RESERVED_14A_OFFSET 0x0000000000000038
  820. #define TX_CBF_INFO_RESERVED_14A_LSB 8
  821. #define TX_CBF_INFO_RESERVED_14A_MSB 31
  822. #define TX_CBF_INFO_RESERVED_14A_MASK 0x00000000ffffff00
  823. /* Description TLV64_PADDING
  824. Automatic DWORD padding inserted while converting TLV32
  825. to TLV64 for 64 bit ARCH
  826. <legal 0>
  827. */
  828. #define TX_CBF_INFO_TLV64_PADDING_OFFSET 0x0000000000000038
  829. #define TX_CBF_INFO_TLV64_PADDING_LSB 32
  830. #define TX_CBF_INFO_TLV64_PADDING_MSB 63
  831. #define TX_CBF_INFO_TLV64_PADDING_MASK 0xffffffff00000000
  832. #endif // TX_CBF_INFO