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