tx_fes_status_prot.h 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861
  1. /*
  2. * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
  3. *
  4. * Permission to use, copy, modify, and/or distribute this software for any
  5. * purpose with or without fee is hereby granted, provided that the above
  6. * copyright notice and this permission notice appear in all copies.
  7. *
  8. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  9. * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  10. * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  11. * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  12. * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  13. * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  14. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  15. */
  16. #ifndef _TX_FES_STATUS_PROT_H_
  17. #define _TX_FES_STATUS_PROT_H_
  18. #if !defined(__ASSEMBLER__)
  19. #endif
  20. #include "phytx_abort_request_info.h"
  21. #define NUM_OF_DWORDS_TX_FES_STATUS_PROT 14
  22. #define NUM_OF_QWORDS_TX_FES_STATUS_PROT 7
  23. struct tx_fes_status_prot {
  24. #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
  25. uint32_t success : 1, // [0:0]
  26. phytx_pkt_end_info_valid : 1, // [1:1]
  27. phytx_abort_request_info_valid : 1, // [2:2]
  28. reserved_0 : 20, // [22:3]
  29. pkt_type : 4, // [26:23]
  30. dot11ax_su_extended : 1, // [27:27]
  31. rate_mcs : 4; // [31:28]
  32. uint32_t frame_type : 2, // [1:0]
  33. frame_subtype : 4, // [5:2]
  34. rx_pwr_mgmt : 1, // [6:6]
  35. status : 1, // [7:7]
  36. duration_field : 16, // [23:8]
  37. reserved_1a : 2, // [25:24]
  38. agc_cbw : 3, // [28:26]
  39. service_cbw : 3; // [31:29]
  40. uint32_t start_of_frame_timestamp_15_0 : 16, // [15:0]
  41. start_of_frame_timestamp_31_16 : 16; // [31:16]
  42. uint32_t end_of_frame_timestamp_15_0 : 16, // [15:0]
  43. end_of_frame_timestamp_31_16 : 16; // [31:16]
  44. uint32_t tx_group_delay : 12, // [11:0]
  45. timing_status : 2, // [13:12]
  46. dpdtrain_done : 1, // [14:14]
  47. reserved_4 : 1, // [15:15]
  48. transmit_delay : 16; // [31:16]
  49. uint32_t tpc_dbg_info_cmn_15_0 : 16, // [15:0]
  50. tpc_dbg_info_cmn_31_16 : 16; // [31:16]
  51. uint32_t tpc_dbg_info_cmn_47_32 : 16, // [15:0]
  52. tpc_dbg_info_chn1_15_0 : 16; // [31:16]
  53. uint32_t tpc_dbg_info_chn1_31_16 : 16, // [15:0]
  54. tpc_dbg_info_chn1_47_32 : 16; // [31:16]
  55. uint32_t tpc_dbg_info_chn1_63_48 : 16, // [15:0]
  56. tpc_dbg_info_chn1_79_64 : 16; // [31:16]
  57. uint32_t tpc_dbg_info_chn2_15_0 : 16, // [15:0]
  58. tpc_dbg_info_chn2_31_16 : 16; // [31:16]
  59. uint32_t tpc_dbg_info_chn2_47_32 : 16, // [15:0]
  60. tpc_dbg_info_chn2_63_48 : 16; // [31:16]
  61. uint32_t tpc_dbg_info_chn2_79_64 : 16; // [15:0]
  62. struct phytx_abort_request_info phytx_abort_request_info_details;
  63. uint32_t phytx_tx_end_sw_info_15_0 : 16, // [15:0]
  64. phytx_tx_end_sw_info_31_16 : 16; // [31:16]
  65. uint32_t phytx_tx_end_sw_info_47_32 : 16, // [15:0]
  66. phytx_tx_end_sw_info_63_48 : 16; // [31:16]
  67. #else
  68. uint32_t rate_mcs : 4, // [31:28]
  69. dot11ax_su_extended : 1, // [27:27]
  70. pkt_type : 4, // [26:23]
  71. reserved_0 : 20, // [22:3]
  72. phytx_abort_request_info_valid : 1, // [2:2]
  73. phytx_pkt_end_info_valid : 1, // [1:1]
  74. success : 1; // [0:0]
  75. uint32_t service_cbw : 3, // [31:29]
  76. agc_cbw : 3, // [28:26]
  77. reserved_1a : 2, // [25:24]
  78. duration_field : 16, // [23:8]
  79. status : 1, // [7:7]
  80. rx_pwr_mgmt : 1, // [6:6]
  81. frame_subtype : 4, // [5:2]
  82. frame_type : 2; // [1:0]
  83. uint32_t start_of_frame_timestamp_31_16 : 16, // [31:16]
  84. start_of_frame_timestamp_15_0 : 16; // [15:0]
  85. uint32_t end_of_frame_timestamp_31_16 : 16, // [31:16]
  86. end_of_frame_timestamp_15_0 : 16; // [15:0]
  87. uint32_t transmit_delay : 16, // [31:16]
  88. reserved_4 : 1, // [15:15]
  89. dpdtrain_done : 1, // [14:14]
  90. timing_status : 2, // [13:12]
  91. tx_group_delay : 12; // [11:0]
  92. uint32_t tpc_dbg_info_cmn_31_16 : 16, // [31:16]
  93. tpc_dbg_info_cmn_15_0 : 16; // [15:0]
  94. uint32_t tpc_dbg_info_chn1_15_0 : 16, // [31:16]
  95. tpc_dbg_info_cmn_47_32 : 16; // [15:0]
  96. uint32_t tpc_dbg_info_chn1_47_32 : 16, // [31:16]
  97. tpc_dbg_info_chn1_31_16 : 16; // [15:0]
  98. uint32_t tpc_dbg_info_chn1_79_64 : 16, // [31:16]
  99. tpc_dbg_info_chn1_63_48 : 16; // [15:0]
  100. uint32_t tpc_dbg_info_chn2_31_16 : 16, // [31:16]
  101. tpc_dbg_info_chn2_15_0 : 16; // [15:0]
  102. uint32_t tpc_dbg_info_chn2_63_48 : 16, // [31:16]
  103. tpc_dbg_info_chn2_47_32 : 16; // [15:0]
  104. struct phytx_abort_request_info phytx_abort_request_info_details;
  105. uint16_t tpc_dbg_info_chn2_79_64 : 16; // [15:0]
  106. uint32_t phytx_tx_end_sw_info_31_16 : 16, // [31:16]
  107. phytx_tx_end_sw_info_15_0 : 16; // [15:0]
  108. uint32_t phytx_tx_end_sw_info_63_48 : 16, // [31:16]
  109. phytx_tx_end_sw_info_47_32 : 16; // [15:0]
  110. #endif
  111. };
  112. /* Description SUCCESS
  113. When set, protection response has been received
  114. */
  115. #define TX_FES_STATUS_PROT_SUCCESS_OFFSET 0x0000000000000000
  116. #define TX_FES_STATUS_PROT_SUCCESS_LSB 0
  117. #define TX_FES_STATUS_PROT_SUCCESS_MSB 0
  118. #define TX_FES_STATUS_PROT_SUCCESS_MASK 0x0000000000000001
  119. /* Description PHYTX_PKT_END_INFO_VALID
  120. All the fields originating from PHYTX_PKT_END TLV contain
  121. valid info
  122. */
  123. #define TX_FES_STATUS_PROT_PHYTX_PKT_END_INFO_VALID_OFFSET 0x0000000000000000
  124. #define TX_FES_STATUS_PROT_PHYTX_PKT_END_INFO_VALID_LSB 1
  125. #define TX_FES_STATUS_PROT_PHYTX_PKT_END_INFO_VALID_MSB 1
  126. #define TX_FES_STATUS_PROT_PHYTX_PKT_END_INFO_VALID_MASK 0x0000000000000002
  127. /* Description PHYTX_ABORT_REQUEST_INFO_VALID
  128. Field Phytx_abort_request_info_details contains valid info
  129. */
  130. #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_VALID_OFFSET 0x0000000000000000
  131. #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_VALID_LSB 2
  132. #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_VALID_MSB 2
  133. #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_VALID_MASK 0x0000000000000004
  134. /* Description RESERVED_0
  135. <legal 0>
  136. */
  137. #define TX_FES_STATUS_PROT_RESERVED_0_OFFSET 0x0000000000000000
  138. #define TX_FES_STATUS_PROT_RESERVED_0_LSB 3
  139. #define TX_FES_STATUS_PROT_RESERVED_0_MSB 22
  140. #define TX_FES_STATUS_PROT_RESERVED_0_MASK 0x00000000007ffff8
  141. /* Description PKT_TYPE
  142. Field only valid when success is set
  143. Source of the info here is the 'RECEIVED_RESPONSE_INFO'
  144. TLV.
  145. Packet type:
  146. <enum 0 dot11a>802.11a PPDU type
  147. <enum 1 dot11b>802.11b PPDU type
  148. <enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
  149. <enum 3 dot11ac>802.11ac PPDU type
  150. <enum 4 dot11ax>802.11ax PPDU type
  151. <enum 5 dot11ba>802.11ba (WUR) PPDU type
  152. <enum 6 dot11be>802.11be PPDU type
  153. <enum 7 dot11az>802.11az (ranging) PPDU type
  154. <enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
  155. & aborted)
  156. */
  157. #define TX_FES_STATUS_PROT_PKT_TYPE_OFFSET 0x0000000000000000
  158. #define TX_FES_STATUS_PROT_PKT_TYPE_LSB 23
  159. #define TX_FES_STATUS_PROT_PKT_TYPE_MSB 26
  160. #define TX_FES_STATUS_PROT_PKT_TYPE_MASK 0x0000000007800000
  161. /* Description DOT11AX_SU_EXTENDED
  162. Field only valid when success is set and pkt_type == 11ax
  163. OR pkt_type == 11be
  164. Source of the info here is the 'RECEIVED_RESPONSE_INFO'
  165. TLV.
  166. When set, the 11ax or 11be reception was an extended range
  167. SU
  168. */
  169. #define TX_FES_STATUS_PROT_DOT11AX_SU_EXTENDED_OFFSET 0x0000000000000000
  170. #define TX_FES_STATUS_PROT_DOT11AX_SU_EXTENDED_LSB 27
  171. #define TX_FES_STATUS_PROT_DOT11AX_SU_EXTENDED_MSB 27
  172. #define TX_FES_STATUS_PROT_DOT11AX_SU_EXTENDED_MASK 0x0000000008000000
  173. /* Description RATE_MCS
  174. Field only valid when success is set
  175. Source of the info here is the 'RECEIVED_RESPONSE_INFO'
  176. TLV.
  177. For details, refer to MCS_TYPE description
  178. Note: This is "rate" in case of 11a/11b
  179. <legal all>
  180. */
  181. #define TX_FES_STATUS_PROT_RATE_MCS_OFFSET 0x0000000000000000
  182. #define TX_FES_STATUS_PROT_RATE_MCS_LSB 28
  183. #define TX_FES_STATUS_PROT_RATE_MCS_MSB 31
  184. #define TX_FES_STATUS_PROT_RATE_MCS_MASK 0x00000000f0000000
  185. /* Description FRAME_TYPE
  186. Field only valid when 'success' is set.
  187. Source of the info here is the RECEIVED_RESPONSE_INFO TLV
  188. 802.11 frame type field
  189. This field applies for 11ah as well.
  190. */
  191. #define TX_FES_STATUS_PROT_FRAME_TYPE_OFFSET 0x0000000000000000
  192. #define TX_FES_STATUS_PROT_FRAME_TYPE_LSB 32
  193. #define TX_FES_STATUS_PROT_FRAME_TYPE_MSB 33
  194. #define TX_FES_STATUS_PROT_FRAME_TYPE_MASK 0x0000000300000000
  195. /* Description FRAME_SUBTYPE
  196. Field only valid when 'success' is set.
  197. Source of the info here is the RECEIVED_RESPONSE_INFO TLV
  198. 802.11 frame subtype field
  199. This field applies for 11ah as well.
  200. */
  201. #define TX_FES_STATUS_PROT_FRAME_SUBTYPE_OFFSET 0x0000000000000000
  202. #define TX_FES_STATUS_PROT_FRAME_SUBTYPE_LSB 34
  203. #define TX_FES_STATUS_PROT_FRAME_SUBTYPE_MSB 37
  204. #define TX_FES_STATUS_PROT_FRAME_SUBTYPE_MASK 0x0000003c00000000
  205. /* Description RX_PWR_MGMT
  206. Field only valid when 'success' is set.
  207. Source of the info here is the RECEIVED_RESPONSE_INFO TLV
  208. Power Management bit extracted from the header of the received
  209. frame.
  210. */
  211. #define TX_FES_STATUS_PROT_RX_PWR_MGMT_OFFSET 0x0000000000000000
  212. #define TX_FES_STATUS_PROT_RX_PWR_MGMT_LSB 38
  213. #define TX_FES_STATUS_PROT_RX_PWR_MGMT_MSB 38
  214. #define TX_FES_STATUS_PROT_RX_PWR_MGMT_MASK 0x0000004000000000
  215. /* Description STATUS
  216. Field only valid when 'success' is set.
  217. Source of the info here is the RECEIVED_RESPONSE_INFO TLV
  218. If set indicates that receive packet passed FCS check.
  219. */
  220. #define TX_FES_STATUS_PROT_STATUS_OFFSET 0x0000000000000000
  221. #define TX_FES_STATUS_PROT_STATUS_LSB 39
  222. #define TX_FES_STATUS_PROT_STATUS_MSB 39
  223. #define TX_FES_STATUS_PROT_STATUS_MASK 0x0000008000000000
  224. /* Description DURATION_FIELD
  225. Field only valid when 'success' is set.
  226. Source of the info here is the RECEIVED_RESPONSE_INFO TLV
  227. The contents of the duration field of the received frame.
  228. <legal all>
  229. */
  230. #define TX_FES_STATUS_PROT_DURATION_FIELD_OFFSET 0x0000000000000000
  231. #define TX_FES_STATUS_PROT_DURATION_FIELD_LSB 40
  232. #define TX_FES_STATUS_PROT_DURATION_FIELD_MSB 55
  233. #define TX_FES_STATUS_PROT_DURATION_FIELD_MASK 0x00ffff0000000000
  234. /* Description RESERVED_1A
  235. <legal 0>
  236. */
  237. #define TX_FES_STATUS_PROT_RESERVED_1A_OFFSET 0x0000000000000000
  238. #define TX_FES_STATUS_PROT_RESERVED_1A_LSB 56
  239. #define TX_FES_STATUS_PROT_RESERVED_1A_MSB 57
  240. #define TX_FES_STATUS_PROT_RESERVED_1A_MASK 0x0300000000000000
  241. /* Description AGC_CBW
  242. Field only valid when 'success' is set.
  243. Source of the info here is the RECEIVED_RESPONSE_INFO TLV
  244. BW as detected by the AGC
  245. <enum 0 20_mhz>20 Mhz BW
  246. <enum 1 40_mhz>40 Mhz BW
  247. <enum 2 80_mhz>80 Mhz BW
  248. <enum 3 160_mhz>160 Mhz BW
  249. <enum 4 320_mhz>320 Mhz BW
  250. <enum 5 240_mhz>240 Mhz BW
  251. */
  252. #define TX_FES_STATUS_PROT_AGC_CBW_OFFSET 0x0000000000000000
  253. #define TX_FES_STATUS_PROT_AGC_CBW_LSB 58
  254. #define TX_FES_STATUS_PROT_AGC_CBW_MSB 60
  255. #define TX_FES_STATUS_PROT_AGC_CBW_MASK 0x1c00000000000000
  256. /* Description SERVICE_CBW
  257. Field only valid when 'success' is set.
  258. Source of the info here is the RECEIVED_RESPONSE_INFO TLV
  259. This field reflects the BW extracted from the Serivce Field
  260. for 11ac mode of operation .
  261. This field is used in the context of Dynamic/Static BW evaluation
  262. purposes in TxPCU
  263. CBW field extracted from Service field
  264. <enum 0 20_mhz>20 Mhz BW
  265. <enum 1 40_mhz>40 Mhz BW
  266. <enum 2 80_mhz>80 Mhz BW
  267. <enum 3 160_mhz>160 Mhz BW
  268. <enum 4 320_mhz>320 Mhz BW
  269. <enum 5 240_mhz>240 Mhz BW
  270. */
  271. #define TX_FES_STATUS_PROT_SERVICE_CBW_OFFSET 0x0000000000000000
  272. #define TX_FES_STATUS_PROT_SERVICE_CBW_LSB 61
  273. #define TX_FES_STATUS_PROT_SERVICE_CBW_MSB 63
  274. #define TX_FES_STATUS_PROT_SERVICE_CBW_MASK 0xe000000000000000
  275. /* Description START_OF_FRAME_TIMESTAMP_15_0
  276. PHYTX_PKT_END info
  277. Field only valid when PHYTX_PKT_END_info_valid is set
  278. bits 15:0 of a 64 bit time stamp
  279. Start of frame in the medium @960 MHz
  280. <legal all>
  281. */
  282. #define TX_FES_STATUS_PROT_START_OF_FRAME_TIMESTAMP_15_0_OFFSET 0x0000000000000008
  283. #define TX_FES_STATUS_PROT_START_OF_FRAME_TIMESTAMP_15_0_LSB 0
  284. #define TX_FES_STATUS_PROT_START_OF_FRAME_TIMESTAMP_15_0_MSB 15
  285. #define TX_FES_STATUS_PROT_START_OF_FRAME_TIMESTAMP_15_0_MASK 0x000000000000ffff
  286. /* Description START_OF_FRAME_TIMESTAMP_31_16
  287. PHYTX_PKT_END info
  288. Field only valid when PHYTX_PKT_END_info_valid is set
  289. bits 31:16 of a 64 bit time stamp
  290. Start of frame in the medium @960 MHz
  291. <legal all>
  292. */
  293. #define TX_FES_STATUS_PROT_START_OF_FRAME_TIMESTAMP_31_16_OFFSET 0x0000000000000008
  294. #define TX_FES_STATUS_PROT_START_OF_FRAME_TIMESTAMP_31_16_LSB 16
  295. #define TX_FES_STATUS_PROT_START_OF_FRAME_TIMESTAMP_31_16_MSB 31
  296. #define TX_FES_STATUS_PROT_START_OF_FRAME_TIMESTAMP_31_16_MASK 0x00000000ffff0000
  297. /* Description END_OF_FRAME_TIMESTAMP_15_0
  298. PHYTX_PKT_END info
  299. Field only valid when PHYTX_PKT_END_info_valid is set
  300. bits 15:0 of a 64 bit time stamp
  301. End of frame in the medium @960 MHz
  302. <legal all>
  303. */
  304. #define TX_FES_STATUS_PROT_END_OF_FRAME_TIMESTAMP_15_0_OFFSET 0x0000000000000008
  305. #define TX_FES_STATUS_PROT_END_OF_FRAME_TIMESTAMP_15_0_LSB 32
  306. #define TX_FES_STATUS_PROT_END_OF_FRAME_TIMESTAMP_15_0_MSB 47
  307. #define TX_FES_STATUS_PROT_END_OF_FRAME_TIMESTAMP_15_0_MASK 0x0000ffff00000000
  308. /* Description END_OF_FRAME_TIMESTAMP_31_16
  309. PHYTX_PKT_END info
  310. Field only valid when PHYTX_PKT_END_info_valid is set
  311. bits 31:16 of a 64 bit time stamp
  312. End of frame in the medium @960 MHz
  313. <legal all>
  314. */
  315. #define TX_FES_STATUS_PROT_END_OF_FRAME_TIMESTAMP_31_16_OFFSET 0x0000000000000008
  316. #define TX_FES_STATUS_PROT_END_OF_FRAME_TIMESTAMP_31_16_LSB 48
  317. #define TX_FES_STATUS_PROT_END_OF_FRAME_TIMESTAMP_31_16_MSB 63
  318. #define TX_FES_STATUS_PROT_END_OF_FRAME_TIMESTAMP_31_16_MASK 0xffff000000000000
  319. /* Description TX_GROUP_DELAY
  320. PHYTX_PKT_END info
  321. Field only valid when PHYTX_PKT_END_info_valid is set
  322. Group delay on TxTD+PHYRF path for this PPDU (packet BW
  323. dependent), useful for RTT
  324. Unit is 960MHz cycles.
  325. <legal all>
  326. */
  327. #define TX_FES_STATUS_PROT_TX_GROUP_DELAY_OFFSET 0x0000000000000010
  328. #define TX_FES_STATUS_PROT_TX_GROUP_DELAY_LSB 0
  329. #define TX_FES_STATUS_PROT_TX_GROUP_DELAY_MSB 11
  330. #define TX_FES_STATUS_PROT_TX_GROUP_DELAY_MASK 0x0000000000000fff
  331. /* Description TIMING_STATUS
  332. PHYTX_PKT_END info
  333. Field only valid when PHYTX_PKT_END_info_valid is set
  334. <enum 0 No_tx_timing_request> The MAC did not request for
  335. the transmission to start at a particular time
  336. <enum 1 successful_tx_timing > MAC did request for transmission
  337. to start at a particular time and PHY was able to do so.
  338. <enum 2 tx_timing_not_honoured> PHY was not able to honour
  339. the requested transmit time by the MAC. The transmission
  340. started later, and field transmit_delay indicates how much
  341. later.
  342. <legal 0-2>
  343. */
  344. #define TX_FES_STATUS_PROT_TIMING_STATUS_OFFSET 0x0000000000000010
  345. #define TX_FES_STATUS_PROT_TIMING_STATUS_LSB 12
  346. #define TX_FES_STATUS_PROT_TIMING_STATUS_MSB 13
  347. #define TX_FES_STATUS_PROT_TIMING_STATUS_MASK 0x0000000000003000
  348. /* Description DPDTRAIN_DONE
  349. Field only valid when PHYTX_PKT_END_info_valid is set
  350. For DPD Training packets, this bit is set to indicate that
  351. DPD Training was successfully run to completion. Also
  352. reused by Implicit BF Calibration Packets. This bit is intended
  353. for debug purposes.
  354. <legal all>
  355. */
  356. #define TX_FES_STATUS_PROT_DPDTRAIN_DONE_OFFSET 0x0000000000000010
  357. #define TX_FES_STATUS_PROT_DPDTRAIN_DONE_LSB 14
  358. #define TX_FES_STATUS_PROT_DPDTRAIN_DONE_MSB 14
  359. #define TX_FES_STATUS_PROT_DPDTRAIN_DONE_MASK 0x0000000000004000
  360. /* Description RESERVED_4
  361. PHYTX_PKT_END info
  362. <legal 0>
  363. */
  364. #define TX_FES_STATUS_PROT_RESERVED_4_OFFSET 0x0000000000000010
  365. #define TX_FES_STATUS_PROT_RESERVED_4_LSB 15
  366. #define TX_FES_STATUS_PROT_RESERVED_4_MSB 15
  367. #define TX_FES_STATUS_PROT_RESERVED_4_MASK 0x0000000000008000
  368. /* Description TRANSMIT_DELAY
  369. PHYTX_PKT_END info
  370. The number of 480 MHz clock cycles that the transmission
  371. started after the actual requested transmit start time.
  372. Value saturates at 0xFFFF
  373. <legal all>
  374. */
  375. #define TX_FES_STATUS_PROT_TRANSMIT_DELAY_OFFSET 0x0000000000000010
  376. #define TX_FES_STATUS_PROT_TRANSMIT_DELAY_LSB 16
  377. #define TX_FES_STATUS_PROT_TRANSMIT_DELAY_MSB 31
  378. #define TX_FES_STATUS_PROT_TRANSMIT_DELAY_MASK 0x00000000ffff0000
  379. /* Description TPC_DBG_INFO_CMN_15_0
  380. PHYTX_PKT_END info
  381. Field only valid when PHYTX_PKT_END_info_valid is set
  382. Some TPC debug info that PHY can pass back to MAC FW
  383. <legal all>
  384. */
  385. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CMN_15_0_OFFSET 0x0000000000000010
  386. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CMN_15_0_LSB 32
  387. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CMN_15_0_MSB 47
  388. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CMN_15_0_MASK 0x0000ffff00000000
  389. /* Description TPC_DBG_INFO_CMN_31_16
  390. PHYTX_PKT_END info
  391. Field only valid when PHYTX_PKT_END_info_valid is set
  392. Some TPC debug info that PHY can pass back to MAC FW
  393. <legal all>
  394. */
  395. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CMN_31_16_OFFSET 0x0000000000000010
  396. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CMN_31_16_LSB 48
  397. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CMN_31_16_MSB 63
  398. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CMN_31_16_MASK 0xffff000000000000
  399. /* Description TPC_DBG_INFO_CMN_47_32
  400. PHYTX_PKT_END info
  401. Field only valid when PHYTX_PKT_END_info_valid is set
  402. Some TPC debug info that PHY can pass back to MAC FW
  403. <legal all>
  404. */
  405. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CMN_47_32_OFFSET 0x0000000000000018
  406. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CMN_47_32_LSB 0
  407. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CMN_47_32_MSB 15
  408. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CMN_47_32_MASK 0x000000000000ffff
  409. /* Description TPC_DBG_INFO_CHN1_15_0
  410. PHYTX_PKT_END info
  411. Field only valid when PHYTX_PKT_END_info_valid is set
  412. Some per-chain TPC debug info for the first selected chain
  413. that PHY can pass back to MAC FW
  414. <legal all>
  415. */
  416. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_15_0_OFFSET 0x0000000000000018
  417. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_15_0_LSB 16
  418. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_15_0_MSB 31
  419. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_15_0_MASK 0x00000000ffff0000
  420. /* Description TPC_DBG_INFO_CHN1_31_16
  421. PHYTX_PKT_END info
  422. Field only valid when PHYTX_PKT_END_info_valid is set
  423. Some per-chain TPC debug info for the first selected chain
  424. that PHY can pass back to MAC FW
  425. <legal all>
  426. */
  427. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_31_16_OFFSET 0x0000000000000018
  428. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_31_16_LSB 32
  429. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_31_16_MSB 47
  430. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_31_16_MASK 0x0000ffff00000000
  431. /* Description TPC_DBG_INFO_CHN1_47_32
  432. PHYTX_PKT_END info
  433. Field only valid when PHYTX_PKT_END_info_valid is set
  434. Some per-chain TPC debug info for the first selected chain
  435. that PHY can pass back to MAC FW
  436. <legal all>
  437. */
  438. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_47_32_OFFSET 0x0000000000000018
  439. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_47_32_LSB 48
  440. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_47_32_MSB 63
  441. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_47_32_MASK 0xffff000000000000
  442. /* Description TPC_DBG_INFO_CHN1_63_48
  443. PHYTX_PKT_END info
  444. Field only valid when PHYTX_PKT_END_info_valid is set
  445. Some per-chain TPC debug info for the first selected chain
  446. that PHY can pass back to MAC FW
  447. <legal all>
  448. */
  449. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_63_48_OFFSET 0x0000000000000020
  450. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_63_48_LSB 0
  451. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_63_48_MSB 15
  452. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_63_48_MASK 0x000000000000ffff
  453. /* Description TPC_DBG_INFO_CHN1_79_64
  454. PHYTX_PKT_END info
  455. Field only valid when PHYTX_PKT_END_info_valid is set
  456. Some per-chain TPC debug info for the first selected chain
  457. that PHY can pass back to MAC FW
  458. <legal all>
  459. */
  460. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_79_64_OFFSET 0x0000000000000020
  461. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_79_64_LSB 16
  462. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_79_64_MSB 31
  463. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN1_79_64_MASK 0x00000000ffff0000
  464. /* Description TPC_DBG_INFO_CHN2_15_0
  465. PHYTX_PKT_END info
  466. Field only valid when PHYTX_PKT_END_info_valid is set
  467. Some per-chain TPC debug info for the second selected chain
  468. that PHY can pass back to MAC FW
  469. <legal all>
  470. */
  471. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_15_0_OFFSET 0x0000000000000020
  472. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_15_0_LSB 32
  473. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_15_0_MSB 47
  474. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_15_0_MASK 0x0000ffff00000000
  475. /* Description TPC_DBG_INFO_CHN2_31_16
  476. PHYTX_PKT_END info
  477. Field only valid when PHYTX_PKT_END_info_valid is set
  478. Some per-chain TPC debug info for the second selected chain
  479. that PHY can pass back to MAC FW
  480. <legal all>
  481. */
  482. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_31_16_OFFSET 0x0000000000000020
  483. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_31_16_LSB 48
  484. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_31_16_MSB 63
  485. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_31_16_MASK 0xffff000000000000
  486. /* Description TPC_DBG_INFO_CHN2_47_32
  487. PHYTX_PKT_END info
  488. Field only valid when PHYTX_PKT_END_info_valid is set
  489. Some per-chain TPC debug info for the second selected chain
  490. that PHY can pass back to MAC FW
  491. <legal all>
  492. */
  493. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_47_32_OFFSET 0x0000000000000028
  494. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_47_32_LSB 0
  495. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_47_32_MSB 15
  496. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_47_32_MASK 0x000000000000ffff
  497. /* Description TPC_DBG_INFO_CHN2_63_48
  498. PHYTX_PKT_END info
  499. Field only valid when PHYTX_PKT_END_info_valid is set
  500. Some per-chain TPC debug info for the second selected chain
  501. that PHY can pass back to MAC FW
  502. <legal all>
  503. */
  504. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_63_48_OFFSET 0x0000000000000028
  505. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_63_48_LSB 16
  506. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_63_48_MSB 31
  507. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_63_48_MASK 0x00000000ffff0000
  508. /* Description TPC_DBG_INFO_CHN2_79_64
  509. PHYTX_PKT_END info
  510. Field only valid when PHYTX_PKT_END_info_valid is set
  511. Some per-chain TPC debug info for the second selected chain
  512. that PHY can pass back to MAC FW
  513. <legal all>
  514. */
  515. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_79_64_OFFSET 0x0000000000000028
  516. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_79_64_LSB 32
  517. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_79_64_MSB 47
  518. #define TX_FES_STATUS_PROT_TPC_DBG_INFO_CHN2_79_64_MASK 0x0000ffff00000000
  519. /* Description PHYTX_ABORT_REQUEST_INFO_DETAILS
  520. Field only valid when PHYTX_ABORT_REQUEST_info_valid is
  521. set
  522. The reason why PHYTX is requested an abort
  523. */
  524. /* Description PHYTX_ABORT_REASON
  525. Reason for early termination of TX packet by the PHY
  526. <enum_type PHYTX_ABORT_ENUM>
  527. */
  528. #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_OFFSET 0x0000000000000028
  529. #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_LSB 48
  530. #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_MSB 55
  531. #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_MASK 0x00ff000000000000
  532. /* Description USER_NUMBER
  533. For some errors, the user for which this error was detected
  534. can be indicated in this field.
  535. <legal 0-36>
  536. */
  537. #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_OFFSET 0x0000000000000028
  538. #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_LSB 56
  539. #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_MSB 61
  540. #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_MASK 0x3f00000000000000
  541. /* Description RESERVED
  542. <legal 0>
  543. */
  544. #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_OFFSET 0x0000000000000028
  545. #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_LSB 62
  546. #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_MSB 63
  547. #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_MASK 0xc000000000000000
  548. /* Description PHYTX_TX_END_SW_INFO_15_0
  549. PHYTX_PKT_END info
  550. Field only valid when PHYTX_PKT_END_info_valid is set
  551. Some PHY status data that PHY microcode can pass back to
  552. MAC FW, for any future requests, e.g. any DMA download
  553. time
  554. <legal all>
  555. */
  556. #define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_15_0_OFFSET 0x0000000000000030
  557. #define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_15_0_LSB 0
  558. #define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_15_0_MSB 15
  559. #define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_15_0_MASK 0x000000000000ffff
  560. /* Description PHYTX_TX_END_SW_INFO_31_16
  561. PHYTX_PKT_END info
  562. Field only valid when PHYTX_PKT_END_info_valid is set
  563. Some PHY status data that PHY microcode can pass back to
  564. MAC FW, for any future requests, e.g. any DMA download
  565. time
  566. <legal all>
  567. */
  568. #define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_31_16_OFFSET 0x0000000000000030
  569. #define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_31_16_LSB 16
  570. #define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_31_16_MSB 31
  571. #define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_31_16_MASK 0x00000000ffff0000
  572. /* Description PHYTX_TX_END_SW_INFO_47_32
  573. PHYTX_PKT_END info
  574. Field only valid when PHYTX_PKT_END_info_valid is set
  575. Some PHY status data that PHY microcode can pass back to
  576. MAC FW, for any future requests, e.g. any DMA download
  577. time
  578. <legal all>
  579. */
  580. #define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_47_32_OFFSET 0x0000000000000030
  581. #define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_47_32_LSB 32
  582. #define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_47_32_MSB 47
  583. #define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_47_32_MASK 0x0000ffff00000000
  584. /* Description PHYTX_TX_END_SW_INFO_63_48
  585. PHYTX_PKT_END info
  586. Field only valid when PHYTX_PKT_END_info_valid is set
  587. Some PHY status data that PHY microcode can pass back to
  588. MAC FW, for any future requests, e.g. any DMA download
  589. time
  590. <legal all>
  591. */
  592. #define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_63_48_OFFSET 0x0000000000000030
  593. #define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_63_48_LSB 48
  594. #define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_63_48_MSB 63
  595. #define TX_FES_STATUS_PROT_PHYTX_TX_END_SW_INFO_63_48_MASK 0xffff000000000000
  596. #endif // TX_FES_STATUS_PROT