1*5113495bSYour Name /* 2*5113495bSYour Name * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. 3*5113495bSYour Name * 4*5113495bSYour Name * Permission to use, copy, modify, and/or distribute this software for any 5*5113495bSYour Name * purpose with or without fee is hereby granted, provided that the above 6*5113495bSYour Name * copyright notice and this permission notice appear in all copies. 7*5113495bSYour Name * 8*5113495bSYour Name * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9*5113495bSYour Name * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10*5113495bSYour Name * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11*5113495bSYour Name * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12*5113495bSYour Name * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13*5113495bSYour Name * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14*5113495bSYour Name * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15*5113495bSYour Name */ 16*5113495bSYour Name 17*5113495bSYour Name #ifndef _PHYTX_ABORT_REQUEST_INFO_H_ 18*5113495bSYour Name #define _PHYTX_ABORT_REQUEST_INFO_H_ 19*5113495bSYour Name #if !defined(__ASSEMBLER__) 20*5113495bSYour Name #endif 21*5113495bSYour Name 22*5113495bSYour Name #define NUM_OF_WORDS_PHYTX_ABORT_REQUEST_INFO 1 23*5113495bSYour Name 24*5113495bSYour Name 25*5113495bSYour Name struct phytx_abort_request_info { 26*5113495bSYour Name #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 27*5113495bSYour Name uint16_t phytx_abort_reason : 8, // [7:0] 28*5113495bSYour Name user_number : 6, // [13:8] 29*5113495bSYour Name reserved : 2; // [15:14] 30*5113495bSYour Name #else 31*5113495bSYour Name uint16_t reserved : 2, // [15:14] 32*5113495bSYour Name user_number : 6, // [13:8] 33*5113495bSYour Name phytx_abort_reason : 8; // [7:0] 34*5113495bSYour Name #endif 35*5113495bSYour Name }; 36*5113495bSYour Name 37*5113495bSYour Name 38*5113495bSYour Name /* Description PHYTX_ABORT_REASON 39*5113495bSYour Name 40*5113495bSYour Name Reason for early termination of TX packet by the PHY 41*5113495bSYour Name 42*5113495bSYour Name <enum 0 no_phytx_error_reported>This value is the default 43*5113495bSYour Name value the MAC will fill in the status TLV (when not PHY 44*5113495bSYour Name abort was received). 45*5113495bSYour Name 46*5113495bSYour Name Note that when PHY generates the PHYTX_ABORT_REQUEST, this 47*5113495bSYour Name value shall never be used. 48*5113495bSYour Name <enum 1 error_txtd_ifft_underrun>PHY ran out of transmit 49*5113495bSYour Name data due to transmit underrun - this field is user-specific 50*5113495bSYour Name (see user_number field) 51*5113495bSYour Name <enum 2 error_tx_invalid_tlv> 52*5113495bSYour Name <enum 3 error_tx_unexpected_tlv> 53*5113495bSYour Name <enum 4 error_tx_pkt_end_error> 54*5113495bSYour Name <enum 5 error_tx_bw_is_gt_dyn_bw> 55*5113495bSYour Name <enum 6 error_txtd_pkt_start_error> 56*5113495bSYour Name <enum 7 error_txfd_pre_phy_tlv_ooo> 57*5113495bSYour Name <enum 8 error_txtd_mu_data_underrun> 58*5113495bSYour Name <enum 9 error_tx_legacy_rate_illegal> 59*5113495bSYour Name <enum 10 error_tx_fifo_error> 60*5113495bSYour Name <enum 11 error_tx_ack_wd_error> 61*5113495bSYour Name <enum 12 error_tx_tpc_miss> 62*5113495bSYour Name <enum 13 error_mac_tx_abort> 63*5113495bSYour Name <enum 14 error_tx_pcss_phy_desc_wdg_timeout> 64*5113495bSYour Name <enum 15 error_unsupported_cbf> 65*5113495bSYour Name <enum 16 error_cv_static_bandwidth_mismatch> 66*5113495bSYour Name <enum 17 error_cv_dynamic_bandwidth_mismatch> 67*5113495bSYour Name <enum 18 error_cv_unsupported_nss_total> 68*5113495bSYour Name <enum 19 error_nss_bf_params_mismatch> 69*5113495bSYour Name <enum 20 error_txbf_fail> 70*5113495bSYour Name <enum 21 error_txbf_snd_fail>This used to be called 'error_illegal_nss.' 71*5113495bSYour Name 72*5113495bSYour Name <enum 22 error_otp_txbf> 73*5113495bSYour Name <enum 23 error_tx_inv_chainmask> 74*5113495bSYour Name <enum 24 error_cv_index_assign_overload>This error indicates 75*5113495bSYour Name that CV prefetch command indicated a CV index that is not 76*5113495bSYour Name available. 77*5113495bSYour Name <enum 25 error_cv_index_delete>This error indicates that 78*5113495bSYour Name CV delete command indicated a CV index that did not contain 79*5113495bSYour Name any valid info 80*5113495bSYour Name <enum 26 error_tx_he_rate_illegal>Error found with the HE 81*5113495bSYour Name transmission parameters 82*5113495bSYour Name <enum 27 error_tx_pcss_wdg_timeout> 83*5113495bSYour Name <enum 28 error_tx_tlv_tag_mismatch> 84*5113495bSYour Name <enum 29 error_tx_cck_fifo_flush> 85*5113495bSYour Name <enum 30 error_tx_no_mac_pkt_end> 86*5113495bSYour Name <enum 31 error_tx_abort_for_mac_war> 87*5113495bSYour Name <enum 32 error_tx_stuck> 88*5113495bSYour Name <enum 33 error_tx_invalid_uplink_tlv> 89*5113495bSYour Name <enum 34 error_txfd_txcck_illegal_tx_rate_error> 90*5113495bSYour Name <enum 35 error_txfd_txcck_underrun_error> 91*5113495bSYour Name <enum 36 error_txfd_mpi_req_grant_error> 92*5113495bSYour Name <enum 37 error_txfd_control_tlv_fifo_ovfl_error> 93*5113495bSYour Name <enum 38 error_txfd_tlv_fifo_overflow_error> 94*5113495bSYour Name <enum 39 error_txfd_data_fifo_underflow_error> 95*5113495bSYour Name <enum 40 error_txfd_data_fifo_overflow_error> 96*5113495bSYour Name <enum 41 error_txfd_service_fifo_overflow_error> 97*5113495bSYour Name <enum 42 error_txfd_he_sigb_fifo_overflow_error> 98*5113495bSYour Name <enum 43 error_txfd_spurious_data_fifo_error> 99*5113495bSYour Name <enum 44 error_txfd_he_siga_fifo_ovfl_error> 100*5113495bSYour Name <enum 45 error_txfd_unknown_tlv_error> 101*5113495bSYour Name <enum 46 error_txfd_mac_response_ordering_error> 102*5113495bSYour Name <enum 47 error_txfd_unexpected_mac_pkt_end_error> 103*5113495bSYour Name <enum 48 error_txfd_tlv_fifo_rd_hang_error>All FIFO read 104*5113495bSYour Name hang errors use this value. 105*5113495bSYour Name <enum 49 error_txfd_tlv_fifo_no_rd_error>All FIFO no read 106*5113495bSYour Name errors use this value. 107*5113495bSYour Name <enum 50 error_txfd_ordering_fifo_no_rd_error> 108*5113495bSYour Name <enum 51 error_txfd_illegal_cf_tlv_error> 109*5113495bSYour Name <enum 52 error_txfd_user_ru_hang_error> 110*5113495bSYour Name <enum 53 error_txfd_stream_ru_hang_error> 111*5113495bSYour Name <enum 54 error_txfd_num_pad_bits_error> 112*5113495bSYour Name <enum 55 error_txfd_phy_abort_ack_wd_to_error> 113*5113495bSYour Name <enum 56 error_txfd_pre_pkt_isr_not_done_before_phy_desc_error> 114*5113495bSYour Name 115*5113495bSYour Name <enum 57 error_txfd_bf_weights_not_ready_error> 116*5113495bSYour Name <enum 58 error_txfd_req_timer_breach_error> 117*5113495bSYour Name <enum 59 error_txfd_wd_to_error> 118*5113495bSYour Name <enum 60 error_txfd_legacy_bf_weights_not_ready_error> 119*5113495bSYour Name <enum 61 error_txfd_axi_slave_to_error> 120*5113495bSYour Name <enum 62 error_txfd_hw_acc_error> 121*5113495bSYour Name <enum 63 error_txfd_txb_req_fifo_underrun_error> 122*5113495bSYour Name <enum 64 error_txfd_unknown_ru_alloc_error> 123*5113495bSYour Name <enum 65 error_txfd_more_user_desc_per_user_tlvs_error> 124*5113495bSYour Name <enum 66 error_txfd_ldpc_param_calc_to_error> 125*5113495bSYour Name <enum 69 error_txfd_cbf_start_before_expect_cbf_clear_error> 126*5113495bSYour Name 127*5113495bSYour Name <enum 70 error_txfd_out_of_range_cbf_user_id_error> 128*5113495bSYour Name <enum 71 error_txfd_less_cbf_data_error> 129*5113495bSYour Name <enum 72 error_txfd_more_cbf_data_error> 130*5113495bSYour Name <enum 73 error_txfd_cbf_done_not_received_error> 131*5113495bSYour Name <enum 74 error_txfd_mpi_cbf_valid_to_error> 132*5113495bSYour Name <enum 75 error_txfd_cbf_start_missing_error> 133*5113495bSYour Name <enum 76 error_txfd_mimo_ctrl_error> 134*5113495bSYour Name <enum 77 error_txfd_cbf_buffer_ovfl_error> 135*5113495bSYour Name <enum 78 error_txfd_dma0_hang_error> 136*5113495bSYour Name <enum 79 error_txfd_dma1_hang_error> 137*5113495bSYour Name <enum 80 error_txfd_b2b_cbf_start_error> 138*5113495bSYour Name <enum 81 error_txfd_b2b_cbf_done_error> 139*5113495bSYour Name <enum 82 error_txfd_unsaved_cv_error> 140*5113495bSYour Name <enum 83 error_txfd_wt_mem_wr_conflict_error> 141*5113495bSYour Name <enum 84 error_txfd_wt_mem_rd_conflict_error> 142*5113495bSYour Name <enum 85 error_txfd_qre_intf_to_error> 143*5113495bSYour Name <enum 86 error_txfd_qre_txbf_stomp_rx_error> 144*5113495bSYour Name <enum 87 error_txfd_qre_rx_stomp_txbf_error> 145*5113495bSYour Name <enum 88 error_txfd_precoding_start_before_bf_param_clr_error> 146*5113495bSYour Name 147*5113495bSYour Name <enum 89 error_txfd_tone_map_lut_rd_conflict_error> 148*5113495bSYour Name <enum 90 error_txfd_precoding_fifo_ovfl_error> 149*5113495bSYour Name <enum 91 error_txfd_precoding_fifo_udfl_error> 150*5113495bSYour Name <enum 92 error_txfd_txbf_axi_slave_to_error> 151*5113495bSYour Name <enum 93 error_txfd_less_prefetch_tlvs_error> 152*5113495bSYour Name <enum 94 error_txfd_more_prefetch_tlvs_error> 153*5113495bSYour Name <enum 95 error_txfd_prefetch_fifo_ovfl_error> 154*5113495bSYour Name <enum 96 error_txfd_prefetch_fifo_udfl_error> 155*5113495bSYour Name <enum 97 error_txfd_precoding_error> 156*5113495bSYour Name <enum 98 error_txfd_cv_ctrl_state_to_error> 157*5113495bSYour Name <enum 99 error_txfd_txbfp_qre_tone_udfl_error> 158*5113495bSYour Name <enum 100 error_txfd_less_bf_param_per_user_tlvs_error> 159*5113495bSYour Name <enum 101 error_txfd_more_bf_param_per_user_tlvs_error> 160*5113495bSYour Name <enum 102 error_txfd_bf_param_common_unexpected_error> 161*5113495bSYour Name <enum 103 error_txfd_less_expect_cbf_per_user_tlvs_error> 162*5113495bSYour Name 163*5113495bSYour Name <enum 104 error_txfd_more_expect_cbf_per_user_tlvs_error> 164*5113495bSYour Name 165*5113495bSYour Name <enum 105 error_txfd_precoding_stg1_stg2_wait_to_error> 166*5113495bSYour Name <enum 106 error_txfd_expect_cbf_per_user_before_common_error> 167*5113495bSYour Name 168*5113495bSYour Name <enum 107 error_txfd_prefetch_per_user_before_common_error> 169*5113495bSYour Name 170*5113495bSYour Name <enum 108 error_txfd_bf_param_per_user_before_common_error> 171*5113495bSYour Name 172*5113495bSYour Name <enum 109 error_txfd_ndp_cbf_bw_mismatch_error> 173*5113495bSYour Name <enum 110 error_txtd_tx_pre_desc_error> 174*5113495bSYour Name <enum 111 error_txtd_tx_desc_error> 175*5113495bSYour Name <enum 112 error_txtd_start_error> 176*5113495bSYour Name <enum 113 error_txtd_sym_error> 177*5113495bSYour Name <enum 114 error_txtd_multi_sym_error> 178*5113495bSYour Name <enum 115 error_txtd_pre_data_error> 179*5113495bSYour Name <enum 116 error_txtd_pkt_data_error> 180*5113495bSYour Name <enum 117 error_txtd_pkt_end_error> 181*5113495bSYour Name <enum 118 error_txtd_tx_frame_unexp> 182*5113495bSYour Name <enum 119 error_txtd_start_unexp> 183*5113495bSYour Name <enum 120 error_txtd_fft_error_1> 184*5113495bSYour Name <enum 121 error_txtd_fft_error_2> 185*5113495bSYour Name <enum 122 error_txtd_uld_sym_cp_len_zero> 186*5113495bSYour Name <enum 123 error_txtd_start_done> 187*5113495bSYour Name <enum 124 error_txtd_start_nonidle> 188*5113495bSYour Name <enum 125 error_txtd_tx_abort_nonidle> 189*5113495bSYour Name <enum 126 error_txtd_tx_abort_done> 190*5113495bSYour Name <enum 127 error_txtd_tx_abort_idle> 191*5113495bSYour Name <enum 128 error_txtd_cck_sample_overflow> 192*5113495bSYour Name <enum 129 error_txtd_cck_timeout> 193*5113495bSYour Name <enum 130 error_txtd_ofdm_sym_mismatch> 194*5113495bSYour Name <enum 131 error_txtd_tx_vld_unalign_error> 195*5113495bSYour Name <enum 132 error_txtd_fft_cdc_fifo>This is the merged Rx/Tx 196*5113495bSYour Name CDC FIFO empty/full error code 197*5113495bSYour Name <enum 133 error_mac_tb_ppdu_abort>All 'error_txtd_chn' codes 198*5113495bSYour Name use this value as well. 199*5113495bSYour Name <enum 136 error_abort_req_from_macrx_enum_05>This code is 200*5113495bSYour Name used to abort the Tx when MAC Rx issues an abort request 201*5113495bSYour Name with code 05 "macrx_abort_too_much_bad_data." 202*5113495bSYour Name <enum 137 error_tx_extra_sym_mismatch> 203*5113495bSYour Name <enum 138 error_tx_vht_length_not_multiple_of_3> 204*5113495bSYour Name <enum 139 error_tx_11b_rate_illegal> 205*5113495bSYour Name <enum 140 error_tx_ht_rate_illegal> 206*5113495bSYour Name <enum 141 error_tx_vht_rate_illegal> 207*5113495bSYour Name <enum 142 error_mac_rf_only_abort> 208*5113495bSYour Name <enum 255 error_tx_invalid_error_code> 209*5113495bSYour Name */ 210*5113495bSYour Name 211*5113495bSYour Name #define PHYTX_ABORT_REQUEST_INFO_PHYTX_ABORT_REASON_OFFSET 0x00000000 212*5113495bSYour Name #define PHYTX_ABORT_REQUEST_INFO_PHYTX_ABORT_REASON_LSB 0 213*5113495bSYour Name #define PHYTX_ABORT_REQUEST_INFO_PHYTX_ABORT_REASON_MSB 7 214*5113495bSYour Name #define PHYTX_ABORT_REQUEST_INFO_PHYTX_ABORT_REASON_MASK 0x000000ff 215*5113495bSYour Name 216*5113495bSYour Name 217*5113495bSYour Name /* Description USER_NUMBER 218*5113495bSYour Name 219*5113495bSYour Name For some errors, the user for which this error was detected 220*5113495bSYour Name can be indicated in this field. 221*5113495bSYour Name <legal 0-36> 222*5113495bSYour Name */ 223*5113495bSYour Name 224*5113495bSYour Name #define PHYTX_ABORT_REQUEST_INFO_USER_NUMBER_OFFSET 0x00000000 225*5113495bSYour Name #define PHYTX_ABORT_REQUEST_INFO_USER_NUMBER_LSB 8 226*5113495bSYour Name #define PHYTX_ABORT_REQUEST_INFO_USER_NUMBER_MSB 13 227*5113495bSYour Name #define PHYTX_ABORT_REQUEST_INFO_USER_NUMBER_MASK 0x00003f00 228*5113495bSYour Name 229*5113495bSYour Name 230*5113495bSYour Name /* Description RESERVED 231*5113495bSYour Name 232*5113495bSYour Name <legal 0> 233*5113495bSYour Name */ 234*5113495bSYour Name 235*5113495bSYour Name #define PHYTX_ABORT_REQUEST_INFO_RESERVED_OFFSET 0x00000000 236*5113495bSYour Name #define PHYTX_ABORT_REQUEST_INFO_RESERVED_LSB 14 237*5113495bSYour Name #define PHYTX_ABORT_REQUEST_INFO_RESERVED_MSB 15 238*5113495bSYour Name #define PHYTX_ABORT_REQUEST_INFO_RESERVED_MASK 0x0000c000 239*5113495bSYour Name 240*5113495bSYour Name 241*5113495bSYour Name 242*5113495bSYour Name #endif // PHYTX_ABORT_REQUEST_INFO 243