xref: /wlan-driver/fw-api/hw/qca5332/tx_fes_setup.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_FES_SETUP_H_
27*5113495bSYour Name #define _TX_FES_SETUP_H_
28*5113495bSYour Name #if !defined(__ASSEMBLER__)
29*5113495bSYour Name #endif
30*5113495bSYour Name 
31*5113495bSYour Name #define NUM_OF_DWORDS_TX_FES_SETUP 10
32*5113495bSYour Name 
33*5113495bSYour Name #define NUM_OF_QWORDS_TX_FES_SETUP 5
34*5113495bSYour Name 
35*5113495bSYour Name 
36*5113495bSYour Name struct tx_fes_setup {
37*5113495bSYour Name #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
38*5113495bSYour Name              uint32_t schedule_id                                             : 32; // [31:0]
39*5113495bSYour Name              uint32_t fes_in_11ax_trigger_response_config                     :  1, // [0:0]
40*5113495bSYour Name                       bo_based_tid_aggregation_limit                          :  4, // [4:1]
41*5113495bSYour Name                       ranging                                                 :  1, // [5:5]
42*5113495bSYour Name                       expect_i2r_lmr                                          :  1, // [6:6]
43*5113495bSYour Name                       transmit_start_reason                                   :  3, // [9:7]
44*5113495bSYour Name                       use_alt_power_sr                                        :  1, // [10:10]
45*5113495bSYour Name                       static_2_pwr_mode_status                                :  1, // [11:11]
46*5113495bSYour Name                       obss_srg_opport_transmit_status                         :  1, // [12:12]
47*5113495bSYour Name                       srp_based_transmit_status                               :  1, // [13:13]
48*5113495bSYour Name                       obss_pd_based_transmit_status                           :  1, // [14:14]
49*5113495bSYour Name                       puncture_from_all_allowed_modes                         :  1, // [15:15]
50*5113495bSYour Name                       schedule_cmd_ring_id                                    :  5, // [20:16]
51*5113495bSYour Name                       fes_control_mode                                        :  2, // [22:21]
52*5113495bSYour Name                       number_of_users                                         :  6, // [28:23]
53*5113495bSYour Name                       mu_type                                                 :  1, // [29:29]
54*5113495bSYour Name                       ofdma_triggered_response                                :  1, // [30:30]
55*5113495bSYour Name                       response_to_response_cmd                                :  1; // [31:31]
56*5113495bSYour Name              uint32_t schedule_try                                            :  4, // [3:0]
57*5113495bSYour Name                       ndp_frame                                               :  2, // [5:4]
58*5113495bSYour Name                       txbf                                                    :  1, // [6:6]
59*5113495bSYour Name                       allow_txop_exceed_in_1st_pkt                            :  1, // [7:7]
60*5113495bSYour Name                       ignore_bw_available                                     :  1, // [8:8]
61*5113495bSYour Name                       ignore_tbtt                                             :  1, // [9:9]
62*5113495bSYour Name                       static_bandwidth                                        :  3, // [12:10]
63*5113495bSYour Name                       set_txop_duration_all_ones                              :  1, // [13:13]
64*5113495bSYour Name                       transmission_contains_mu_rts                            :  1, // [14:14]
65*5113495bSYour Name                       bw_restricted_frames_embedded                           :  1, // [15:15]
66*5113495bSYour Name                       ast_index                                               : 16; // [31:16]
67*5113495bSYour Name              uint32_t cv_id                                                   :  8, // [7:0]
68*5113495bSYour Name                       trigger_resp_txpdu_ppdu_boundary                        :  2, // [9:8]
69*5113495bSYour Name                       rxpcu_setup_complete_present                            :  1, // [10:10]
70*5113495bSYour Name                       rbo_must_have_data_user_limit                           :  4, // [14:11]
71*5113495bSYour Name                       mu_ndp                                                  :  1, // [15:15]
72*5113495bSYour Name                       bf_type                                                 :  2, // [17:16]
73*5113495bSYour Name                       cbf_nc_index_mask                                       :  1, // [18:18]
74*5113495bSYour Name                       cbf_nc_index                                            :  3, // [21:19]
75*5113495bSYour Name                       cbf_nr_index_mask                                       :  1, // [22:22]
76*5113495bSYour Name                       cbf_nr_index                                            :  3, // [25:23]
77*5113495bSYour Name                       secure_ranging_ista                                     :  1, // [26:26]
78*5113495bSYour Name                       ndpa                                                    :  1, // [27:27]
79*5113495bSYour Name                       wait_sifs                                               :  2, // [29:28]
80*5113495bSYour Name                       cbf_feedback_type_mask                                  :  1, // [30:30]
81*5113495bSYour Name                       cbf_feedback_type                                       :  1; // [31:31]
82*5113495bSYour Name              uint32_t cbf_sounding_token                                      :  6, // [5:0]
83*5113495bSYour Name                       cbf_sounding_token_mask                                 :  1, // [6:6]
84*5113495bSYour Name                       cbf_bw_mask                                             :  1, // [7:7]
85*5113495bSYour Name                       cbf_bw                                                  :  3, // [10:8]
86*5113495bSYour Name                       use_static_bw                                           :  1, // [11:11]
87*5113495bSYour Name                       coex_nack_count                                         :  5, // [16:12]
88*5113495bSYour Name                       sch_tx_burst_ongoing                                    :  1, // [17:17]
89*5113495bSYour Name                       gen_tqm_update_mpdu_count_tlv                           :  1, // [18:18]
90*5113495bSYour Name                       transmit_vif                                            :  4, // [22:19]
91*5113495bSYour Name                       optimal_bw_retry_count                                  :  4, // [26:23]
92*5113495bSYour Name                       fes_continuation_ratio_threshold                        :  5; // [31:27]
93*5113495bSYour Name              uint32_t transmit_cca_bitmap                                     : 32; // [31:0]
94*5113495bSYour Name              uint32_t tb_ranging                                              :  1, // [0:0]
95*5113495bSYour Name                       ranging_trigger_subtype                                 :  4, // [4:1]
96*5113495bSYour Name                       min_cts2self_count                                      :  4, // [8:5]
97*5113495bSYour Name                       max_cts2self_count                                      :  4, // [12:9]
98*5113495bSYour Name                       wifi_radar_enable                                       :  1, // [13:13]
99*5113495bSYour Name                       reserved_6a                                             : 18; // [31:14]
100*5113495bSYour Name              uint32_t monitor_override_sta_31_0                               : 32; // [31:0]
101*5113495bSYour Name              uint32_t monitor_override_sta_36_32                              :  5, // [4:0]
102*5113495bSYour Name                       reserved_8a                                             : 27; // [31:5]
103*5113495bSYour Name              uint32_t fw2sw_info                                              : 32; // [31:0]
104*5113495bSYour Name #else
105*5113495bSYour Name              uint32_t schedule_id                                             : 32; // [31:0]
106*5113495bSYour Name              uint32_t response_to_response_cmd                                :  1, // [31:31]
107*5113495bSYour Name                       ofdma_triggered_response                                :  1, // [30:30]
108*5113495bSYour Name                       mu_type                                                 :  1, // [29:29]
109*5113495bSYour Name                       number_of_users                                         :  6, // [28:23]
110*5113495bSYour Name                       fes_control_mode                                        :  2, // [22:21]
111*5113495bSYour Name                       schedule_cmd_ring_id                                    :  5, // [20:16]
112*5113495bSYour Name                       puncture_from_all_allowed_modes                         :  1, // [15:15]
113*5113495bSYour Name                       obss_pd_based_transmit_status                           :  1, // [14:14]
114*5113495bSYour Name                       srp_based_transmit_status                               :  1, // [13:13]
115*5113495bSYour Name                       obss_srg_opport_transmit_status                         :  1, // [12:12]
116*5113495bSYour Name                       static_2_pwr_mode_status                                :  1, // [11:11]
117*5113495bSYour Name                       use_alt_power_sr                                        :  1, // [10:10]
118*5113495bSYour Name                       transmit_start_reason                                   :  3, // [9:7]
119*5113495bSYour Name                       expect_i2r_lmr                                          :  1, // [6:6]
120*5113495bSYour Name                       ranging                                                 :  1, // [5:5]
121*5113495bSYour Name                       bo_based_tid_aggregation_limit                          :  4, // [4:1]
122*5113495bSYour Name                       fes_in_11ax_trigger_response_config                     :  1; // [0:0]
123*5113495bSYour Name              uint32_t ast_index                                               : 16, // [31:16]
124*5113495bSYour Name                       bw_restricted_frames_embedded                           :  1, // [15:15]
125*5113495bSYour Name                       transmission_contains_mu_rts                            :  1, // [14:14]
126*5113495bSYour Name                       set_txop_duration_all_ones                              :  1, // [13:13]
127*5113495bSYour Name                       static_bandwidth                                        :  3, // [12:10]
128*5113495bSYour Name                       ignore_tbtt                                             :  1, // [9:9]
129*5113495bSYour Name                       ignore_bw_available                                     :  1, // [8:8]
130*5113495bSYour Name                       allow_txop_exceed_in_1st_pkt                            :  1, // [7:7]
131*5113495bSYour Name                       txbf                                                    :  1, // [6:6]
132*5113495bSYour Name                       ndp_frame                                               :  2, // [5:4]
133*5113495bSYour Name                       schedule_try                                            :  4; // [3:0]
134*5113495bSYour Name              uint32_t cbf_feedback_type                                       :  1, // [31:31]
135*5113495bSYour Name                       cbf_feedback_type_mask                                  :  1, // [30:30]
136*5113495bSYour Name                       wait_sifs                                               :  2, // [29:28]
137*5113495bSYour Name                       ndpa                                                    :  1, // [27:27]
138*5113495bSYour Name                       secure_ranging_ista                                     :  1, // [26:26]
139*5113495bSYour Name                       cbf_nr_index                                            :  3, // [25:23]
140*5113495bSYour Name                       cbf_nr_index_mask                                       :  1, // [22:22]
141*5113495bSYour Name                       cbf_nc_index                                            :  3, // [21:19]
142*5113495bSYour Name                       cbf_nc_index_mask                                       :  1, // [18:18]
143*5113495bSYour Name                       bf_type                                                 :  2, // [17:16]
144*5113495bSYour Name                       mu_ndp                                                  :  1, // [15:15]
145*5113495bSYour Name                       rbo_must_have_data_user_limit                           :  4, // [14:11]
146*5113495bSYour Name                       rxpcu_setup_complete_present                            :  1, // [10:10]
147*5113495bSYour Name                       trigger_resp_txpdu_ppdu_boundary                        :  2, // [9:8]
148*5113495bSYour Name                       cv_id                                                   :  8; // [7:0]
149*5113495bSYour Name              uint32_t fes_continuation_ratio_threshold                        :  5, // [31:27]
150*5113495bSYour Name                       optimal_bw_retry_count                                  :  4, // [26:23]
151*5113495bSYour Name                       transmit_vif                                            :  4, // [22:19]
152*5113495bSYour Name                       gen_tqm_update_mpdu_count_tlv                           :  1, // [18:18]
153*5113495bSYour Name                       sch_tx_burst_ongoing                                    :  1, // [17:17]
154*5113495bSYour Name                       coex_nack_count                                         :  5, // [16:12]
155*5113495bSYour Name                       use_static_bw                                           :  1, // [11:11]
156*5113495bSYour Name                       cbf_bw                                                  :  3, // [10:8]
157*5113495bSYour Name                       cbf_bw_mask                                             :  1, // [7:7]
158*5113495bSYour Name                       cbf_sounding_token_mask                                 :  1, // [6:6]
159*5113495bSYour Name                       cbf_sounding_token                                      :  6; // [5:0]
160*5113495bSYour Name              uint32_t transmit_cca_bitmap                                     : 32; // [31:0]
161*5113495bSYour Name              uint32_t reserved_6a                                             : 18, // [31:14]
162*5113495bSYour Name                       wifi_radar_enable                                       :  1, // [13:13]
163*5113495bSYour Name                       max_cts2self_count                                      :  4, // [12:9]
164*5113495bSYour Name                       min_cts2self_count                                      :  4, // [8:5]
165*5113495bSYour Name                       ranging_trigger_subtype                                 :  4, // [4:1]
166*5113495bSYour Name                       tb_ranging                                              :  1; // [0:0]
167*5113495bSYour Name              uint32_t monitor_override_sta_31_0                               : 32; // [31:0]
168*5113495bSYour Name              uint32_t reserved_8a                                             : 27, // [31:5]
169*5113495bSYour Name                       monitor_override_sta_36_32                              :  5; // [4:0]
170*5113495bSYour Name              uint32_t fw2sw_info                                              : 32; // [31:0]
171*5113495bSYour Name #endif
172*5113495bSYour Name };
173*5113495bSYour Name 
174*5113495bSYour Name 
175*5113495bSYour Name /* Description		SCHEDULE_ID
176*5113495bSYour Name 
177*5113495bSYour Name 			Consumer: PDG/TXDMA/TXOLE/TXCRYPTO/TXPCU
178*5113495bSYour Name 			Producer: SCH
179*5113495bSYour Name 
180*5113495bSYour Name 			This field is overwritten by the scheduler module and it's
181*5113495bSYour Name 			 value is coming from the"schedule_id" field in the  Scheduler
182*5113495bSYour Name 			 command.
183*5113495bSYour Name 
184*5113495bSYour Name 			Configured by scheduler in HW transmit mode
185*5113495bSYour Name 			A field that HW copies over into the scheduling status report,
186*5113495bSYour Name 			so that SW can determine to which scheduler command the
187*5113495bSYour Name 			status report belongs.
188*5113495bSYour Name 			This schedule ID is also reported in the PPDU status.
189*5113495bSYour Name 
190*5113495bSYour Name 			<legal all>
191*5113495bSYour Name */
192*5113495bSYour Name 
193*5113495bSYour Name #define TX_FES_SETUP_SCHEDULE_ID_OFFSET                                             0x0000000000000000
194*5113495bSYour Name #define TX_FES_SETUP_SCHEDULE_ID_LSB                                                0
195*5113495bSYour Name #define TX_FES_SETUP_SCHEDULE_ID_MSB                                                31
196*5113495bSYour Name #define TX_FES_SETUP_SCHEDULE_ID_MASK                                               0x00000000ffffffff
197*5113495bSYour Name 
198*5113495bSYour Name 
199*5113495bSYour Name /* Description		FES_IN_11AX_TRIGGER_RESPONSE_CONFIG
200*5113495bSYour Name 
201*5113495bSYour Name 			Consumer: PDG/TXPCU
202*5113495bSYour Name 			Producer: SW
203*5113495bSYour Name 			When set, this scheduler command has some additional settings
204*5113495bSYour Name 			 that PDG and TXPCU need to take into account, depending
205*5113495bSYour Name 			 on if the transmission has been iniated as a backoff expiration
206*5113495bSYour Name 			 or as the result of an 11ax trigger reception.
207*5113495bSYour Name 
208*5113495bSYour Name 			0: not in special trigger response config
209*5113495bSYour Name 			1: command is special trigger response config.
210*5113495bSYour Name 
211*5113495bSYour Name 			When set to 1, there are some programming limitations: There
212*5113495bSYour Name 			 can only be 1 group, up to 8 users, SW shall have specified
213*5113495bSYour Name 			 the AC for each user, and AC order per user is from BE
214*5113495bSYour Name 			to VO
215*5113495bSYour Name 			(see PDG_USER_SETUP, fields Triggered_mpdu_AC_category)
216*5113495bSYour Name 
217*5113495bSYour Name 			<legal all>
218*5113495bSYour Name */
219*5113495bSYour Name 
220*5113495bSYour Name #define TX_FES_SETUP_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_OFFSET                     0x0000000000000000
221*5113495bSYour Name #define TX_FES_SETUP_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_LSB                        32
222*5113495bSYour Name #define TX_FES_SETUP_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_MSB                        32
223*5113495bSYour Name #define TX_FES_SETUP_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_MASK                       0x0000000100000000
224*5113495bSYour Name 
225*5113495bSYour Name 
226*5113495bSYour Name /* Description		BO_BASED_TID_AGGREGATION_LIMIT
227*5113495bSYour Name 
228*5113495bSYour Name 			Consumer: PDG
229*5113495bSYour Name 			Producer: SW
230*5113495bSYour Name 
231*5113495bSYour Name 			Field only valid when Ofdma_triggered_response is NOT set
232*5113495bSYour Name 			 (=> implies transmission started due to backoff expiration)
233*5113495bSYour Name 
234*5113495bSYour Name 
235*5113495bSYour Name 			Field only valid for SU and "MU_SU" transmissions.
236*5113495bSYour Name 
237*5113495bSYour Name 			The requirements for what to transmit depend on what the
238*5113495bSYour Name 			 reason is that this transmission started. If it is 11ax
239*5113495bSYour Name 			 trigger based, the trigger frame will specify all the constrains
240*5113495bSYour Name 			 like max TID count, prefered AC, etc.
241*5113495bSYour Name 			However if this command starts executing due to backoff
242*5113495bSYour Name 			expiration, the requirements could be different from those
243*5113495bSYour Name 			 that might have come from the trigger frame.
244*5113495bSYour Name 			This field specifies what the constaints are when the transmission
245*5113495bSYour Name 			 is Backoff initiated.
246*5113495bSYour Name 
247*5113495bSYour Name 			If zero, this feature is disabled.
248*5113495bSYour Name 			If non-zero, this indicates the number of users within a
249*5113495bSYour Name 			 group that can be aggregated by a STA in a multi-TID A-MPDU.
250*5113495bSYour Name 			This can also be used to block the series of QoS-null MPDUs
251*5113495bSYour Name 			 when an RBO+Trig queue transmits using RBO.
252*5113495bSYour Name 
253*5113495bSYour Name 			Based on this number, PDG will mask of user numbers >= this
254*5113495bSYour Name 			 count
255*5113495bSYour Name 			<legal all>
256*5113495bSYour Name */
257*5113495bSYour Name 
258*5113495bSYour Name #define TX_FES_SETUP_BO_BASED_TID_AGGREGATION_LIMIT_OFFSET                          0x0000000000000000
259*5113495bSYour Name #define TX_FES_SETUP_BO_BASED_TID_AGGREGATION_LIMIT_LSB                             33
260*5113495bSYour Name #define TX_FES_SETUP_BO_BASED_TID_AGGREGATION_LIMIT_MSB                             36
261*5113495bSYour Name #define TX_FES_SETUP_BO_BASED_TID_AGGREGATION_LIMIT_MASK                            0x0000001e00000000
262*5113495bSYour Name 
263*5113495bSYour Name 
264*5113495bSYour Name /* Description		RANGING
265*5113495bSYour Name 
266*5113495bSYour Name 			Consumer: TXPCU
267*5113495bSYour Name 			Producer: SW
268*5113495bSYour Name 
269*5113495bSYour Name 			Set to 1 in case the frame queued is:
270*5113495bSYour Name 			a .11az ranging NDPA,
271*5113495bSYour Name 			a .11az ranging NDP, or
272*5113495bSYour Name 			an ISTA2RSTA LMR.
273*5113495bSYour Name 			Set to 0 for all other cases.
274*5113495bSYour Name */
275*5113495bSYour Name 
276*5113495bSYour Name #define TX_FES_SETUP_RANGING_OFFSET                                                 0x0000000000000000
277*5113495bSYour Name #define TX_FES_SETUP_RANGING_LSB                                                    37
278*5113495bSYour Name #define TX_FES_SETUP_RANGING_MSB                                                    37
279*5113495bSYour Name #define TX_FES_SETUP_RANGING_MASK                                                   0x0000002000000000
280*5113495bSYour Name 
281*5113495bSYour Name 
282*5113495bSYour Name /* Description		EXPECT_I2R_LMR
283*5113495bSYour Name 
284*5113495bSYour Name 			Consumer: TXPCU
285*5113495bSYour Name 			Producer: SW
286*5113495bSYour Name 
287*5113495bSYour Name 			Set to 1 in case the frame queued is  a .11az randing NDPA/NDP
288*5113495bSYour Name 			 and if the ISTA2RSTA LMR frame is also queued after SIFS.
289*5113495bSYour Name 
290*5113495bSYour Name 
291*5113495bSYour Name 			Set to 0 otherwise.
292*5113495bSYour Name */
293*5113495bSYour Name 
294*5113495bSYour Name #define TX_FES_SETUP_EXPECT_I2R_LMR_OFFSET                                          0x0000000000000000
295*5113495bSYour Name #define TX_FES_SETUP_EXPECT_I2R_LMR_LSB                                             38
296*5113495bSYour Name #define TX_FES_SETUP_EXPECT_I2R_LMR_MSB                                             38
297*5113495bSYour Name #define TX_FES_SETUP_EXPECT_I2R_LMR_MASK                                            0x0000004000000000
298*5113495bSYour Name 
299*5113495bSYour Name 
300*5113495bSYour Name /* Description		TRANSMIT_START_REASON
301*5113495bSYour Name 
302*5113495bSYour Name 			Indicates what the SCH start reason reason was for initiating
303*5113495bSYour Name 			 this transmission.
304*5113495bSYour Name 
305*5113495bSYour Name 			<enum 0 BO_based_transmit_start> The transmission of this
306*5113495bSYour Name 			 PPDU got initiated by the scheduler due to Backoff expiration
307*5113495bSYour Name 
308*5113495bSYour Name 			<enum 1 Trigger_based_transmit_start> The transmission of
309*5113495bSYour Name 			 this PPDU got initiated by the scheduler due to reception
310*5113495bSYour Name 			 (by the SCH) of the TLV RECEIVED_TRIGGER_INFO that RXPCU
311*5113495bSYour Name 			 generated. Note that this can be an OFDMA trigger frame
312*5113495bSYour Name 			 based transmission as well as some legacy trigger (PS-POLL,
313*5113495bSYour Name 			Qboost, U-APSD, etc.)  based transmission
314*5113495bSYour Name 			<enum 2 Sifs_continuation_in_ongoing_burst> This transmission
315*5113495bSYour Name 			 of this PPDU got initiated as part of SIFS continuation.
316*5113495bSYour Name 			An earlier PPDU was transmitted due to RBO expiration. Next
317*5113495bSYour Name 			 command is also expected to be transmitted in SIFS burst.
318*5113495bSYour Name 
319*5113495bSYour Name 			<enum 3 Sifs_continuation_last_command> This transmission
320*5113495bSYour Name 			 of this PPDU got initiated as part of SIFS continuation
321*5113495bSYour Name 			 and this is the last command in the burst. An earlier PPDU
322*5113495bSYour Name 			 was transmitted due to RBO expiration.
323*5113495bSYour Name 			<enum 4 NTBR_response_start> DO NOT USE
324*5113495bSYour Name 			<legal 0-4>
325*5113495bSYour Name */
326*5113495bSYour Name 
327*5113495bSYour Name #define TX_FES_SETUP_TRANSMIT_START_REASON_OFFSET                                   0x0000000000000000
328*5113495bSYour Name #define TX_FES_SETUP_TRANSMIT_START_REASON_LSB                                      39
329*5113495bSYour Name #define TX_FES_SETUP_TRANSMIT_START_REASON_MSB                                      41
330*5113495bSYour Name #define TX_FES_SETUP_TRANSMIT_START_REASON_MASK                                     0x0000038000000000
331*5113495bSYour Name 
332*5113495bSYour Name 
333*5113495bSYour Name /* Description		USE_ALT_POWER_SR
334*5113495bSYour Name 
335*5113495bSYour Name 			0: Primary/default power1: Alternate power
336*5113495bSYour Name 			<legal all>
337*5113495bSYour Name */
338*5113495bSYour Name 
339*5113495bSYour Name #define TX_FES_SETUP_USE_ALT_POWER_SR_OFFSET                                        0x0000000000000000
340*5113495bSYour Name #define TX_FES_SETUP_USE_ALT_POWER_SR_LSB                                           42
341*5113495bSYour Name #define TX_FES_SETUP_USE_ALT_POWER_SR_MSB                                           42
342*5113495bSYour Name #define TX_FES_SETUP_USE_ALT_POWER_SR_MASK                                          0x0000040000000000
343*5113495bSYour Name 
344*5113495bSYour Name 
345*5113495bSYour Name /* Description		STATIC_2_PWR_MODE_STATUS
346*5113495bSYour Name 
347*5113495bSYour Name 			0: Static 2 power mode disabled1: Static 2 power mode enabled
348*5113495bSYour Name 
349*5113495bSYour Name 			<legal all>
350*5113495bSYour Name */
351*5113495bSYour Name 
352*5113495bSYour Name #define TX_FES_SETUP_STATIC_2_PWR_MODE_STATUS_OFFSET                                0x0000000000000000
353*5113495bSYour Name #define TX_FES_SETUP_STATIC_2_PWR_MODE_STATUS_LSB                                   43
354*5113495bSYour Name #define TX_FES_SETUP_STATIC_2_PWR_MODE_STATUS_MSB                                   43
355*5113495bSYour Name #define TX_FES_SETUP_STATIC_2_PWR_MODE_STATUS_MASK                                  0x0000080000000000
356*5113495bSYour Name 
357*5113495bSYour Name 
358*5113495bSYour Name /* Description		OBSS_SRG_OPPORT_TRANSMIT_STATUS
359*5113495bSYour Name 
360*5113495bSYour Name 			0: Transmit based on SRG OBSS_PD opportunity initiated1:
361*5113495bSYour Name 			Transmit based on non-SRG OBSS_PD opportunity initiated
362*5113495bSYour Name 			<legal all>
363*5113495bSYour Name */
364*5113495bSYour Name 
365*5113495bSYour Name #define TX_FES_SETUP_OBSS_SRG_OPPORT_TRANSMIT_STATUS_OFFSET                         0x0000000000000000
366*5113495bSYour Name #define TX_FES_SETUP_OBSS_SRG_OPPORT_TRANSMIT_STATUS_LSB                            44
367*5113495bSYour Name #define TX_FES_SETUP_OBSS_SRG_OPPORT_TRANSMIT_STATUS_MSB                            44
368*5113495bSYour Name #define TX_FES_SETUP_OBSS_SRG_OPPORT_TRANSMIT_STATUS_MASK                           0x0000100000000000
369*5113495bSYour Name 
370*5113495bSYour Name 
371*5113495bSYour Name /* Description		SRP_BASED_TRANSMIT_STATUS
372*5113495bSYour Name 
373*5113495bSYour Name 			0: non-SRP based transmit initiated1: SRP based transmit
374*5113495bSYour Name 			 initiated
375*5113495bSYour Name 			<legal all>
376*5113495bSYour Name */
377*5113495bSYour Name 
378*5113495bSYour Name #define TX_FES_SETUP_SRP_BASED_TRANSMIT_STATUS_OFFSET                               0x0000000000000000
379*5113495bSYour Name #define TX_FES_SETUP_SRP_BASED_TRANSMIT_STATUS_LSB                                  45
380*5113495bSYour Name #define TX_FES_SETUP_SRP_BASED_TRANSMIT_STATUS_MSB                                  45
381*5113495bSYour Name #define TX_FES_SETUP_SRP_BASED_TRANSMIT_STATUS_MASK                                 0x0000200000000000
382*5113495bSYour Name 
383*5113495bSYour Name 
384*5113495bSYour Name /* Description		OBSS_PD_BASED_TRANSMIT_STATUS
385*5113495bSYour Name 
386*5113495bSYour Name 			0: non-OBSS_PD based transmit initiated1: obss_pd based
387*5113495bSYour Name 			transmit initiated
388*5113495bSYour Name 			<legal all>
389*5113495bSYour Name */
390*5113495bSYour Name 
391*5113495bSYour Name #define TX_FES_SETUP_OBSS_PD_BASED_TRANSMIT_STATUS_OFFSET                           0x0000000000000000
392*5113495bSYour Name #define TX_FES_SETUP_OBSS_PD_BASED_TRANSMIT_STATUS_LSB                              46
393*5113495bSYour Name #define TX_FES_SETUP_OBSS_PD_BASED_TRANSMIT_STATUS_MSB                              46
394*5113495bSYour Name #define TX_FES_SETUP_OBSS_PD_BASED_TRANSMIT_STATUS_MASK                             0x0000400000000000
395*5113495bSYour Name 
396*5113495bSYour Name 
397*5113495bSYour Name /* Description		PUNCTURE_FROM_ALL_ALLOWED_MODES
398*5113495bSYour Name 
399*5113495bSYour Name 			Enables new scheme 2 puncturing in Beryllium:
400*5113495bSYour Name 			TXPCU registers determine which puncture patterns (up to
401*5113495bSYour Name 			 37) are enabled for the transmission.
402*5113495bSYour Name 			'TX_PUNCTURE_SETUP' is unused.
403*5113495bSYour Name 			<legal all>
404*5113495bSYour Name */
405*5113495bSYour Name 
406*5113495bSYour Name #define TX_FES_SETUP_PUNCTURE_FROM_ALL_ALLOWED_MODES_OFFSET                         0x0000000000000000
407*5113495bSYour Name #define TX_FES_SETUP_PUNCTURE_FROM_ALL_ALLOWED_MODES_LSB                            47
408*5113495bSYour Name #define TX_FES_SETUP_PUNCTURE_FROM_ALL_ALLOWED_MODES_MSB                            47
409*5113495bSYour Name #define TX_FES_SETUP_PUNCTURE_FROM_ALL_ALLOWED_MODES_MASK                           0x0000800000000000
410*5113495bSYour Name 
411*5113495bSYour Name 
412*5113495bSYour Name /* Description		SCHEDULE_CMD_RING_ID
413*5113495bSYour Name 
414*5113495bSYour Name 			Consumer: PDG/TXDMA/TXOLE/TXCRYPTO/TXPCU
415*5113495bSYour Name 			Producer: SCH
416*5113495bSYour Name 
417*5113495bSYour Name 			This field is overwritten by the scheduler module and its
418*5113495bSYour Name 			 value is based on the scheduler ring where the command
419*5113495bSYour Name 			is initiated.
420*5113495bSYour Name 
421*5113495bSYour Name 			The schedule command ring  that originated this transmission
422*5113495bSYour Name 
423*5113495bSYour Name 			<enum 0 sch_cmd_ring_number0>
424*5113495bSYour Name 			<enum 1 sch_cmd_ring_number1>
425*5113495bSYour Name 			<enum 2 sch_cmd_ring_number2>
426*5113495bSYour Name 			<enum 3 sch_cmd_ring_number3>
427*5113495bSYour Name 			<enum 4 sch_cmd_ring_number4>
428*5113495bSYour Name 			<enum 5 sch_cmd_ring_number5>
429*5113495bSYour Name 			<enum 6 sch_cmd_ring_number6>
430*5113495bSYour Name 			<enum 7 sch_cmd_ring_number7>
431*5113495bSYour Name 			<enum 8 sch_cmd_ring_number8>
432*5113495bSYour Name 			<enum 9 sch_cmd_ring_number9>
433*5113495bSYour Name 			<enum 10 sch_cmd_ring_number10>
434*5113495bSYour Name 			<enum 11 sch_cmd_ring_number11>
435*5113495bSYour Name 			<enum 12 sch_cmd_ring_number12>
436*5113495bSYour Name 			<enum 13 sch_cmd_ring_number13>
437*5113495bSYour Name 			<enum 14 sch_cmd_ring_number14>
438*5113495bSYour Name 			<enum 15 sch_cmd_ring_number15>
439*5113495bSYour Name 			<enum 16 sch_cmd_ring_number16>
440*5113495bSYour Name 			<enum 17 sch_cmd_ring_number17>
441*5113495bSYour Name 			<enum 18 sch_cmd_ring_number18>
442*5113495bSYour Name 			<enum 19 sch_cmd_ring_number19>
443*5113495bSYour Name 			<enum 20 sch_cmd_ring_number20>
444*5113495bSYour Name 
445*5113495bSYour Name 			<legal 0-20>
446*5113495bSYour Name */
447*5113495bSYour Name 
448*5113495bSYour Name #define TX_FES_SETUP_SCHEDULE_CMD_RING_ID_OFFSET                                    0x0000000000000000
449*5113495bSYour Name #define TX_FES_SETUP_SCHEDULE_CMD_RING_ID_LSB                                       48
450*5113495bSYour Name #define TX_FES_SETUP_SCHEDULE_CMD_RING_ID_MSB                                       52
451*5113495bSYour Name #define TX_FES_SETUP_SCHEDULE_CMD_RING_ID_MASK                                      0x001f000000000000
452*5113495bSYour Name 
453*5113495bSYour Name 
454*5113495bSYour Name /* Description		FES_CONTROL_MODE
455*5113495bSYour Name 
456*5113495bSYour Name 			Consumer: PDG/TXDMA/TXOLE/TXCRYPTO/TXPCU
457*5113495bSYour Name 			Producer: SCH
458*5113495bSYour Name 
459*5113495bSYour Name 			This field is overwritten by the scheduler module and it's
460*5113495bSYour Name 			 value is coming from the "FES_control_mode" field in the
461*5113495bSYour Name 			  Scheduler command.
462*5113495bSYour Name 
463*5113495bSYour Name 			<enum 0  SW_transmit_mode>  No HW generated TLVs
464*5113495bSYour Name 			<enum 1 PDG_transmit_mode> PDG  is activated to generate
465*5113495bSYour Name 			 TLVs
466*5113495bSYour Name 
467*5113495bSYour Name 			Note: Final Bandwidth selection is always performed by TX
468*5113495bSYour Name 			 PCU.
469*5113495bSYour Name 			<legal 0-1>
470*5113495bSYour Name */
471*5113495bSYour Name 
472*5113495bSYour Name #define TX_FES_SETUP_FES_CONTROL_MODE_OFFSET                                        0x0000000000000000
473*5113495bSYour Name #define TX_FES_SETUP_FES_CONTROL_MODE_LSB                                           53
474*5113495bSYour Name #define TX_FES_SETUP_FES_CONTROL_MODE_MSB                                           54
475*5113495bSYour Name #define TX_FES_SETUP_FES_CONTROL_MODE_MASK                                          0x0060000000000000
476*5113495bSYour Name 
477*5113495bSYour Name 
478*5113495bSYour Name /* Description		NUMBER_OF_USERS
479*5113495bSYour Name 
480*5113495bSYour Name 			Consumer: PDG/TXDMA/TXOLE/TXCRYPTO/TXPCU
481*5113495bSYour Name 			Producer: SCH
482*5113495bSYour Name 
483*5113495bSYour Name 			The number of users in this transmission. Can be MU-MIMO
484*5113495bSYour Name 			 or OFDMA in case the number is > 1
485*5113495bSYour Name 			<legal 1-63>
486*5113495bSYour Name */
487*5113495bSYour Name 
488*5113495bSYour Name #define TX_FES_SETUP_NUMBER_OF_USERS_OFFSET                                         0x0000000000000000
489*5113495bSYour Name #define TX_FES_SETUP_NUMBER_OF_USERS_LSB                                            55
490*5113495bSYour Name #define TX_FES_SETUP_NUMBER_OF_USERS_MSB                                            60
491*5113495bSYour Name #define TX_FES_SETUP_NUMBER_OF_USERS_MASK                                           0x1f80000000000000
492*5113495bSYour Name 
493*5113495bSYour Name 
494*5113495bSYour Name /* Description		MU_TYPE
495*5113495bSYour Name 
496*5113495bSYour Name 			In case the Number_of_users > 1, the transmission could
497*5113495bSYour Name 			be MU or OFDMA.
498*5113495bSYour Name 			This field indicates which one it is.
499*5113495bSYour Name 
500*5113495bSYour Name 			0: MU-MIMO
501*5113495bSYour Name 			1: OFDMA
502*5113495bSYour Name 
503*5113495bSYour Name 
504*5113495bSYour Name 			In case the number_of_user == 1, and PDG_FES_SETUP.mu_su_transmission
505*5113495bSYour Name 			 is set, this field indicates:0: SU transmitted in MU MIMO
506*5113495bSYour Name 			 format in compressed mode;1: SU transmitted in MU-OFDMA
507*5113495bSYour Name 			 format in uncompressed mode
508*5113495bSYour Name 
509*5113495bSYour Name 			Note: Within OFDMA classification, it could be that within
510*5113495bSYour Name 			 one or more RUs there will be MIMO transmission...This
511*5113495bSYour Name 			is still considered as an 'OFDMA' class of MU transmission.
512*5113495bSYour Name 
513*5113495bSYour Name 
514*5113495bSYour Name 			<legal all>
515*5113495bSYour Name */
516*5113495bSYour Name 
517*5113495bSYour Name #define TX_FES_SETUP_MU_TYPE_OFFSET                                                 0x0000000000000000
518*5113495bSYour Name #define TX_FES_SETUP_MU_TYPE_LSB                                                    61
519*5113495bSYour Name #define TX_FES_SETUP_MU_TYPE_MSB                                                    61
520*5113495bSYour Name #define TX_FES_SETUP_MU_TYPE_MASK                                                   0x2000000000000000
521*5113495bSYour Name 
522*5113495bSYour Name 
523*5113495bSYour Name /* Description		OFDMA_TRIGGERED_RESPONSE
524*5113495bSYour Name 
525*5113495bSYour Name 			Consumer: TXPCU/PDG
526*5113495bSYour Name 			Producer: SCH/SW
527*5113495bSYour Name 
528*5113495bSYour Name 			SW should always set this bit to 0
529*5113495bSYour Name 			SCH will always overwrite this field and set it to the appropriate
530*5113495bSYour Name 			 value for the upcoming transmission.
531*5113495bSYour Name 
532*5113495bSYour Name 			When set (by SCH), this FES is initiated as a result of
533*5113495bSYour Name 			receiving an OFDMA transmit trigger. PDG already has received
534*5113495bSYour Name 			 all transmit info from RXPCU. PDG can ignore most of the
535*5113495bSYour Name 			 transmit initialization info.
536*5113495bSYour Name 
537*5113495bSYour Name 			<legal all>
538*5113495bSYour Name */
539*5113495bSYour Name 
540*5113495bSYour Name #define TX_FES_SETUP_OFDMA_TRIGGERED_RESPONSE_OFFSET                                0x0000000000000000
541*5113495bSYour Name #define TX_FES_SETUP_OFDMA_TRIGGERED_RESPONSE_LSB                                   62
542*5113495bSYour Name #define TX_FES_SETUP_OFDMA_TRIGGERED_RESPONSE_MSB                                   62
543*5113495bSYour Name #define TX_FES_SETUP_OFDMA_TRIGGERED_RESPONSE_MASK                                  0x4000000000000000
544*5113495bSYour Name 
545*5113495bSYour Name 
546*5113495bSYour Name /* Description		RESPONSE_TO_RESPONSE_CMD
547*5113495bSYour Name 
548*5113495bSYour Name 			When set, this scheduler command contains the transmission
549*5113495bSYour Name 			 control for the response_to_response transmission
550*5113495bSYour Name 			<legal all>
551*5113495bSYour Name */
552*5113495bSYour Name 
553*5113495bSYour Name #define TX_FES_SETUP_RESPONSE_TO_RESPONSE_CMD_OFFSET                                0x0000000000000000
554*5113495bSYour Name #define TX_FES_SETUP_RESPONSE_TO_RESPONSE_CMD_LSB                                   63
555*5113495bSYour Name #define TX_FES_SETUP_RESPONSE_TO_RESPONSE_CMD_MSB                                   63
556*5113495bSYour Name #define TX_FES_SETUP_RESPONSE_TO_RESPONSE_CMD_MASK                                  0x8000000000000000
557*5113495bSYour Name 
558*5113495bSYour Name 
559*5113495bSYour Name /* Description		SCHEDULE_TRY
560*5113495bSYour Name 
561*5113495bSYour Name 			Consumer: TXPCU
562*5113495bSYour Name 			Producer: SCH
563*5113495bSYour Name 
564*5113495bSYour Name 			This field is overwritten by the scheduler module and it's
565*5113495bSYour Name 			 value is coming from an internal counter in the scheduler
566*5113495bSYour Name 			 that keeps track of how many times a scheduling command
567*5113495bSYour Name 			 has been tried.
568*5113495bSYour Name 
569*5113495bSYour Name 			This count indicates how many times the FES did not successfully
570*5113495bSYour Name 			 complete as the ACK/BA frame did not get received.
571*5113495bSYour Name 			<legal all>
572*5113495bSYour Name */
573*5113495bSYour Name 
574*5113495bSYour Name #define TX_FES_SETUP_SCHEDULE_TRY_OFFSET                                            0x0000000000000008
575*5113495bSYour Name #define TX_FES_SETUP_SCHEDULE_TRY_LSB                                               0
576*5113495bSYour Name #define TX_FES_SETUP_SCHEDULE_TRY_MSB                                               3
577*5113495bSYour Name #define TX_FES_SETUP_SCHEDULE_TRY_MASK                                              0x000000000000000f
578*5113495bSYour Name 
579*5113495bSYour Name 
580*5113495bSYour Name /* Description		NDP_FRAME
581*5113495bSYour Name 
582*5113495bSYour Name 			Consumer: PDG/TXPCU
583*5113495bSYour Name 			Producer: SCH
584*5113495bSYour Name 
585*5113495bSYour Name 			When set, the scheduling command contains an NDP frame.
586*5113495bSYour Name 			This can only be done using the SW transmit mode.
587*5113495bSYour Name 
588*5113495bSYour Name 			<enum 0 no_ndp>No NDP transmission
589*5113495bSYour Name 			<enum 1 beamforming_ndp>Beamforming NDP
590*5113495bSYour Name 			<enum 2 he_ranging_ndp>11az NDP (HE Ranging NDP)
591*5113495bSYour Name 			<enum 3 he_feedback_ndp>Short TB (HE Feedback NDP)
592*5113495bSYour Name */
593*5113495bSYour Name 
594*5113495bSYour Name #define TX_FES_SETUP_NDP_FRAME_OFFSET                                               0x0000000000000008
595*5113495bSYour Name #define TX_FES_SETUP_NDP_FRAME_LSB                                                  4
596*5113495bSYour Name #define TX_FES_SETUP_NDP_FRAME_MSB                                                  5
597*5113495bSYour Name #define TX_FES_SETUP_NDP_FRAME_MASK                                                 0x0000000000000030
598*5113495bSYour Name 
599*5113495bSYour Name 
600*5113495bSYour Name /* Description		TXBF
601*5113495bSYour Name 
602*5113495bSYour Name 			Consumer: PDG/TXPCU
603*5113495bSYour Name 			Producer: SCH
604*5113495bSYour Name 
605*5113495bSYour Name 			If set, this bit indicates that this is a TX beamformed
606*5113495bSYour Name 			SU transaction or MU transaction
607*5113495bSYour Name 
608*5113495bSYour Name 
609*5113495bSYour Name 			In case of a beamformed transmission, note that in the PCU_PPDU_SETUP_INIT
610*5113495bSYour Name 			 TLV, SW can narrow down for which of the BW the beamforming
611*5113495bSYour Name 			 shall take place. For example, SW can decide that BW is
612*5113495bSYour Name 			 only desired for 40MHz BW, but not for 20...
613*5113495bSYour Name 			If for any of the allowed BW, beamforming is desired, this
614*5113495bSYour Name 			 field should be set, and the 'bf_type' shall be properly
615*5113495bSYour Name 			 programmed.
616*5113495bSYour Name 
617*5113495bSYour Name 			TXPCU controls with bit 'beamforming' in the MACTX_PRE_PHY_DESC
618*5113495bSYour Name 			 if the final actual transmission shall be beamformed.
619*5113495bSYour Name */
620*5113495bSYour Name 
621*5113495bSYour Name #define TX_FES_SETUP_TXBF_OFFSET                                                    0x0000000000000008
622*5113495bSYour Name #define TX_FES_SETUP_TXBF_LSB                                                       6
623*5113495bSYour Name #define TX_FES_SETUP_TXBF_MSB                                                       6
624*5113495bSYour Name #define TX_FES_SETUP_TXBF_MASK                                                      0x0000000000000040
625*5113495bSYour Name 
626*5113495bSYour Name 
627*5113495bSYour Name /* Description		ALLOW_TXOP_EXCEED_IN_1ST_PKT
628*5113495bSYour Name 
629*5113495bSYour Name 			Consumer: PDG
630*5113495bSYour Name 			Producer: SCH
631*5113495bSYour Name 
632*5113495bSYour Name 			Field only valid for SU transmissions.
633*5113495bSYour Name 
634*5113495bSYour Name 			When set, a single MPDU transmission after RBO is allowed
635*5113495bSYour Name 			 to exceed TXOP. In this setting, this field has priority
636*5113495bSYour Name 			 over the setting of the duration_field_boundary. Reason
637*5113495bSYour Name 			 for this is that if Coex issues on the receiver STA start
638*5113495bSYour Name 			 preventing the transmission of frames on this device, it
639*5113495bSYour Name 			 can lead to a death spiral. With some luck, this frame
640*5113495bSYour Name 			although maybe too long, might still be received.
641*5113495bSYour Name 
642*5113495bSYour Name 			When 0, single MPDU after RBO is not allowed to exceed TXOP.
643*5113495bSYour Name 
644*5113495bSYour Name 			<legal all>
645*5113495bSYour Name */
646*5113495bSYour Name 
647*5113495bSYour Name #define TX_FES_SETUP_ALLOW_TXOP_EXCEED_IN_1ST_PKT_OFFSET                            0x0000000000000008
648*5113495bSYour Name #define TX_FES_SETUP_ALLOW_TXOP_EXCEED_IN_1ST_PKT_LSB                               7
649*5113495bSYour Name #define TX_FES_SETUP_ALLOW_TXOP_EXCEED_IN_1ST_PKT_MSB                               7
650*5113495bSYour Name #define TX_FES_SETUP_ALLOW_TXOP_EXCEED_IN_1ST_PKT_MASK                              0x0000000000000080
651*5113495bSYour Name 
652*5113495bSYour Name 
653*5113495bSYour Name /* Description		IGNORE_BW_AVAILABLE
654*5113495bSYour Name 
655*5113495bSYour Name 			Consumer: TXPCU
656*5113495bSYour Name 			Producer: SCH
657*5113495bSYour Name 
658*5113495bSYour Name 			If set, TXPCU ignores 'BW available signals' from the scheduler
659*5113495bSYour Name 			 and transmit using the single BW that SW has programmed
660*5113495bSYour Name 			 the transmission to go out in. This bit should be set for
661*5113495bSYour Name 			 SIFS response frame to PS-Poll/uAPSD/QBoost and note that
662*5113495bSYour Name 			 for this mode, SW is only allowed to program a single transmit
663*5113495bSYour Name 			 BW.
664*5113495bSYour Name 			Also note that this bit can not be set in combination with
665*5113495bSYour Name 			 preamble puncturing.
666*5113495bSYour Name 			<legal all>
667*5113495bSYour Name */
668*5113495bSYour Name 
669*5113495bSYour Name #define TX_FES_SETUP_IGNORE_BW_AVAILABLE_OFFSET                                     0x0000000000000008
670*5113495bSYour Name #define TX_FES_SETUP_IGNORE_BW_AVAILABLE_LSB                                        8
671*5113495bSYour Name #define TX_FES_SETUP_IGNORE_BW_AVAILABLE_MSB                                        8
672*5113495bSYour Name #define TX_FES_SETUP_IGNORE_BW_AVAILABLE_MASK                                       0x0000000000000100
673*5113495bSYour Name 
674*5113495bSYour Name 
675*5113495bSYour Name /* Description		IGNORE_TBTT
676*5113495bSYour Name 
677*5113495bSYour Name 			Consumer: PDG
678*5113495bSYour Name 			Producer: SCH
679*5113495bSYour Name 
680*5113495bSYour Name 			If set, PDG ignores remaining TBTTs in PPDU time calculation.
681*5113495bSYour Name 
682*5113495bSYour Name 			<legal all>
683*5113495bSYour Name */
684*5113495bSYour Name 
685*5113495bSYour Name #define TX_FES_SETUP_IGNORE_TBTT_OFFSET                                             0x0000000000000008
686*5113495bSYour Name #define TX_FES_SETUP_IGNORE_TBTT_LSB                                                9
687*5113495bSYour Name #define TX_FES_SETUP_IGNORE_TBTT_MSB                                                9
688*5113495bSYour Name #define TX_FES_SETUP_IGNORE_TBTT_MASK                                               0x0000000000000200
689*5113495bSYour Name 
690*5113495bSYour Name 
691*5113495bSYour Name /* Description		STATIC_BANDWIDTH
692*5113495bSYour Name 
693*5113495bSYour Name 			Consumer: PDG/TXPCU
694*5113495bSYour Name 			Producer: SCH
695*5113495bSYour Name 
696*5113495bSYour Name 			Field is reserved when use_static_bw is clear.
697*5113495bSYour Name 
698*5113495bSYour Name 			<enum 0 20_mhz>20 Mhz BW
699*5113495bSYour Name 			<enum 1 40_mhz>40 Mhz BW
700*5113495bSYour Name 			<enum 2 80_mhz>80 Mhz BW
701*5113495bSYour Name 			<enum 3 160_mhz>160 Mhz BW
702*5113495bSYour Name 			<enum 4 320_mhz>320 Mhz BW
703*5113495bSYour Name 			<enum 5 240_mhz>240 Mhz BW
704*5113495bSYour Name */
705*5113495bSYour Name 
706*5113495bSYour Name #define TX_FES_SETUP_STATIC_BANDWIDTH_OFFSET                                        0x0000000000000008
707*5113495bSYour Name #define TX_FES_SETUP_STATIC_BANDWIDTH_LSB                                           10
708*5113495bSYour Name #define TX_FES_SETUP_STATIC_BANDWIDTH_MSB                                           12
709*5113495bSYour Name #define TX_FES_SETUP_STATIC_BANDWIDTH_MASK                                          0x0000000000001c00
710*5113495bSYour Name 
711*5113495bSYour Name 
712*5113495bSYour Name /* Description		SET_TXOP_DURATION_ALL_ONES
713*5113495bSYour Name 
714*5113495bSYour Name 			Consumer: PDG
715*5113495bSYour Name 			Producer: SCH
716*5113495bSYour Name 
717*5113495bSYour Name 			When set, SW embedded a PS_POLL frame in this transmission
718*5113495bSYour Name 			 or the frame in this transmission is for a BSS with BSS
719*5113495bSYour Name 			 Color disabled, e.g. due to BSS color collision.
720*5113495bSYour Name 			PDG sets the TXOP_DURATION of the transmit PPDU to all 1s.
721*5113495bSYour Name 
722*5113495bSYour Name 			<legal all>
723*5113495bSYour Name */
724*5113495bSYour Name 
725*5113495bSYour Name #define TX_FES_SETUP_SET_TXOP_DURATION_ALL_ONES_OFFSET                              0x0000000000000008
726*5113495bSYour Name #define TX_FES_SETUP_SET_TXOP_DURATION_ALL_ONES_LSB                                 13
727*5113495bSYour Name #define TX_FES_SETUP_SET_TXOP_DURATION_ALL_ONES_MSB                                 13
728*5113495bSYour Name #define TX_FES_SETUP_SET_TXOP_DURATION_ALL_ONES_MASK                                0x0000000000002000
729*5113495bSYour Name 
730*5113495bSYour Name 
731*5113495bSYour Name /* Description		TRANSMISSION_CONTAINS_MU_RTS
732*5113495bSYour Name 
733*5113495bSYour Name 			Consumer: PDG
734*5113495bSYour Name 			Producer: SCH
735*5113495bSYour Name 
736*5113495bSYour Name 			When set, SW embedded a MU-RTS trigger frame in this transmission.
737*5113495bSYour Name 
738*5113495bSYour Name 			TXPCU will have to do something special for this with the
739*5113495bSYour Name 			 CTS response timeout (whose value comes from a MU-CTS timeout
740*5113495bSYour Name 			 register)
741*5113495bSYour Name 
742*5113495bSYour Name 			<legal all>
743*5113495bSYour Name */
744*5113495bSYour Name 
745*5113495bSYour Name #define TX_FES_SETUP_TRANSMISSION_CONTAINS_MU_RTS_OFFSET                            0x0000000000000008
746*5113495bSYour Name #define TX_FES_SETUP_TRANSMISSION_CONTAINS_MU_RTS_LSB                               14
747*5113495bSYour Name #define TX_FES_SETUP_TRANSMISSION_CONTAINS_MU_RTS_MSB                               14
748*5113495bSYour Name #define TX_FES_SETUP_TRANSMISSION_CONTAINS_MU_RTS_MASK                              0x0000000000004000
749*5113495bSYour Name 
750*5113495bSYour Name 
751*5113495bSYour Name /* Description		BW_RESTRICTED_FRAMES_EMBEDDED
752*5113495bSYour Name 
753*5113495bSYour Name 			Consumer: TXPCU
754*5113495bSYour Name 			Producer: SW
755*5113495bSYour Name 
756*5113495bSYour Name 			This bit should be set by SW when the transmission includes
757*5113495bSYour Name 			 bandwidth restricted frames. As a result of this bit being
758*5113495bSYour Name 			 set, TXPCU will hold of indicating that buffer space is
759*5113495bSYour Name 			 available to TXDMA till the BW decision is done. This allows
760*5113495bSYour Name 			 TXPCU to drop the BW restricted frames at SFM input.
761*5113495bSYour Name 
762*5113495bSYour Name 			<legal all>
763*5113495bSYour Name */
764*5113495bSYour Name 
765*5113495bSYour Name #define TX_FES_SETUP_BW_RESTRICTED_FRAMES_EMBEDDED_OFFSET                           0x0000000000000008
766*5113495bSYour Name #define TX_FES_SETUP_BW_RESTRICTED_FRAMES_EMBEDDED_LSB                              15
767*5113495bSYour Name #define TX_FES_SETUP_BW_RESTRICTED_FRAMES_EMBEDDED_MSB                              15
768*5113495bSYour Name #define TX_FES_SETUP_BW_RESTRICTED_FRAMES_EMBEDDED_MASK                             0x0000000000008000
769*5113495bSYour Name 
770*5113495bSYour Name 
771*5113495bSYour Name /* Description		AST_INDEX
772*5113495bSYour Name 
773*5113495bSYour Name 			Consumer: RXPCU
774*5113495bSYour Name 			Producer: SCH
775*5113495bSYour Name 
776*5113495bSYour Name 			Used for implicit BF sounding capture on receive Ack/BA.
777*5113495bSYour Name 			 The RXPCU needs to tag the receive sounding with ast_index
778*5113495bSYour Name 			 so FW will know which STA is associated with Ack/BA sounding.
779*5113495bSYour Name 
780*5113495bSYour Name 
781*5113495bSYour Name 			<legal all>
782*5113495bSYour Name */
783*5113495bSYour Name 
784*5113495bSYour Name #define TX_FES_SETUP_AST_INDEX_OFFSET                                               0x0000000000000008
785*5113495bSYour Name #define TX_FES_SETUP_AST_INDEX_LSB                                                  16
786*5113495bSYour Name #define TX_FES_SETUP_AST_INDEX_MSB                                                  31
787*5113495bSYour Name #define TX_FES_SETUP_AST_INDEX_MASK                                                 0x00000000ffff0000
788*5113495bSYour Name 
789*5113495bSYour Name 
790*5113495bSYour Name /* Description		CV_ID
791*5113495bSYour Name 
792*5113495bSYour Name 			Consumer: TXPCU
793*5113495bSYour Name 			Producer: SCH
794*5113495bSYour Name 
795*5113495bSYour Name 			This field is only valid when expect_cbf is set.
796*5113495bSYour Name 
797*5113495bSYour Name 			A unique ID corresponding to the CV data expected from the
798*5113495bSYour Name 			 CBF frame.
799*5113495bSYour Name 
800*5113495bSYour Name 			TXPCU copies this field over to the TX_FES_STATUS TLV
801*5113495bSYour Name 			<legal all>
802*5113495bSYour Name */
803*5113495bSYour Name 
804*5113495bSYour Name #define TX_FES_SETUP_CV_ID_OFFSET                                                   0x0000000000000008
805*5113495bSYour Name #define TX_FES_SETUP_CV_ID_LSB                                                      32
806*5113495bSYour Name #define TX_FES_SETUP_CV_ID_MSB                                                      39
807*5113495bSYour Name #define TX_FES_SETUP_CV_ID_MASK                                                     0x000000ff00000000
808*5113495bSYour Name 
809*5113495bSYour Name 
810*5113495bSYour Name /* Description		TRIGGER_RESP_TXPDU_PPDU_BOUNDARY
811*5113495bSYour Name 
812*5113495bSYour Name 			This field indicates to TXPCU how far into the 11ax trigger
813*5113495bSYour Name 			 response transmission, TXPCU should still accept Trigger
814*5113495bSYour Name 			 response related configuration info from the SCHEDULER (and
815*5113495bSYour Name 			 PDG) to be processed.
816*5113495bSYour Name 
817*5113495bSYour Name 			The field indicates a percentage of the total  byte count
818*5113495bSYour Name 			 to be given to the PHY, up to which point TXPCU will still
819*5113495bSYour Name 			 accept all the setup related TLVS to arrive. After that,
820*5113495bSYour Name 			TXPCU will ignore any remaining setup TLVs to come in and
821*5113495bSYour Name 			 not initiate any MPDU based transfers to the PHY anymore.
822*5113495bSYour Name 			This is to help avoid corner cases.
823*5113495bSYour Name 			If any setup TLVs did arrive after this point, TXPCU will
824*5113495bSYour Name 			 keep on continuing giving NULL data to the PHY, but once
825*5113495bSYour Name 			 PHYTX_PKT_END is received, TXPCU shall issue a FLUSH request
826*5113495bSYour Name 			 to the SCH, with flush code: TXPCU_TRIG_RESPONSE_INFO_TOO_LATE
827*5113495bSYour Name 
828*5113495bSYour Name 			TXPCU should not abort the transmission halfway, as that
829*5113495bSYour Name 			 can cause problems for the MU UL receiver...
830*5113495bSYour Name 
831*5113495bSYour Name 			<enum 0 txpcu_trig_response_boundary_75> TXPCU will not
832*5113495bSYour Name 			initiate SCH based MPDU transfers after 75% of the PPDU
833*5113495bSYour Name 			octed count has already been given to the PHY.
834*5113495bSYour Name 
835*5113495bSYour Name 			<enum 1 txpcu_trig_response_boundary_50> TXPCU will not
836*5113495bSYour Name 			initiate SCH based MPDU transfers after 50% of the PPDU
837*5113495bSYour Name 			octed count has already been given to the PHY.
838*5113495bSYour Name 
839*5113495bSYour Name 			<enum 2 txpcu_trig_response_boundary_25> TXPCU will not
840*5113495bSYour Name 			initiate SCH based MPDU transfers after 75% of the PPDU
841*5113495bSYour Name 			octed count has already been given to the PHY.
842*5113495bSYour Name 
843*5113495bSYour Name 			Note that if TXPCU receives a TX_FES_SETUP with "11ax trigger
844*5113495bSYour Name 			 response transmission" set, and it had already finished
845*5113495bSYour Name 			 sending a response , it should generate a flush with code:
846*5113495bSYour Name 			TXPCU_TRIG_RESPONSE_MODE_CORRUPTION
847*5113495bSYour Name 
848*5113495bSYour Name 			<legal 0-2>
849*5113495bSYour Name */
850*5113495bSYour Name 
851*5113495bSYour Name #define TX_FES_SETUP_TRIGGER_RESP_TXPDU_PPDU_BOUNDARY_OFFSET                        0x0000000000000008
852*5113495bSYour Name #define TX_FES_SETUP_TRIGGER_RESP_TXPDU_PPDU_BOUNDARY_LSB                           40
853*5113495bSYour Name #define TX_FES_SETUP_TRIGGER_RESP_TXPDU_PPDU_BOUNDARY_MSB                           41
854*5113495bSYour Name #define TX_FES_SETUP_TRIGGER_RESP_TXPDU_PPDU_BOUNDARY_MASK                          0x0000030000000000
855*5113495bSYour Name 
856*5113495bSYour Name 
857*5113495bSYour Name /* Description		RXPCU_SETUP_COMPLETE_PRESENT
858*5113495bSYour Name 
859*5113495bSYour Name 			To notify current TXFES use new mode and delay "RXPCU_*_SETUP"
860*5113495bSYour Name 			for HWSCH/TXPCU/RXPCU module
861*5113495bSYour Name 			<legal all>
862*5113495bSYour Name */
863*5113495bSYour Name 
864*5113495bSYour Name #define TX_FES_SETUP_RXPCU_SETUP_COMPLETE_PRESENT_OFFSET                            0x0000000000000008
865*5113495bSYour Name #define TX_FES_SETUP_RXPCU_SETUP_COMPLETE_PRESENT_LSB                               42
866*5113495bSYour Name #define TX_FES_SETUP_RXPCU_SETUP_COMPLETE_PRESENT_MSB                               42
867*5113495bSYour Name #define TX_FES_SETUP_RXPCU_SETUP_COMPLETE_PRESENT_MASK                              0x0000040000000000
868*5113495bSYour Name 
869*5113495bSYour Name 
870*5113495bSYour Name /* Description		RBO_MUST_HAVE_DATA_USER_LIMIT
871*5113495bSYour Name 
872*5113495bSYour Name 			Consumer: PDG
873*5113495bSYour Name 			Producer: SW
874*5113495bSYour Name 
875*5113495bSYour Name 			Field only valid when Ofdma_triggered_response is NOT set
876*5113495bSYour Name 			 (=> implies transmission started due to backoff expiration)
877*5113495bSYour Name 
878*5113495bSYour Name 
879*5113495bSYour Name 			Field only valid for SU and "MU_SU" transmissions.
880*5113495bSYour Name 
881*5113495bSYour Name 			The requirements for what to transmit depend on what the
882*5113495bSYour Name 			 reason is that this transmission started. If it is 11ax
883*5113495bSYour Name 			 trigger based, the trigger frame will specify all the constrains
884*5113495bSYour Name 			 like max TID count, prefered AC, etc.
885*5113495bSYour Name 			However if this command starts executing due to backoff
886*5113495bSYour Name 			expiration, the requirements could be different from those
887*5113495bSYour Name 			 that might have come from the trigger frame.
888*5113495bSYour Name 			This field specifies what the constaints are when the transmission
889*5113495bSYour Name 			 is Backoff initiated.
890*5113495bSYour Name 
891*5113495bSYour Name 			When set to 0, this feature is disabled
892*5113495bSYour Name 			When set to 1, user 0 must have data otherwise PDG should
893*5113495bSYour Name 			 flush the transmission
894*5113495bSYour Name 			When set to 2, user 0 AND/OR user 1 must have data otherwise
895*5113495bSYour Name 			 PDG should flush the transmission
896*5113495bSYour Name 			When set to 3, user 0 AND/OR user 1 AND/OR user 2 must have
897*5113495bSYour Name 			 data otherwise PDG should flush the transmission
898*5113495bSYour Name 			...
899*5113495bSYour Name 			<legal all>
900*5113495bSYour Name */
901*5113495bSYour Name 
902*5113495bSYour Name #define TX_FES_SETUP_RBO_MUST_HAVE_DATA_USER_LIMIT_OFFSET                           0x0000000000000008
903*5113495bSYour Name #define TX_FES_SETUP_RBO_MUST_HAVE_DATA_USER_LIMIT_LSB                              43
904*5113495bSYour Name #define TX_FES_SETUP_RBO_MUST_HAVE_DATA_USER_LIMIT_MSB                              46
905*5113495bSYour Name #define TX_FES_SETUP_RBO_MUST_HAVE_DATA_USER_LIMIT_MASK                             0x0000780000000000
906*5113495bSYour Name 
907*5113495bSYour Name 
908*5113495bSYour Name /* Description		MU_NDP
909*5113495bSYour Name 
910*5113495bSYour Name 			Field only valid when ndp_frame is set.
911*5113495bSYour Name 
912*5113495bSYour Name 			If set indicates that this packet is an NDP used for MU
913*5113495bSYour Name 			channel estimation.  This bit will be used by the TPC to
914*5113495bSYour Name 			 signal that the analog gain settings can be updated. The
915*5113495bSYour Name 			 analog gain settings will not change for subsequent MU
916*5113495bSYour Name 			data packets.
917*5113495bSYour Name 			<legal all>
918*5113495bSYour Name */
919*5113495bSYour Name 
920*5113495bSYour Name #define TX_FES_SETUP_MU_NDP_OFFSET                                                  0x0000000000000008
921*5113495bSYour Name #define TX_FES_SETUP_MU_NDP_LSB                                                     47
922*5113495bSYour Name #define TX_FES_SETUP_MU_NDP_MSB                                                     47
923*5113495bSYour Name #define TX_FES_SETUP_MU_NDP_MASK                                                    0x0000800000000000
924*5113495bSYour Name 
925*5113495bSYour Name 
926*5113495bSYour Name /* Description		BF_TYPE
927*5113495bSYour Name 
928*5113495bSYour Name 			Consumer: PDG/TXPCU
929*5113495bSYour Name 			Producer: SCH
930*5113495bSYour Name 
931*5113495bSYour Name 			Field is ONLY valid when 'txbf' is set...
932*5113495bSYour Name 
933*5113495bSYour Name 			Defines the type of beamforming that is required using this
934*5113495bSYour Name 			 transmission.
935*5113495bSYour Name 			Note that in the PCU_PPDU_SETUP_INIT TLV, SW can narrow
936*5113495bSYour Name 			down for which BW the beamforming shall take place. For
937*5113495bSYour Name 			example, SW can decide that BW is only desired for 40MHz
938*5113495bSYour Name 			 BW, but not for 20...
939*5113495bSYour Name 			If for any of the allowed BW, beamforming is desired, this
940*5113495bSYour Name 			 field should indicate which type of BF.
941*5113495bSYour Name 
942*5113495bSYour Name 			<enum 0    NO_BF>
943*5113495bSYour Name 			<enum 1    LEGACY_BF>
944*5113495bSYour Name 			<enum 2    SU_BF>
945*5113495bSYour Name 			<enum 3    MU_BF>
946*5113495bSYour Name 			 <legal all>
947*5113495bSYour Name */
948*5113495bSYour Name 
949*5113495bSYour Name #define TX_FES_SETUP_BF_TYPE_OFFSET                                                 0x0000000000000008
950*5113495bSYour Name #define TX_FES_SETUP_BF_TYPE_LSB                                                    48
951*5113495bSYour Name #define TX_FES_SETUP_BF_TYPE_MSB                                                    49
952*5113495bSYour Name #define TX_FES_SETUP_BF_TYPE_MASK                                                   0x0003000000000000
953*5113495bSYour Name 
954*5113495bSYour Name 
955*5113495bSYour Name /* Description		CBF_NC_INDEX_MASK
956*5113495bSYour Name 
957*5113495bSYour Name 			Consumer: TXPCU
958*5113495bSYour Name 			Producer: SCH
959*5113495bSYour Name 
960*5113495bSYour Name 			When set, TXPCU shall confirm that the received cbf_nc_index
961*5113495bSYour Name 			 is equal to the expected one, indicated by field: cbf_nc_index
962*5113495bSYour Name 
963*5113495bSYour Name 
964*5113495bSYour Name 			This field is only allowed to be set in case of a single
965*5113495bSYour Name 			 SU CBF reception.
966*5113495bSYour Name 
967*5113495bSYour Name 			<legal all>
968*5113495bSYour Name */
969*5113495bSYour Name 
970*5113495bSYour Name #define TX_FES_SETUP_CBF_NC_INDEX_MASK_OFFSET                                       0x0000000000000008
971*5113495bSYour Name #define TX_FES_SETUP_CBF_NC_INDEX_MASK_LSB                                          50
972*5113495bSYour Name #define TX_FES_SETUP_CBF_NC_INDEX_MASK_MSB                                          50
973*5113495bSYour Name #define TX_FES_SETUP_CBF_NC_INDEX_MASK_MASK                                         0x0004000000000000
974*5113495bSYour Name 
975*5113495bSYour Name 
976*5113495bSYour Name /* Description		CBF_NC_INDEX
977*5113495bSYour Name 
978*5113495bSYour Name 			Consumer: TXPCU
979*5113495bSYour Name 			Producer: SCH
980*5113495bSYour Name 
981*5113495bSYour Name 			Field only valid when cbf_nc_index_mask is set
982*5113495bSYour Name 
983*5113495bSYour Name 			Expected Nc_index of received CBF frame after sending NDP
984*5113495bSYour Name 			 or BR-Poll.
985*5113495bSYour Name 
986*5113495bSYour Name 			<enum 0 nc_1>
987*5113495bSYour Name 			<enum 1 nc_2>
988*5113495bSYour Name 			<enum 2 nc_3>
989*5113495bSYour Name 			<enum 3 nc_4>
990*5113495bSYour Name 			<enum 4 nc_5>
991*5113495bSYour Name 			<enum 5 nc_6>
992*5113495bSYour Name 			<enum 6 nc_7>
993*5113495bSYour Name 			<enum 7 nc_8>
994*5113495bSYour Name 			<legal 0-7>
995*5113495bSYour Name */
996*5113495bSYour Name 
997*5113495bSYour Name #define TX_FES_SETUP_CBF_NC_INDEX_OFFSET                                            0x0000000000000008
998*5113495bSYour Name #define TX_FES_SETUP_CBF_NC_INDEX_LSB                                               51
999*5113495bSYour Name #define TX_FES_SETUP_CBF_NC_INDEX_MSB                                               53
1000*5113495bSYour Name #define TX_FES_SETUP_CBF_NC_INDEX_MASK                                              0x0038000000000000
1001*5113495bSYour Name 
1002*5113495bSYour Name 
1003*5113495bSYour Name /* Description		CBF_NR_INDEX_MASK
1004*5113495bSYour Name 
1005*5113495bSYour Name 			Consumer: TXPCU
1006*5113495bSYour Name 			Producer: SCH
1007*5113495bSYour Name 
1008*5113495bSYour Name 			When set, TXPCU shall confirm that the received cbf_nr_index
1009*5113495bSYour Name 			 is equal to the expected one, indicated in the field: cbf_nr_index
1010*5113495bSYour Name 
1011*5113495bSYour Name 
1012*5113495bSYour Name 			This field is only allowed to be set in case of a single
1013*5113495bSYour Name 			 SU CBF reception.
1014*5113495bSYour Name 			<legal all>
1015*5113495bSYour Name */
1016*5113495bSYour Name 
1017*5113495bSYour Name #define TX_FES_SETUP_CBF_NR_INDEX_MASK_OFFSET                                       0x0000000000000008
1018*5113495bSYour Name #define TX_FES_SETUP_CBF_NR_INDEX_MASK_LSB                                          54
1019*5113495bSYour Name #define TX_FES_SETUP_CBF_NR_INDEX_MASK_MSB                                          54
1020*5113495bSYour Name #define TX_FES_SETUP_CBF_NR_INDEX_MASK_MASK                                         0x0040000000000000
1021*5113495bSYour Name 
1022*5113495bSYour Name 
1023*5113495bSYour Name /* Description		CBF_NR_INDEX
1024*5113495bSYour Name 
1025*5113495bSYour Name 			Expected Nr_index of received CBF frame after sending NDP
1026*5113495bSYour Name 			 or BR-Poll. This field is compared only if cbf_nr_index_mask
1027*5113495bSYour Name 			 is set to 1.
1028*5113495bSYour Name 			<enum 0 nr_1>
1029*5113495bSYour Name 			<enum 1 nr_2>
1030*5113495bSYour Name 			<enum 2 nr_3>
1031*5113495bSYour Name 			<enum 3 nr_4>
1032*5113495bSYour Name 			<enum 4 nr_5>
1033*5113495bSYour Name 			<enum 5 nr_6>
1034*5113495bSYour Name 			<enum 6 nr_7>
1035*5113495bSYour Name 			<enum 7 nr_8>
1036*5113495bSYour Name 			<legal 0-7>
1037*5113495bSYour Name */
1038*5113495bSYour Name 
1039*5113495bSYour Name #define TX_FES_SETUP_CBF_NR_INDEX_OFFSET                                            0x0000000000000008
1040*5113495bSYour Name #define TX_FES_SETUP_CBF_NR_INDEX_LSB                                               55
1041*5113495bSYour Name #define TX_FES_SETUP_CBF_NR_INDEX_MSB                                               57
1042*5113495bSYour Name #define TX_FES_SETUP_CBF_NR_INDEX_MASK                                              0x0380000000000000
1043*5113495bSYour Name 
1044*5113495bSYour Name 
1045*5113495bSYour Name /* Description		SECURE_RANGING_ISTA
1046*5113495bSYour Name 
1047*5113495bSYour Name 			Consumer: Crypto
1048*5113495bSYour Name 			Producer: SW
1049*5113495bSYour Name 
1050*5113495bSYour Name 			If set to 1, Crypto will use the 'TX_PEER_ENTRY' for encryption
1051*5113495bSYour Name 			 but not for the 'TX_DATA' from TXOLE interface but will
1052*5113495bSYour Name 			 wait for 'LMR_{MPDU_START, DATA, MPDU_END}' TLVs from TXPCU
1053*5113495bSYour Name 			 to encrypt the ISTA2RSTA LMR.
1054*5113495bSYour Name 
1055*5113495bSYour Name 			If set to 0, Crypto will encrypt 'TX_DATA' as for any non-.11az-ranging
1056*5113495bSYour Name 			 frame.
1057*5113495bSYour Name */
1058*5113495bSYour Name 
1059*5113495bSYour Name #define TX_FES_SETUP_SECURE_RANGING_ISTA_OFFSET                                     0x0000000000000008
1060*5113495bSYour Name #define TX_FES_SETUP_SECURE_RANGING_ISTA_LSB                                        58
1061*5113495bSYour Name #define TX_FES_SETUP_SECURE_RANGING_ISTA_MSB                                        58
1062*5113495bSYour Name #define TX_FES_SETUP_SECURE_RANGING_ISTA_MASK                                       0x0400000000000000
1063*5113495bSYour Name 
1064*5113495bSYour Name 
1065*5113495bSYour Name /* Description		NDPA
1066*5113495bSYour Name 
1067*5113495bSYour Name 			When set, this packet is an NDP announcement.
1068*5113495bSYour Name */
1069*5113495bSYour Name 
1070*5113495bSYour Name #define TX_FES_SETUP_NDPA_OFFSET                                                    0x0000000000000008
1071*5113495bSYour Name #define TX_FES_SETUP_NDPA_LSB                                                       59
1072*5113495bSYour Name #define TX_FES_SETUP_NDPA_MSB                                                       59
1073*5113495bSYour Name #define TX_FES_SETUP_NDPA_MASK                                                      0x0800000000000000
1074*5113495bSYour Name 
1075*5113495bSYour Name 
1076*5113495bSYour Name /* Description		WAIT_SIFS
1077*5113495bSYour Name 
1078*5113495bSYour Name 			Consumer: TXPCU
1079*5113495bSYour Name 			Producer: SCH
1080*5113495bSYour Name 
1081*5113495bSYour Name 			This field is passed over to the tx_phy_desc by the PDG
1082*5113495bSYour Name 			module. If set, the AMPI will hold this tx_phy_desc TLV
1083*5113495bSYour Name 			from the TX PCU until SIFS has elapsed and then forward
1084*5113495bSYour Name 			the tx_phy_desc to the PHY.  The PHY should ignore this
1085*5113495bSYour Name 			bit.  This bit is used to make sure that transmit SIFS response
1086*5113495bSYour Name 			 to a receive frame is cycle accurate and consistent to
1087*5113495bSYour Name 			enable accurate RTT measurement.
1088*5113495bSYour Name 
1089*5113495bSYour Name 			<enum 0 NO_SIFS_TIMING> Transmission shall start with the
1090*5113495bSYour Name 			 normal delay in PHY after receiving this notification
1091*5113495bSYour Name 			<enum 1 SIFS_TIMING_DESIRED> Transmission shall be made
1092*5113495bSYour Name 			at the SIFS boundary. If shall never start before SIFS boundary,
1093*5113495bSYour Name 			but if it a little later, it is not ideal and should be
1094*5113495bSYour Name 			flagged, but transmission shall not be aborted.
1095*5113495bSYour Name 			<enum 2 SIFS_TIMING_MANDATED> Transmission shall be made
1096*5113495bSYour Name 			 at exactly SIFS boundary. If this notification is received
1097*5113495bSYour Name 			 by the PHY after SIFS boundary already passed, the PHY
1098*5113495bSYour Name 			shall abort the transmission
1099*5113495bSYour Name 			<legal 0-2>
1100*5113495bSYour Name */
1101*5113495bSYour Name 
1102*5113495bSYour Name #define TX_FES_SETUP_WAIT_SIFS_OFFSET                                               0x0000000000000008
1103*5113495bSYour Name #define TX_FES_SETUP_WAIT_SIFS_LSB                                                  60
1104*5113495bSYour Name #define TX_FES_SETUP_WAIT_SIFS_MSB                                                  61
1105*5113495bSYour Name #define TX_FES_SETUP_WAIT_SIFS_MASK                                                 0x3000000000000000
1106*5113495bSYour Name 
1107*5113495bSYour Name 
1108*5113495bSYour Name /* Description		CBF_FEEDBACK_TYPE_MASK
1109*5113495bSYour Name 
1110*5113495bSYour Name 			Consumer: TXPCU
1111*5113495bSYour Name 			Producer: SCH
1112*5113495bSYour Name 
1113*5113495bSYour Name 			When set, TXPCU shall confirm that the cbf_feedback_type
1114*5113495bSYour Name 			 is equal to the expected one, indicated in the field: cbf_feedback_type
1115*5113495bSYour Name 
1116*5113495bSYour Name 
1117*5113495bSYour Name 			This field is only allowed to be set in case of a single
1118*5113495bSYour Name 			 SU CBF reception.
1119*5113495bSYour Name 			<legal all>
1120*5113495bSYour Name */
1121*5113495bSYour Name 
1122*5113495bSYour Name #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK_OFFSET                                  0x0000000000000008
1123*5113495bSYour Name #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK_LSB                                     62
1124*5113495bSYour Name #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK_MSB                                     62
1125*5113495bSYour Name #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK_MASK                                    0x4000000000000000
1126*5113495bSYour Name 
1127*5113495bSYour Name 
1128*5113495bSYour Name /* Description		CBF_FEEDBACK_TYPE
1129*5113495bSYour Name 
1130*5113495bSYour Name 			Consumer: TXPCU
1131*5113495bSYour Name 			Producer: SCH
1132*5113495bSYour Name 
1133*5113495bSYour Name 			Expected feedback type of received CBF frame after sending
1134*5113495bSYour Name 			 NDP or BR-Poll. This field is compared only if cbf_feedback_type_mask
1135*5113495bSYour Name 			 is set to 1.
1136*5113495bSYour Name 			<enum 0     SU>
1137*5113495bSYour Name 			<enum 1     MU>
1138*5113495bSYour Name 			<legal all>
1139*5113495bSYour Name */
1140*5113495bSYour Name 
1141*5113495bSYour Name #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_OFFSET                                       0x0000000000000008
1142*5113495bSYour Name #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_LSB                                          63
1143*5113495bSYour Name #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MSB                                          63
1144*5113495bSYour Name #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK                                         0x8000000000000000
1145*5113495bSYour Name 
1146*5113495bSYour Name 
1147*5113495bSYour Name /* Description		CBF_SOUNDING_TOKEN
1148*5113495bSYour Name 
1149*5113495bSYour Name 			Consumer: TXPCU
1150*5113495bSYour Name 			Producer: SCH
1151*5113495bSYour Name 
1152*5113495bSYour Name 			Expected sounding token of received CBF frame after sending
1153*5113495bSYour Name 			 NDP or BR-Poll. This field is compared only if cbf_sounding_token_mask
1154*5113495bSYour Name 			 is set to 1.
1155*5113495bSYour Name 			<legal all>
1156*5113495bSYour Name */
1157*5113495bSYour Name 
1158*5113495bSYour Name #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_OFFSET                                      0x0000000000000010
1159*5113495bSYour Name #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_LSB                                         0
1160*5113495bSYour Name #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MSB                                         5
1161*5113495bSYour Name #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK                                        0x000000000000003f
1162*5113495bSYour Name 
1163*5113495bSYour Name 
1164*5113495bSYour Name /* Description		CBF_SOUNDING_TOKEN_MASK
1165*5113495bSYour Name 
1166*5113495bSYour Name 			Consumer: TXPCU
1167*5113495bSYour Name 			Producer: SCH
1168*5113495bSYour Name 
1169*5113495bSYour Name 			When set, TXPCU shall confirm that the cbf_sounding_token
1170*5113495bSYour Name 			 is equal to the expected one, indicated in the field: cbf_sounding_token
1171*5113495bSYour Name 
1172*5113495bSYour Name 
1173*5113495bSYour Name 			This field is only allowed to be set in case of a single
1174*5113495bSYour Name 			 SU CBF reception.
1175*5113495bSYour Name 			<legal all>
1176*5113495bSYour Name */
1177*5113495bSYour Name 
1178*5113495bSYour Name #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK_OFFSET                                 0x0000000000000010
1179*5113495bSYour Name #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK_LSB                                    6
1180*5113495bSYour Name #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK_MSB                                    6
1181*5113495bSYour Name #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK_MASK                                   0x0000000000000040
1182*5113495bSYour Name 
1183*5113495bSYour Name 
1184*5113495bSYour Name /* Description		CBF_BW_MASK
1185*5113495bSYour Name 
1186*5113495bSYour Name 			Consumer: TXPCU
1187*5113495bSYour Name 			Producer: SCH
1188*5113495bSYour Name 
1189*5113495bSYour Name 			When set, TXPCU shall confirm that the cbf_bw_mask is equal
1190*5113495bSYour Name 			 to the expected one, indicated in the field: cbf_bw
1191*5113495bSYour Name 
1192*5113495bSYour Name 			This field is only allowed to be set in case of a single
1193*5113495bSYour Name 			 SU CBF reception.
1194*5113495bSYour Name 			<legal all>
1195*5113495bSYour Name */
1196*5113495bSYour Name 
1197*5113495bSYour Name #define TX_FES_SETUP_CBF_BW_MASK_OFFSET                                             0x0000000000000010
1198*5113495bSYour Name #define TX_FES_SETUP_CBF_BW_MASK_LSB                                                7
1199*5113495bSYour Name #define TX_FES_SETUP_CBF_BW_MASK_MSB                                                7
1200*5113495bSYour Name #define TX_FES_SETUP_CBF_BW_MASK_MASK                                               0x0000000000000080
1201*5113495bSYour Name 
1202*5113495bSYour Name 
1203*5113495bSYour Name /* Description		CBF_BW
1204*5113495bSYour Name 
1205*5113495bSYour Name 			Consumer: TXPCU
1206*5113495bSYour Name 			Producer: SCH
1207*5113495bSYour Name 
1208*5113495bSYour Name 			Expected channel width of received CBF frame after sending
1209*5113495bSYour Name 			 NDP or BR-Poll. This field is compared only if cbf_bw_mask
1210*5113495bSYour Name 			 is set to 1.
1211*5113495bSYour Name 
1212*5113495bSYour Name 			<enum 0 20_mhz>20 Mhz BW
1213*5113495bSYour Name 			<enum 1 40_mhz>40 Mhz BW
1214*5113495bSYour Name 			<enum 2 80_mhz>80 Mhz BW
1215*5113495bSYour Name 			<enum 3 160_mhz>160 Mhz BW
1216*5113495bSYour Name 			<enum 4 320_mhz>320 Mhz BW
1217*5113495bSYour Name 			<enum 5 240_mhz>240 Mhz BW
1218*5113495bSYour Name */
1219*5113495bSYour Name 
1220*5113495bSYour Name #define TX_FES_SETUP_CBF_BW_OFFSET                                                  0x0000000000000010
1221*5113495bSYour Name #define TX_FES_SETUP_CBF_BW_LSB                                                     8
1222*5113495bSYour Name #define TX_FES_SETUP_CBF_BW_MSB                                                     10
1223*5113495bSYour Name #define TX_FES_SETUP_CBF_BW_MASK                                                    0x0000000000000700
1224*5113495bSYour Name 
1225*5113495bSYour Name 
1226*5113495bSYour Name /* Description		USE_STATIC_BW
1227*5113495bSYour Name 
1228*5113495bSYour Name 			Consumer: TXPCU
1229*5113495bSYour Name 			Producer: SCH
1230*5113495bSYour Name 
1231*5113495bSYour Name 			Part of TX_BF_PARAMS: This field is used to indicate to
1232*5113495bSYour Name 			the SVD that the b/w that will be defined in the TX_PHY_DESC
1233*5113495bSYour Name 			 for the upcoming TXBF packet will be the same as the static
1234*5113495bSYour Name 			 bandwidth, i.e. the bandwidth that was in operation during
1235*5113495bSYour Name 			 sounding for the clients in question
1236*5113495bSYour Name 			<legal all>
1237*5113495bSYour Name */
1238*5113495bSYour Name 
1239*5113495bSYour Name #define TX_FES_SETUP_USE_STATIC_BW_OFFSET                                           0x0000000000000010
1240*5113495bSYour Name #define TX_FES_SETUP_USE_STATIC_BW_LSB                                              11
1241*5113495bSYour Name #define TX_FES_SETUP_USE_STATIC_BW_MSB                                              11
1242*5113495bSYour Name #define TX_FES_SETUP_USE_STATIC_BW_MASK                                             0x0000000000000800
1243*5113495bSYour Name 
1244*5113495bSYour Name 
1245*5113495bSYour Name /* Description		COEX_NACK_COUNT
1246*5113495bSYour Name 
1247*5113495bSYour Name 			Consumer: TXPCU
1248*5113495bSYour Name 			Producer: SCH
1249*5113495bSYour Name 
1250*5113495bSYour Name 			The number of times PDG informed the SCHeduler module that
1251*5113495bSYour Name 			 for this scheduling command, the WLAN transmission can
1252*5113495bSYour Name 			not be initialized due to getting a NACK response from the
1253*5113495bSYour Name 			 Coex engine, or PDG not being able to fit a transmission
1254*5113495bSYour Name 			 within the timing constraints given by Coex.
1255*5113495bSYour Name 
1256*5113495bSYour Name 			Note that SCH will (re)set this count to 0 at the start
1257*5113495bSYour Name 			of reading a new SCH command.
1258*5113495bSYour Name 			This count is maintained on a per ring basis by the SCHeduler
1259*5113495bSYour Name 
1260*5113495bSYour Name 
1261*5113495bSYour Name 			<legal all>
1262*5113495bSYour Name */
1263*5113495bSYour Name 
1264*5113495bSYour Name #define TX_FES_SETUP_COEX_NACK_COUNT_OFFSET                                         0x0000000000000010
1265*5113495bSYour Name #define TX_FES_SETUP_COEX_NACK_COUNT_LSB                                            12
1266*5113495bSYour Name #define TX_FES_SETUP_COEX_NACK_COUNT_MSB                                            16
1267*5113495bSYour Name #define TX_FES_SETUP_COEX_NACK_COUNT_MASK                                           0x000000000001f000
1268*5113495bSYour Name 
1269*5113495bSYour Name 
1270*5113495bSYour Name /* Description		SCH_TX_BURST_ONGOING
1271*5113495bSYour Name 
1272*5113495bSYour Name 			Consumer: PDG/TXPCU
1273*5113495bSYour Name 			Producer: SCH
1274*5113495bSYour Name 
1275*5113495bSYour Name 			This field is overwritten by the scheduler module and it's
1276*5113495bSYour Name 			 value is coming from the" sifs_burst_continuation" field
1277*5113495bSYour Name 			 in the  Scheduler command.
1278*5113495bSYour Name 
1279*5113495bSYour Name 			0: No action
1280*5113495bSYour Name 			1: The next scheduling command needs to start at SIFS time
1281*5113495bSYour Name 			 after finishing the frame transmissions in this command.
1282*5113495bSYour Name 			This allows for SIFS based bursting
1283*5113495bSYour Name 			<legal all>
1284*5113495bSYour Name */
1285*5113495bSYour Name 
1286*5113495bSYour Name #define TX_FES_SETUP_SCH_TX_BURST_ONGOING_OFFSET                                    0x0000000000000010
1287*5113495bSYour Name #define TX_FES_SETUP_SCH_TX_BURST_ONGOING_LSB                                       17
1288*5113495bSYour Name #define TX_FES_SETUP_SCH_TX_BURST_ONGOING_MSB                                       17
1289*5113495bSYour Name #define TX_FES_SETUP_SCH_TX_BURST_ONGOING_MASK                                      0x0000000000020000
1290*5113495bSYour Name 
1291*5113495bSYour Name 
1292*5113495bSYour Name /* Description		GEN_TQM_UPDATE_MPDU_COUNT_TLV
1293*5113495bSYour Name 
1294*5113495bSYour Name 			Consumer: TXPCU
1295*5113495bSYour Name 			Producer: SW
1296*5113495bSYour Name 
1297*5113495bSYour Name 			NOTE: When PDG is configured to do transmissions in SW mode,
1298*5113495bSYour Name 			this bit shall NEVER be set.
1299*5113495bSYour Name 
1300*5113495bSYour Name 			When set, TXPCU shall generate the TQM_UPDATE_TX_MPDU_COUNT
1301*5113495bSYour Name 			 TLV immediately after PPDU transmission has finished (and
1302*5113495bSYour Name 			 before any response frame might have been received)
1303*5113495bSYour Name 
1304*5113495bSYour Name 			When set, SW shall also generate the RXPCU_USER_SETUP TLVs
1305*5113495bSYour Name 			 as this is where TXPCU will get the MPDU_queue addresses.
1306*5113495bSYour Name 
1307*5113495bSYour Name 			<legal all>
1308*5113495bSYour Name */
1309*5113495bSYour Name 
1310*5113495bSYour Name #define TX_FES_SETUP_GEN_TQM_UPDATE_MPDU_COUNT_TLV_OFFSET                           0x0000000000000010
1311*5113495bSYour Name #define TX_FES_SETUP_GEN_TQM_UPDATE_MPDU_COUNT_TLV_LSB                              18
1312*5113495bSYour Name #define TX_FES_SETUP_GEN_TQM_UPDATE_MPDU_COUNT_TLV_MSB                              18
1313*5113495bSYour Name #define TX_FES_SETUP_GEN_TQM_UPDATE_MPDU_COUNT_TLV_MASK                             0x0000000000040000
1314*5113495bSYour Name 
1315*5113495bSYour Name 
1316*5113495bSYour Name /* Description		TRANSMIT_VIF
1317*5113495bSYour Name 
1318*5113495bSYour Name 			Consumer: TXOLE
1319*5113495bSYour Name 			Producer: SW
1320*5113495bSYour Name 
1321*5113495bSYour Name 			The VIF for this transmission. Used in MCC mode to control/overwrite
1322*5113495bSYour Name 			 the PM bit settings. Based on this VIF value, TXOLE gets
1323*5113495bSYour Name 			 the pm bit control instructions from the pm_state_overwrite_per_vif
1324*5113495bSYour Name 			 register
1325*5113495bSYour Name 
1326*5113495bSYour Name 			<legal all>
1327*5113495bSYour Name */
1328*5113495bSYour Name 
1329*5113495bSYour Name #define TX_FES_SETUP_TRANSMIT_VIF_OFFSET                                            0x0000000000000010
1330*5113495bSYour Name #define TX_FES_SETUP_TRANSMIT_VIF_LSB                                               19
1331*5113495bSYour Name #define TX_FES_SETUP_TRANSMIT_VIF_MSB                                               22
1332*5113495bSYour Name #define TX_FES_SETUP_TRANSMIT_VIF_MASK                                              0x0000000000780000
1333*5113495bSYour Name 
1334*5113495bSYour Name 
1335*5113495bSYour Name /* Description		OPTIMAL_BW_RETRY_COUNT
1336*5113495bSYour Name 
1337*5113495bSYour Name 			Consumer: TXPCU
1338*5113495bSYour Name 			Producer: SCH
1339*5113495bSYour Name 
1340*5113495bSYour Name 			This field is overwritten by the scheduler module and it's
1341*5113495bSYour Name 			 value is coming from an internal counter in the scheduler
1342*5113495bSYour Name 			 that keeps track of how many times this scheduling command
1343*5113495bSYour Name 			 has been flushed by TXPCU as a result of most desired BW
1344*5113495bSYour Name 			 not being available (=> flush code: TXPCU_FLREQ_RETRY_FOR_OPTIMAL_BW)
1345*5113495bSYour Name 
1346*5113495bSYour Name 
1347*5113495bSYour Name 			For the first transmission, this count is always set to
1348*5113495bSYour Name 			0.
1349*5113495bSYour Name 			<legal all>
1350*5113495bSYour Name */
1351*5113495bSYour Name 
1352*5113495bSYour Name #define TX_FES_SETUP_OPTIMAL_BW_RETRY_COUNT_OFFSET                                  0x0000000000000010
1353*5113495bSYour Name #define TX_FES_SETUP_OPTIMAL_BW_RETRY_COUNT_LSB                                     23
1354*5113495bSYour Name #define TX_FES_SETUP_OPTIMAL_BW_RETRY_COUNT_MSB                                     26
1355*5113495bSYour Name #define TX_FES_SETUP_OPTIMAL_BW_RETRY_COUNT_MASK                                    0x0000000007800000
1356*5113495bSYour Name 
1357*5113495bSYour Name 
1358*5113495bSYour Name /* Description		FES_CONTINUATION_RATIO_THRESHOLD
1359*5113495bSYour Name 
1360*5113495bSYour Name 			Field evaluated by TXPCU only.
1361*5113495bSYour Name 
1362*5113495bSYour Name 			This Feature is not supported in Napier and Hastings.
1363*5113495bSYour Name 
1364*5113495bSYour Name 			Field can be used in both SU and MU transmissions, but might
1365*5113495bSYour Name 			 be most useful in MU transmissions.
1366*5113495bSYour Name 
1367*5113495bSYour Name 			TXPCU keeps track of how many MPDU data words are transmited
1368*5113495bSYour Name 			 as well as how many Null delimiters are transmitted. In
1369*5113495bSYour Name 			 case of an MU and/or multi TID transmission, these two
1370*5113495bSYour Name 			counters are the aggregates over all the users.
1371*5113495bSYour Name 
1372*5113495bSYour Name 			At the end of the FES, TXPCU determines the ratio between
1373*5113495bSYour Name 			 the actual MPDU data words and Null delimiters. If this
1374*5113495bSYour Name 			 ratio is LESS then the ratio indicated here, TXPCU should
1375*5113495bSYour Name 			 indicate "Transmit_data_null_ratio_not_met" in the TX_FES_STATUS_END
1376*5113495bSYour Name 
1377*5113495bSYour Name 
1378*5113495bSYour Name 			<enum 0 No_Data_Null_ratio_requirement> TXPCU does not need
1379*5113495bSYour Name 			 to do any evaluation on the ratio between actual data transmitted
1380*5113495bSYour Name 			 and NULL delimiters inserted.
1381*5113495bSYour Name 			<enum 1 Data_Null_ratio_16_1> At the end of the FES, TXPCU
1382*5113495bSYour Name 			 shall confirm that the DATA:NULL delimiter ratio was at
1383*5113495bSYour Name 			 least 16:1. If not met, TXPCU should terminate FES.
1384*5113495bSYour Name 			<enum 2 Data_Null_ratio_8_1> At the end of the FES, TXPCU
1385*5113495bSYour Name 			 shall confirm that the DATA:NULL delimiter ratio was at
1386*5113495bSYour Name 			 least 8:1. If not met, TXPCU should terminate FES.
1387*5113495bSYour Name 			<enum 3 Data_Null_ratio_4_1> At the end of the FES, TXPCU
1388*5113495bSYour Name 			 shall confirm that the DATA:NULL delimiter ratio was at
1389*5113495bSYour Name 			 least 4:1. If not met, TXPCU should terminate FES.
1390*5113495bSYour Name 			<enum 4 Data_Null_ratio_2_1> At the end of the FES, TXPCU
1391*5113495bSYour Name 			 shall confirm that the DATA:NULL delimiter ratio was at
1392*5113495bSYour Name 			 least 2:1. If not met, TXPCU should terminate FES.
1393*5113495bSYour Name 			<enum 5 Data_Null_ratio_1_1> At the end of the FES, TXPCU
1394*5113495bSYour Name 			 shall confirm that the DATA:NULL delimiter ratio was at
1395*5113495bSYour Name 			 least 1:1. If not met, TXPCU should terminate FES.
1396*5113495bSYour Name 			<enum 6 Data_Null_ratio_1_2> At the end of the FES, TXPCU
1397*5113495bSYour Name 			 shall confirm that the DATA:NULL delimiter ratio was at
1398*5113495bSYour Name 			 least 1:2. If not met, TXPCU should terminate FES.
1399*5113495bSYour Name 			<enum 7 Data_Null_ratio_1_4> At the end of the FES, TXPCU
1400*5113495bSYour Name 			 shall confirm that the DATA:NULL delimiter ratio was at
1401*5113495bSYour Name 			 least 1:4. If not met, TXPCU should terminate FES.
1402*5113495bSYour Name 			<enum 8 Data_Null_ratio_1_8> At the end of the FES, TXPCU
1403*5113495bSYour Name 			 shall confirm that the DATA:NULL delimiter ratio was at
1404*5113495bSYour Name 			 least 1:8. If not met, TXPCU should terminate FES.
1405*5113495bSYour Name 			<enum 9 Data_Null_ratio_1_16> At the end of the FES, TXPCU
1406*5113495bSYour Name 			 shall confirm that the DATA:NULL delimiter ratio was at
1407*5113495bSYour Name 			 least 1:16. If not met, TXPCU should terminate FES.
1408*5113495bSYour Name 
1409*5113495bSYour Name 			<legal 0-9>
1410*5113495bSYour Name */
1411*5113495bSYour Name 
1412*5113495bSYour Name #define TX_FES_SETUP_FES_CONTINUATION_RATIO_THRESHOLD_OFFSET                        0x0000000000000010
1413*5113495bSYour Name #define TX_FES_SETUP_FES_CONTINUATION_RATIO_THRESHOLD_LSB                           27
1414*5113495bSYour Name #define TX_FES_SETUP_FES_CONTINUATION_RATIO_THRESHOLD_MSB                           31
1415*5113495bSYour Name #define TX_FES_SETUP_FES_CONTINUATION_RATIO_THRESHOLD_MASK                          0x00000000f8000000
1416*5113495bSYour Name 
1417*5113495bSYour Name 
1418*5113495bSYour Name /* Description		TRANSMIT_CCA_BITMAP
1419*5113495bSYour Name 
1420*5113495bSYour Name 			The CCA signals that shall be evaluated by TXPCU to determine
1421*5113495bSYour Name 			 the BW/puncture pattern available for transmission.
1422*5113495bSYour Name 
1423*5113495bSYour Name 			0: CCA signal not needed. Ignore the CCA setting
1424*5113495bSYour Name 			1: CCA signals shall be evaluated
1425*5113495bSYour Name 
1426*5113495bSYour Name 			Bit [1:0]     => cca20_0 related signals
1427*5113495bSYour Name 			Bit [3:2]   => cca20_1 related signals
1428*5113495bSYour Name 			...
1429*5113495bSYour Name 			Bit [31:30] => cca20_15 related signals
1430*5113495bSYour Name 
1431*5113495bSYour Name 			Within the 2 bits, the order is always:
1432*5113495bSYour Name 			Bit0: ED
1433*5113495bSYour Name 			Bit1: GI
1434*5113495bSYour Name 
1435*5113495bSYour Name 			NOTE: HW Sch takes care of MUXing ED1/ED2 with ED0 and MUXing
1436*5113495bSYour Name 			 GI1 with GI0. Hence this field should be set to 0x55555555
1437*5113495bSYour Name 			 for chips not supporting GI-correlation and 0xFFFFFFFF
1438*5113495bSYour Name 			for chips that support, usually.
1439*5113495bSYour Name 			<legal all>
1440*5113495bSYour Name */
1441*5113495bSYour Name 
1442*5113495bSYour Name #define TX_FES_SETUP_TRANSMIT_CCA_BITMAP_OFFSET                                     0x0000000000000010
1443*5113495bSYour Name #define TX_FES_SETUP_TRANSMIT_CCA_BITMAP_LSB                                        32
1444*5113495bSYour Name #define TX_FES_SETUP_TRANSMIT_CCA_BITMAP_MSB                                        63
1445*5113495bSYour Name #define TX_FES_SETUP_TRANSMIT_CCA_BITMAP_MASK                                       0xffffffff00000000
1446*5113495bSYour Name 
1447*5113495bSYour Name 
1448*5113495bSYour Name /* Description		TB_RANGING
1449*5113495bSYour Name 
1450*5113495bSYour Name 			Indicates that this frame is generated for a TB ranging
1451*5113495bSYour Name 			sequence
1452*5113495bSYour Name 			<legal all>
1453*5113495bSYour Name */
1454*5113495bSYour Name 
1455*5113495bSYour Name #define TX_FES_SETUP_TB_RANGING_OFFSET                                              0x0000000000000018
1456*5113495bSYour Name #define TX_FES_SETUP_TB_RANGING_LSB                                                 0
1457*5113495bSYour Name #define TX_FES_SETUP_TB_RANGING_MSB                                                 0
1458*5113495bSYour Name #define TX_FES_SETUP_TB_RANGING_MASK                                                0x0000000000000001
1459*5113495bSYour Name 
1460*5113495bSYour Name 
1461*5113495bSYour Name /* Description		RANGING_TRIGGER_SUBTYPE
1462*5113495bSYour Name 
1463*5113495bSYour Name 			Field only valid if TB_Ranging is set
1464*5113495bSYour Name 
1465*5113495bSYour Name 			Indicates the Trigger subtype for the current ranging TF
1466*5113495bSYour Name 
1467*5113495bSYour Name 
1468*5113495bSYour Name 			<enum 0 TF_Poll>
1469*5113495bSYour Name 			<enum 1 TF_Sound>
1470*5113495bSYour Name 			<enum 2 TF_Secure_Sound>
1471*5113495bSYour Name 			<enum 3 TF_Report>
1472*5113495bSYour Name 
1473*5113495bSYour Name 			<legal 0-3>
1474*5113495bSYour Name */
1475*5113495bSYour Name 
1476*5113495bSYour Name #define TX_FES_SETUP_RANGING_TRIGGER_SUBTYPE_OFFSET                                 0x0000000000000018
1477*5113495bSYour Name #define TX_FES_SETUP_RANGING_TRIGGER_SUBTYPE_LSB                                    1
1478*5113495bSYour Name #define TX_FES_SETUP_RANGING_TRIGGER_SUBTYPE_MSB                                    4
1479*5113495bSYour Name #define TX_FES_SETUP_RANGING_TRIGGER_SUBTYPE_MASK                                   0x000000000000001e
1480*5113495bSYour Name 
1481*5113495bSYour Name 
1482*5113495bSYour Name /* Description		MIN_CTS2SELF_COUNT
1483*5113495bSYour Name 
1484*5113495bSYour Name 			Field only valid when max_cts2self_count is non-zero
1485*5113495bSYour Name 
1486*5113495bSYour Name 			This is the minimum number of CTS2SELF frames that PDG should
1487*5113495bSYour Name 			 transmit before the actual data transmission.
1488*5113495bSYour Name */
1489*5113495bSYour Name 
1490*5113495bSYour Name #define TX_FES_SETUP_MIN_CTS2SELF_COUNT_OFFSET                                      0x0000000000000018
1491*5113495bSYour Name #define TX_FES_SETUP_MIN_CTS2SELF_COUNT_LSB                                         5
1492*5113495bSYour Name #define TX_FES_SETUP_MIN_CTS2SELF_COUNT_MSB                                         8
1493*5113495bSYour Name #define TX_FES_SETUP_MIN_CTS2SELF_COUNT_MASK                                        0x00000000000001e0
1494*5113495bSYour Name 
1495*5113495bSYour Name 
1496*5113495bSYour Name /* Description		MAX_CTS2SELF_COUNT
1497*5113495bSYour Name 
1498*5113495bSYour Name 			Field only valid when non-zero
1499*5113495bSYour Name 
1500*5113495bSYour Name 			This is the maximum number of CTS2SELF frames that PDG is
1501*5113495bSYour Name 			 allowed to transmit before the actual data transmission.
1502*5113495bSYour Name 			PDG will only use these additional frames if MPDU info from
1503*5113495bSYour Name 			 TQM or CV-correlation info from microcode is delayed.
1504*5113495bSYour Name */
1505*5113495bSYour Name 
1506*5113495bSYour Name #define TX_FES_SETUP_MAX_CTS2SELF_COUNT_OFFSET                                      0x0000000000000018
1507*5113495bSYour Name #define TX_FES_SETUP_MAX_CTS2SELF_COUNT_LSB                                         9
1508*5113495bSYour Name #define TX_FES_SETUP_MAX_CTS2SELF_COUNT_MSB                                         12
1509*5113495bSYour Name #define TX_FES_SETUP_MAX_CTS2SELF_COUNT_MASK                                        0x0000000000001e00
1510*5113495bSYour Name 
1511*5113495bSYour Name 
1512*5113495bSYour Name /* Description		WIFI_RADAR_ENABLE
1513*5113495bSYour Name 
1514*5113495bSYour Name 			When set to 1, the packet is intended to be used by PHY
1515*5113495bSYour Name 			for WiFi radar (by sensing the reflected WiFi signal).
1516*5113495bSYour Name 			<legal all>
1517*5113495bSYour Name */
1518*5113495bSYour Name 
1519*5113495bSYour Name #define TX_FES_SETUP_WIFI_RADAR_ENABLE_OFFSET                                       0x0000000000000018
1520*5113495bSYour Name #define TX_FES_SETUP_WIFI_RADAR_ENABLE_LSB                                          13
1521*5113495bSYour Name #define TX_FES_SETUP_WIFI_RADAR_ENABLE_MSB                                          13
1522*5113495bSYour Name #define TX_FES_SETUP_WIFI_RADAR_ENABLE_MASK                                         0x0000000000002000
1523*5113495bSYour Name 
1524*5113495bSYour Name 
1525*5113495bSYour Name /* Description		RESERVED_6A
1526*5113495bSYour Name 
1527*5113495bSYour Name 			Bit 14: cqi_feedback:
1528*5113495bSYour Name 			Consumer: TXPCU
1529*5113495bSYour Name 			Producer: SCH
1530*5113495bSYour Name 
1531*5113495bSYour Name 			MSB of the expected feedback type of received CBF frame
1532*5113495bSYour Name 			after sending NDP or BR-Poll in case of HE/EHT sounding.
1533*5113495bSYour Name 			See field cbf_feedback_type above for the LSB. This field
1534*5113495bSYour Name 			 is compared only if cbf_feedback_type_mask is set to 1.
1535*5113495bSYour Name 
1536*5113495bSYour Name 			0: compressed beamforming feedback
1537*5113495bSYour Name 			1: CQI feedback
1538*5113495bSYour Name 
1539*5113495bSYour Name 			<legal 0-1>
1540*5113495bSYour Name */
1541*5113495bSYour Name 
1542*5113495bSYour Name #define TX_FES_SETUP_RESERVED_6A_OFFSET                                             0x0000000000000018
1543*5113495bSYour Name #define TX_FES_SETUP_RESERVED_6A_LSB                                                14
1544*5113495bSYour Name #define TX_FES_SETUP_RESERVED_6A_MSB                                                31
1545*5113495bSYour Name #define TX_FES_SETUP_RESERVED_6A_MASK                                               0x00000000ffffc000
1546*5113495bSYour Name 
1547*5113495bSYour Name 
1548*5113495bSYour Name /* Description		MONITOR_OVERRIDE_STA_31_0
1549*5113495bSYour Name 
1550*5113495bSYour Name 			Used by TXMON
1551*5113495bSYour Name 
1552*5113495bSYour Name 			LSB 32 bits of a 37-bit user bitmap with 1s denoting the
1553*5113495bSYour Name 			 'tlv_usr' values that correspond to'Monitor override client's
1554*5113495bSYour Name 
1555*5113495bSYour Name 
1556*5113495bSYour Name 			When enabled in TXMON, it will discard the user-TLVs of
1557*5113495bSYour Name 			the users not selected by the bitmap. FW should program
1558*5113495bSYour Name 			this setting in line with the 'Monitor_override_sta' setting
1559*5113495bSYour Name 			 in the 'ADDR_SEARCH_ENTRY' corresponding to each of the
1560*5113495bSYour Name 			 clients.
1561*5113495bSYour Name 
1562*5113495bSYour Name 			<legal all>
1563*5113495bSYour Name */
1564*5113495bSYour Name 
1565*5113495bSYour Name #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_31_0_OFFSET                               0x0000000000000018
1566*5113495bSYour Name #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_31_0_LSB                                  32
1567*5113495bSYour Name #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_31_0_MSB                                  63
1568*5113495bSYour Name #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_31_0_MASK                                 0xffffffff00000000
1569*5113495bSYour Name 
1570*5113495bSYour Name 
1571*5113495bSYour Name /* Description		MONITOR_OVERRIDE_STA_36_32
1572*5113495bSYour Name 
1573*5113495bSYour Name 			Used by TXMON
1574*5113495bSYour Name 
1575*5113495bSYour Name 			MSB 5 bits of a 37-bit user bitmap with 1s denoting the 'tlv_usr'
1576*5113495bSYour Name 			values that correspond to 'Monitor override client's
1577*5113495bSYour Name 
1578*5113495bSYour Name 			See 'Monitor_override_sta_31_0.'
1579*5113495bSYour Name 
1580*5113495bSYour Name 			Hamilton v1 did not include this (and any subsequent) word.
1581*5113495bSYour Name 
1582*5113495bSYour Name 			<legal all>
1583*5113495bSYour Name */
1584*5113495bSYour Name 
1585*5113495bSYour Name #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_36_32_OFFSET                              0x0000000000000020
1586*5113495bSYour Name #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_36_32_LSB                                 0
1587*5113495bSYour Name #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_36_32_MSB                                 4
1588*5113495bSYour Name #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_36_32_MASK                                0x000000000000001f
1589*5113495bSYour Name 
1590*5113495bSYour Name 
1591*5113495bSYour Name /* Description		RESERVED_8A
1592*5113495bSYour Name 
1593*5113495bSYour Name 			<legal 0>
1594*5113495bSYour Name */
1595*5113495bSYour Name 
1596*5113495bSYour Name #define TX_FES_SETUP_RESERVED_8A_OFFSET                                             0x0000000000000020
1597*5113495bSYour Name #define TX_FES_SETUP_RESERVED_8A_LSB                                                5
1598*5113495bSYour Name #define TX_FES_SETUP_RESERVED_8A_MSB                                                31
1599*5113495bSYour Name #define TX_FES_SETUP_RESERVED_8A_MASK                                               0x00000000ffffffe0
1600*5113495bSYour Name 
1601*5113495bSYour Name 
1602*5113495bSYour Name /* Description		FW2SW_INFO
1603*5113495bSYour Name 
1604*5113495bSYour Name 			This field is provided by FW, to be logged via TXMON to
1605*5113495bSYour Name 			host SW. It is transparent to HW.
1606*5113495bSYour Name 
1607*5113495bSYour Name 			<legal all>
1608*5113495bSYour Name */
1609*5113495bSYour Name 
1610*5113495bSYour Name #define TX_FES_SETUP_FW2SW_INFO_OFFSET                                              0x0000000000000020
1611*5113495bSYour Name #define TX_FES_SETUP_FW2SW_INFO_LSB                                                 32
1612*5113495bSYour Name #define TX_FES_SETUP_FW2SW_INFO_MSB                                                 63
1613*5113495bSYour Name #define TX_FES_SETUP_FW2SW_INFO_MASK                                                0xffffffff00000000
1614*5113495bSYour Name 
1615*5113495bSYour Name 
1616*5113495bSYour Name 
1617*5113495bSYour Name #endif   // TX_FES_SETUP
1618