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