xref: /wlan-driver/fw-api/hw/qcn6432/phytx_abort_request_info.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
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