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