tx_cbf_info.h 51 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189
  1. /*
  2. * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
  3. *
  4. * Permission to use, copy, modify, and/or distribute this software for any
  5. * purpose with or without fee is hereby granted, provided that the above
  6. * copyright notice and this permission notice appear in all copies.
  7. *
  8. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  9. * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  10. * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  11. * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  12. * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  13. * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  14. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  15. */
  16. #ifndef _TX_CBF_INFO_H_
  17. #define _TX_CBF_INFO_H_
  18. #if !defined(__ASSEMBLER__)
  19. #endif
  20. #define NUM_OF_DWORDS_TX_CBF_INFO 16
  21. #define NUM_OF_QWORDS_TX_CBF_INFO 8
  22. struct tx_cbf_info {
  23. #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
  24. uint32_t sw_peer_id : 16, // [15:0]
  25. pre_cbf_duration : 16; // [31:16]
  26. uint32_t brpoll_info_valid : 1, // [0:0]
  27. trigger_brpoll_info_valid : 1, // [1:1]
  28. npda_info_11ac_valid : 1, // [2:2]
  29. npda_info_11ax_valid : 1, // [3:3]
  30. dot11ax_su_extended : 1, // [4:4]
  31. bandwidth : 3, // [7:5]
  32. brpoll_info : 8, // [15:8]
  33. cbf_response_table_base_index : 8, // [23:16]
  34. peer_index : 3, // [26:24]
  35. pkt_type : 4, // [30:27]
  36. txop_duration_all_ones : 1; // [31:31]
  37. uint32_t trigger_brpoll_common_info_15_0 : 16, // [15:0]
  38. trigger_brpoll_common_info_31_16 : 16; // [31:16]
  39. uint32_t trigger_brpoll_user_info_15_0 : 16, // [15:0]
  40. trigger_brpoll_user_info_31_16 : 16; // [31:16]
  41. uint32_t addr1_31_0 : 32; // [31:0]
  42. uint32_t addr1_47_32 : 16, // [15:0]
  43. addr2_15_0 : 16; // [31:16]
  44. uint32_t addr2_47_16 : 32; // [31:0]
  45. uint32_t addr3_31_0 : 32; // [31:0]
  46. uint32_t addr3_47_32 : 16, // [15:0]
  47. sta_partial_aid : 11, // [26:16]
  48. reserved_8a : 4, // [30:27]
  49. cbf_resp_pwr_mgmt : 1; // [31:31]
  50. uint32_t group_id : 6, // [5:0]
  51. rssi_comb : 8, // [13:6]
  52. reserved_9a : 2, // [15:14]
  53. vht_ndpa_sta_info : 16; // [31:16]
  54. uint32_t he_eht_sta_info_15_0 : 16, // [15:0]
  55. he_eht_sta_info_31_16 : 16; // [31:16]
  56. uint32_t dot11ax_received_format_indication : 1, // [0:0]
  57. dot11ax_received_dl_ul_flag : 1, // [1:1]
  58. dot11ax_received_bss_color_id : 6, // [7:2]
  59. dot11ax_received_spatial_reuse : 4, // [11:8]
  60. dot11ax_received_cp_size : 2, // [13:12]
  61. dot11ax_received_ltf_size : 2, // [15:14]
  62. dot11ax_received_coding : 1, // [16:16]
  63. dot11ax_received_dcm : 1, // [17:17]
  64. dot11ax_received_doppler_indication : 1, // [18:18]
  65. dot11ax_received_ext_ru_size : 4, // [22:19]
  66. dot11ax_dl_ul_flag : 1, // [23:23]
  67. reserved_11a : 8; // [31:24]
  68. uint32_t sw_response_frame_length : 16, // [15:0]
  69. sw_response_tlv_from_crypto : 1, // [16:16]
  70. wait_sifs_config_valid : 1, // [17:17]
  71. wait_sifs : 2, // [19:18]
  72. ranging : 1, // [20:20]
  73. secure : 1, // [21:21]
  74. tb_ranging_response_required : 2, // [23:22]
  75. reserved_12a : 2, // [25:24]
  76. u_sig_puncture_pattern_encoding : 6; // [31:26]
  77. uint32_t dot11be_puncture_bitmap : 16, // [15:0]
  78. dot11be_response : 1, // [16:16]
  79. punctured_response : 1, // [17:17]
  80. npda_info_11be_valid : 1, // [18:18]
  81. eht_duplicate_mode : 2, // [20:19]
  82. reserved_13a : 11; // [31:21]
  83. uint32_t eht_sta_info_39_32 : 8, // [7:0]
  84. reserved_14a : 24; // [31:8]
  85. uint32_t tlv64_padding : 32; // [31:0]
  86. #else
  87. uint32_t pre_cbf_duration : 16, // [31:16]
  88. sw_peer_id : 16; // [15:0]
  89. uint32_t txop_duration_all_ones : 1, // [31:31]
  90. pkt_type : 4, // [30:27]
  91. peer_index : 3, // [26:24]
  92. cbf_response_table_base_index : 8, // [23:16]
  93. brpoll_info : 8, // [15:8]
  94. bandwidth : 3, // [7:5]
  95. dot11ax_su_extended : 1, // [4:4]
  96. npda_info_11ax_valid : 1, // [3:3]
  97. npda_info_11ac_valid : 1, // [2:2]
  98. trigger_brpoll_info_valid : 1, // [1:1]
  99. brpoll_info_valid : 1; // [0:0]
  100. uint32_t trigger_brpoll_common_info_31_16 : 16, // [31:16]
  101. trigger_brpoll_common_info_15_0 : 16; // [15:0]
  102. uint32_t trigger_brpoll_user_info_31_16 : 16, // [31:16]
  103. trigger_brpoll_user_info_15_0 : 16; // [15:0]
  104. uint32_t addr1_31_0 : 32; // [31:0]
  105. uint32_t addr2_15_0 : 16, // [31:16]
  106. addr1_47_32 : 16; // [15:0]
  107. uint32_t addr2_47_16 : 32; // [31:0]
  108. uint32_t addr3_31_0 : 32; // [31:0]
  109. uint32_t cbf_resp_pwr_mgmt : 1, // [31:31]
  110. reserved_8a : 4, // [30:27]
  111. sta_partial_aid : 11, // [26:16]
  112. addr3_47_32 : 16; // [15:0]
  113. uint32_t vht_ndpa_sta_info : 16, // [31:16]
  114. reserved_9a : 2, // [15:14]
  115. rssi_comb : 8, // [13:6]
  116. group_id : 6; // [5:0]
  117. uint32_t he_eht_sta_info_31_16 : 16, // [31:16]
  118. he_eht_sta_info_15_0 : 16; // [15:0]
  119. uint32_t reserved_11a : 8, // [31:24]
  120. dot11ax_dl_ul_flag : 1, // [23:23]
  121. dot11ax_received_ext_ru_size : 4, // [22:19]
  122. dot11ax_received_doppler_indication : 1, // [18:18]
  123. dot11ax_received_dcm : 1, // [17:17]
  124. dot11ax_received_coding : 1, // [16:16]
  125. dot11ax_received_ltf_size : 2, // [15:14]
  126. dot11ax_received_cp_size : 2, // [13:12]
  127. dot11ax_received_spatial_reuse : 4, // [11:8]
  128. dot11ax_received_bss_color_id : 6, // [7:2]
  129. dot11ax_received_dl_ul_flag : 1, // [1:1]
  130. dot11ax_received_format_indication : 1; // [0:0]
  131. uint32_t u_sig_puncture_pattern_encoding : 6, // [31:26]
  132. reserved_12a : 2, // [25:24]
  133. tb_ranging_response_required : 2, // [23:22]
  134. secure : 1, // [21:21]
  135. ranging : 1, // [20:20]
  136. wait_sifs : 2, // [19:18]
  137. wait_sifs_config_valid : 1, // [17:17]
  138. sw_response_tlv_from_crypto : 1, // [16:16]
  139. sw_response_frame_length : 16; // [15:0]
  140. uint32_t reserved_13a : 11, // [31:21]
  141. eht_duplicate_mode : 2, // [20:19]
  142. npda_info_11be_valid : 1, // [18:18]
  143. punctured_response : 1, // [17:17]
  144. dot11be_response : 1, // [16:16]
  145. dot11be_puncture_bitmap : 16; // [15:0]
  146. uint32_t reserved_14a : 24, // [31:8]
  147. eht_sta_info_39_32 : 8; // [7:0]
  148. uint32_t tlv64_padding : 32; // [31:0]
  149. #endif
  150. };
  151. /* Description SW_PEER_ID
  152. An identifier indicating from which AP this CBF is being
  153. requested. Helps in crosschecking that the MAC and PHY
  154. are still in sync on what is stored in the cbf_mem_index
  155. location.
  156. <legal all>
  157. */
  158. #define TX_CBF_INFO_SW_PEER_ID_OFFSET 0x0000000000000000
  159. #define TX_CBF_INFO_SW_PEER_ID_LSB 0
  160. #define TX_CBF_INFO_SW_PEER_ID_MSB 15
  161. #define TX_CBF_INFO_SW_PEER_ID_MASK 0x000000000000ffff
  162. /* Description PRE_CBF_DURATION
  163. NPDA_duration_field - SIFS - NDP_pkt_time or BRPOLL_duration_field.
  164. The cbf_duration_field = pre_cbf_duration - cbf_pkt_time
  165. This will be the pre-NDP duration or pre-LMR duration in
  166. case of .11az ranging (field Ranging below is set).
  167. */
  168. #define TX_CBF_INFO_PRE_CBF_DURATION_OFFSET 0x0000000000000000
  169. #define TX_CBF_INFO_PRE_CBF_DURATION_LSB 16
  170. #define TX_CBF_INFO_PRE_CBF_DURATION_MSB 31
  171. #define TX_CBF_INFO_PRE_CBF_DURATION_MASK 0x00000000ffff0000
  172. /* Description BRPOLL_INFO_VALID
  173. When set, legacy type brpoll info is valid. TXPCU will have
  174. to trigger the PDG for response transmission
  175. It will not be clear here what the PHY's response format
  176. will be. Could be 11ac or 11ax. MAC is not 'remembering'
  177. the format type, but PHY will know.
  178. MAC will get to know based on the field Cbf_response_type
  179. in the PHYRX_CBF_READ_REQUEST_ACK TLV.
  180. <legal all>
  181. */
  182. #define TX_CBF_INFO_BRPOLL_INFO_VALID_OFFSET 0x0000000000000000
  183. #define TX_CBF_INFO_BRPOLL_INFO_VALID_LSB 32
  184. #define TX_CBF_INFO_BRPOLL_INFO_VALID_MSB 32
  185. #define TX_CBF_INFO_BRPOLL_INFO_VALID_MASK 0x0000000100000000
  186. /* Description TRIGGER_BRPOLL_INFO_VALID
  187. When set with Ranging = 0, trigger based brpoll info is
  188. valid.
  189. When set with Ranging = 1, .11az sounding trigger info is
  190. valid for trigger-based ranging (TBR).
  191. This also implies that RXPCU has already triggered the PDG
  192. for response transmission
  193. <legal all>
  194. */
  195. #define TX_CBF_INFO_TRIGGER_BRPOLL_INFO_VALID_OFFSET 0x0000000000000000
  196. #define TX_CBF_INFO_TRIGGER_BRPOLL_INFO_VALID_LSB 33
  197. #define TX_CBF_INFO_TRIGGER_BRPOLL_INFO_VALID_MSB 33
  198. #define TX_CBF_INFO_TRIGGER_BRPOLL_INFO_VALID_MASK 0x0000000200000000
  199. /* Description NPDA_INFO_11AC_VALID
  200. When set, 11ac_NDPA info is valid.
  201. TXPCU will have to trigger the PDG for response transmission
  202. PHY's response will be be in 11ac format
  203. <legal all>
  204. */
  205. #define TX_CBF_INFO_NPDA_INFO_11AC_VALID_OFFSET 0x0000000000000000
  206. #define TX_CBF_INFO_NPDA_INFO_11AC_VALID_LSB 34
  207. #define TX_CBF_INFO_NPDA_INFO_11AC_VALID_MSB 34
  208. #define TX_CBF_INFO_NPDA_INFO_11AC_VALID_MASK 0x0000000400000000
  209. /* Description NPDA_INFO_11AX_VALID
  210. When set, 11ax_NDPA info is valid.
  211. TXPCU will have to trigger the PDG for response transmission
  212. PHY's response will be be in 11ax format
  213. There is a separate Npda_info_11be_valid field near the
  214. end of this TLV.
  215. <legal all>
  216. */
  217. #define TX_CBF_INFO_NPDA_INFO_11AX_VALID_OFFSET 0x0000000000000000
  218. #define TX_CBF_INFO_NPDA_INFO_11AX_VALID_LSB 35
  219. #define TX_CBF_INFO_NPDA_INFO_11AX_VALID_MSB 35
  220. #define TX_CBF_INFO_NPDA_INFO_11AX_VALID_MASK 0x0000000800000000
  221. /* Description DOT11AX_SU_EXTENDED
  222. When set, frame was received in 11ax or 11be extended range
  223. format
  224. */
  225. #define TX_CBF_INFO_DOT11AX_SU_EXTENDED_OFFSET 0x0000000000000000
  226. #define TX_CBF_INFO_DOT11AX_SU_EXTENDED_LSB 36
  227. #define TX_CBF_INFO_DOT11AX_SU_EXTENDED_MSB 36
  228. #define TX_CBF_INFO_DOT11AX_SU_EXTENDED_MASK 0x0000001000000000
  229. /* Description BANDWIDTH
  230. Field only valid when Brpoll_info_valid , Npda_info_11ac_valid
  231. or Npda_info_11ax_valid is set.
  232. The bandwidth that TXPCU uses to select the final response
  233. table entry. That entry will contain all response info
  234. for the CBF frame.
  235. <enum 0 20_mhz>20 Mhz BW
  236. <enum 1 40_mhz>40 Mhz BW
  237. <enum 2 80_mhz>80 Mhz BW
  238. <enum 3 160_mhz>160 Mhz BW
  239. <enum 4 320_mhz>320 Mhz BW
  240. <enum 5 240_mhz>240 Mhz BW
  241. */
  242. #define TX_CBF_INFO_BANDWIDTH_OFFSET 0x0000000000000000
  243. #define TX_CBF_INFO_BANDWIDTH_LSB 37
  244. #define TX_CBF_INFO_BANDWIDTH_MSB 39
  245. #define TX_CBF_INFO_BANDWIDTH_MASK 0x000000e000000000
  246. /* Description BRPOLL_INFO
  247. Field only valid when Brpoll_info_valid is set.
  248. Feedback Segment retransmission feedback field from the
  249. BRPOLL frame.
  250. <legal all>
  251. */
  252. #define TX_CBF_INFO_BRPOLL_INFO_OFFSET 0x0000000000000000
  253. #define TX_CBF_INFO_BRPOLL_INFO_LSB 40
  254. #define TX_CBF_INFO_BRPOLL_INFO_MSB 47
  255. #define TX_CBF_INFO_BRPOLL_INFO_MASK 0x0000ff0000000000
  256. /* Description CBF_RESPONSE_TABLE_BASE_INDEX
  257. Field only valid when Brpoll_info_valid or
  258. Npda_info_11ac_valid or Npda_info_11ax_valid is set.
  259. When set to 0, use the register based lookup for determining
  260. the CBF response rates.
  261. When > 0, TXPCU shall use this response table index for
  262. the 20 MHz response, and higher BW responses are in the
  263. subsequent response table entries
  264. This will be the LMR response table base index in case of
  265. .11az ranging (field Ranging below is set).
  266. <legal all>
  267. */
  268. #define TX_CBF_INFO_CBF_RESPONSE_TABLE_BASE_INDEX_OFFSET 0x0000000000000000
  269. #define TX_CBF_INFO_CBF_RESPONSE_TABLE_BASE_INDEX_LSB 48
  270. #define TX_CBF_INFO_CBF_RESPONSE_TABLE_BASE_INDEX_MSB 55
  271. #define TX_CBF_INFO_CBF_RESPONSE_TABLE_BASE_INDEX_MASK 0x00ff000000000000
  272. /* Description PEER_INDEX
  273. Field only valid when Brpoll_info_valid or
  274. Npda_info_11ac_valid or Npda_info_11ax_valid is set.
  275. Indicates the CBF peer index to be used by TxPCU to determine
  276. the look-up table index for CBF response frames. RxPCU
  277. populate this field from the peer_entry.
  278. <legal 0-7>
  279. */
  280. #define TX_CBF_INFO_PEER_INDEX_OFFSET 0x0000000000000000
  281. #define TX_CBF_INFO_PEER_INDEX_LSB 56
  282. #define TX_CBF_INFO_PEER_INDEX_MSB 58
  283. #define TX_CBF_INFO_PEER_INDEX_MASK 0x0700000000000000
  284. /* Description PKT_TYPE
  285. Received Packet type:
  286. <enum 0 dot11a>802.11a PPDU type
  287. <enum 1 dot11b>802.11b PPDU type
  288. <enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
  289. <enum 3 dot11ac>802.11ac PPDU type
  290. <enum 4 dot11ax>802.11ax PPDU type
  291. <enum 5 dot11ba>802.11ba (WUR) PPDU type
  292. <enum 6 dot11be>802.11be PPDU type
  293. <enum 7 dot11az>802.11az (ranging) PPDU type
  294. <enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
  295. & aborted)
  296. */
  297. #define TX_CBF_INFO_PKT_TYPE_OFFSET 0x0000000000000000
  298. #define TX_CBF_INFO_PKT_TYPE_LSB 59
  299. #define TX_CBF_INFO_PKT_TYPE_MSB 62
  300. #define TX_CBF_INFO_PKT_TYPE_MASK 0x7800000000000000
  301. /* Description TXOP_DURATION_ALL_ONES
  302. When set, either the TXOP_DURATION of the received frame
  303. was set to all 1s or there is a BSS color collision. The
  304. TXOP_DURATION of the transmit response should be forced
  305. to all 1s.
  306. <legal all>
  307. */
  308. #define TX_CBF_INFO_TXOP_DURATION_ALL_ONES_OFFSET 0x0000000000000000
  309. #define TX_CBF_INFO_TXOP_DURATION_ALL_ONES_LSB 63
  310. #define TX_CBF_INFO_TXOP_DURATION_ALL_ONES_MSB 63
  311. #define TX_CBF_INFO_TXOP_DURATION_ALL_ONES_MASK 0x8000000000000000
  312. /* Description TRIGGER_BRPOLL_COMMON_INFO_15_0
  313. Field only valid when Trigger_Brpoll_info_valid is set.
  314. Trigger based BRPOLL or .11az sounding (TBR) request info...
  315. bits [15:0]
  316. This is the variable common info field from the trigger
  317. related to the BTPOLL. For field definition see IEEE spec
  318. Note: final IEEE field might not need all these bits. If
  319. so, the extra bits become reserved fields.
  320. <legal all>
  321. */
  322. #define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_15_0_OFFSET 0x0000000000000008
  323. #define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_15_0_LSB 0
  324. #define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_15_0_MSB 15
  325. #define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_15_0_MASK 0x000000000000ffff
  326. /* Description TRIGGER_BRPOLL_COMMON_INFO_31_16
  327. Field only valid when Trigger_Brpoll_info_valid is set.
  328. Trigger based BRPOLL or .11az sounding (TBR) request info...
  329. bits [31:15]
  330. This is the variable common info field from the trigger
  331. related to the BTPOLL. For field definition see IEEE spec
  332. Note: final IEEE field might not need all these bits. If
  333. so, the extra bits become reserved fields.
  334. <legal all>
  335. */
  336. #define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_31_16_OFFSET 0x0000000000000008
  337. #define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_31_16_LSB 16
  338. #define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_31_16_MSB 31
  339. #define TX_CBF_INFO_TRIGGER_BRPOLL_COMMON_INFO_31_16_MASK 0x00000000ffff0000
  340. /* Description TRIGGER_BRPOLL_USER_INFO_15_0
  341. Field only valid when Trigger_Brpoll_info_valid is set.
  342. BRPOLL or .11az sounding (TBR) trigger Type dependent User
  343. information bits [15:0]
  344. This is the variable user info field from the trigger related
  345. to the BTPOLL.
  346. For field definition see IEEE spec
  347. Note: final IEEE field might not need all these bits. If
  348. so, the extra bits become reserved fields.
  349. <legal all>
  350. */
  351. #define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_15_0_OFFSET 0x0000000000000008
  352. #define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_15_0_LSB 32
  353. #define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_15_0_MSB 47
  354. #define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_15_0_MASK 0x0000ffff00000000
  355. /* Description TRIGGER_BRPOLL_USER_INFO_31_16
  356. Field only valid when Trigger_Brpoll_info_valid is set.
  357. BRPOLL or .11az sounding (TBR) trigger Type dependent User
  358. information bits [31:16]
  359. This is the variable user info field from the trigger related
  360. to the BTPOLL.
  361. For field definition see IEEE spec
  362. Note: final IEEE field might not need all these bits. If
  363. so, the extra bits become reserved fields.
  364. <legal all>
  365. */
  366. #define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_31_16_OFFSET 0x0000000000000008
  367. #define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_31_16_LSB 48
  368. #define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_31_16_MSB 63
  369. #define TX_CBF_INFO_TRIGGER_BRPOLL_USER_INFO_31_16_MASK 0xffff000000000000
  370. /* Description ADDR1_31_0
  371. CBF address1[31:0]
  372. */
  373. #define TX_CBF_INFO_ADDR1_31_0_OFFSET 0x0000000000000010
  374. #define TX_CBF_INFO_ADDR1_31_0_LSB 0
  375. #define TX_CBF_INFO_ADDR1_31_0_MSB 31
  376. #define TX_CBF_INFO_ADDR1_31_0_MASK 0x00000000ffffffff
  377. /* Description ADDR1_47_32
  378. CBF address1[47:32]
  379. */
  380. #define TX_CBF_INFO_ADDR1_47_32_OFFSET 0x0000000000000010
  381. #define TX_CBF_INFO_ADDR1_47_32_LSB 32
  382. #define TX_CBF_INFO_ADDR1_47_32_MSB 47
  383. #define TX_CBF_INFO_ADDR1_47_32_MASK 0x0000ffff00000000
  384. /* Description ADDR2_15_0
  385. CBF address2[15:0]
  386. */
  387. #define TX_CBF_INFO_ADDR2_15_0_OFFSET 0x0000000000000010
  388. #define TX_CBF_INFO_ADDR2_15_0_LSB 48
  389. #define TX_CBF_INFO_ADDR2_15_0_MSB 63
  390. #define TX_CBF_INFO_ADDR2_15_0_MASK 0xffff000000000000
  391. /* Description ADDR2_47_16
  392. CBF address2[47:16]
  393. */
  394. #define TX_CBF_INFO_ADDR2_47_16_OFFSET 0x0000000000000018
  395. #define TX_CBF_INFO_ADDR2_47_16_LSB 0
  396. #define TX_CBF_INFO_ADDR2_47_16_MSB 31
  397. #define TX_CBF_INFO_ADDR2_47_16_MASK 0x00000000ffffffff
  398. /* Description ADDR3_31_0
  399. CBF address3[31:0]
  400. */
  401. #define TX_CBF_INFO_ADDR3_31_0_OFFSET 0x0000000000000018
  402. #define TX_CBF_INFO_ADDR3_31_0_LSB 32
  403. #define TX_CBF_INFO_ADDR3_31_0_MSB 63
  404. #define TX_CBF_INFO_ADDR3_31_0_MASK 0xffffffff00000000
  405. /* Description ADDR3_47_32
  406. CBF address3[47:16]
  407. */
  408. #define TX_CBF_INFO_ADDR3_47_32_OFFSET 0x0000000000000020
  409. #define TX_CBF_INFO_ADDR3_47_32_LSB 0
  410. #define TX_CBF_INFO_ADDR3_47_32_MSB 15
  411. #define TX_CBF_INFO_ADDR3_47_32_MASK 0x000000000000ffff
  412. /* Description STA_PARTIAL_AID
  413. Partial AID field
  414. */
  415. #define TX_CBF_INFO_STA_PARTIAL_AID_OFFSET 0x0000000000000020
  416. #define TX_CBF_INFO_STA_PARTIAL_AID_LSB 16
  417. #define TX_CBF_INFO_STA_PARTIAL_AID_MSB 26
  418. #define TX_CBF_INFO_STA_PARTIAL_AID_MASK 0x0000000007ff0000
  419. /* Description RESERVED_8A
  420. <legal 0>
  421. */
  422. #define TX_CBF_INFO_RESERVED_8A_OFFSET 0x0000000000000020
  423. #define TX_CBF_INFO_RESERVED_8A_LSB 27
  424. #define TX_CBF_INFO_RESERVED_8A_MSB 30
  425. #define TX_CBF_INFO_RESERVED_8A_MASK 0x0000000078000000
  426. /* Description CBF_RESP_PWR_MGMT
  427. Power management bit of the response CBF frame or LMR frame
  428. in case of .11az ranging (field Ranging below is set).
  429. */
  430. #define TX_CBF_INFO_CBF_RESP_PWR_MGMT_OFFSET 0x0000000000000020
  431. #define TX_CBF_INFO_CBF_RESP_PWR_MGMT_LSB 31
  432. #define TX_CBF_INFO_CBF_RESP_PWR_MGMT_MSB 31
  433. #define TX_CBF_INFO_CBF_RESP_PWR_MGMT_MASK 0x0000000080000000
  434. /* Description GROUP_ID
  435. Group ID field
  436. */
  437. #define TX_CBF_INFO_GROUP_ID_OFFSET 0x0000000000000020
  438. #define TX_CBF_INFO_GROUP_ID_LSB 32
  439. #define TX_CBF_INFO_GROUP_ID_MSB 37
  440. #define TX_CBF_INFO_GROUP_ID_MASK 0x0000003f00000000
  441. /* Description RSSI_COMB
  442. The combined RSSI of the legacy STF of RX PPDU of all active
  443. chains and bandwidths.
  444. */
  445. #define TX_CBF_INFO_RSSI_COMB_OFFSET 0x0000000000000020
  446. #define TX_CBF_INFO_RSSI_COMB_LSB 38
  447. #define TX_CBF_INFO_RSSI_COMB_MSB 45
  448. #define TX_CBF_INFO_RSSI_COMB_MASK 0x00003fc000000000
  449. /* Description RESERVED_9A
  450. Bit 14: force_extra_symbol:
  451. Set to 1 to force an extra OFDM symbol (or symbols) even
  452. if the PPDU encoding process does not result in an extra
  453. OFDM symbol (or symbols)
  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