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