/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #ifndef _TX_FES_SETUP_H_ #define _TX_FES_SETUP_H_ #if !defined(__ASSEMBLER__) #endif #define NUM_OF_DWORDS_TX_FES_SETUP 10 #define NUM_OF_QWORDS_TX_FES_SETUP 5 struct tx_fes_setup { #ifndef WIFI_BIT_ORDER_BIG_ENDIAN uint32_t schedule_id : 32; // [31:0] uint32_t fes_in_11ax_trigger_response_config : 1, // [0:0] bo_based_tid_aggregation_limit : 4, // [4:1] ranging : 1, // [5:5] expect_i2r_lmr : 1, // [6:6] transmit_start_reason : 3, // [9:7] use_alt_power_sr : 1, // [10:10] static_2_pwr_mode_status : 1, // [11:11] obss_srg_opport_transmit_status : 1, // [12:12] srp_based_transmit_status : 1, // [13:13] obss_pd_based_transmit_status : 1, // [14:14] puncture_from_all_allowed_modes : 1, // [15:15] schedule_cmd_ring_id : 5, // [20:16] fes_control_mode : 2, // [22:21] number_of_users : 6, // [28:23] mu_type : 1, // [29:29] ofdma_triggered_response : 1, // [30:30] response_to_response_cmd : 1; // [31:31] uint32_t schedule_try : 4, // [3:0] ndp_frame : 2, // [5:4] txbf : 1, // [6:6] allow_txop_exceed_in_1st_pkt : 1, // [7:7] ignore_bw_available : 1, // [8:8] ignore_tbtt : 1, // [9:9] static_bandwidth : 3, // [12:10] set_txop_duration_all_ones : 1, // [13:13] transmission_contains_mu_rts : 1, // [14:14] bw_restricted_frames_embedded : 1, // [15:15] ast_index : 16; // [31:16] uint32_t cv_id : 8, // [7:0] trigger_resp_txpdu_ppdu_boundary : 2, // [9:8] rxpcu_setup_complete_present : 1, // [10:10] rbo_must_have_data_user_limit : 4, // [14:11] mu_ndp : 1, // [15:15] bf_type : 2, // [17:16] cbf_nc_index_mask : 1, // [18:18] cbf_nc_index : 3, // [21:19] cbf_nr_index_mask : 1, // [22:22] cbf_nr_index : 3, // [25:23] secure_ranging_ista : 1, // [26:26] ndpa : 1, // [27:27] wait_sifs : 2, // [29:28] cbf_feedback_type_mask : 1, // [30:30] cbf_feedback_type : 1; // [31:31] uint32_t cbf_sounding_token : 6, // [5:0] cbf_sounding_token_mask : 1, // [6:6] cbf_bw_mask : 1, // [7:7] cbf_bw : 3, // [10:8] use_static_bw : 1, // [11:11] coex_nack_count : 5, // [16:12] sch_tx_burst_ongoing : 1, // [17:17] gen_tqm_update_mpdu_count_tlv : 1, // [18:18] transmit_vif : 4, // [22:19] optimal_bw_retry_count : 4, // [26:23] fes_continuation_ratio_threshold : 5; // [31:27] uint32_t transmit_cca_bitmap : 32; // [31:0] uint32_t tb_ranging : 1, // [0:0] ranging_trigger_subtype : 4, // [4:1] min_cts2self_count : 4, // [8:5] max_cts2self_count : 4, // [12:9] wifi_radar_enable : 1, // [13:13] reserved_6a : 18; // [31:14] uint32_t monitor_override_sta_31_0 : 32; // [31:0] uint32_t monitor_override_sta_36_32 : 5, // [4:0] reserved_8a : 27; // [31:5] uint32_t fw2sw_info : 32; // [31:0] #else uint32_t schedule_id : 32; // [31:0] uint32_t response_to_response_cmd : 1, // [31:31] ofdma_triggered_response : 1, // [30:30] mu_type : 1, // [29:29] number_of_users : 6, // [28:23] fes_control_mode : 2, // [22:21] schedule_cmd_ring_id : 5, // [20:16] puncture_from_all_allowed_modes : 1, // [15:15] obss_pd_based_transmit_status : 1, // [14:14] srp_based_transmit_status : 1, // [13:13] obss_srg_opport_transmit_status : 1, // [12:12] static_2_pwr_mode_status : 1, // [11:11] use_alt_power_sr : 1, // [10:10] transmit_start_reason : 3, // [9:7] expect_i2r_lmr : 1, // [6:6] ranging : 1, // [5:5] bo_based_tid_aggregation_limit : 4, // [4:1] fes_in_11ax_trigger_response_config : 1; // [0:0] uint32_t ast_index : 16, // [31:16] bw_restricted_frames_embedded : 1, // [15:15] transmission_contains_mu_rts : 1, // [14:14] set_txop_duration_all_ones : 1, // [13:13] static_bandwidth : 3, // [12:10] ignore_tbtt : 1, // [9:9] ignore_bw_available : 1, // [8:8] allow_txop_exceed_in_1st_pkt : 1, // [7:7] txbf : 1, // [6:6] ndp_frame : 2, // [5:4] schedule_try : 4; // [3:0] uint32_t cbf_feedback_type : 1, // [31:31] cbf_feedback_type_mask : 1, // [30:30] wait_sifs : 2, // [29:28] ndpa : 1, // [27:27] secure_ranging_ista : 1, // [26:26] cbf_nr_index : 3, // [25:23] cbf_nr_index_mask : 1, // [22:22] cbf_nc_index : 3, // [21:19] cbf_nc_index_mask : 1, // [18:18] bf_type : 2, // [17:16] mu_ndp : 1, // [15:15] rbo_must_have_data_user_limit : 4, // [14:11] rxpcu_setup_complete_present : 1, // [10:10] trigger_resp_txpdu_ppdu_boundary : 2, // [9:8] cv_id : 8; // [7:0] uint32_t fes_continuation_ratio_threshold : 5, // [31:27] optimal_bw_retry_count : 4, // [26:23] transmit_vif : 4, // [22:19] gen_tqm_update_mpdu_count_tlv : 1, // [18:18] sch_tx_burst_ongoing : 1, // [17:17] coex_nack_count : 5, // [16:12] use_static_bw : 1, // [11:11] cbf_bw : 3, // [10:8] cbf_bw_mask : 1, // [7:7] cbf_sounding_token_mask : 1, // [6:6] cbf_sounding_token : 6; // [5:0] uint32_t transmit_cca_bitmap : 32; // [31:0] uint32_t reserved_6a : 18, // [31:14] wifi_radar_enable : 1, // [13:13] max_cts2self_count : 4, // [12:9] min_cts2self_count : 4, // [8:5] ranging_trigger_subtype : 4, // [4:1] tb_ranging : 1; // [0:0] uint32_t monitor_override_sta_31_0 : 32; // [31:0] uint32_t reserved_8a : 27, // [31:5] monitor_override_sta_36_32 : 5; // [4:0] uint32_t fw2sw_info : 32; // [31:0] #endif }; /* Description SCHEDULE_ID Consumer: PDG/TXDMA/TXOLE/TXCRYPTO/TXPCU Producer: SCH This field is overwritten by the scheduler module and it's value is coming from the"schedule_id" field in the Scheduler command. Configured by scheduler in HW transmit mode A field that HW copies over into the scheduling status report, so that SW can determine to which scheduler command the status report belongs. This schedule ID is also reported in the PPDU status. */ #define TX_FES_SETUP_SCHEDULE_ID_OFFSET 0x0000000000000000 #define TX_FES_SETUP_SCHEDULE_ID_LSB 0 #define TX_FES_SETUP_SCHEDULE_ID_MSB 31 #define TX_FES_SETUP_SCHEDULE_ID_MASK 0x00000000ffffffff /* Description FES_IN_11AX_TRIGGER_RESPONSE_CONFIG Consumer: PDG/TXPCU Producer: SW When set, this scheduler command has some additional settings that PDG and TXPCU need to take into account, depending on if the transmission has been iniated as a backoff expiration or as the result of an 11ax trigger reception. 0: not in special trigger response config 1: command is special trigger response config. When set to 1, there are some programming limitations: There can only be 1 group, up to 8 users, SW shall have specified the AC for each user, and AC order per user is from BE to VO (see PDG_USER_SETUP, fields Triggered_mpdu_AC_category) */ #define TX_FES_SETUP_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_OFFSET 0x0000000000000000 #define TX_FES_SETUP_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_LSB 32 #define TX_FES_SETUP_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_MSB 32 #define TX_FES_SETUP_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_MASK 0x0000000100000000 /* Description BO_BASED_TID_AGGREGATION_LIMIT Consumer: PDG Producer: SW Field only valid when Ofdma_triggered_response is NOT set (=> implies transmission started due to backoff expiration) Field only valid for SU and "MU_SU" transmissions. The requirements for what to transmit depend on what the reason is that this transmission started. If it is 11ax trigger based, the trigger frame will specify all the constrains like max TID count, prefered AC, etc. However if this command starts executing due to backoff expiration, the requirements could be different from those that might have come from the trigger frame. This field specifies what the constaints are when the transmission is Backoff initiated. If zero, this feature is disabled. If non-zero, this indicates the number of users within a group that can be aggregated by a STA in a multi-TID A-MPDU. This can also be used to block the series of QoS-null MPDUs when an RBO+Trig queue transmits using RBO. Based on this number, PDG will mask of user numbers >= this count */ #define TX_FES_SETUP_BO_BASED_TID_AGGREGATION_LIMIT_OFFSET 0x0000000000000000 #define TX_FES_SETUP_BO_BASED_TID_AGGREGATION_LIMIT_LSB 33 #define TX_FES_SETUP_BO_BASED_TID_AGGREGATION_LIMIT_MSB 36 #define TX_FES_SETUP_BO_BASED_TID_AGGREGATION_LIMIT_MASK 0x0000001e00000000 /* Description RANGING Consumer: TXPCU Producer: SW Set to 1 in case the frame queued is: a .11az ranging NDPA, a .11az ranging NDP, or an ISTA2RSTA LMR. Set to 0 for all other cases. */ #define TX_FES_SETUP_RANGING_OFFSET 0x0000000000000000 #define TX_FES_SETUP_RANGING_LSB 37 #define TX_FES_SETUP_RANGING_MSB 37 #define TX_FES_SETUP_RANGING_MASK 0x0000002000000000 /* Description EXPECT_I2R_LMR Consumer: TXPCU Producer: SW Set to 1 in case the frame queued is a .11az randing NDPA/NDP and if the ISTA2RSTA LMR frame is also queued after SIFS. Set to 0 otherwise. */ #define TX_FES_SETUP_EXPECT_I2R_LMR_OFFSET 0x0000000000000000 #define TX_FES_SETUP_EXPECT_I2R_LMR_LSB 38 #define TX_FES_SETUP_EXPECT_I2R_LMR_MSB 38 #define TX_FES_SETUP_EXPECT_I2R_LMR_MASK 0x0000004000000000 /* Description TRANSMIT_START_REASON Indicates what the SCH start reason reason was for initiating this transmission. The transmission of this PPDU got initiated by the scheduler due to Backoff expiration The transmission of this PPDU got initiated by the scheduler due to reception (by the SCH) of the TLV RECEIVED_TRIGGER_INFO that RXPCU generated. Note that this can be an OFDMA trigger frame based transmission as well as some legacy trigger (PS-POLL, Qboost, U-APSD, etc.) based transmission This transmission of this PPDU got initiated as part of SIFS continuation. An earlier PPDU was transmitted due to RBO expiration. Next command is also expected to be transmitted in SIFS burst. This transmission of this PPDU got initiated as part of SIFS continuation and this is the last command in the burst. An earlier PPDU was transmitted due to RBO expiration. DO NOT USE */ #define TX_FES_SETUP_TRANSMIT_START_REASON_OFFSET 0x0000000000000000 #define TX_FES_SETUP_TRANSMIT_START_REASON_LSB 39 #define TX_FES_SETUP_TRANSMIT_START_REASON_MSB 41 #define TX_FES_SETUP_TRANSMIT_START_REASON_MASK 0x0000038000000000 /* Description USE_ALT_POWER_SR 0: Primary/default power1: Alternate power */ #define TX_FES_SETUP_USE_ALT_POWER_SR_OFFSET 0x0000000000000000 #define TX_FES_SETUP_USE_ALT_POWER_SR_LSB 42 #define TX_FES_SETUP_USE_ALT_POWER_SR_MSB 42 #define TX_FES_SETUP_USE_ALT_POWER_SR_MASK 0x0000040000000000 /* Description STATIC_2_PWR_MODE_STATUS 0: Static 2 power mode disabled1: Static 2 power mode enabled */ #define TX_FES_SETUP_STATIC_2_PWR_MODE_STATUS_OFFSET 0x0000000000000000 #define TX_FES_SETUP_STATIC_2_PWR_MODE_STATUS_LSB 43 #define TX_FES_SETUP_STATIC_2_PWR_MODE_STATUS_MSB 43 #define TX_FES_SETUP_STATIC_2_PWR_MODE_STATUS_MASK 0x0000080000000000 /* Description OBSS_SRG_OPPORT_TRANSMIT_STATUS 0: Transmit based on SRG OBSS_PD opportunity initiated1: Transmit based on non-SRG OBSS_PD opportunity initiated */ #define TX_FES_SETUP_OBSS_SRG_OPPORT_TRANSMIT_STATUS_OFFSET 0x0000000000000000 #define TX_FES_SETUP_OBSS_SRG_OPPORT_TRANSMIT_STATUS_LSB 44 #define TX_FES_SETUP_OBSS_SRG_OPPORT_TRANSMIT_STATUS_MSB 44 #define TX_FES_SETUP_OBSS_SRG_OPPORT_TRANSMIT_STATUS_MASK 0x0000100000000000 /* Description SRP_BASED_TRANSMIT_STATUS 0: non-SRP based transmit initiated1: SRP based transmit initiated */ #define TX_FES_SETUP_SRP_BASED_TRANSMIT_STATUS_OFFSET 0x0000000000000000 #define TX_FES_SETUP_SRP_BASED_TRANSMIT_STATUS_LSB 45 #define TX_FES_SETUP_SRP_BASED_TRANSMIT_STATUS_MSB 45 #define TX_FES_SETUP_SRP_BASED_TRANSMIT_STATUS_MASK 0x0000200000000000 /* Description OBSS_PD_BASED_TRANSMIT_STATUS 0: non-OBSS_PD based transmit initiated1: obss_pd based transmit initiated */ #define TX_FES_SETUP_OBSS_PD_BASED_TRANSMIT_STATUS_OFFSET 0x0000000000000000 #define TX_FES_SETUP_OBSS_PD_BASED_TRANSMIT_STATUS_LSB 46 #define TX_FES_SETUP_OBSS_PD_BASED_TRANSMIT_STATUS_MSB 46 #define TX_FES_SETUP_OBSS_PD_BASED_TRANSMIT_STATUS_MASK 0x0000400000000000 /* Description PUNCTURE_FROM_ALL_ALLOWED_MODES Enables new scheme 2 puncturing in Beryllium: TXPCU registers determine which puncture patterns (up to 37) are enabled for the transmission. 'TX_PUNCTURE_SETUP' is unused. */ #define TX_FES_SETUP_PUNCTURE_FROM_ALL_ALLOWED_MODES_OFFSET 0x0000000000000000 #define TX_FES_SETUP_PUNCTURE_FROM_ALL_ALLOWED_MODES_LSB 47 #define TX_FES_SETUP_PUNCTURE_FROM_ALL_ALLOWED_MODES_MSB 47 #define TX_FES_SETUP_PUNCTURE_FROM_ALL_ALLOWED_MODES_MASK 0x0000800000000000 /* Description SCHEDULE_CMD_RING_ID Consumer: PDG/TXDMA/TXOLE/TXCRYPTO/TXPCU Producer: SCH This field is overwritten by the scheduler module and its value is based on the scheduler ring where the command is initiated. The schedule command ring that originated this transmission */ #define TX_FES_SETUP_SCHEDULE_CMD_RING_ID_OFFSET 0x0000000000000000 #define TX_FES_SETUP_SCHEDULE_CMD_RING_ID_LSB 48 #define TX_FES_SETUP_SCHEDULE_CMD_RING_ID_MSB 52 #define TX_FES_SETUP_SCHEDULE_CMD_RING_ID_MASK 0x001f000000000000 /* Description FES_CONTROL_MODE Consumer: PDG/TXDMA/TXOLE/TXCRYPTO/TXPCU Producer: SCH This field is overwritten by the scheduler module and it's value is coming from the "FES_control_mode" field in the Scheduler command. No HW generated TLVs PDG is activated to generate TLVs Note: Final Bandwidth selection is always performed by TX PCU. */ #define TX_FES_SETUP_FES_CONTROL_MODE_OFFSET 0x0000000000000000 #define TX_FES_SETUP_FES_CONTROL_MODE_LSB 53 #define TX_FES_SETUP_FES_CONTROL_MODE_MSB 54 #define TX_FES_SETUP_FES_CONTROL_MODE_MASK 0x0060000000000000 /* Description NUMBER_OF_USERS Consumer: PDG/TXDMA/TXOLE/TXCRYPTO/TXPCU Producer: SCH The number of users in this transmission. Can be MU-MIMO or OFDMA in case the number is > 1 */ #define TX_FES_SETUP_NUMBER_OF_USERS_OFFSET 0x0000000000000000 #define TX_FES_SETUP_NUMBER_OF_USERS_LSB 55 #define TX_FES_SETUP_NUMBER_OF_USERS_MSB 60 #define TX_FES_SETUP_NUMBER_OF_USERS_MASK 0x1f80000000000000 /* Description MU_TYPE In case the Number_of_users > 1, the transmission could be MU or OFDMA. This field indicates which one it is. 0: MU-MIMO 1: OFDMA In case the number_of_user == 1, and PDG_FES_SETUP.mu_su_transmission is set, this field indicates:0: SU transmitted in MU MIMO format in compressed mode;1: SU transmitted in MU-OFDMA format in uncompressed mode Note: Within OFDMA classification, it could be that within one or more RUs there will be MIMO transmission...This is still considered as an 'OFDMA' class of MU transmission. */ #define TX_FES_SETUP_MU_TYPE_OFFSET 0x0000000000000000 #define TX_FES_SETUP_MU_TYPE_LSB 61 #define TX_FES_SETUP_MU_TYPE_MSB 61 #define TX_FES_SETUP_MU_TYPE_MASK 0x2000000000000000 /* Description OFDMA_TRIGGERED_RESPONSE Consumer: TXPCU/PDG Producer: SCH/SW SW should always set this bit to 0 SCH will always overwrite this field and set it to the appropriate value for the upcoming transmission. When set (by SCH), this FES is initiated as a result of receiving an OFDMA transmit trigger. PDG already has received all transmit info from RXPCU. PDG can ignore most of the transmit initialization info. */ #define TX_FES_SETUP_OFDMA_TRIGGERED_RESPONSE_OFFSET 0x0000000000000000 #define TX_FES_SETUP_OFDMA_TRIGGERED_RESPONSE_LSB 62 #define TX_FES_SETUP_OFDMA_TRIGGERED_RESPONSE_MSB 62 #define TX_FES_SETUP_OFDMA_TRIGGERED_RESPONSE_MASK 0x4000000000000000 /* Description RESPONSE_TO_RESPONSE_CMD When set, this scheduler command contains the transmission control for the response_to_response transmission */ #define TX_FES_SETUP_RESPONSE_TO_RESPONSE_CMD_OFFSET 0x0000000000000000 #define TX_FES_SETUP_RESPONSE_TO_RESPONSE_CMD_LSB 63 #define TX_FES_SETUP_RESPONSE_TO_RESPONSE_CMD_MSB 63 #define TX_FES_SETUP_RESPONSE_TO_RESPONSE_CMD_MASK 0x8000000000000000 /* Description SCHEDULE_TRY Consumer: TXPCU Producer: SCH This field is overwritten by the scheduler module and it's value is coming from an internal counter in the scheduler that keeps track of how many times a scheduling command has been tried. This count indicates how many times the FES did not successfully complete as the ACK/BA frame did not get received. */ #define TX_FES_SETUP_SCHEDULE_TRY_OFFSET 0x0000000000000008 #define TX_FES_SETUP_SCHEDULE_TRY_LSB 0 #define TX_FES_SETUP_SCHEDULE_TRY_MSB 3 #define TX_FES_SETUP_SCHEDULE_TRY_MASK 0x000000000000000f /* Description NDP_FRAME Consumer: PDG/TXPCU Producer: SCH When set, the scheduling command contains an NDP frame. This can only be done using the SW transmit mode. No NDP transmission Beamforming NDP 11az NDP (HE Ranging NDP) Short TB (HE Feedback NDP) */ #define TX_FES_SETUP_NDP_FRAME_OFFSET 0x0000000000000008 #define TX_FES_SETUP_NDP_FRAME_LSB 4 #define TX_FES_SETUP_NDP_FRAME_MSB 5 #define TX_FES_SETUP_NDP_FRAME_MASK 0x0000000000000030 /* Description TXBF Consumer: PDG/TXPCU Producer: SCH If set, this bit indicates that this is a TX beamformed SU transaction or MU transaction In case of a beamformed transmission, note that in the PCU_PPDU_SETUP_INIT TLV, SW can narrow down for which of the BW the beamforming shall take place. For example, SW can decide that BW is only desired for 40MHz BW, but not for 20... If for any of the allowed BW, beamforming is desired, this field should be set, and the 'bf_type' shall be properly programmed. TXPCU controls with bit 'beamforming' in the MACTX_PRE_PHY_DESC if the final actual transmission shall be beamformed. */ #define TX_FES_SETUP_TXBF_OFFSET 0x0000000000000008 #define TX_FES_SETUP_TXBF_LSB 6 #define TX_FES_SETUP_TXBF_MSB 6 #define TX_FES_SETUP_TXBF_MASK 0x0000000000000040 /* Description ALLOW_TXOP_EXCEED_IN_1ST_PKT Consumer: PDG Producer: SCH Field only valid for SU transmissions. When set, a single MPDU transmission after RBO is allowed to exceed TXOP. In this setting, this field has priority over the setting of the duration_field_boundary. Reason for this is that if Coex issues on the receiver STA start preventing the transmission of frames on this device, it can lead to a death spiral. With some luck, this frame although maybe too long, might still be received. When 0, single MPDU after RBO is not allowed to exceed TXOP. */ #define TX_FES_SETUP_ALLOW_TXOP_EXCEED_IN_1ST_PKT_OFFSET 0x0000000000000008 #define TX_FES_SETUP_ALLOW_TXOP_EXCEED_IN_1ST_PKT_LSB 7 #define TX_FES_SETUP_ALLOW_TXOP_EXCEED_IN_1ST_PKT_MSB 7 #define TX_FES_SETUP_ALLOW_TXOP_EXCEED_IN_1ST_PKT_MASK 0x0000000000000080 /* Description IGNORE_BW_AVAILABLE Consumer: TXPCU Producer: SCH If set, TXPCU ignores 'BW available signals' from the scheduler and transmit using the single BW that SW has programmed the transmission to go out in. This bit should be set for SIFS response frame to PS-Poll/uAPSD/QBoost and note that for this mode, SW is only allowed to program a single transmit BW. Also note that this bit can not be set in combination with preamble puncturing. */ #define TX_FES_SETUP_IGNORE_BW_AVAILABLE_OFFSET 0x0000000000000008 #define TX_FES_SETUP_IGNORE_BW_AVAILABLE_LSB 8 #define TX_FES_SETUP_IGNORE_BW_AVAILABLE_MSB 8 #define TX_FES_SETUP_IGNORE_BW_AVAILABLE_MASK 0x0000000000000100 /* Description IGNORE_TBTT Consumer: PDG Producer: SCH If set, PDG ignores remaining TBTTs in PPDU time calculation. */ #define TX_FES_SETUP_IGNORE_TBTT_OFFSET 0x0000000000000008 #define TX_FES_SETUP_IGNORE_TBTT_LSB 9 #define TX_FES_SETUP_IGNORE_TBTT_MSB 9 #define TX_FES_SETUP_IGNORE_TBTT_MASK 0x0000000000000200 /* Description STATIC_BANDWIDTH Consumer: PDG/TXPCU Producer: SCH Field is reserved when use_static_bw is clear. 20 Mhz BW 40 Mhz BW 80 Mhz BW 160 Mhz BW 320 Mhz BW 240 Mhz BW */ #define TX_FES_SETUP_STATIC_BANDWIDTH_OFFSET 0x0000000000000008 #define TX_FES_SETUP_STATIC_BANDWIDTH_LSB 10 #define TX_FES_SETUP_STATIC_BANDWIDTH_MSB 12 #define TX_FES_SETUP_STATIC_BANDWIDTH_MASK 0x0000000000001c00 /* Description SET_TXOP_DURATION_ALL_ONES Consumer: PDG Producer: SCH When set, SW embedded a PS_POLL frame in this transmission or the frame in this transmission is for a BSS with BSS Color disabled, e.g. due to BSS color collision. PDG sets the TXOP_DURATION of the transmit PPDU to all 1s. */ #define TX_FES_SETUP_SET_TXOP_DURATION_ALL_ONES_OFFSET 0x0000000000000008 #define TX_FES_SETUP_SET_TXOP_DURATION_ALL_ONES_LSB 13 #define TX_FES_SETUP_SET_TXOP_DURATION_ALL_ONES_MSB 13 #define TX_FES_SETUP_SET_TXOP_DURATION_ALL_ONES_MASK 0x0000000000002000 /* Description TRANSMISSION_CONTAINS_MU_RTS Consumer: PDG Producer: SCH When set, SW embedded a MU-RTS trigger frame in this transmission. TXPCU will have to do something special for this with the CTS response timeout (whose value comes from a MU-CTS timeout register) */ #define TX_FES_SETUP_TRANSMISSION_CONTAINS_MU_RTS_OFFSET 0x0000000000000008 #define TX_FES_SETUP_TRANSMISSION_CONTAINS_MU_RTS_LSB 14 #define TX_FES_SETUP_TRANSMISSION_CONTAINS_MU_RTS_MSB 14 #define TX_FES_SETUP_TRANSMISSION_CONTAINS_MU_RTS_MASK 0x0000000000004000 /* Description BW_RESTRICTED_FRAMES_EMBEDDED Consumer: TXPCU Producer: SW This bit should be set by SW when the transmission includes bandwidth restricted frames. As a result of this bit being set, TXPCU will hold of indicating that buffer space is available to TXDMA till the BW decision is done. This allows TXPCU to drop the BW restricted frames at SFM input. */ #define TX_FES_SETUP_BW_RESTRICTED_FRAMES_EMBEDDED_OFFSET 0x0000000000000008 #define TX_FES_SETUP_BW_RESTRICTED_FRAMES_EMBEDDED_LSB 15 #define TX_FES_SETUP_BW_RESTRICTED_FRAMES_EMBEDDED_MSB 15 #define TX_FES_SETUP_BW_RESTRICTED_FRAMES_EMBEDDED_MASK 0x0000000000008000 /* Description AST_INDEX Consumer: RXPCU Producer: SCH Used for implicit BF sounding capture on receive Ack/BA. The RXPCU needs to tag the receive sounding with ast_index so FW will know which STA is associated with Ack/BA sounding. */ #define TX_FES_SETUP_AST_INDEX_OFFSET 0x0000000000000008 #define TX_FES_SETUP_AST_INDEX_LSB 16 #define TX_FES_SETUP_AST_INDEX_MSB 31 #define TX_FES_SETUP_AST_INDEX_MASK 0x00000000ffff0000 /* Description CV_ID Consumer: TXPCU Producer: SCH This field is only valid when expect_cbf is set. A unique ID corresponding to the CV data expected from the CBF frame. TXPCU copies this field over to the TX_FES_STATUS TLV */ #define TX_FES_SETUP_CV_ID_OFFSET 0x0000000000000008 #define TX_FES_SETUP_CV_ID_LSB 32 #define TX_FES_SETUP_CV_ID_MSB 39 #define TX_FES_SETUP_CV_ID_MASK 0x000000ff00000000 /* Description TRIGGER_RESP_TXPDU_PPDU_BOUNDARY This field indicates to TXPCU how far into the 11ax trigger response transmission, TXPCU should still accept Trigger response related configuration info from the SCHEDULER (and PDG) to be processed. The field indicates a percentage of the total byte count to be given to the PHY, up to which point TXPCU will still accept all the setup related TLVS to arrive. After that, TXPCU will ignore any remaining setup TLVs to come in and not initiate any MPDU based transfers to the PHY anymore. This is to help avoid corner cases. If any setup TLVs did arrive after this point, TXPCU will keep on continuing giving NULL data to the PHY, but once PHYTX_PKT_END is received, TXPCU shall issue a FLUSH request to the SCH, with flush code: TXPCU_TRIG_RESPONSE_INFO_TOO_LATE TXPCU should not abort the transmission halfway, as that can cause problems for the MU UL receiver... TXPCU will not initiate SCH based MPDU transfers after 75% of the PPDU octed count has already been given to the PHY. TXPCU will not initiate SCH based MPDU transfers after 50% of the PPDU octed count has already been given to the PHY. TXPCU will not initiate SCH based MPDU transfers after 75% of the PPDU octed count has already been given to the PHY. Note that if TXPCU receives a TX_FES_SETUP with "11ax trigger response transmission" set, and it had already finished sending a response , it should generate a flush with code: TXPCU_TRIG_RESPONSE_MODE_CORRUPTION */ #define TX_FES_SETUP_TRIGGER_RESP_TXPDU_PPDU_BOUNDARY_OFFSET 0x0000000000000008 #define TX_FES_SETUP_TRIGGER_RESP_TXPDU_PPDU_BOUNDARY_LSB 40 #define TX_FES_SETUP_TRIGGER_RESP_TXPDU_PPDU_BOUNDARY_MSB 41 #define TX_FES_SETUP_TRIGGER_RESP_TXPDU_PPDU_BOUNDARY_MASK 0x0000030000000000 /* Description RXPCU_SETUP_COMPLETE_PRESENT To notify current TXFES use new mode and delay "RXPCU_*_SETUP" for HWSCH/TXPCU/RXPCU module */ #define TX_FES_SETUP_RXPCU_SETUP_COMPLETE_PRESENT_OFFSET 0x0000000000000008 #define TX_FES_SETUP_RXPCU_SETUP_COMPLETE_PRESENT_LSB 42 #define TX_FES_SETUP_RXPCU_SETUP_COMPLETE_PRESENT_MSB 42 #define TX_FES_SETUP_RXPCU_SETUP_COMPLETE_PRESENT_MASK 0x0000040000000000 /* Description RBO_MUST_HAVE_DATA_USER_LIMIT Consumer: PDG Producer: SW Field only valid when Ofdma_triggered_response is NOT set (=> implies transmission started due to backoff expiration) Field only valid for SU and "MU_SU" transmissions. The requirements for what to transmit depend on what the reason is that this transmission started. If it is 11ax trigger based, the trigger frame will specify all the constrains like max TID count, prefered AC, etc. However if this command starts executing due to backoff expiration, the requirements could be different from those that might have come from the trigger frame. This field specifies what the constaints are when the transmission is Backoff initiated. When set to 0, this feature is disabled When set to 1, user 0 must have data otherwise PDG should flush the transmission When set to 2, user 0 AND/OR user 1 must have data otherwise PDG should flush the transmission When set to 3, user 0 AND/OR user 1 AND/OR user 2 must have data otherwise PDG should flush the transmission ... */ #define TX_FES_SETUP_RBO_MUST_HAVE_DATA_USER_LIMIT_OFFSET 0x0000000000000008 #define TX_FES_SETUP_RBO_MUST_HAVE_DATA_USER_LIMIT_LSB 43 #define TX_FES_SETUP_RBO_MUST_HAVE_DATA_USER_LIMIT_MSB 46 #define TX_FES_SETUP_RBO_MUST_HAVE_DATA_USER_LIMIT_MASK 0x0000780000000000 /* Description MU_NDP Field only valid when ndp_frame is set. If set indicates that this packet is an NDP used for MU channel estimation. This bit will be used by the TPC to signal that the analog gain settings can be updated. The analog gain settings will not change for subsequent MU data packets. */ #define TX_FES_SETUP_MU_NDP_OFFSET 0x0000000000000008 #define TX_FES_SETUP_MU_NDP_LSB 47 #define TX_FES_SETUP_MU_NDP_MSB 47 #define TX_FES_SETUP_MU_NDP_MASK 0x0000800000000000 /* Description BF_TYPE Consumer: PDG/TXPCU Producer: SCH Field is ONLY valid when 'txbf' is set... Defines the type of beamforming that is required using this transmission. Note that in the PCU_PPDU_SETUP_INIT TLV, SW can narrow down for which BW the beamforming shall take place. For example, SW can decide that BW is only desired for 40MHz BW, but not for 20... If for any of the allowed BW, beamforming is desired, this field should indicate which type of BF. */ #define TX_FES_SETUP_BF_TYPE_OFFSET 0x0000000000000008 #define TX_FES_SETUP_BF_TYPE_LSB 48 #define TX_FES_SETUP_BF_TYPE_MSB 49 #define TX_FES_SETUP_BF_TYPE_MASK 0x0003000000000000 /* Description CBF_NC_INDEX_MASK Consumer: TXPCU Producer: SCH When set, TXPCU shall confirm that the received cbf_nc_index is equal to the expected one, indicated by field: cbf_nc_index This field is only allowed to be set in case of a single SU CBF reception. */ #define TX_FES_SETUP_CBF_NC_INDEX_MASK_OFFSET 0x0000000000000008 #define TX_FES_SETUP_CBF_NC_INDEX_MASK_LSB 50 #define TX_FES_SETUP_CBF_NC_INDEX_MASK_MSB 50 #define TX_FES_SETUP_CBF_NC_INDEX_MASK_MASK 0x0004000000000000 /* Description CBF_NC_INDEX Consumer: TXPCU Producer: SCH Field only valid when cbf_nc_index_mask is set Expected Nc_index of received CBF frame after sending NDP or BR-Poll. */ #define TX_FES_SETUP_CBF_NC_INDEX_OFFSET 0x0000000000000008 #define TX_FES_SETUP_CBF_NC_INDEX_LSB 51 #define TX_FES_SETUP_CBF_NC_INDEX_MSB 53 #define TX_FES_SETUP_CBF_NC_INDEX_MASK 0x0038000000000000 /* Description CBF_NR_INDEX_MASK Consumer: TXPCU Producer: SCH When set, TXPCU shall confirm that the received cbf_nr_index is equal to the expected one, indicated in the field: cbf_nr_index This field is only allowed to be set in case of a single SU CBF reception. */ #define TX_FES_SETUP_CBF_NR_INDEX_MASK_OFFSET 0x0000000000000008 #define TX_FES_SETUP_CBF_NR_INDEX_MASK_LSB 54 #define TX_FES_SETUP_CBF_NR_INDEX_MASK_MSB 54 #define TX_FES_SETUP_CBF_NR_INDEX_MASK_MASK 0x0040000000000000 /* Description CBF_NR_INDEX Expected Nr_index of received CBF frame after sending NDP or BR-Poll. This field is compared only if cbf_nr_index_mask is set to 1. */ #define TX_FES_SETUP_CBF_NR_INDEX_OFFSET 0x0000000000000008 #define TX_FES_SETUP_CBF_NR_INDEX_LSB 55 #define TX_FES_SETUP_CBF_NR_INDEX_MSB 57 #define TX_FES_SETUP_CBF_NR_INDEX_MASK 0x0380000000000000 /* Description SECURE_RANGING_ISTA Consumer: Crypto Producer: SW If set to 1, Crypto will use the 'TX_PEER_ENTRY' for encryption but not for the 'TX_DATA' from TXOLE interface but will wait for 'LMR_{MPDU_START, DATA, MPDU_END}' TLVs from TXPCU to encrypt the ISTA2RSTA LMR. If set to 0, Crypto will encrypt 'TX_DATA' as for any non-.11az-ranging frame. */ #define TX_FES_SETUP_SECURE_RANGING_ISTA_OFFSET 0x0000000000000008 #define TX_FES_SETUP_SECURE_RANGING_ISTA_LSB 58 #define TX_FES_SETUP_SECURE_RANGING_ISTA_MSB 58 #define TX_FES_SETUP_SECURE_RANGING_ISTA_MASK 0x0400000000000000 /* Description NDPA When set, this packet is an NDP announcement. */ #define TX_FES_SETUP_NDPA_OFFSET 0x0000000000000008 #define TX_FES_SETUP_NDPA_LSB 59 #define TX_FES_SETUP_NDPA_MSB 59 #define TX_FES_SETUP_NDPA_MASK 0x0800000000000000 /* Description WAIT_SIFS Consumer: TXPCU Producer: SCH This field is passed over to the tx_phy_desc by the PDG module. If set, the AMPI will hold this tx_phy_desc TLV from the TX PCU until SIFS has elapsed and then forward the tx_phy_desc to the PHY. The PHY should ignore this bit. This bit is used to make sure that transmit SIFS response to a receive frame is cycle accurate and consistent to enable accurate RTT measurement. Transmission shall start with the normal delay in PHY after receiving this notification Transmission shall be made at the SIFS boundary. If shall never start before SIFS boundary, but if it a little later, it is not ideal and should be flagged, but transmission shall not be aborted. Transmission shall be made at exactly SIFS boundary. If this notification is received by the PHY after SIFS boundary already passed, the PHY shall abort the transmission */ #define TX_FES_SETUP_WAIT_SIFS_OFFSET 0x0000000000000008 #define TX_FES_SETUP_WAIT_SIFS_LSB 60 #define TX_FES_SETUP_WAIT_SIFS_MSB 61 #define TX_FES_SETUP_WAIT_SIFS_MASK 0x3000000000000000 /* Description CBF_FEEDBACK_TYPE_MASK Consumer: TXPCU Producer: SCH When set, TXPCU shall confirm that the cbf_feedback_type is equal to the expected one, indicated in the field: cbf_feedback_type This field is only allowed to be set in case of a single SU CBF reception. */ #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK_OFFSET 0x0000000000000008 #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK_LSB 62 #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK_MSB 62 #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK_MASK 0x4000000000000000 /* Description CBF_FEEDBACK_TYPE Consumer: TXPCU Producer: SCH Expected feedback type of received CBF frame after sending NDP or BR-Poll. This field is compared only if cbf_feedback_type_mask is set to 1. */ #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_OFFSET 0x0000000000000008 #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_LSB 63 #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MSB 63 #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK 0x8000000000000000 /* Description CBF_SOUNDING_TOKEN Consumer: TXPCU Producer: SCH Expected sounding token of received CBF frame after sending NDP or BR-Poll. This field is compared only if cbf_sounding_token_mask is set to 1. */ #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_OFFSET 0x0000000000000010 #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_LSB 0 #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MSB 5 #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK 0x000000000000003f /* Description CBF_SOUNDING_TOKEN_MASK Consumer: TXPCU Producer: SCH When set, TXPCU shall confirm that the cbf_sounding_token is equal to the expected one, indicated in the field: cbf_sounding_token This field is only allowed to be set in case of a single SU CBF reception. */ #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK_OFFSET 0x0000000000000010 #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK_LSB 6 #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK_MSB 6 #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK_MASK 0x0000000000000040 /* Description CBF_BW_MASK Consumer: TXPCU Producer: SCH When set, TXPCU shall confirm that the cbf_bw_mask is equal to the expected one, indicated in the field: cbf_bw This field is only allowed to be set in case of a single SU CBF reception. */ #define TX_FES_SETUP_CBF_BW_MASK_OFFSET 0x0000000000000010 #define TX_FES_SETUP_CBF_BW_MASK_LSB 7 #define TX_FES_SETUP_CBF_BW_MASK_MSB 7 #define TX_FES_SETUP_CBF_BW_MASK_MASK 0x0000000000000080 /* Description CBF_BW Consumer: TXPCU Producer: SCH Expected channel width of received CBF frame after sending NDP or BR-Poll. This field is compared only if cbf_bw_mask is set to 1. 20 Mhz BW 40 Mhz BW 80 Mhz BW 160 Mhz BW 320 Mhz BW 240 Mhz BW */ #define TX_FES_SETUP_CBF_BW_OFFSET 0x0000000000000010 #define TX_FES_SETUP_CBF_BW_LSB 8 #define TX_FES_SETUP_CBF_BW_MSB 10 #define TX_FES_SETUP_CBF_BW_MASK 0x0000000000000700 /* Description USE_STATIC_BW Consumer: TXPCU Producer: SCH Part of TX_BF_PARAMS: This field is used to indicate to the SVD that the b/w that will be defined in the TX_PHY_DESC for the upcoming TXBF packet will be the same as the static bandwidth, i.e. the bandwidth that was in operation during sounding for the clients in question */ #define TX_FES_SETUP_USE_STATIC_BW_OFFSET 0x0000000000000010 #define TX_FES_SETUP_USE_STATIC_BW_LSB 11 #define TX_FES_SETUP_USE_STATIC_BW_MSB 11 #define TX_FES_SETUP_USE_STATIC_BW_MASK 0x0000000000000800 /* Description COEX_NACK_COUNT Consumer: TXPCU Producer: SCH The number of times PDG informed the SCHeduler module that for this scheduling command, the WLAN transmission can not be initialized due to getting a NACK response from the Coex engine, or PDG not being able to fit a transmission within the timing constraints given by Coex. Note that SCH will (re)set this count to 0 at the start of reading a new SCH command. This count is maintained on a per ring basis by the SCHeduler */ #define TX_FES_SETUP_COEX_NACK_COUNT_OFFSET 0x0000000000000010 #define TX_FES_SETUP_COEX_NACK_COUNT_LSB 12 #define TX_FES_SETUP_COEX_NACK_COUNT_MSB 16 #define TX_FES_SETUP_COEX_NACK_COUNT_MASK 0x000000000001f000 /* Description SCH_TX_BURST_ONGOING Consumer: PDG/TXPCU Producer: SCH This field is overwritten by the scheduler module and it's value is coming from the" sifs_burst_continuation" field in the Scheduler command. 0: No action 1: The next scheduling command needs to start at SIFS time after finishing the frame transmissions in this command. This allows for SIFS based bursting */ #define TX_FES_SETUP_SCH_TX_BURST_ONGOING_OFFSET 0x0000000000000010 #define TX_FES_SETUP_SCH_TX_BURST_ONGOING_LSB 17 #define TX_FES_SETUP_SCH_TX_BURST_ONGOING_MSB 17 #define TX_FES_SETUP_SCH_TX_BURST_ONGOING_MASK 0x0000000000020000 /* Description GEN_TQM_UPDATE_MPDU_COUNT_TLV Consumer: TXPCU Producer: SW NOTE: When PDG is configured to do transmissions in SW mode, this bit shall NEVER be set. When set, TXPCU shall generate the TQM_UPDATE_TX_MPDU_COUNT TLV immediately after PPDU transmission has finished (and before any response frame might have been received) When set, SW shall also generate the RXPCU_USER_SETUP TLVs as this is where TXPCU will get the MPDU_queue addresses. */ #define TX_FES_SETUP_GEN_TQM_UPDATE_MPDU_COUNT_TLV_OFFSET 0x0000000000000010 #define TX_FES_SETUP_GEN_TQM_UPDATE_MPDU_COUNT_TLV_LSB 18 #define TX_FES_SETUP_GEN_TQM_UPDATE_MPDU_COUNT_TLV_MSB 18 #define TX_FES_SETUP_GEN_TQM_UPDATE_MPDU_COUNT_TLV_MASK 0x0000000000040000 /* Description TRANSMIT_VIF Consumer: TXOLE Producer: SW The VIF for this transmission. Used in MCC mode to control/overwrite the PM bit settings. Based on this VIF value, TXOLE gets the pm bit control instructions from the pm_state_overwrite_per_vif register */ #define TX_FES_SETUP_TRANSMIT_VIF_OFFSET 0x0000000000000010 #define TX_FES_SETUP_TRANSMIT_VIF_LSB 19 #define TX_FES_SETUP_TRANSMIT_VIF_MSB 22 #define TX_FES_SETUP_TRANSMIT_VIF_MASK 0x0000000000780000 /* Description OPTIMAL_BW_RETRY_COUNT Consumer: TXPCU Producer: SCH This field is overwritten by the scheduler module and it's value is coming from an internal counter in the scheduler that keeps track of how many times this scheduling command has been flushed by TXPCU as a result of most desired BW not being available (=> flush code: TXPCU_FLREQ_RETRY_FOR_OPTIMAL_BW) For the first transmission, this count is always set to 0. */ #define TX_FES_SETUP_OPTIMAL_BW_RETRY_COUNT_OFFSET 0x0000000000000010 #define TX_FES_SETUP_OPTIMAL_BW_RETRY_COUNT_LSB 23 #define TX_FES_SETUP_OPTIMAL_BW_RETRY_COUNT_MSB 26 #define TX_FES_SETUP_OPTIMAL_BW_RETRY_COUNT_MASK 0x0000000007800000 /* Description FES_CONTINUATION_RATIO_THRESHOLD Field evaluated by TXPCU only. This Feature is not supported in Napier and Hastings. Field can be used in both SU and MU transmissions, but might be most useful in MU transmissions. TXPCU keeps track of how many MPDU data words are transmited as well as how many Null delimiters are transmitted. In case of an MU and/or multi TID transmission, these two counters are the aggregates over all the users. At the end of the FES, TXPCU determines the ratio between the actual MPDU data words and Null delimiters. If this ratio is LESS then the ratio indicated here, TXPCU should indicate "Transmit_data_null_ratio_not_met" in the TX_FES_STATUS_END TXPCU does not need to do any evaluation on the ratio between actual data transmitted and NULL delimiters inserted. At the end of the FES, TXPCU shall confirm that the DATA:NULL delimiter ratio was at least 16:1. If not met, TXPCU should terminate FES. At the end of the FES, TXPCU shall confirm that the DATA:NULL delimiter ratio was at least 8:1. If not met, TXPCU should terminate FES. At the end of the FES, TXPCU shall confirm that the DATA:NULL delimiter ratio was at least 4:1. If not met, TXPCU should terminate FES. At the end of the FES, TXPCU shall confirm that the DATA:NULL delimiter ratio was at least 2:1. If not met, TXPCU should terminate FES. At the end of the FES, TXPCU shall confirm that the DATA:NULL delimiter ratio was at least 1:1. If not met, TXPCU should terminate FES. At the end of the FES, TXPCU shall confirm that the DATA:NULL delimiter ratio was at least 1:2. If not met, TXPCU should terminate FES. At the end of the FES, TXPCU shall confirm that the DATA:NULL delimiter ratio was at least 1:4. If not met, TXPCU should terminate FES. At the end of the FES, TXPCU shall confirm that the DATA:NULL delimiter ratio was at least 1:8. If not met, TXPCU should terminate FES. At the end of the FES, TXPCU shall confirm that the DATA:NULL delimiter ratio was at least 1:16. If not met, TXPCU should terminate FES. */ #define TX_FES_SETUP_FES_CONTINUATION_RATIO_THRESHOLD_OFFSET 0x0000000000000010 #define TX_FES_SETUP_FES_CONTINUATION_RATIO_THRESHOLD_LSB 27 #define TX_FES_SETUP_FES_CONTINUATION_RATIO_THRESHOLD_MSB 31 #define TX_FES_SETUP_FES_CONTINUATION_RATIO_THRESHOLD_MASK 0x00000000f8000000 /* Description TRANSMIT_CCA_BITMAP The CCA signals that shall be evaluated by TXPCU to determine the BW/puncture pattern available for transmission. 0: CCA signal not needed. Ignore the CCA setting 1: CCA signals shall be evaluated Bit [1:0] => cca20_0 related signals Bit [3:2] => cca20_1 related signals ... Bit [31:30] => cca20_15 related signals Within the 2 bits, the order is always: Bit0: ED Bit1: GI NOTE: HW Sch takes care of MUXing ED1/ED2 with ED0 and MUXing GI1 with GI0. Hence this field should be set to 0x55555555 for chips not supporting GI-correlation and 0xFFFFFFFF for chips that support, usually. */ #define TX_FES_SETUP_TRANSMIT_CCA_BITMAP_OFFSET 0x0000000000000010 #define TX_FES_SETUP_TRANSMIT_CCA_BITMAP_LSB 32 #define TX_FES_SETUP_TRANSMIT_CCA_BITMAP_MSB 63 #define TX_FES_SETUP_TRANSMIT_CCA_BITMAP_MASK 0xffffffff00000000 /* Description TB_RANGING Indicates that this frame is generated for a TB ranging sequence */ #define TX_FES_SETUP_TB_RANGING_OFFSET 0x0000000000000018 #define TX_FES_SETUP_TB_RANGING_LSB 0 #define TX_FES_SETUP_TB_RANGING_MSB 0 #define TX_FES_SETUP_TB_RANGING_MASK 0x0000000000000001 /* Description RANGING_TRIGGER_SUBTYPE Field only valid if TB_Ranging is set Indicates the Trigger subtype for the current ranging TF */ #define TX_FES_SETUP_RANGING_TRIGGER_SUBTYPE_OFFSET 0x0000000000000018 #define TX_FES_SETUP_RANGING_TRIGGER_SUBTYPE_LSB 1 #define TX_FES_SETUP_RANGING_TRIGGER_SUBTYPE_MSB 4 #define TX_FES_SETUP_RANGING_TRIGGER_SUBTYPE_MASK 0x000000000000001e /* Description MIN_CTS2SELF_COUNT Field only valid when max_cts2self_count is non-zero This is the minimum number of CTS2SELF frames that PDG should transmit before the actual data transmission. */ #define TX_FES_SETUP_MIN_CTS2SELF_COUNT_OFFSET 0x0000000000000018 #define TX_FES_SETUP_MIN_CTS2SELF_COUNT_LSB 5 #define TX_FES_SETUP_MIN_CTS2SELF_COUNT_MSB 8 #define TX_FES_SETUP_MIN_CTS2SELF_COUNT_MASK 0x00000000000001e0 /* Description MAX_CTS2SELF_COUNT Field only valid when non-zero This is the maximum number of CTS2SELF frames that PDG is allowed to transmit before the actual data transmission. PDG will only use these additional frames if MPDU info from TQM or CV-correlation info from microcode is delayed. */ #define TX_FES_SETUP_MAX_CTS2SELF_COUNT_OFFSET 0x0000000000000018 #define TX_FES_SETUP_MAX_CTS2SELF_COUNT_LSB 9 #define TX_FES_SETUP_MAX_CTS2SELF_COUNT_MSB 12 #define TX_FES_SETUP_MAX_CTS2SELF_COUNT_MASK 0x0000000000001e00 /* Description WIFI_RADAR_ENABLE When set to 1, the packet is intended to be used by PHY for WiFi radar (by sensing the reflected WiFi signal). */ #define TX_FES_SETUP_WIFI_RADAR_ENABLE_OFFSET 0x0000000000000018 #define TX_FES_SETUP_WIFI_RADAR_ENABLE_LSB 13 #define TX_FES_SETUP_WIFI_RADAR_ENABLE_MSB 13 #define TX_FES_SETUP_WIFI_RADAR_ENABLE_MASK 0x0000000000002000 /* Description RESERVED_6A Bit 14: cqi_feedback: Consumer: TXPCU Producer: SCH MSB of the expected feedback type of received CBF frame after sending NDP or BR-Poll in case of HE/EHT sounding. See field cbf_feedback_type above for the LSB. This field is compared only if cbf_feedback_type_mask is set to 1. 0: compressed beamforming feedback 1: CQI feedback */ #define TX_FES_SETUP_RESERVED_6A_OFFSET 0x0000000000000018 #define TX_FES_SETUP_RESERVED_6A_LSB 14 #define TX_FES_SETUP_RESERVED_6A_MSB 31 #define TX_FES_SETUP_RESERVED_6A_MASK 0x00000000ffffc000 /* Description MONITOR_OVERRIDE_STA_31_0 Used by TXMON LSB 32 bits of a 37-bit user bitmap with 1s denoting the 'tlv_usr' values that correspond to'Monitor override client's When enabled in TXMON, it will discard the user-TLVs of the users not selected by the bitmap. FW should program this setting in line with the 'Monitor_override_sta' setting in the 'ADDR_SEARCH_ENTRY' corresponding to each of the clients. */ #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_31_0_OFFSET 0x0000000000000018 #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_31_0_LSB 32 #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_31_0_MSB 63 #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_31_0_MASK 0xffffffff00000000 /* Description MONITOR_OVERRIDE_STA_36_32 Used by TXMON MSB 5 bits of a 37-bit user bitmap with 1s denoting the 'tlv_usr' values that correspond to 'Monitor override client's See 'Monitor_override_sta_31_0.' Hamilton v1 did not include this (and any subsequent) word. */ #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_36_32_OFFSET 0x0000000000000020 #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_36_32_LSB 0 #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_36_32_MSB 4 #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_36_32_MASK 0x000000000000001f /* Description RESERVED_8A */ #define TX_FES_SETUP_RESERVED_8A_OFFSET 0x0000000000000020 #define TX_FES_SETUP_RESERVED_8A_LSB 5 #define TX_FES_SETUP_RESERVED_8A_MSB 31 #define TX_FES_SETUP_RESERVED_8A_MASK 0x00000000ffffffe0 /* Description FW2SW_INFO This field is provided by FW, to be logged via TXMON to host SW. It is transparent to HW. */ #define TX_FES_SETUP_FW2SW_INFO_OFFSET 0x0000000000000020 #define TX_FES_SETUP_FW2SW_INFO_LSB 32 #define TX_FES_SETUP_FW2SW_INFO_MSB 63 #define TX_FES_SETUP_FW2SW_INFO_MASK 0xffffffff00000000 #endif // TX_FES_SETUP