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