tx_fes_status_prot.h 36 KB

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