phytx_abort_request_info.h 10 KB

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