/* * Copyright (c) 2023 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_STATUS_END_H_ #define _TX_FES_STATUS_END_H_ #if !defined(__ASSEMBLER__) #endif #include "phytx_abort_request_info.h" #define NUM_OF_DWORDS_TX_FES_STATUS_END 22 #define NUM_OF_QWORDS_TX_FES_STATUS_END 11 struct tx_fes_status_end { #ifndef WIFI_BIT_ORDER_BIG_ENDIAN uint32_t prot_coex_bt_tx_while_wlan_tx : 1, // [0:0] prot_coex_bt_tx_while_wlan_rx : 1, // [1:1] prot_coex_wan_tx_while_wlan_tx : 1, // [2:2] prot_coex_wan_tx_while_wlan_rx : 1, // [3:3] prot_coex_wlan_tx_while_wlan_tx : 1, // [4:4] prot_coex_wlan_tx_while_wlan_rx : 1, // [5:5] coex_bt_tx_while_wlan_tx : 1, // [6:6] coex_bt_tx_while_wlan_rx : 1, // [7:7] coex_wan_tx_while_wlan_tx : 1, // [8:8] coex_wan_tx_while_wlan_rx : 1, // [9:9] coex_wlan_tx_while_wlan_tx : 1, // [10:10] coex_wlan_tx_while_wlan_rx : 1, // [11:11] global_data_underflow_warning : 1, // [12:12] global_fes_transmit_result : 4, // [16:13] cbf_bw_received_valid : 1, // [17:17] cbf_bw_received : 3, // [20:18] actual_received_ack_type : 4, // [24:21] sta_response_count : 6, // [30:25] dpdtrain_done : 1; // [31:31] struct phytx_abort_request_info phytx_abort_request_info_details; uint16_t reserved_after_struct16 : 4, // [19:16] brp_info_valid : 1, // [20:20] reserved_1a : 6, // [26:21] phytx_pkt_end_info_valid : 1, // [27:27] phytx_abort_request_info_valid : 1, // [28:28] fes_in_11ax_trigger_response_config : 1, // [29:29] null_delim_inserted_before_mpdus : 1, // [30:30] only_null_delim_sent : 1; // [31:31] uint32_t start_of_frame_timestamp_15_0 : 16, // [15:0] start_of_frame_timestamp_31_16 : 16; // [31:16] uint32_t end_of_frame_timestamp_15_0 : 16, // [15:0] end_of_frame_timestamp_31_16 : 16; // [31:16] uint32_t terminate_ranging_sequence : 1, // [0:0] reserved_4a : 7, // [7:1] timing_status : 2, // [9:8] response_type : 5, // [14:10] r2r_end_status_to_follow : 1, // [15:15] transmit_delay : 16; // [31:16] uint32_t tx_group_delay : 12, // [11:0] reserved_5a : 4, // [15:12] tpc_dbg_info_cmn_15_0 : 16; // [31:16] uint32_t tpc_dbg_info_cmn_31_16 : 16, // [15:0] tpc_dbg_info_47_32 : 16; // [31:16] uint32_t tpc_dbg_info_chn1_15_0 : 16, // [15:0] tpc_dbg_info_chn1_31_16 : 16; // [31:16] uint32_t tpc_dbg_info_chn1_47_32 : 16, // [15:0] tpc_dbg_info_chn1_63_48 : 16; // [31:16] uint32_t tpc_dbg_info_chn1_79_64 : 16, // [15:0] tpc_dbg_info_chn2_15_0 : 16; // [31:16] uint32_t tpc_dbg_info_chn2_31_16 : 16, // [15:0] tpc_dbg_info_chn2_47_32 : 16; // [31:16] uint32_t tpc_dbg_info_chn2_63_48 : 16, // [15:0] tpc_dbg_info_chn2_79_64 : 16; // [31:16] uint32_t phytx_tx_end_sw_info_15_0 : 16, // [15:0] phytx_tx_end_sw_info_31_16 : 16; // [31:16] uint32_t phytx_tx_end_sw_info_47_32 : 16, // [15:0] phytx_tx_end_sw_info_63_48 : 16; // [31:16] uint32_t beamform_masked_user_bitmap_15_0 : 16, // [15:0] beamform_masked_user_bitmap_31_16 : 16; // [31:16] uint32_t cbf_segment_request_mask : 8, // [7:0] cbf_segment_sent_mask : 8, // [15:8] highest_achieved_data_null_ratio : 5, // [20:16] use_alt_power_sr : 1, // [21:21] static_2_pwr_mode_status : 1, // [22:22] obss_srg_opport_transmit_status : 1, // [23:23] srp_based_transmit_status : 1, // [24:24] obss_pd_based_transmit_status : 1, // [25:25] beamform_masked_user_bitmap_36_32 : 5, // [30:26] pdg_mpdu_ready : 1; // [31:31] uint32_t pdg_mpdu_count : 16, // [15:0] pdg_est_mpdu_tx_count : 16; // [31:16] uint32_t pdg_overview_length : 24, // [23:0] txop_duration : 7, // [30:24] pdg_dropped_mpdu_warning : 1; // [31:31] uint32_t packet_extension_a_factor : 2, // [1:0] packet_extension_pe_disambiguity : 1, // [2:2] packet_extension : 3, // [5:3] fec_type : 1, // [6:6] stbc : 1, // [7:7] num_data_symbols : 16, // [23:8] ru_size : 4, // [27:24] reserved_17a : 4; // [31:28] uint32_t num_ltf_symbols : 3, // [2:0] ltf_size : 2, // [4:3] cp_setting : 2, // [6:5] reserved_18a : 5, // [11:7] dcm : 1, // [12:12] ldpc_extra_symbol : 1, // [13:13] force_extra_symbol : 1, // [14:14] reserved_18b : 1, // [15:15] tx_pwr_shared : 8, // [23:16] tx_pwr_unshared : 8; // [31:24] uint32_t ranging_active_user_map : 16, // [15:0] ranging_sent_dummy_tx : 1, // [16:16] ranging_ftm_frame_sent : 1, // [17:17] reserved_20a : 6, // [23:18] cv_corr_status : 8; // [31:24] uint32_t current_tx_duration : 16, // [15:0] reserved_21a : 16; // [31:16] #else uint32_t dpdtrain_done : 1, // [31:31] sta_response_count : 6, // [30:25] actual_received_ack_type : 4, // [24:21] cbf_bw_received : 3, // [20:18] cbf_bw_received_valid : 1, // [17:17] global_fes_transmit_result : 4, // [16:13] global_data_underflow_warning : 1, // [12:12] coex_wlan_tx_while_wlan_rx : 1, // [11:11] coex_wlan_tx_while_wlan_tx : 1, // [10:10] coex_wan_tx_while_wlan_rx : 1, // [9:9] coex_wan_tx_while_wlan_tx : 1, // [8:8] coex_bt_tx_while_wlan_rx : 1, // [7:7] coex_bt_tx_while_wlan_tx : 1, // [6:6] prot_coex_wlan_tx_while_wlan_rx : 1, // [5:5] prot_coex_wlan_tx_while_wlan_tx : 1, // [4:4] prot_coex_wan_tx_while_wlan_rx : 1, // [3:3] prot_coex_wan_tx_while_wlan_tx : 1, // [2:2] prot_coex_bt_tx_while_wlan_rx : 1, // [1:1] prot_coex_bt_tx_while_wlan_tx : 1; // [0:0] uint32_t only_null_delim_sent : 1, // [31:31] null_delim_inserted_before_mpdus : 1, // [30:30] fes_in_11ax_trigger_response_config : 1, // [29:29] phytx_abort_request_info_valid : 1, // [28:28] phytx_pkt_end_info_valid : 1, // [27:27] reserved_1a : 6, // [26:21] brp_info_valid : 1, // [20:20] reserved_after_struct16 : 4; // [19:16] struct phytx_abort_request_info phytx_abort_request_info_details; uint32_t start_of_frame_timestamp_31_16 : 16, // [31:16] start_of_frame_timestamp_15_0 : 16; // [15:0] uint32_t end_of_frame_timestamp_31_16 : 16, // [31:16] end_of_frame_timestamp_15_0 : 16; // [15:0] uint32_t transmit_delay : 16, // [31:16] r2r_end_status_to_follow : 1, // [15:15] response_type : 5, // [14:10] timing_status : 2, // [9:8] reserved_4a : 7, // [7:1] terminate_ranging_sequence : 1; // [0:0] uint32_t tpc_dbg_info_cmn_15_0 : 16, // [31:16] reserved_5a : 4, // [15:12] tx_group_delay : 12; // [11:0] uint32_t tpc_dbg_info_47_32 : 16, // [31:16] tpc_dbg_info_cmn_31_16 : 16; // [15:0] uint32_t tpc_dbg_info_chn1_31_16 : 16, // [31:16] tpc_dbg_info_chn1_15_0 : 16; // [15:0] uint32_t tpc_dbg_info_chn1_63_48 : 16, // [31:16] tpc_dbg_info_chn1_47_32 : 16; // [15:0] uint32_t tpc_dbg_info_chn2_15_0 : 16, // [31:16] tpc_dbg_info_chn1_79_64 : 16; // [15:0] uint32_t tpc_dbg_info_chn2_47_32 : 16, // [31:16] tpc_dbg_info_chn2_31_16 : 16; // [15:0] uint32_t tpc_dbg_info_chn2_79_64 : 16, // [31:16] tpc_dbg_info_chn2_63_48 : 16; // [15:0] uint32_t phytx_tx_end_sw_info_31_16 : 16, // [31:16] phytx_tx_end_sw_info_15_0 : 16; // [15:0] uint32_t phytx_tx_end_sw_info_63_48 : 16, // [31:16] phytx_tx_end_sw_info_47_32 : 16; // [15:0] uint32_t beamform_masked_user_bitmap_31_16 : 16, // [31:16] beamform_masked_user_bitmap_15_0 : 16; // [15:0] uint32_t pdg_mpdu_ready : 1, // [31:31] beamform_masked_user_bitmap_36_32 : 5, // [30:26] obss_pd_based_transmit_status : 1, // [25:25] srp_based_transmit_status : 1, // [24:24] obss_srg_opport_transmit_status : 1, // [23:23] static_2_pwr_mode_status : 1, // [22:22] use_alt_power_sr : 1, // [21:21] highest_achieved_data_null_ratio : 5, // [20:16] cbf_segment_sent_mask : 8, // [15:8] cbf_segment_request_mask : 8; // [7:0] uint32_t pdg_est_mpdu_tx_count : 16, // [31:16] pdg_mpdu_count : 16; // [15:0] uint32_t pdg_dropped_mpdu_warning : 1, // [31:31] txop_duration : 7, // [30:24] pdg_overview_length : 24; // [23:0] uint32_t reserved_17a : 4, // [31:28] ru_size : 4, // [27:24] num_data_symbols : 16, // [23:8] stbc : 1, // [7:7] fec_type : 1, // [6:6] packet_extension : 3, // [5:3] packet_extension_pe_disambiguity : 1, // [2:2] packet_extension_a_factor : 2; // [1:0] uint32_t tx_pwr_unshared : 8, // [31:24] tx_pwr_shared : 8, // [23:16] reserved_18b : 1, // [15:15] force_extra_symbol : 1, // [14:14] ldpc_extra_symbol : 1, // [13:13] dcm : 1, // [12:12] reserved_18a : 5, // [11:7] cp_setting : 2, // [6:5] ltf_size : 2, // [4:3] num_ltf_symbols : 3; // [2:0] uint32_t cv_corr_status : 8, // [31:24] reserved_20a : 6, // [23:18] ranging_ftm_frame_sent : 1, // [17:17] ranging_sent_dummy_tx : 1, // [16:16] ranging_active_user_map : 16; // [15:0] uint32_t reserved_21a : 16, // [31:16] current_tx_duration : 16; // [15:0] #endif }; /* Description PROT_COEX_BT_TX_WHILE_WLAN_TX When set, a BT tx coex event started while wlan was in the middle of TX a transmission. Field set when coex_status_broadcast TLV received with bt tx activity set and during WLAN tx */ #define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_TX_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_TX_LSB 0 #define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_TX_MSB 0 #define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_TX_MASK 0x0000000000000001 /* Description PROT_COEX_BT_TX_WHILE_WLAN_RX When set, a BT tx coex event started while wlan was in the middle of TX a transmission. Field set when coex broadcast TLV received with bt tx activity set and during WLAN rx */ #define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_RX_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_RX_LSB 1 #define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_RX_MSB 1 #define TX_FES_STATUS_END_PROT_COEX_BT_TX_WHILE_WLAN_RX_MASK 0x0000000000000002 /* Description PROT_COEX_WAN_TX_WHILE_WLAN_TX When set, a WAN tx coex event started while wlan was in the middle of TX a transmission. Field set when coex_status_broadcast TLV received with WAN tx activity set and during WLAN tx */ #define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_TX_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_TX_LSB 2 #define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_TX_MSB 2 #define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_TX_MASK 0x0000000000000004 /* Description PROT_COEX_WAN_TX_WHILE_WLAN_RX When set, a WAN tx coex event started while wlan was in the middle of TX a transmission. Field set when coex broadcast TLV received with WAN tx activity set and during WLAN rx */ #define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_RX_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_RX_LSB 3 #define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_RX_MSB 3 #define TX_FES_STATUS_END_PROT_COEX_WAN_TX_WHILE_WLAN_RX_MASK 0x0000000000000008 /* Description PROT_COEX_WLAN_TX_WHILE_WLAN_TX When set, a WLAN tx coex event started while wlan was in the middle of TX a transmission. Field set when coex_status_broadcast TLV received with WLAN tx activity set and during WLAN tx */ #define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_TX_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_TX_LSB 4 #define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_TX_MSB 4 #define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_TX_MASK 0x0000000000000010 /* Description PROT_COEX_WLAN_TX_WHILE_WLAN_RX When set, a WLAN tx coex event started while wlan was in the middle of TX a transmission. Field set when coex broadcast TLV received with WLAN tx activity set and during WLAN rx */ #define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_RX_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_RX_LSB 5 #define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_RX_MSB 5 #define TX_FES_STATUS_END_PROT_COEX_WLAN_TX_WHILE_WLAN_RX_MASK 0x0000000000000020 /* Description COEX_BT_TX_WHILE_WLAN_TX When set, a BT tx coex event started while wlan was in the middle of TX a transmission. Field set when coex_status_broadcast TLV received with bt tx activity set and during WLAN tx */ #define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_TX_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_TX_LSB 6 #define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_TX_MSB 6 #define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_TX_MASK 0x0000000000000040 /* Description COEX_BT_TX_WHILE_WLAN_RX When set, a BT tx coex event started while wlan was in the middle of TX a transmission. Field set when coex broadcast TLV received with bt tx activity set and during WLAN rx */ #define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_RX_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_RX_LSB 7 #define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_RX_MSB 7 #define TX_FES_STATUS_END_COEX_BT_TX_WHILE_WLAN_RX_MASK 0x0000000000000080 /* Description COEX_WAN_TX_WHILE_WLAN_TX When set, a WAN tx coex event started while wlan was in the middle of TX a transmission. Field set when coex_status_broadcast TLV received with WAN tx activity set and during WLAN tx */ #define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_TX_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_TX_LSB 8 #define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_TX_MSB 8 #define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_TX_MASK 0x0000000000000100 /* Description COEX_WAN_TX_WHILE_WLAN_RX When set, a WAN tx coex event started while wlan was in the middle of TX a transmission. Field set when coex broadcast TLV received with WAN tx activity set and during WLAN rx */ #define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_RX_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_RX_LSB 9 #define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_RX_MSB 9 #define TX_FES_STATUS_END_COEX_WAN_TX_WHILE_WLAN_RX_MASK 0x0000000000000200 /* Description COEX_WLAN_TX_WHILE_WLAN_TX When set, a WLAN tx coex event started while wlan was in the middle of TX a transmission. Field set when coex_status_broadcast TLV received with WLAN tx activity set and during WLAN tx */ #define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_TX_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_TX_LSB 10 #define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_TX_MSB 10 #define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_TX_MASK 0x0000000000000400 /* Description COEX_WLAN_TX_WHILE_WLAN_RX When set, a WLAN tx coex event started while wlan was in the middle of TX a transmission. Field set when coex broadcast TLV received with WLAN tx activity set and during WLAN rx */ #define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_RX_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_RX_LSB 11 #define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_RX_MSB 11 #define TX_FES_STATUS_END_COEX_WLAN_TX_WHILE_WLAN_RX_MASK 0x0000000000000800 /* Description GLOBAL_DATA_UNDERFLOW_WARNING Consumer: SCH/SW Producer: TXPCU When set, during transmission a data underflow occurred for one or more users. */ #define TX_FES_STATUS_END_GLOBAL_DATA_UNDERFLOW_WARNING_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_GLOBAL_DATA_UNDERFLOW_WARNING_LSB 12 #define TX_FES_STATUS_END_GLOBAL_DATA_UNDERFLOW_WARNING_MSB 12 #define TX_FES_STATUS_END_GLOBAL_DATA_UNDERFLOW_WARNING_MASK 0x0000000000001000 /* Description GLOBAL_FES_TRANSMIT_RESULT Consumer: SCH/SW Producer: TXPCU Global Transmit result, not per USER transmit result Note: field "Response_type" indicates if the expected response was MU related or not. Successful transmission of entire Frame exchange sequence No Protection response frame received so timeout is triggered. No PPDU response frame received so timeout is triggered. Response frame was received with an invalid FCS. Response frame is received without CRC error but it's not matched with expected SU_Response_type. Set if CBF is received without any error but the Nr, Nc, BW, type or token in VHT MIMO control field is not matched with expected values which are specified by TX_FES_SETUP.cbf_* fields. Response frame is received without CRC error but it's not matched with expected SU_Response_type. For this user, no MPDU was received at all, or all received MPDUs had an FCS error. An MU UL response reception was expected. That response came but the threshold for number of successful user receptions was not met. NOTE: This e-num will only be used in the TX_FES_STATUS_END TLV... transmission was successful and proper responses have been received. But the required ratio between useful MPDU data and null delimiters was not met as specified by field : Fes_continuation_ratio_threshold. The FES (and potentially the SIFS burst) shall be terminated by the SCHeduler NOTE 1: This e-num will only be used in the TX_FES_STATUS_END TLV... A TB ranging response was expected for a sounding TF, but the response did not arrive and timeout is triggered. NOTE: This e-num will only be used in the TX_FES_STATUS_END TLV... A TB ranging response was expected for a sounding TF, but the reception did not match the expected response. NOTE: This e-num will only be used in the TX_FES_STATUS_END TLV... */ #define TX_FES_STATUS_END_GLOBAL_FES_TRANSMIT_RESULT_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_GLOBAL_FES_TRANSMIT_RESULT_LSB 13 #define TX_FES_STATUS_END_GLOBAL_FES_TRANSMIT_RESULT_MSB 16 #define TX_FES_STATUS_END_GLOBAL_FES_TRANSMIT_RESULT_MASK 0x000000000001e000 /* Description CBF_BW_RECEIVED_VALID Field only valid in case of SU reception. In MU set to 0 When set, the cbf_bw_received field contains valid info */ #define TX_FES_STATUS_END_CBF_BW_RECEIVED_VALID_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_CBF_BW_RECEIVED_VALID_LSB 17 #define TX_FES_STATUS_END_CBF_BW_RECEIVED_VALID_MSB 17 #define TX_FES_STATUS_END_CBF_BW_RECEIVED_VALID_MASK 0x0000000000020000 /* Description CBF_BW_RECEIVED Field only valid when cbf_bw_received_valid is set. In MU set to 0 20 Mhz BW 40 Mhz BW 80 Mhz BW 160 Mhz BW 320 Mhz BW 240 Mhz BW */ #define TX_FES_STATUS_END_CBF_BW_RECEIVED_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_CBF_BW_RECEIVED_LSB 18 #define TX_FES_STATUS_END_CBF_BW_RECEIVED_MSB 20 #define TX_FES_STATUS_END_CBF_BW_RECEIVED_MASK 0x00000000001c0000 /* Description ACTUAL_RECEIVED_ACK_TYPE Field only valid in case of SU reception. In MU set to 0 Field indicates what type of ACK was received. Can help determine if unexpected ACK Types (like 256 BA instead of 64 BA) is received. No ACK type response was received or expected a basic ACk frame is received An ACK embedded in BA frame is received a 32 bit BA has been received a 64 bit BA has been received a 128 bit BA has been received a 256 bit BA has been received a 512-bit BA has been received a 1024-bit BA has been received multiple BA responses have been received. This field to be used in scenarios where multi TID data was send or data with management frames was send */ #define TX_FES_STATUS_END_ACTUAL_RECEIVED_ACK_TYPE_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_ACTUAL_RECEIVED_ACK_TYPE_LSB 21 #define TX_FES_STATUS_END_ACTUAL_RECEIVED_ACK_TYPE_MSB 24 #define TX_FES_STATUS_END_ACTUAL_RECEIVED_ACK_TYPE_MASK 0x0000000001e00000 /* Description STA_RESPONSE_COUNT In of case of a transmission where a response from multiple STAs in SIFS time is expected, this field indicates how many STAs actually send a response. */ #define TX_FES_STATUS_END_STA_RESPONSE_COUNT_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_STA_RESPONSE_COUNT_LSB 25 #define TX_FES_STATUS_END_STA_RESPONSE_COUNT_MSB 30 #define TX_FES_STATUS_END_STA_RESPONSE_COUNT_MASK 0x000000007e000000 /* Description DPDTRAIN_DONE Field only valid when PHYTX_PKT_END_info_valid is set For DPD Training packets, this bit is set to indicate that DPD Training was successfully run to completion. Also reused by Implicit BF Calibration Packets. This bit is intended for debug purposes. */ #define TX_FES_STATUS_END_DPDTRAIN_DONE_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_DPDTRAIN_DONE_LSB 31 #define TX_FES_STATUS_END_DPDTRAIN_DONE_MSB 31 #define TX_FES_STATUS_END_DPDTRAIN_DONE_MASK 0x0000000080000000 /* Description PHYTX_ABORT_REQUEST_INFO_DETAILS Field only valid when PHYTX_ABORT_REQUEST_info_valid is set The reason why PHYTX is requested an abort */ /* Description PHYTX_ABORT_REASON Reason for early termination of TX packet by the PHY */ #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_LSB 32 #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_MSB 39 #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_MASK 0x000000ff00000000 /* Description USER_NUMBER For some errors, the user for which this error was detected can be indicated in this field. */ #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_LSB 40 #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_MSB 45 #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_MASK 0x00003f0000000000 /* Description RESERVED */ #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_LSB 46 #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_MSB 47 #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_MASK 0x0000c00000000000 /* Description RESERVED_AFTER_STRUCT16 */ #define TX_FES_STATUS_END_RESERVED_AFTER_STRUCT16_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_RESERVED_AFTER_STRUCT16_LSB 48 #define TX_FES_STATUS_END_RESERVED_AFTER_STRUCT16_MSB 51 #define TX_FES_STATUS_END_RESERVED_AFTER_STRUCT16_MASK 0x000f000000000000 /* Description BRP_INFO_VALID When set, TXPCU sent CBF segments. Fields cbf_segment_request_mask and cbf_segment_sent_mask contain valid info. */ #define TX_FES_STATUS_END_BRP_INFO_VALID_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_BRP_INFO_VALID_LSB 52 #define TX_FES_STATUS_END_BRP_INFO_VALID_MSB 52 #define TX_FES_STATUS_END_BRP_INFO_VALID_MASK 0x0010000000000000 /* Description RESERVED_1A */ #define TX_FES_STATUS_END_RESERVED_1A_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_RESERVED_1A_LSB 53 #define TX_FES_STATUS_END_RESERVED_1A_MSB 58 #define TX_FES_STATUS_END_RESERVED_1A_MASK 0x07e0000000000000 /* Description PHYTX_PKT_END_INFO_VALID All the fields originating from PHYTX_PKT_END TLV contain valid info */ #define TX_FES_STATUS_END_PHYTX_PKT_END_INFO_VALID_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_PHYTX_PKT_END_INFO_VALID_LSB 59 #define TX_FES_STATUS_END_PHYTX_PKT_END_INFO_VALID_MSB 59 #define TX_FES_STATUS_END_PHYTX_PKT_END_INFO_VALID_MASK 0x0800000000000000 /* Description PHYTX_ABORT_REQUEST_INFO_VALID Field Phytx_abort_request_info_details contains valid info */ #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_VALID_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_VALID_LSB 60 #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_VALID_MSB 60 #define TX_FES_STATUS_END_PHYTX_ABORT_REQUEST_INFO_VALID_MASK 0x1000000000000000 /* Description FES_IN_11AX_TRIGGER_RESPONSE_CONFIG When set, this transmission was the result of responding to the reception of an 11ax trigger. This is a copy of field Fes_in_11ax_Trigger_response_config in the TX_FES_SETUP TLV. */ #define TX_FES_STATUS_END_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_LSB 61 #define TX_FES_STATUS_END_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_MSB 61 #define TX_FES_STATUS_END_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_MASK 0x2000000000000000 /* Description NULL_DELIM_INSERTED_BEFORE_MPDUS Field only valid when "Fes_in_11ax_Trigger_response_config" is set. This bit will get set if any NULL delimiter is sent out to PHY, during the whole transmit duration(self_gen + FES). This bit will NOT be set, if no MPDU data is sent out to PHY and whole transmit duration is filled with NULL delimiters. Note that SCH does not evaluate this field. It is only for SW to look at. */ #define TX_FES_STATUS_END_NULL_DELIM_INSERTED_BEFORE_MPDUS_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_NULL_DELIM_INSERTED_BEFORE_MPDUS_LSB 62 #define TX_FES_STATUS_END_NULL_DELIM_INSERTED_BEFORE_MPDUS_MSB 62 #define TX_FES_STATUS_END_NULL_DELIM_INSERTED_BEFORE_MPDUS_MASK 0x4000000000000000 /* Description ONLY_NULL_DELIM_SENT Field only valid when "Fes_in_11ax_Trigger_response_config" is set. This bit will be set if only NULL delimiters are sent to the PHY and no SCH sourced MPDU data is sent out. NOTE here that self-gen MPDU data will not be considered while evaluating this bit. Note that SCH does not evaluate this field. It is only for SW to look at. */ #define TX_FES_STATUS_END_ONLY_NULL_DELIM_SENT_OFFSET 0x0000000000000000 #define TX_FES_STATUS_END_ONLY_NULL_DELIM_SENT_LSB 63 #define TX_FES_STATUS_END_ONLY_NULL_DELIM_SENT_MSB 63 #define TX_FES_STATUS_END_ONLY_NULL_DELIM_SENT_MASK 0x8000000000000000 /* Description START_OF_FRAME_TIMESTAMP_15_0 PHYTX_PKT_END info Field only valid when PHYTX_PKT_END_info_valid is set bits 15:0 of a 64 bit time stamp Start of frame in the medium @960 MHz */ #define TX_FES_STATUS_END_START_OF_FRAME_TIMESTAMP_15_0_OFFSET 0x0000000000000008 #define TX_FES_STATUS_END_START_OF_FRAME_TIMESTAMP_15_0_LSB 0 #define TX_FES_STATUS_END_START_OF_FRAME_TIMESTAMP_15_0_MSB 15 #define TX_FES_STATUS_END_START_OF_FRAME_TIMESTAMP_15_0_MASK 0x000000000000ffff /* Description START_OF_FRAME_TIMESTAMP_31_16 PHYTX_PKT_END info Field only valid when PHYTX_PKT_END_info_valid is set bits 31:16 of a 64 bit time stamp Start of frame in the medium @960 MHz */ #define TX_FES_STATUS_END_START_OF_FRAME_TIMESTAMP_31_16_OFFSET 0x0000000000000008 #define TX_FES_STATUS_END_START_OF_FRAME_TIMESTAMP_31_16_LSB 16 #define TX_FES_STATUS_END_START_OF_FRAME_TIMESTAMP_31_16_MSB 31 #define TX_FES_STATUS_END_START_OF_FRAME_TIMESTAMP_31_16_MASK 0x00000000ffff0000 /* Description END_OF_FRAME_TIMESTAMP_15_0 PHYTX_PKT_END info Field only valid when PHYTX_PKT_END_info_valid is set bits 15:0 of a 64 bit time stamp End of frame in the medium @960 MHz */ #define TX_FES_STATUS_END_END_OF_FRAME_TIMESTAMP_15_0_OFFSET 0x0000000000000008 #define TX_FES_STATUS_END_END_OF_FRAME_TIMESTAMP_15_0_LSB 32 #define TX_FES_STATUS_END_END_OF_FRAME_TIMESTAMP_15_0_MSB 47 #define TX_FES_STATUS_END_END_OF_FRAME_TIMESTAMP_15_0_MASK 0x0000ffff00000000 /* Description END_OF_FRAME_TIMESTAMP_31_16 PHYTX_PKT_END info Field only valid when PHYTX_PKT_END_info_valid is set bits 31:16 of a 64 bit time stamp End of frame in the medium @960 MHz */ #define TX_FES_STATUS_END_END_OF_FRAME_TIMESTAMP_31_16_OFFSET 0x0000000000000008 #define TX_FES_STATUS_END_END_OF_FRAME_TIMESTAMP_31_16_LSB 48 #define TX_FES_STATUS_END_END_OF_FRAME_TIMESTAMP_31_16_MSB 63 #define TX_FES_STATUS_END_END_OF_FRAME_TIMESTAMP_31_16_MASK 0xffff000000000000 /* Description TERMINATE_RANGING_SEQUENCE Consumer: SW/SCH Producer: TXPCU If set to 1, HWSCH will flush the TX pipeline and terminate the ongoing SIFS sequence for TB Ranging. TXPCU to set it only in the context of TB Ranging, when the condition to terminate the TB Ranging sequence is met */ #define TX_FES_STATUS_END_TERMINATE_RANGING_SEQUENCE_OFFSET 0x0000000000000010 #define TX_FES_STATUS_END_TERMINATE_RANGING_SEQUENCE_LSB 0 #define TX_FES_STATUS_END_TERMINATE_RANGING_SEQUENCE_MSB 0 #define TX_FES_STATUS_END_TERMINATE_RANGING_SEQUENCE_MASK 0x0000000000000001 /* Description RESERVED_4A */ #define TX_FES_STATUS_END_RESERVED_4A_OFFSET 0x0000000000000010 #define TX_FES_STATUS_END_RESERVED_4A_LSB 1 #define TX_FES_STATUS_END_RESERVED_4A_MSB 7 #define TX_FES_STATUS_END_RESERVED_4A_MASK 0x00000000000000fe /* Description TIMING_STATUS PHYTX_PKT_END info Field only valid when PHYTX_PKT_END_info_valid is set The MAC did not request for the transmission to start at a particular time MAC did request for transmission to start at a particular time and PHY was able to do so. PHY was not able to honour the requested transmit time by the MAC. The transmission started later, and field transmit_delay indicates how much later. */ #define TX_FES_STATUS_END_TIMING_STATUS_OFFSET 0x0000000000000010 #define TX_FES_STATUS_END_TIMING_STATUS_LSB 8 #define TX_FES_STATUS_END_TIMING_STATUS_MSB 9 #define TX_FES_STATUS_END_TIMING_STATUS_MASK 0x0000000000000300 /* Description RESPONSE_TYPE The response type that TXPCU was checking for After transmission of this frame, no response in SIFS time is expected When TXPCU sees this setting, it shall not generated the EXPECTED_RESPONSE TLV. RXPCU should never see this setting An ACK frame is expected as response RXPCU is just expecting any response. It is TXPCU who checks that the right response was received. BA with 64 bitmap is expected. PDG DOES NOT use the size info to calculated response duration. The length of the response will have to be programmed by SW in the per-BW 'Expected_ppdu_resp_length' field. For TXPCU only the fact that it is a BA is important. Actual received BA size is not important RXPCU is just expecting any response. It is TXPCU who checks that the right response was received. BA with 256 bitmap is expected. PDG DOES NOT use the size info to calculated response duration. The length of the response will have to be programmed by SW in the per-BW 'Expected_ppdu_resp_length' field. For TXPCU only the fact that it is a BA is important. Actual received BA size is not important RXPCU is just expecting any response. It is TXPCU who checks that the right response was received. SW sets this after sending NDP or BR-Poll. As PDG has no idea on how long the reception is going to be, the reception time of the response will have to be programmed by SW in the 'Extend_duration_value_bw...' field RXPCU is just expecting any response. It is TXPCU who checks that the right response was received. PDG uses the size info and assumes single BA format with ACK and 64 bitmap embedded. If SW expects more bitmaps in case of multi-TID, is shall program the 'Extend_duration_value_bw...' field for additional duration time. For TXPCU only the fact that an ACK and/or BA is received is important. Reception of only ACK or BA is also considered a success. SW also typically sets this when sending VHT single MPDU. Some chip vendors might send BA rather than ACK in response to VHT single MPDU but still we want to accept BA as well. RXPCU is just expecting any response. It is TXPCU who checks that the right response was received. SW sets this after queuing RTS frame as standalone packet and sending it. RXPCU is just expecting any response. It is TXPCU who checks that the right response was received. SW sets this after sending PS-Poll. For TXPCU either ACK and/or data reception is considered success. PDG basis it's response duration calculation on an ACK. For the data portion, SW shall program the 'Extend_duration_value_bw...' field Reserved for 11ah usage. Reserved for 11ah usage Reserved for 11ah usage. Reserved for 11ah usage Reserved for 11ah usage TXPCU expects UL MU OFDMA or UL MU MIMO reception. As PDG does not know how RUs are assigned for the uplink portion, PDG can not calculate the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...' field RXPCU will report any frame received, irrespective of it having been UL MU or SU It is TXPCUs responsibility to distinguish between the UL MU or SU TXPCU can check in TLV RECEIVED_RESPONSE_INFO MU_Response_BA_bitmap if indeed BA was received TXPCU expects UL MU OFDMA or UL MU MIMO reception. As PDG does not know how RUs are assigned for the uplink portion, PDG can not calculate the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...' field RXPCU will report any frame received, irrespective of it having been UL MU or SU It is TXPCUs responsibility to distinguish between the UL MU or SU TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_data_bitmap and MU_Response_BA_bitmap if indeed BA and data was received When selected, CBF frames are expected to be received in MU reception (uplink OFDMA or uplink MIMO) RXPCU is just expecting any response. It is TXPCU who checks that the right response was received TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_cbf_bitmap if indeed CBF frames were received. When selected, MPDU frames are expected in the MU reception (uplink OFDMA or uplink MIMO) RXPCU is just expecting any response. It is TXPCU who checks that the right response was received TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_bitmap if indeed frames were received. Any response expected to be send to this device in SIFS time is acceptable. RXPCU is just expecting any response. It is TXPCU who checks that the right response was received For TXPCU, UL MU or SU is both acceptable. Can be used for complex OFDMA scenarios. PDG can not calculate the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...' field Any frame in the medium to this or any other device, is acceptable as response. RXPCU is just expecting any response. It is TXPCU who checks that the right response was received For TXPCU, UL MU or SU is both acceptable. Can be used for complex OFDMA scenarios. PDG can not calculate the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...' field Any MU frameless reception generated by the PHY is acceptable. PHY indicates this type of reception explicitly in TLV PHYRX_RSSI_LEGACY, field Reception_type == reception_is_frameless RXPCU will report any frame received, irrespective of it having been UL MU or SU. This can be used for complex MU-MIMO or OFDMA scenarios, like receiving MU-CTS. PDG can not calculate the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...' field SW sets this after sending ranging NDPA followed by NDP as an ISTA and NDP and LMR (Action No Ack) are expected as back-to-back reception in SIFS. As PDG has no idea on how long the reception is going to be, the reception time of the response will have to be programmed by SW in the 'Extend_duration_value_bw...' field RXPCU is just expecting any response. It is TXPCU who checks that the right response was received. BA with 512 bitmap is expected. PDG DOES NOT use the size info to calculated response duration. The length of the response will have to be programmed by SW in the per-BW 'Expected_ppdu_resp_length' field. For TXPCU only the fact that it is a BA is important. Actual received BA size is not important RXPCU is just expecting any response. It is TXPCU who checks that the right response was received. BA with 1024 bitmap is expected. PDG DOES NOT use the size info to calculated response duration. The length of the response will have to be programmed by SW in the per-BW 'Expected_ppdu_resp_length' field. For TXPCU only the fact that it is a BA is important. Actual received BA size is not important RXPCU is just expecting any response. It is TXPCU who checks that the right response was received. When selected, CTS2S frames are expected to be received in MU reception (uplink OFDMA) RXPCU shall check each response for CTS2S and report to TXPCU. TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed CTS2S frames were received. When selected, UL NDP frames are expected to be received in MU reception (uplink spatial multiplexing) RXPCU shall check each response for NDP and report to TXPCU. TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed NDP frames were received. When selected, LMR frames are expected to be received in MU reception (uplink OFDMA or uplink MIMO) RXPCU shall check each response for LMR and report to TXPCU. TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed LMR frames were received. */ #define TX_FES_STATUS_END_RESPONSE_TYPE_OFFSET 0x0000000000000010 #define TX_FES_STATUS_END_RESPONSE_TYPE_LSB 10 #define TX_FES_STATUS_END_RESPONSE_TYPE_MSB 14 #define TX_FES_STATUS_END_RESPONSE_TYPE_MASK 0x0000000000007c00 /* Description R2R_END_STATUS_TO_FOLLOW When set, TXPCU will still generate an R2R frame (typically M-BA), and the 'R2R_STATUS_END' TLV. */ #define TX_FES_STATUS_END_R2R_END_STATUS_TO_FOLLOW_OFFSET 0x0000000000000010 #define TX_FES_STATUS_END_R2R_END_STATUS_TO_FOLLOW_LSB 15 #define TX_FES_STATUS_END_R2R_END_STATUS_TO_FOLLOW_MSB 15 #define TX_FES_STATUS_END_R2R_END_STATUS_TO_FOLLOW_MASK 0x0000000000008000 /* Description TRANSMIT_DELAY PHYTX_PKT_END info Field only valid when PHYTX_PKT_END_info_valid is set The number of 480 MHz clock cycles that the transmission started after the actual requested transmit start time. Value saturates at 0xFFFF */ #define TX_FES_STATUS_END_TRANSMIT_DELAY_OFFSET 0x0000000000000010 #define TX_FES_STATUS_END_TRANSMIT_DELAY_LSB 16 #define TX_FES_STATUS_END_TRANSMIT_DELAY_MSB 31 #define TX_FES_STATUS_END_TRANSMIT_DELAY_MASK 0x00000000ffff0000 /* Description TX_GROUP_DELAY PHYTX_PKT_END info Field only valid when PHYTX_PKT_END_info_valid is set Group delay on TxTD+PHYRF path for this PPDU (packet BW dependent), useful for RTT Unit is 960MHz cycles. */ #define TX_FES_STATUS_END_TX_GROUP_DELAY_OFFSET 0x0000000000000010 #define TX_FES_STATUS_END_TX_GROUP_DELAY_LSB 32 #define TX_FES_STATUS_END_TX_GROUP_DELAY_MSB 43 #define TX_FES_STATUS_END_TX_GROUP_DELAY_MASK 0x00000fff00000000 /* Description RESERVED_5A Bits [14:12]: service_cbw: Field only valid when a response was received Source of the info here is the 'RECEIVED_RESPONSE_INFO' TLV This field reflects the BW extracted from the Serivce Field for 11ac mode of operation . This field is used in the context of Dynamic BW evaluation purposes in SCH in case of SW-queued protection frame. Please refer 'BW_ENUM' e-num for the values used. */ #define TX_FES_STATUS_END_RESERVED_5A_OFFSET 0x0000000000000010 #define TX_FES_STATUS_END_RESERVED_5A_LSB 44 #define TX_FES_STATUS_END_RESERVED_5A_MSB 47 #define TX_FES_STATUS_END_RESERVED_5A_MASK 0x0000f00000000000 /* Description TPC_DBG_INFO_CMN_15_0 PHYTX_PKT_END info Field only valid when PHYTX_PKT_END_info_valid is set Some TPC debug info that PHY can pass back to MAC FW */ #define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_15_0_OFFSET 0x0000000000000010 #define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_15_0_LSB 48 #define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_15_0_MSB 63 #define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_15_0_MASK 0xffff000000000000 /* Description TPC_DBG_INFO_CMN_31_16 PHYTX_PKT_END info Field only valid when PHYTX_PKT_END_info_valid is set Some TPC debug info that PHY can pass back to MAC FW */ #define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_31_16_OFFSET 0x0000000000000018 #define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_31_16_LSB 0 #define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_31_16_MSB 15 #define TX_FES_STATUS_END_TPC_DBG_INFO_CMN_31_16_MASK 0x000000000000ffff /* Description TPC_DBG_INFO_47_32 PHYTX_PKT_END info Field only valid when PHYTX_PKT_END_info_valid is set Some TPC debu info that PHY can pass back to MAC FW */ #define TX_FES_STATUS_END_TPC_DBG_INFO_47_32_OFFSET 0x0000000000000018 #define TX_FES_STATUS_END_TPC_DBG_INFO_47_32_LSB 16 #define TX_FES_STATUS_END_TPC_DBG_INFO_47_32_MSB 31 #define TX_FES_STATUS_END_TPC_DBG_INFO_47_32_MASK 0x00000000ffff0000 /* Description TPC_DBG_INFO_CHN1_15_0 PHYTX_PKT_END info Field only valid when PHYTX_PKT_END_info_valid is set Some per-chain TPC debug info for the first selected chain that PHY can pass back to MAC FW */ #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_15_0_OFFSET 0x0000000000000018 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_15_0_LSB 32 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_15_0_MSB 47 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_15_0_MASK 0x0000ffff00000000 /* Description TPC_DBG_INFO_CHN1_31_16 PHYTX_PKT_END info Field only valid when PHYTX_PKT_END_info_valid is set Some per-chain TPC debug info for the first selected chain that PHY can pass back to MAC FW */ #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_31_16_OFFSET 0x0000000000000018 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_31_16_LSB 48 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_31_16_MSB 63 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_31_16_MASK 0xffff000000000000 /* Description TPC_DBG_INFO_CHN1_47_32 PHYTX_PKT_END info Field only valid when PHYTX_PKT_END_info_valid is set Some per-chain TPC debug info for the first selected chain that PHY can pass back to MAC FW */ #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_47_32_OFFSET 0x0000000000000020 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_47_32_LSB 0 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_47_32_MSB 15 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_47_32_MASK 0x000000000000ffff /* Description TPC_DBG_INFO_CHN1_63_48 PHYTX_PKT_END info Field only valid when PHYTX_PKT_END_info_valid is set Some per-chain TPC debug info for the first selected chain that PHY can pass back to MAC FW */ #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_63_48_OFFSET 0x0000000000000020 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_63_48_LSB 16 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_63_48_MSB 31 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_63_48_MASK 0x00000000ffff0000 /* Description TPC_DBG_INFO_CHN1_79_64 PHYTX_PKT_END info Field only valid when PHYTX_PKT_END_info_valid is set Some per-chain TPC debug info for the first selected chain that PHY can pass back to MAC FW */ #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_79_64_OFFSET 0x0000000000000020 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_79_64_LSB 32 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_79_64_MSB 47 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN1_79_64_MASK 0x0000ffff00000000 /* Description TPC_DBG_INFO_CHN2_15_0 PHYTX_PKT_END info Field only valid when PHYTX_PKT_END_info_valid is set Some per-chain TPC debug info for the second selected chain that PHY can pass back to MAC FW */ #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_15_0_OFFSET 0x0000000000000020 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_15_0_LSB 48 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_15_0_MSB 63 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_15_0_MASK 0xffff000000000000 /* Description TPC_DBG_INFO_CHN2_31_16 PHYTX_PKT_END info Field only valid when PHYTX_PKT_END_info_valid is set Some per-chain TPC debug info for the second selected chain that PHY can pass back to MAC FW */ #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_31_16_OFFSET 0x0000000000000028 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_31_16_LSB 0 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_31_16_MSB 15 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_31_16_MASK 0x000000000000ffff /* Description TPC_DBG_INFO_CHN2_47_32 PHYTX_PKT_END info Field only valid when PHYTX_PKT_END_info_valid is set Some per-chain TPC debug info for the second selected chain that PHY can pass back to MAC FW */ #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_47_32_OFFSET 0x0000000000000028 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_47_32_LSB 16 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_47_32_MSB 31 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_47_32_MASK 0x00000000ffff0000 /* Description TPC_DBG_INFO_CHN2_63_48 PHYTX_PKT_END info Field only valid when PHYTX_PKT_END_info_valid is set Some per-chain TPC debug info for the second selected chain that PHY can pass back to MAC FW */ #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_63_48_OFFSET 0x0000000000000028 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_63_48_LSB 32 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_63_48_MSB 47 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_63_48_MASK 0x0000ffff00000000 /* Description TPC_DBG_INFO_CHN2_79_64 PHYTX_PKT_END info Field only valid when PHYTX_PKT_END_info_valid is set Some per-chain TPC debug info for the second selected chain that PHY can pass back to MAC FW */ #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_79_64_OFFSET 0x0000000000000028 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_79_64_LSB 48 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_79_64_MSB 63 #define TX_FES_STATUS_END_TPC_DBG_INFO_CHN2_79_64_MASK 0xffff000000000000 /* Description PHYTX_TX_END_SW_INFO_15_0 PHYTX_PKT_END info Field only valid when PHYTX_PKT_END_info_valid is set Some PHY status data that PHY microcode can pass back to MAC FW, for any future requests, e.g. any DMA download time */ #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_15_0_OFFSET 0x0000000000000030 #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_15_0_LSB 0 #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_15_0_MSB 15 #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_15_0_MASK 0x000000000000ffff /* Description PHYTX_TX_END_SW_INFO_31_16 PHYTX_PKT_END info Field only valid when PHYTX_PKT_END_info_valid is set Some PHY status data that PHY microcode can pass back to MAC FW, for any future requests, e.g. any DMA download time */ #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_31_16_OFFSET 0x0000000000000030 #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_31_16_LSB 16 #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_31_16_MSB 31 #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_31_16_MASK 0x00000000ffff0000 /* Description PHYTX_TX_END_SW_INFO_47_32 PHYTX_PKT_END info Field only valid when PHYTX_PKT_END_info_valid is set Some PHY status data that PHY microcode can pass back to MAC FW, for any future requests, e.g. any DMA download time */ #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_47_32_OFFSET 0x0000000000000030 #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_47_32_LSB 32 #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_47_32_MSB 47 #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_47_32_MASK 0x0000ffff00000000 /* Description PHYTX_TX_END_SW_INFO_63_48 PHYTX_PKT_END info Field only valid when PHYTX_PKT_END_info_valid is set Some PHY status data that PHY microcode can pass back to MAC FW, for any future requests, e.g. any DMA download time */ #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_63_48_OFFSET 0x0000000000000030 #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_63_48_LSB 48 #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_63_48_MSB 63 #define TX_FES_STATUS_END_PHYTX_TX_END_SW_INFO_63_48_MASK 0xffff000000000000 /* Description BEAMFORM_MASKED_USER_BITMAP_15_0 Lower 16 bits of 'Beamform_masked_user_bitmap' PHY indicates in this field for which users it actually did not beamform it's transmission even though this was requested Bit 0: user 0, bit 1: user 1, etc. When 0: No beamform issue for this user When 1: PHY could not beamform for this user, but did not terminate the transmission */ #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_15_0_OFFSET 0x0000000000000038 #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_15_0_LSB 0 #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_15_0_MSB 15 #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_15_0_MASK 0x000000000000ffff /* Description BEAMFORM_MASKED_USER_BITMAP_31_16 Middle 16 bits of 'Beamform_masked_user_bitmap' See description above. */ #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_31_16_OFFSET 0x0000000000000038 #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_31_16_LSB 16 #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_31_16_MSB 31 #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_31_16_MASK 0x00000000ffff0000 /* Description CBF_SEGMENT_REQUEST_MASK Field only valid when brp_info_valid is set. Field equal to the 'Feedback Segment Retransmission Bitmap' from the Beamform Report Poll frame OR Beamform Report Poll Trigger frame Bit 0 represents segment 0 Bit 1 represents segment 1 Etc. 1'b1: Segment is requested 1'b0: Segment is NOT requested */ #define TX_FES_STATUS_END_CBF_SEGMENT_REQUEST_MASK_OFFSET 0x0000000000000038 #define TX_FES_STATUS_END_CBF_SEGMENT_REQUEST_MASK_LSB 32 #define TX_FES_STATUS_END_CBF_SEGMENT_REQUEST_MASK_MSB 39 #define TX_FES_STATUS_END_CBF_SEGMENT_REQUEST_MASK_MASK 0x000000ff00000000 /* Description CBF_SEGMENT_SENT_MASK Field only valid when brp_info_valid is set. Bit 0 represents segment 0 Bit 1 represents segment 1 Etc. 1'b1: Segment is sent 1'b0: Segment is not sent */ #define TX_FES_STATUS_END_CBF_SEGMENT_SENT_MASK_OFFSET 0x0000000000000038 #define TX_FES_STATUS_END_CBF_SEGMENT_SENT_MASK_LSB 40 #define TX_FES_STATUS_END_CBF_SEGMENT_SENT_MASK_MSB 47 #define TX_FES_STATUS_END_CBF_SEGMENT_SENT_MASK_MASK 0x0000ff0000000000 /* Description HIGHEST_ACHIEVED_DATA_NULL_RATIO Highest DATA:NULL ratio achieved for the current FES There was no Data:NULL ratio established. Best Data:NULL ratio was 16:1. Best Data:NULL ratio was 8:1. Best Data:NULL ratio was 4:1. Best Data:NULL ratio was 2:1. Best Data:NULL ratio was 1:1. terminate FES. Best Data:NULL ratio was 1:2. Best Data:NULL ratio was 1:4. Best Data:NULL ratio was 1:8. Best Data:NULL ratio was 1:16. */ #define TX_FES_STATUS_END_HIGHEST_ACHIEVED_DATA_NULL_RATIO_OFFSET 0x0000000000000038 #define TX_FES_STATUS_END_HIGHEST_ACHIEVED_DATA_NULL_RATIO_LSB 48 #define TX_FES_STATUS_END_HIGHEST_ACHIEVED_DATA_NULL_RATIO_MSB 52 #define TX_FES_STATUS_END_HIGHEST_ACHIEVED_DATA_NULL_RATIO_MASK 0x001f000000000000 /* Description USE_ALT_POWER_SR 0: Primary/default power1: Alternate power */ #define TX_FES_STATUS_END_USE_ALT_POWER_SR_OFFSET 0x0000000000000038 #define TX_FES_STATUS_END_USE_ALT_POWER_SR_LSB 53 #define TX_FES_STATUS_END_USE_ALT_POWER_SR_MSB 53 #define TX_FES_STATUS_END_USE_ALT_POWER_SR_MASK 0x0020000000000000 /* Description STATIC_2_PWR_MODE_STATUS 0: Static 2 power mode disabled1: Static 2 power mode enabled */ #define TX_FES_STATUS_END_STATIC_2_PWR_MODE_STATUS_OFFSET 0x0000000000000038 #define TX_FES_STATUS_END_STATIC_2_PWR_MODE_STATUS_LSB 54 #define TX_FES_STATUS_END_STATIC_2_PWR_MODE_STATUS_MSB 54 #define TX_FES_STATUS_END_STATIC_2_PWR_MODE_STATUS_MASK 0x0040000000000000 /* 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_STATUS_END_OBSS_SRG_OPPORT_TRANSMIT_STATUS_OFFSET 0x0000000000000038 #define TX_FES_STATUS_END_OBSS_SRG_OPPORT_TRANSMIT_STATUS_LSB 55 #define TX_FES_STATUS_END_OBSS_SRG_OPPORT_TRANSMIT_STATUS_MSB 55 #define TX_FES_STATUS_END_OBSS_SRG_OPPORT_TRANSMIT_STATUS_MASK 0x0080000000000000 /* Description SRP_BASED_TRANSMIT_STATUS 0: non-SRP based transmit initiated1: SRP based transmit initiated */ #define TX_FES_STATUS_END_SRP_BASED_TRANSMIT_STATUS_OFFSET 0x0000000000000038 #define TX_FES_STATUS_END_SRP_BASED_TRANSMIT_STATUS_LSB 56 #define TX_FES_STATUS_END_SRP_BASED_TRANSMIT_STATUS_MSB 56 #define TX_FES_STATUS_END_SRP_BASED_TRANSMIT_STATUS_MASK 0x0100000000000000 /* Description OBSS_PD_BASED_TRANSMIT_STATUS 0: non-OBSS_PD based transmit initiated1: obss_pd based transmit initiated */ #define TX_FES_STATUS_END_OBSS_PD_BASED_TRANSMIT_STATUS_OFFSET 0x0000000000000038 #define TX_FES_STATUS_END_OBSS_PD_BASED_TRANSMIT_STATUS_LSB 57 #define TX_FES_STATUS_END_OBSS_PD_BASED_TRANSMIT_STATUS_MSB 57 #define TX_FES_STATUS_END_OBSS_PD_BASED_TRANSMIT_STATUS_MASK 0x0200000000000000 /* Description BEAMFORM_MASKED_USER_BITMAP_36_32 Upper 5 bits of 'Beamform_masked_user_bitmap' See description above. */ #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_36_32_OFFSET 0x0000000000000038 #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_36_32_LSB 58 #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_36_32_MSB 62 #define TX_FES_STATUS_END_BEAMFORM_MASKED_USER_BITMAP_36_32_MASK 0x7c00000000000000 /* Description PDG_MPDU_READY Field only valid in case of SU transmissions, copied over by TXPCU from 'PCU_PPDU_SETUP_END' Indicates the 'MPDU_INFO' or 'MPDU_QUEUE_OVERVIEW' ready status in PDG. */ #define TX_FES_STATUS_END_PDG_MPDU_READY_OFFSET 0x0000000000000038 #define TX_FES_STATUS_END_PDG_MPDU_READY_LSB 63 #define TX_FES_STATUS_END_PDG_MPDU_READY_MSB 63 #define TX_FES_STATUS_END_PDG_MPDU_READY_MASK 0x8000000000000000 /* Description PDG_MPDU_COUNT Field only valid in case of SU transmissions when pdg_MPDU_ready is set, copied over by TXPCU from 'PCU_PPDU_SETUP_END' Total MPDU count from 'MPDU_INFO' or 'MPDU_QUEUE_OVERVIEW' */ #define TX_FES_STATUS_END_PDG_MPDU_COUNT_OFFSET 0x0000000000000040 #define TX_FES_STATUS_END_PDG_MPDU_COUNT_LSB 0 #define TX_FES_STATUS_END_PDG_MPDU_COUNT_MSB 15 #define TX_FES_STATUS_END_PDG_MPDU_COUNT_MASK 0x000000000000ffff /* Description PDG_EST_MPDU_TX_COUNT Field only valid in case of SU transmissions when pdg_MPDU_ready is set, copied over by TXPCU from 'PCU_PPDU_SETUP_END' PDG estimated MPDU Tx count from 'MPDU_INFO' or 'MPDU_QUEUE_OVERVIEW' limited by timing boundaries (HWSCH, COEX, SR, etc.) */ #define TX_FES_STATUS_END_PDG_EST_MPDU_TX_COUNT_OFFSET 0x0000000000000040 #define TX_FES_STATUS_END_PDG_EST_MPDU_TX_COUNT_LSB 16 #define TX_FES_STATUS_END_PDG_EST_MPDU_TX_COUNT_MSB 31 #define TX_FES_STATUS_END_PDG_EST_MPDU_TX_COUNT_MASK 0x00000000ffff0000 /* Description PDG_OVERVIEW_LENGTH Field only valid in case of SU transmissions when pdg_MPDU_ready is set, copied over by TXPCU from 'PCU_PPDU_SETUP_END' PDG estimated A-MPDU length from 'MPDU_QUEUE_OVERVIEW' limited by timing boundaries (HWSCH, COEX, SR, etc.) */ #define TX_FES_STATUS_END_PDG_OVERVIEW_LENGTH_OFFSET 0x0000000000000040 #define TX_FES_STATUS_END_PDG_OVERVIEW_LENGTH_LSB 32 #define TX_FES_STATUS_END_PDG_OVERVIEW_LENGTH_MSB 55 #define TX_FES_STATUS_END_PDG_OVERVIEW_LENGTH_MASK 0x00ffffff00000000 /* Description TXOP_DURATION TXOP_DURATION of HE-SIG-A calculated by PDG, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU */ #define TX_FES_STATUS_END_TXOP_DURATION_OFFSET 0x0000000000000040 #define TX_FES_STATUS_END_TXOP_DURATION_LSB 56 #define TX_FES_STATUS_END_TXOP_DURATION_MSB 62 #define TX_FES_STATUS_END_TXOP_DURATION_MASK 0x7f00000000000000 /* Description PDG_DROPPED_MPDU_WARNING Warning that PDG has dropped MPDUs due to SFM FIFO full condition, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU */ #define TX_FES_STATUS_END_PDG_DROPPED_MPDU_WARNING_OFFSET 0x0000000000000040 #define TX_FES_STATUS_END_PDG_DROPPED_MPDU_WARNING_LSB 63 #define TX_FES_STATUS_END_PDG_DROPPED_MPDU_WARNING_MSB 63 #define TX_FES_STATUS_END_PDG_DROPPED_MPDU_WARNING_MASK 0x8000000000000000 /* Description PACKET_EXTENSION_A_FACTOR The "a-factor" of the trigger-based PPDU response, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU This affects the packet extension duration. */ #define TX_FES_STATUS_END_PACKET_EXTENSION_A_FACTOR_OFFSET 0x0000000000000048 #define TX_FES_STATUS_END_PACKET_EXTENSION_A_FACTOR_LSB 0 #define TX_FES_STATUS_END_PACKET_EXTENSION_A_FACTOR_MSB 1 #define TX_FES_STATUS_END_PACKET_EXTENSION_A_FACTOR_MASK 0x0000000000000003 /* Description PACKET_EXTENSION_PE_DISAMBIGUITY The "PE-Disambiguity" of the trigger-based PPDU response, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU This affects the packet extension duration. */ #define TX_FES_STATUS_END_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET 0x0000000000000048 #define TX_FES_STATUS_END_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB 2 #define TX_FES_STATUS_END_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB 2 #define TX_FES_STATUS_END_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK 0x0000000000000004 /* Description PACKET_EXTENSION Packet extension size, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU This is valid for all PPDUs including HE-Ranging NDPs (11az) and Short-NDPs. */ #define TX_FES_STATUS_END_PACKET_EXTENSION_OFFSET 0x0000000000000048 #define TX_FES_STATUS_END_PACKET_EXTENSION_LSB 3 #define TX_FES_STATUS_END_PACKET_EXTENSION_MSB 5 #define TX_FES_STATUS_END_PACKET_EXTENSION_MASK 0x0000000000000038 /* Description FEC_TYPE For trigger-based PPDU response, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU 0: BCC 1: LDPC */ #define TX_FES_STATUS_END_FEC_TYPE_OFFSET 0x0000000000000048 #define TX_FES_STATUS_END_FEC_TYPE_LSB 6 #define TX_FES_STATUS_END_FEC_TYPE_MSB 6 #define TX_FES_STATUS_END_FEC_TYPE_MASK 0x0000000000000040 /* Description STBC For trigger-based PPDU response, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU When set, this transmission is based on STBC rates. */ #define TX_FES_STATUS_END_STBC_OFFSET 0x0000000000000048 #define TX_FES_STATUS_END_STBC_LSB 7 #define TX_FES_STATUS_END_STBC_MSB 7 #define TX_FES_STATUS_END_STBC_MASK 0x0000000000000080 /* Description NUM_DATA_SYMBOLS The number of data symbols in the transmission, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU This does not include PE_LTF. Also for STBC packets this has to be an even number. This is valid for all PPDUs. */ #define TX_FES_STATUS_END_NUM_DATA_SYMBOLS_OFFSET 0x0000000000000048 #define TX_FES_STATUS_END_NUM_DATA_SYMBOLS_LSB 8 #define TX_FES_STATUS_END_NUM_DATA_SYMBOLS_MSB 23 #define TX_FES_STATUS_END_NUM_DATA_SYMBOLS_MASK 0x0000000000ffff00 /* Description RU_SIZE The size of the RU for this user, for trigger-based PPDU response, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU Set when the RU occupies the full packet bandwidth Set when the RU occupies the full packet bandwidth Set when the RU occupies the full packet bandwidth HW will use per-user sub-band-mask to infer the actual RU-size for Multi-large-RU/SU-Puncturing multi small RU multi small RU */ #define TX_FES_STATUS_END_RU_SIZE_OFFSET 0x0000000000000048 #define TX_FES_STATUS_END_RU_SIZE_LSB 24 #define TX_FES_STATUS_END_RU_SIZE_MSB 27 #define TX_FES_STATUS_END_RU_SIZE_MASK 0x000000000f000000 #define TX_FES_STATUS_END_RESERVED_17A_OFFSET 0x0000000000000048 #define TX_FES_STATUS_END_RESERVED_17A_LSB 28 #define TX_FES_STATUS_END_RESERVED_17A_MSB 31 #define TX_FES_STATUS_END_RESERVED_17A_MASK 0x00000000f0000000 /* Description NUM_LTF_SYMBOLS Indicates the number of HE-LTF symbols, for trigger-based PPDU response, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU 0: 1 symbol 1: 2 symbols 2: 3 symbols 3: 4 symbols 4: 5 symbols 5: 6 symbols 6: 7 symbols 7: 8 symbols NOTE that this encoding is different from what is in "Num_LTF_symbols" in the HE_SIG_A_MU_DL. */ #define TX_FES_STATUS_END_NUM_LTF_SYMBOLS_OFFSET 0x0000000000000048 #define TX_FES_STATUS_END_NUM_LTF_SYMBOLS_LSB 32 #define TX_FES_STATUS_END_NUM_LTF_SYMBOLS_MSB 34 #define TX_FES_STATUS_END_NUM_LTF_SYMBOLS_MASK 0x0000000700000000 /* Description LTF_SIZE Ltf size, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU This is valid for all PPDUs including HE-Ranging NDPs (11az) and Short-NDPs. */ #define TX_FES_STATUS_END_LTF_SIZE_OFFSET 0x0000000000000048 #define TX_FES_STATUS_END_LTF_SIZE_LSB 35 #define TX_FES_STATUS_END_LTF_SIZE_MSB 36 #define TX_FES_STATUS_END_LTF_SIZE_MASK 0x0000001800000000 /* Description CP_SETTING Field only valid when pkt type is HT, VHT or HE GI setting, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU This is valid for all PPDUs including HE-Ranging NDPs (11az) and Short-NDPs. Legacy normal GI Legacy short GI HE related GI HE related GI */ #define TX_FES_STATUS_END_CP_SETTING_OFFSET 0x0000000000000048 #define TX_FES_STATUS_END_CP_SETTING_LSB 37 #define TX_FES_STATUS_END_CP_SETTING_MSB 38 #define TX_FES_STATUS_END_CP_SETTING_MASK 0x0000006000000000 #define TX_FES_STATUS_END_RESERVED_18A_OFFSET 0x0000000000000048 #define TX_FES_STATUS_END_RESERVED_18A_LSB 39 #define TX_FES_STATUS_END_RESERVED_18A_MSB 43 #define TX_FES_STATUS_END_RESERVED_18A_MASK 0x00000f8000000000 /* Description DCM Field only valid in case of 11ax transmission Indicates whether dual sub-carrier modulation is applied, for trigger-based PPDU response, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU 0: No DCM 1:DCM */ #define TX_FES_STATUS_END_DCM_OFFSET 0x0000000000000048 #define TX_FES_STATUS_END_DCM_LSB 44 #define TX_FES_STATUS_END_DCM_MSB 44 #define TX_FES_STATUS_END_DCM_MASK 0x0000100000000000 /* Description LDPC_EXTRA_SYMBOL Set to 1 if the LDPC PPDU encoding process (if an SU PPDU), or at least one LDPC user's PPDU encoding process (if an MU PPDU), results in an extra OFDM symbol (or symbols) as described in 22.3.10.5.4 (LDPC coding) and 22.3.10.5.5 (Encoding process for MU PPDUs). Set to 0 otherwise. To be copied from 'PCU_PPDU_SETUP_END' by TXPCU */ #define TX_FES_STATUS_END_LDPC_EXTRA_SYMBOL_OFFSET 0x0000000000000048 #define TX_FES_STATUS_END_LDPC_EXTRA_SYMBOL_LSB 45 #define TX_FES_STATUS_END_LDPC_EXTRA_SYMBOL_MSB 45 #define TX_FES_STATUS_END_LDPC_EXTRA_SYMBOL_MASK 0x0000200000000000 /* Description FORCE_EXTRA_SYMBOL Set to 1 to force an extra OFDM symbol (or symbols) even if none of the users' PPDU encoding process resuls in an extra OFDM symbol (or symbols). To be copied from 'PCU_PPDU_SETUP_END' by TXPCU */ #define TX_FES_STATUS_END_FORCE_EXTRA_SYMBOL_OFFSET 0x0000000000000048 #define TX_FES_STATUS_END_FORCE_EXTRA_SYMBOL_LSB 46 #define TX_FES_STATUS_END_FORCE_EXTRA_SYMBOL_MSB 46 #define TX_FES_STATUS_END_FORCE_EXTRA_SYMBOL_MASK 0x0000400000000000 /* Description RESERVED_18B */ #define TX_FES_STATUS_END_RESERVED_18B_OFFSET 0x0000000000000048 #define TX_FES_STATUS_END_RESERVED_18B_LSB 47 #define TX_FES_STATUS_END_RESERVED_18B_MSB 47 #define TX_FES_STATUS_END_RESERVED_18B_MASK 0x0000800000000000 /* Description TX_PWR_SHARED Transmit Power (signed value) in units of 0.25 dBm, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU */ #define TX_FES_STATUS_END_TX_PWR_SHARED_OFFSET 0x0000000000000048 #define TX_FES_STATUS_END_TX_PWR_SHARED_LSB 48 #define TX_FES_STATUS_END_TX_PWR_SHARED_MSB 55 #define TX_FES_STATUS_END_TX_PWR_SHARED_MASK 0x00ff000000000000 /* Description TX_PWR_UNSHARED Transmit Power (signed value) in units of 0.25 dBm, to be copied from 'PCU_PPDU_SETUP_END' by TXPCU */ #define TX_FES_STATUS_END_TX_PWR_UNSHARED_OFFSET 0x0000000000000048 #define TX_FES_STATUS_END_TX_PWR_UNSHARED_LSB 56 #define TX_FES_STATUS_END_TX_PWR_UNSHARED_MSB 63 #define TX_FES_STATUS_END_TX_PWR_UNSHARED_MASK 0xff00000000000000 /* Description RANGING_ACTIVE_USER_MAP Field only valid for TB Ranging transmissions TXPCU sets this to the current active user bitmap, with each bit set to: 1: for an active user, and 0: for any user not part of the ranging. */ #define TX_FES_STATUS_END_RANGING_ACTIVE_USER_MAP_OFFSET 0x0000000000000050 #define TX_FES_STATUS_END_RANGING_ACTIVE_USER_MAP_LSB 0 #define TX_FES_STATUS_END_RANGING_ACTIVE_USER_MAP_MSB 15 #define TX_FES_STATUS_END_RANGING_ACTIVE_USER_MAP_MASK 0x000000000000ffff /* Description RANGING_SENT_DUMMY_TX Field only valid for TB Ranging transmissions TXPCU sets this bit if some user's 'STA Info' or 'User Info' was sent out as dummy, or the whole transmission was sent out as dummy. */ #define TX_FES_STATUS_END_RANGING_SENT_DUMMY_TX_OFFSET 0x0000000000000050 #define TX_FES_STATUS_END_RANGING_SENT_DUMMY_TX_LSB 16 #define TX_FES_STATUS_END_RANGING_SENT_DUMMY_TX_MSB 16 #define TX_FES_STATUS_END_RANGING_SENT_DUMMY_TX_MASK 0x0000000000010000 /* Description RANGING_FTM_FRAME_SENT Field only valid for Ranging transmissions TXPCU sets this bit if an FTM frame aggregated with an LMR was sent. */ #define TX_FES_STATUS_END_RANGING_FTM_FRAME_SENT_OFFSET 0x0000000000000050 #define TX_FES_STATUS_END_RANGING_FTM_FRAME_SENT_LSB 17 #define TX_FES_STATUS_END_RANGING_FTM_FRAME_SENT_MSB 17 #define TX_FES_STATUS_END_RANGING_FTM_FRAME_SENT_MASK 0x0000000000020000 /* Description RESERVED_20A */ #define TX_FES_STATUS_END_RESERVED_20A_OFFSET 0x0000000000000050 #define TX_FES_STATUS_END_RESERVED_20A_LSB 18 #define TX_FES_STATUS_END_RESERVED_20A_MSB 23 #define TX_FES_STATUS_END_RESERVED_20A_MASK 0x0000000000fc0000 /* Description CV_CORR_STATUS CV correlation status from 'PHYTX_CV_CORR_STATUS,' to be copied from 'PCU_PPDU_SETUP_END' by TXPCU */ #define TX_FES_STATUS_END_CV_CORR_STATUS_OFFSET 0x0000000000000050 #define TX_FES_STATUS_END_CV_CORR_STATUS_LSB 24 #define TX_FES_STATUS_END_CV_CORR_STATUS_MSB 31 #define TX_FES_STATUS_END_CV_CORR_STATUS_MASK 0x00000000ff000000 /* Description CURRENT_TX_DURATION The duration of the transmission in us, copied over from PCU_PPDU_SETUP_{END, START} as the case may be */ #define TX_FES_STATUS_END_CURRENT_TX_DURATION_OFFSET 0x0000000000000050 #define TX_FES_STATUS_END_CURRENT_TX_DURATION_LSB 32 #define TX_FES_STATUS_END_CURRENT_TX_DURATION_MSB 47 #define TX_FES_STATUS_END_CURRENT_TX_DURATION_MASK 0x0000ffff00000000 /* Description RESERVED_21A Bits [19:16]: num_cts2self_transmitted: Number of CTS2SELF frames transmitted in this FES */ #define TX_FES_STATUS_END_RESERVED_21A_OFFSET 0x0000000000000050 #define TX_FES_STATUS_END_RESERVED_21A_LSB 48 #define TX_FES_STATUS_END_RESERVED_21A_MSB 63 #define TX_FES_STATUS_END_RESERVED_21A_MASK 0xffff000000000000 #endif // TX_FES_STATUS_END