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