response_end_status.h 51 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212
  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 _RESPONSE_END_STATUS_H_
  16. #define _RESPONSE_END_STATUS_H_
  17. #if !defined(__ASSEMBLER__)
  18. #endif
  19. #include "phytx_abort_request_info.h"
  20. #define NUM_OF_DWORDS_RESPONSE_END_STATUS 22
  21. #define NUM_OF_QWORDS_RESPONSE_END_STATUS 11
  22. struct response_end_status {
  23. #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
  24. uint32_t coex_bt_tx_while_wlan_tx : 1, // [0:0]
  25. coex_wan_tx_while_wlan_tx : 1, // [1:1]
  26. coex_wlan_tx_while_wlan_tx : 1, // [2:2]
  27. global_data_underflow_warning : 1, // [3:3]
  28. response_transmit_status : 4, // [7:4]
  29. phytx_pkt_end_info_valid : 1, // [8:8]
  30. phytx_abort_request_info_valid : 1, // [9:9]
  31. generated_response : 3, // [12:10]
  32. mba_user_count : 7, // [19:13]
  33. mba_fake_bitmap_count : 7, // [26:20]
  34. coex_based_tx_bw : 3, // [29:27]
  35. trig_response_related : 1, // [30:30]
  36. dpdtrain_done : 1; // [31:31]
  37. struct phytx_abort_request_info phytx_abort_request_info_details;
  38. uint16_t cbf_segment_request_mask : 8, // [23:16]
  39. cbf_segment_sent_mask : 8; // [31:24]
  40. uint32_t underflow_mpdu_count : 9, // [8:0]
  41. data_underflow_warning : 2, // [10:9]
  42. phy_tx_gain_setting : 8, // [18:11]
  43. timing_status : 2, // [20:19]
  44. only_null_delim_sent : 1, // [21:21]
  45. brp_info_valid : 1, // [22:22]
  46. reserved_2a : 9; // [31:23]
  47. uint32_t mu_response_bitmap_31_0 : 32; // [31:0]
  48. uint32_t mu_response_bitmap_36_32 : 5, // [4:0]
  49. reserved_4a : 11, // [15:5]
  50. transmit_delay : 16; // [31:16]
  51. uint32_t start_of_frame_timestamp_15_0 : 16, // [15:0]
  52. start_of_frame_timestamp_31_16 : 16; // [31:16]
  53. uint32_t end_of_frame_timestamp_15_0 : 16, // [15:0]
  54. end_of_frame_timestamp_31_16 : 16; // [31:16]
  55. uint32_t tx_group_delay : 12, // [11:0]
  56. reserved_7a : 4, // [15:12]
  57. tpc_dbg_info_cmn_15_0 : 16; // [31:16]
  58. uint32_t tpc_dbg_info_31_16 : 16, // [15:0]
  59. tpc_dbg_info_47_32 : 16; // [31:16]
  60. uint32_t tpc_dbg_info_chn1_15_0 : 16, // [15:0]
  61. tpc_dbg_info_chn1_31_16 : 16; // [31:16]
  62. uint32_t tpc_dbg_info_chn1_47_32 : 16, // [15:0]
  63. tpc_dbg_info_chn1_63_48 : 16; // [31:16]
  64. uint32_t tpc_dbg_info_chn1_79_64 : 16, // [15:0]
  65. tpc_dbg_info_chn2_15_0 : 16; // [31:16]
  66. uint32_t tpc_dbg_info_chn2_31_16 : 16, // [15:0]
  67. tpc_dbg_info_chn2_47_32 : 16; // [31:16]
  68. uint32_t tpc_dbg_info_chn2_63_48 : 16, // [15:0]
  69. tpc_dbg_info_chn2_79_64 : 16; // [31:16]
  70. uint32_t phytx_tx_end_sw_info_15_0 : 16, // [15:0]
  71. phytx_tx_end_sw_info_31_16 : 16; // [31:16]
  72. uint32_t phytx_tx_end_sw_info_47_32 : 16, // [15:0]
  73. phytx_tx_end_sw_info_63_48 : 16; // [31:16]
  74. uint32_t addr1_31_0 : 32; // [31:0]
  75. uint32_t addr1_47_32 : 16, // [15:0]
  76. addr2_15_0 : 16; // [31:16]
  77. uint32_t addr2_47_16 : 32; // [31:0]
  78. uint32_t addr3_31_0 : 32; // [31:0]
  79. uint32_t addr3_47_32 : 16, // [15:0]
  80. ranging : 1, // [16:16]
  81. secure : 1, // [17:17]
  82. ranging_ftm_frame_sent : 1, // [18:18]
  83. reserved_20a : 13; // [31:19]
  84. uint32_t tlv64_padding : 32; // [31:0]
  85. #else
  86. uint32_t dpdtrain_done : 1, // [31:31]
  87. trig_response_related : 1, // [30:30]
  88. coex_based_tx_bw : 3, // [29:27]
  89. mba_fake_bitmap_count : 7, // [26:20]
  90. mba_user_count : 7, // [19:13]
  91. generated_response : 3, // [12:10]
  92. phytx_abort_request_info_valid : 1, // [9:9]
  93. phytx_pkt_end_info_valid : 1, // [8:8]
  94. response_transmit_status : 4, // [7:4]
  95. global_data_underflow_warning : 1, // [3:3]
  96. coex_wlan_tx_while_wlan_tx : 1, // [2:2]
  97. coex_wan_tx_while_wlan_tx : 1, // [1:1]
  98. coex_bt_tx_while_wlan_tx : 1; // [0:0]
  99. uint32_t cbf_segment_sent_mask : 8, // [31:24]
  100. cbf_segment_request_mask : 8; // [23:16]
  101. struct phytx_abort_request_info phytx_abort_request_info_details;
  102. uint32_t reserved_2a : 9, // [31:23]
  103. brp_info_valid : 1, // [22:22]
  104. only_null_delim_sent : 1, // [21:21]
  105. timing_status : 2, // [20:19]
  106. phy_tx_gain_setting : 8, // [18:11]
  107. data_underflow_warning : 2, // [10:9]
  108. underflow_mpdu_count : 9; // [8:0]
  109. uint32_t mu_response_bitmap_31_0 : 32; // [31:0]
  110. uint32_t transmit_delay : 16, // [31:16]
  111. reserved_4a : 11, // [15:5]
  112. mu_response_bitmap_36_32 : 5; // [4:0]
  113. uint32_t start_of_frame_timestamp_31_16 : 16, // [31:16]
  114. start_of_frame_timestamp_15_0 : 16; // [15:0]
  115. uint32_t end_of_frame_timestamp_31_16 : 16, // [31:16]
  116. end_of_frame_timestamp_15_0 : 16; // [15:0]
  117. uint32_t tpc_dbg_info_cmn_15_0 : 16, // [31:16]
  118. reserved_7a : 4, // [15:12]
  119. tx_group_delay : 12; // [11:0]
  120. uint32_t tpc_dbg_info_47_32 : 16, // [31:16]
  121. tpc_dbg_info_31_16 : 16; // [15:0]
  122. uint32_t tpc_dbg_info_chn1_31_16 : 16, // [31:16]
  123. tpc_dbg_info_chn1_15_0 : 16; // [15:0]
  124. uint32_t tpc_dbg_info_chn1_63_48 : 16, // [31:16]
  125. tpc_dbg_info_chn1_47_32 : 16; // [15:0]
  126. uint32_t tpc_dbg_info_chn2_15_0 : 16, // [31:16]
  127. tpc_dbg_info_chn1_79_64 : 16; // [15:0]
  128. uint32_t tpc_dbg_info_chn2_47_32 : 16, // [31:16]
  129. tpc_dbg_info_chn2_31_16 : 16; // [15:0]
  130. uint32_t tpc_dbg_info_chn2_79_64 : 16, // [31:16]
  131. tpc_dbg_info_chn2_63_48 : 16; // [15:0]
  132. uint32_t phytx_tx_end_sw_info_31_16 : 16, // [31:16]
  133. phytx_tx_end_sw_info_15_0 : 16; // [15:0]
  134. uint32_t phytx_tx_end_sw_info_63_48 : 16, // [31:16]
  135. phytx_tx_end_sw_info_47_32 : 16; // [15:0]
  136. uint32_t addr1_31_0 : 32; // [31:0]
  137. uint32_t addr2_15_0 : 16, // [31:16]
  138. addr1_47_32 : 16; // [15:0]
  139. uint32_t addr2_47_16 : 32; // [31:0]
  140. uint32_t addr3_31_0 : 32; // [31:0]
  141. uint32_t reserved_20a : 13, // [31:19]
  142. ranging_ftm_frame_sent : 1, // [18:18]
  143. secure : 1, // [17:17]
  144. ranging : 1, // [16:16]
  145. addr3_47_32 : 16; // [15:0]
  146. uint32_t tlv64_padding : 32; // [31:0]
  147. #endif
  148. };
  149. /* Description COEX_BT_TX_WHILE_WLAN_TX
  150. When set, a BT tx coex event started while wlan was in the
  151. middle of response transmission.
  152. Field set when coex_status_broadcast TLV received with bt
  153. tx activity set and WLAN tx ongoing.
  154. <legal all>
  155. */
  156. #define RESPONSE_END_STATUS_COEX_BT_TX_WHILE_WLAN_TX_OFFSET 0x0000000000000000
  157. #define RESPONSE_END_STATUS_COEX_BT_TX_WHILE_WLAN_TX_LSB 0
  158. #define RESPONSE_END_STATUS_COEX_BT_TX_WHILE_WLAN_TX_MSB 0
  159. #define RESPONSE_END_STATUS_COEX_BT_TX_WHILE_WLAN_TX_MASK 0x0000000000000001
  160. /* Description COEX_WAN_TX_WHILE_WLAN_TX
  161. When set, a WAN tx coex event started while wlan was in
  162. the middle of response transmission.
  163. Field set when coex_status_broadcast TLV received with WAN
  164. tx activity set and WLAN tx ongoing
  165. <legal all>
  166. */
  167. #define RESPONSE_END_STATUS_COEX_WAN_TX_WHILE_WLAN_TX_OFFSET 0x0000000000000000
  168. #define RESPONSE_END_STATUS_COEX_WAN_TX_WHILE_WLAN_TX_LSB 1
  169. #define RESPONSE_END_STATUS_COEX_WAN_TX_WHILE_WLAN_TX_MSB 1
  170. #define RESPONSE_END_STATUS_COEX_WAN_TX_WHILE_WLAN_TX_MASK 0x0000000000000002
  171. /* Description COEX_WLAN_TX_WHILE_WLAN_TX
  172. When set, a WLAN tx coex event started while wlan was in
  173. the middle of response transmission.
  174. Field set when coex_status_broadcast TLV received with WLAN
  175. tx activity set and WLAN tx ongoing
  176. <legal all>
  177. */
  178. #define RESPONSE_END_STATUS_COEX_WLAN_TX_WHILE_WLAN_TX_OFFSET 0x0000000000000000
  179. #define RESPONSE_END_STATUS_COEX_WLAN_TX_WHILE_WLAN_TX_LSB 2
  180. #define RESPONSE_END_STATUS_COEX_WLAN_TX_WHILE_WLAN_TX_MSB 2
  181. #define RESPONSE_END_STATUS_COEX_WLAN_TX_WHILE_WLAN_TX_MASK 0x0000000000000004
  182. /* Description GLOBAL_DATA_UNDERFLOW_WARNING
  183. Consumer: SCH/SW
  184. Producer: TXPCU
  185. When set, during response transmission a data underflow
  186. occurred for one or more users.<legal all>
  187. */
  188. #define RESPONSE_END_STATUS_GLOBAL_DATA_UNDERFLOW_WARNING_OFFSET 0x0000000000000000
  189. #define RESPONSE_END_STATUS_GLOBAL_DATA_UNDERFLOW_WARNING_LSB 3
  190. #define RESPONSE_END_STATUS_GLOBAL_DATA_UNDERFLOW_WARNING_MSB 3
  191. #define RESPONSE_END_STATUS_GLOBAL_DATA_UNDERFLOW_WARNING_MASK 0x0000000000000008
  192. /* Description RESPONSE_TRANSMIT_STATUS
  193. <enum 0 response_ok> Successful transmission of the selfgen
  194. response frame
  195. <enum 1 response_coex_soft_abort> Set if transmission is
  196. terminated because of the coex soft abort.
  197. <enum 2 response_phy_err> Set if transmission is terminated
  198. because PHY generated an abort request
  199. <enum 3 response_flush_received> Set if transmission is
  200. terminated because RXPCU received a flush request
  201. <enum 4 response_other_err> Set if transmission is terminated
  202. because of other errors within the RXPCU
  203. <legal 0-4>
  204. */
  205. #define RESPONSE_END_STATUS_RESPONSE_TRANSMIT_STATUS_OFFSET 0x0000000000000000
  206. #define RESPONSE_END_STATUS_RESPONSE_TRANSMIT_STATUS_LSB 4
  207. #define RESPONSE_END_STATUS_RESPONSE_TRANSMIT_STATUS_MSB 7
  208. #define RESPONSE_END_STATUS_RESPONSE_TRANSMIT_STATUS_MASK 0x00000000000000f0
  209. /* Description PHYTX_PKT_END_INFO_VALID
  210. All the fields originating from PHYTX_PKT_END TLV contain
  211. valid info
  212. Note that when "trig_response_related" is set, this bit
  213. will often not be set as the trigger response contents might
  214. have come from a scheduling command which is not reported
  215. as part of the 'response' transmission.
  216. */
  217. #define RESPONSE_END_STATUS_PHYTX_PKT_END_INFO_VALID_OFFSET 0x0000000000000000
  218. #define RESPONSE_END_STATUS_PHYTX_PKT_END_INFO_VALID_LSB 8
  219. #define RESPONSE_END_STATUS_PHYTX_PKT_END_INFO_VALID_MSB 8
  220. #define RESPONSE_END_STATUS_PHYTX_PKT_END_INFO_VALID_MASK 0x0000000000000100
  221. /* Description PHYTX_ABORT_REQUEST_INFO_VALID
  222. Field Phytx_abort_request_info_details contains valid info
  223. */
  224. #define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_VALID_OFFSET 0x0000000000000000
  225. #define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_VALID_LSB 9
  226. #define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_VALID_MSB 9
  227. #define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_VALID_MASK 0x0000000000000200
  228. /* Description GENERATED_RESPONSE
  229. The generated response frame
  230. <enum 0 selfgen_ACK> TXPCU generated an ACK response. Note
  231. that this can be part of a trigger response. In that case
  232. bit trig_response_related will be set as well.
  233. <enum 1 selfgen_CTS> TXPCU generated an CTS response. Note
  234. that this can be part of a trigger response. In that case
  235. bit trig_response_related will be set as well.
  236. <enum 2 selfgen_BA> TXPCU generated a BA response. Note
  237. that this can be part of a trigger response. In that case
  238. bit trig_response_related will be set as well.
  239. <enum 3 selfgen_MBA> TXPCU generated an M BA response. Note
  240. that this can be part of a trigger response. In that case
  241. bit trig_response_related will be set as well.
  242. <enum 4 selfgen_CBF> TXPCU generated a CBF response. Note
  243. that this can be part of a trigger response. In that case
  244. bit trig_response_related will be set as well.
  245. <enum 5 selfgen_other_trig_response>
  246. TXPCU generated a trigger related response of a type not
  247. specified above. Note that in this case bit trig_response_related
  248. will be set as well.
  249. This e-num will also be used when TXPCU has been programmed
  250. to overwrite it's own self gen response generation, and
  251. wait for the response to come from SCH..
  252. Also applicable for basic trigger response.
  253. <enum 6 selfgen_NDP_LMR> TXPCU generated a self-gen NDP
  254. followed by a self-gen LMR for the ranging NDPA followed
  255. by NDP received by RXPCU.
  256. <legal 0-6>
  257. */
  258. #define RESPONSE_END_STATUS_GENERATED_RESPONSE_OFFSET 0x0000000000000000
  259. #define RESPONSE_END_STATUS_GENERATED_RESPONSE_LSB 10
  260. #define RESPONSE_END_STATUS_GENERATED_RESPONSE_MSB 12
  261. #define RESPONSE_END_STATUS_GENERATED_RESPONSE_MASK 0x0000000000001c00
  262. /* Description MBA_USER_COUNT
  263. Field only valid in case of selfgen_MBA
  264. The number of users included in the generated MBA
  265. Note that this value will be the same as in TLV/field: RESPONSE_START_STATUS.response_STA_count
  266. <legal all>
  267. */
  268. #define RESPONSE_END_STATUS_MBA_USER_COUNT_OFFSET 0x0000000000000000
  269. #define RESPONSE_END_STATUS_MBA_USER_COUNT_LSB 13
  270. #define RESPONSE_END_STATUS_MBA_USER_COUNT_MSB 19
  271. #define RESPONSE_END_STATUS_MBA_USER_COUNT_MASK 0x00000000000fe000
  272. /* Description MBA_FAKE_BITMAP_COUNT
  273. Field only valid in case of MU OFDMA selfgen_MBA
  274. The number of users for which RXPCU did not have a bitmap,
  275. and thus provided a 'fake bitmap'
  276. <legal all>
  277. */
  278. #define RESPONSE_END_STATUS_MBA_FAKE_BITMAP_COUNT_OFFSET 0x0000000000000000
  279. #define RESPONSE_END_STATUS_MBA_FAKE_BITMAP_COUNT_LSB 20
  280. #define RESPONSE_END_STATUS_MBA_FAKE_BITMAP_COUNT_MSB 26
  281. #define RESPONSE_END_STATUS_MBA_FAKE_BITMAP_COUNT_MASK 0x0000000007f00000
  282. /* Description COEX_BASED_TX_BW
  283. This is the transmit bandwidth value
  284. that is granted by Coex for the response frame
  285. <enum 0 20_mhz>20 Mhz BW
  286. <enum 1 40_mhz>40 Mhz BW
  287. <enum 2 80_mhz>80 Mhz BW
  288. <enum 3 160_mhz>160 Mhz BW
  289. <enum 4 320_mhz>320 Mhz BW
  290. <enum 5 240_mhz>240 Mhz BW
  291. */
  292. #define RESPONSE_END_STATUS_COEX_BASED_TX_BW_OFFSET 0x0000000000000000
  293. #define RESPONSE_END_STATUS_COEX_BASED_TX_BW_LSB 27
  294. #define RESPONSE_END_STATUS_COEX_BASED_TX_BW_MSB 29
  295. #define RESPONSE_END_STATUS_COEX_BASED_TX_BW_MASK 0x0000000038000000
  296. /* Description TRIG_RESPONSE_RELATED
  297. When set, this TLV is generated by TXPCU in the context
  298. of a response transmission to a received trigger frame.
  299. <legal all>
  300. */
  301. #define RESPONSE_END_STATUS_TRIG_RESPONSE_RELATED_OFFSET 0x0000000000000000
  302. #define RESPONSE_END_STATUS_TRIG_RESPONSE_RELATED_LSB 30
  303. #define RESPONSE_END_STATUS_TRIG_RESPONSE_RELATED_MSB 30
  304. #define RESPONSE_END_STATUS_TRIG_RESPONSE_RELATED_MASK 0x0000000040000000
  305. /* Description DPDTRAIN_DONE
  306. Field only valid when PHYTX_PKT_END_info_valid is set
  307. For DPD Training packets, this bit is set to indicate that
  308. DPD Training was successfully run to completion. Also
  309. reused by Implicit BF Calibration Packets. This bit is intended
  310. for debug purposes.
  311. <legal all>
  312. */
  313. #define RESPONSE_END_STATUS_DPDTRAIN_DONE_OFFSET 0x0000000000000000
  314. #define RESPONSE_END_STATUS_DPDTRAIN_DONE_LSB 31
  315. #define RESPONSE_END_STATUS_DPDTRAIN_DONE_MSB 31
  316. #define RESPONSE_END_STATUS_DPDTRAIN_DONE_MASK 0x0000000080000000
  317. /* Description PHYTX_ABORT_REQUEST_INFO_DETAILS
  318. Field only valid when PHYTX_ABORT_REQUEST_info_valid is
  319. set
  320. The reason why PHYTX is requested an abort
  321. */
  322. /* Description PHYTX_ABORT_REASON
  323. Reason for early termination of TX packet by the PHY
  324. <enum_type PHYTX_ABORT_ENUM>
  325. */
  326. #define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_OFFSET 0x0000000000000000
  327. #define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_LSB 32
  328. #define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_MSB 39
  329. #define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_MASK 0x000000ff00000000
  330. /* Description USER_NUMBER
  331. For some errors, the user for which this error was detected
  332. can be indicated in this field.
  333. <legal 0-36>
  334. */
  335. #define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_OFFSET 0x0000000000000000
  336. #define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_LSB 40
  337. #define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_MSB 45
  338. #define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_MASK 0x00003f0000000000
  339. /* Description RESERVED
  340. <legal 0>
  341. */
  342. #define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_OFFSET 0x0000000000000000
  343. #define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_LSB 46
  344. #define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_MSB 47
  345. #define RESPONSE_END_STATUS_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_MASK 0x0000c00000000000
  346. /* Description CBF_SEGMENT_REQUEST_MASK
  347. Field only valid when brp_info_valid is set.
  348. Field equal to the 'Feedback Segment Retransmission Bitmap'
  349. from the Beamform Report Poll frame OR Beamform Report Poll
  350. Trigger frame
  351. Bit 0 represents segment 0
  352. Bit 1 represents segment 1
  353. Etc.
  354. 1'b1: Segment is requested
  355. 1'b0: Segment is NOT requested
  356. <legal all>
  357. */
  358. #define RESPONSE_END_STATUS_CBF_SEGMENT_REQUEST_MASK_OFFSET 0x0000000000000000
  359. #define RESPONSE_END_STATUS_CBF_SEGMENT_REQUEST_MASK_LSB 48
  360. #define RESPONSE_END_STATUS_CBF_SEGMENT_REQUEST_MASK_MSB 55
  361. #define RESPONSE_END_STATUS_CBF_SEGMENT_REQUEST_MASK_MASK 0x00ff000000000000
  362. /* Description CBF_SEGMENT_SENT_MASK
  363. Field only valid when brp_info_valid is set.
  364. Bit 0 represents segment 0
  365. Bit 1 represents segment 1
  366. Etc.
  367. 1'b1: Segment is sent
  368. 1'b0: Segment is not sent
  369. <legal all>
  370. */
  371. #define RESPONSE_END_STATUS_CBF_SEGMENT_SENT_MASK_OFFSET 0x0000000000000000
  372. #define RESPONSE_END_STATUS_CBF_SEGMENT_SENT_MASK_LSB 56
  373. #define RESPONSE_END_STATUS_CBF_SEGMENT_SENT_MASK_MSB 63
  374. #define RESPONSE_END_STATUS_CBF_SEGMENT_SENT_MASK_MASK 0xff00000000000000
  375. /* Description UNDERFLOW_MPDU_COUNT
  376. The MPDU count transmitted when the first underrun condition
  377. was detected
  378. <legal 0-256>
  379. */
  380. #define RESPONSE_END_STATUS_UNDERFLOW_MPDU_COUNT_OFFSET 0x0000000000000008
  381. #define RESPONSE_END_STATUS_UNDERFLOW_MPDU_COUNT_LSB 0
  382. #define RESPONSE_END_STATUS_UNDERFLOW_MPDU_COUNT_MSB 8
  383. #define RESPONSE_END_STATUS_UNDERFLOW_MPDU_COUNT_MASK 0x00000000000001ff
  384. /* Description DATA_UNDERFLOW_WARNING
  385. Mac data underflow warning
  386. <enum 0 no_data_underrun> No data underflow
  387. <enum 1 data_underrun_between_mpdu> PCU experienced data
  388. underflow in between MPDUs
  389. <enum 2 data_underrun_within_mpdu> PCU experienced data
  390. underflow within an MPDU
  391. <legal 0-2>
  392. */
  393. #define RESPONSE_END_STATUS_DATA_UNDERFLOW_WARNING_OFFSET 0x0000000000000008
  394. #define RESPONSE_END_STATUS_DATA_UNDERFLOW_WARNING_LSB 9
  395. #define RESPONSE_END_STATUS_DATA_UNDERFLOW_WARNING_MSB 10
  396. #define RESPONSE_END_STATUS_DATA_UNDERFLOW_WARNING_MASK 0x0000000000000600
  397. /* Description PHY_TX_GAIN_SETTING
  398. PHYTX_PKT_END info
  399. Field only valid when PHYTX_PKT_END_info_valid is set
  400. The gain setting that the PHY used for this last PPDU transmission
  401. */
  402. #define RESPONSE_END_STATUS_PHY_TX_GAIN_SETTING_OFFSET 0x0000000000000008
  403. #define RESPONSE_END_STATUS_PHY_TX_GAIN_SETTING_LSB 11
  404. #define RESPONSE_END_STATUS_PHY_TX_GAIN_SETTING_MSB 18
  405. #define RESPONSE_END_STATUS_PHY_TX_GAIN_SETTING_MASK 0x000000000007f800
  406. /* Description TIMING_STATUS
  407. PHYTX_PKT_END info
  408. Field only valid when PHYTX_PKT_END_info_valid is set
  409. <enum 0 No_tx_timing_request> The MAC did not request for
  410. the transmission to start at a particular time
  411. <enum 1 successful_tx_timing > MAC did request for transmission
  412. to start at a particular time and PHY was able to do so.
  413. <enum 2 tx_timing_not_honoured> PHY was not able to honour
  414. the requested transmit time by the MAC. The transmission
  415. started later, and field transmit_delay indicates how much
  416. later.
  417. <legal 0-2>
  418. */
  419. #define RESPONSE_END_STATUS_TIMING_STATUS_OFFSET 0x0000000000000008
  420. #define RESPONSE_END_STATUS_TIMING_STATUS_LSB 19
  421. #define RESPONSE_END_STATUS_TIMING_STATUS_MSB 20
  422. #define RESPONSE_END_STATUS_TIMING_STATUS_MASK 0x0000000000180000
  423. /* Description ONLY_NULL_DELIM_SENT
  424. Field only valid when "trig_response_related" is set.
  425. When set, TXPCU only sent NULL delimiters to the PHY for
  426. the entire duration of the trigger response time.
  427. Note that SCH does not evaluate this field. It is only for
  428. SW to look at.
  429. Setting this bit can only happen when a trigger is received,
  430. and either the trigger allocated an incorrectly small duration,
  431. or SW had not programmed a response scheduler command in
  432. time to respond, which may not comply with the 11ax IEEE
  433. spec.
  434. <legal all>
  435. */
  436. #define RESPONSE_END_STATUS_ONLY_NULL_DELIM_SENT_OFFSET 0x0000000000000008
  437. #define RESPONSE_END_STATUS_ONLY_NULL_DELIM_SENT_LSB 21
  438. #define RESPONSE_END_STATUS_ONLY_NULL_DELIM_SENT_MSB 21
  439. #define RESPONSE_END_STATUS_ONLY_NULL_DELIM_SENT_MASK 0x0000000000200000
  440. /* Description BRP_INFO_VALID
  441. When set, TXPCU sent CBF segments.
  442. Fields cbf_segment_request_mask and cbf_segment_sent_mask
  443. contain valid info.
  444. <legal all>
  445. */
  446. #define RESPONSE_END_STATUS_BRP_INFO_VALID_OFFSET 0x0000000000000008
  447. #define RESPONSE_END_STATUS_BRP_INFO_VALID_LSB 22
  448. #define RESPONSE_END_STATUS_BRP_INFO_VALID_MSB 22
  449. #define RESPONSE_END_STATUS_BRP_INFO_VALID_MASK 0x0000000000400000
  450. /* Description RESERVED_2A
  451. <legal 0>
  452. */
  453. #define RESPONSE_END_STATUS_RESERVED_2A_OFFSET 0x0000000000000008
  454. #define RESPONSE_END_STATUS_RESERVED_2A_LSB 23
  455. #define RESPONSE_END_STATUS_RESERVED_2A_MSB 31
  456. #define RESPONSE_END_STATUS_RESERVED_2A_MASK 0x00000000ff800000
  457. /* Description MU_RESPONSE_BITMAP_31_0
  458. Bit 0 represents user 0
  459. Bit 1 represents user 1
  460. ...
  461. When set, at least 1 MPDU from this user has been properly
  462. received => FCS OK
  463. TODO: remove these
  464. Field can not be filled in with the self generated response
  465. */
  466. #define RESPONSE_END_STATUS_MU_RESPONSE_BITMAP_31_0_OFFSET 0x0000000000000008
  467. #define RESPONSE_END_STATUS_MU_RESPONSE_BITMAP_31_0_LSB 32
  468. #define RESPONSE_END_STATUS_MU_RESPONSE_BITMAP_31_0_MSB 63
  469. #define RESPONSE_END_STATUS_MU_RESPONSE_BITMAP_31_0_MASK 0xffffffff00000000
  470. /* Description MU_RESPONSE_BITMAP_36_32
  471. Bit 0 represents user 32
  472. Bit 1 represents user 33
  473. ...
  474. When set, at least 1 MPDU from this user has been properly
  475. received => FCS OK
  476. TODO: remove these
  477. Field can not be filled in with the self generated response
  478. Note: Received_response already goes to SW, so probably
  479. no need to copy this bitmap info to TX_FES_STATUS TLV.
  480. */
  481. #define RESPONSE_END_STATUS_MU_RESPONSE_BITMAP_36_32_OFFSET 0x0000000000000010
  482. #define RESPONSE_END_STATUS_MU_RESPONSE_BITMAP_36_32_LSB 0
  483. #define RESPONSE_END_STATUS_MU_RESPONSE_BITMAP_36_32_MSB 4
  484. #define RESPONSE_END_STATUS_MU_RESPONSE_BITMAP_36_32_MASK 0x000000000000001f
  485. /* Description RESERVED_4A
  486. <legal 0>
  487. */
  488. #define RESPONSE_END_STATUS_RESERVED_4A_OFFSET 0x0000000000000010
  489. #define RESPONSE_END_STATUS_RESERVED_4A_LSB 5
  490. #define RESPONSE_END_STATUS_RESERVED_4A_MSB 15
  491. #define RESPONSE_END_STATUS_RESERVED_4A_MASK 0x000000000000ffe0
  492. /* Description TRANSMIT_DELAY
  493. PHYTX_PKT_END info
  494. Field only valid when PHYTX_PKT_END_info_valid is set
  495. The number of 480 MHz clock cycles that the transmission
  496. started after the actual requested transmit start time.
  497. Value saturates at 0xFFFF
  498. <legal all>
  499. */
  500. #define RESPONSE_END_STATUS_TRANSMIT_DELAY_OFFSET 0x0000000000000010
  501. #define RESPONSE_END_STATUS_TRANSMIT_DELAY_LSB 16
  502. #define RESPONSE_END_STATUS_TRANSMIT_DELAY_MSB 31
  503. #define RESPONSE_END_STATUS_TRANSMIT_DELAY_MASK 0x00000000ffff0000
  504. /* Description START_OF_FRAME_TIMESTAMP_15_0
  505. PHYTX_PKT_END info
  506. Field only valid when PHYTX_PKT_END_info_valid is set
  507. bits 15:0 of a 64 bit time stamp
  508. Start of frame in the medium @960 MHz
  509. <legal all>
  510. */
  511. #define RESPONSE_END_STATUS_START_OF_FRAME_TIMESTAMP_15_0_OFFSET 0x0000000000000010
  512. #define RESPONSE_END_STATUS_START_OF_FRAME_TIMESTAMP_15_0_LSB 32
  513. #define RESPONSE_END_STATUS_START_OF_FRAME_TIMESTAMP_15_0_MSB 47
  514. #define RESPONSE_END_STATUS_START_OF_FRAME_TIMESTAMP_15_0_MASK 0x0000ffff00000000
  515. /* Description START_OF_FRAME_TIMESTAMP_31_16
  516. PHYTX_PKT_END info
  517. Field only valid when PHYTX_PKT_END_info_valid is set
  518. bits 31:16 of a 64 bit time stamp
  519. Start of frame in the medium @960 MHz
  520. <legal all>
  521. */
  522. #define RESPONSE_END_STATUS_START_OF_FRAME_TIMESTAMP_31_16_OFFSET 0x0000000000000010
  523. #define RESPONSE_END_STATUS_START_OF_FRAME_TIMESTAMP_31_16_LSB 48
  524. #define RESPONSE_END_STATUS_START_OF_FRAME_TIMESTAMP_31_16_MSB 63
  525. #define RESPONSE_END_STATUS_START_OF_FRAME_TIMESTAMP_31_16_MASK 0xffff000000000000
  526. /* Description END_OF_FRAME_TIMESTAMP_15_0
  527. PHYTX_PKT_END info
  528. Field only valid when PHYTX_PKT_END_info_valid is set
  529. bits 15:0 of a 64 bit time stamp
  530. End of frame in the medium @960 MHz
  531. <legal all>
  532. */
  533. #define RESPONSE_END_STATUS_END_OF_FRAME_TIMESTAMP_15_0_OFFSET 0x0000000000000018
  534. #define RESPONSE_END_STATUS_END_OF_FRAME_TIMESTAMP_15_0_LSB 0
  535. #define RESPONSE_END_STATUS_END_OF_FRAME_TIMESTAMP_15_0_MSB 15
  536. #define RESPONSE_END_STATUS_END_OF_FRAME_TIMESTAMP_15_0_MASK 0x000000000000ffff
  537. /* Description END_OF_FRAME_TIMESTAMP_31_16
  538. PHYTX_PKT_END info
  539. Field only valid when PHYTX_PKT_END_info_valid is set
  540. bits 31:16 of a 64 bit time stamp
  541. End of frame in the medium @960 MHz
  542. <legal all>
  543. */
  544. #define RESPONSE_END_STATUS_END_OF_FRAME_TIMESTAMP_31_16_OFFSET 0x0000000000000018
  545. #define RESPONSE_END_STATUS_END_OF_FRAME_TIMESTAMP_31_16_LSB 16
  546. #define RESPONSE_END_STATUS_END_OF_FRAME_TIMESTAMP_31_16_MSB 31
  547. #define RESPONSE_END_STATUS_END_OF_FRAME_TIMESTAMP_31_16_MASK 0x00000000ffff0000
  548. /* Description TX_GROUP_DELAY
  549. PHYTX_PKT_END info
  550. Field only valid when PHYTX_PKT_END_info_valid is set
  551. Group delay on TxTD+PHYRF path for this PPDU (packet BW
  552. dependent), useful for RTT
  553. Unit is 960MHz cycles.
  554. <legal all>
  555. */
  556. #define RESPONSE_END_STATUS_TX_GROUP_DELAY_OFFSET 0x0000000000000018
  557. #define RESPONSE_END_STATUS_TX_GROUP_DELAY_LSB 32
  558. #define RESPONSE_END_STATUS_TX_GROUP_DELAY_MSB 43
  559. #define RESPONSE_END_STATUS_TX_GROUP_DELAY_MASK 0x00000fff00000000
  560. /* Description RESERVED_7A
  561. <legal 0>
  562. */
  563. #define RESPONSE_END_STATUS_RESERVED_7A_OFFSET 0x0000000000000018
  564. #define RESPONSE_END_STATUS_RESERVED_7A_LSB 44
  565. #define RESPONSE_END_STATUS_RESERVED_7A_MSB 47
  566. #define RESPONSE_END_STATUS_RESERVED_7A_MASK 0x0000f00000000000
  567. /* Description TPC_DBG_INFO_CMN_15_0
  568. PHYTX_PKT_END info
  569. Field only valid when PHYTX_PKT_END_info_valid is set
  570. Some TPC debug info that PHY can pass back to MAC FW
  571. <legal all>
  572. */
  573. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CMN_15_0_OFFSET 0x0000000000000018
  574. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CMN_15_0_LSB 48
  575. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CMN_15_0_MSB 63
  576. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CMN_15_0_MASK 0xffff000000000000
  577. /* Description TPC_DBG_INFO_31_16
  578. PHYTX_PKT_END info
  579. Field only valid when PHYTX_PKT_END_info_valid is set
  580. Some TPC debug info that PHY can pass back to MAC FW
  581. <legal all>
  582. */
  583. #define RESPONSE_END_STATUS_TPC_DBG_INFO_31_16_OFFSET 0x0000000000000020
  584. #define RESPONSE_END_STATUS_TPC_DBG_INFO_31_16_LSB 0
  585. #define RESPONSE_END_STATUS_TPC_DBG_INFO_31_16_MSB 15
  586. #define RESPONSE_END_STATUS_TPC_DBG_INFO_31_16_MASK 0x000000000000ffff
  587. /* Description TPC_DBG_INFO_47_32
  588. PHYTX_PKT_END info
  589. Field only valid when PHYTX_PKT_END_info_valid is set
  590. Some TPC debug infothat PHY can pass back to MAC FW
  591. <legal all>
  592. */
  593. #define RESPONSE_END_STATUS_TPC_DBG_INFO_47_32_OFFSET 0x0000000000000020
  594. #define RESPONSE_END_STATUS_TPC_DBG_INFO_47_32_LSB 16
  595. #define RESPONSE_END_STATUS_TPC_DBG_INFO_47_32_MSB 31
  596. #define RESPONSE_END_STATUS_TPC_DBG_INFO_47_32_MASK 0x00000000ffff0000
  597. /* Description TPC_DBG_INFO_CHN1_15_0
  598. PHYTX_PKT_END info
  599. Field only valid when PHYTX_PKT_END_info_valid is set
  600. Some per-chain TPC debug info for the first selected chain
  601. that PHY can pass back to MAC FW
  602. <legal all>
  603. */
  604. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_15_0_OFFSET 0x0000000000000020
  605. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_15_0_LSB 32
  606. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_15_0_MSB 47
  607. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_15_0_MASK 0x0000ffff00000000
  608. /* Description TPC_DBG_INFO_CHN1_31_16
  609. PHYTX_PKT_END info
  610. Field only valid when PHYTX_PKT_END_info_valid is set
  611. Some per-chain TPC debug info for the first selected chain
  612. that PHY can pass back to MAC FW
  613. <legal all>
  614. */
  615. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_31_16_OFFSET 0x0000000000000020
  616. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_31_16_LSB 48
  617. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_31_16_MSB 63
  618. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_31_16_MASK 0xffff000000000000
  619. /* Description TPC_DBG_INFO_CHN1_47_32
  620. PHYTX_PKT_END info
  621. Field only valid when PHYTX_PKT_END_info_valid is set
  622. Some per-chain TPC debug info for the first selected chain
  623. that PHY can pass back to MAC FW
  624. <legal all>
  625. */
  626. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_47_32_OFFSET 0x0000000000000028
  627. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_47_32_LSB 0
  628. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_47_32_MSB 15
  629. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_47_32_MASK 0x000000000000ffff
  630. /* Description TPC_DBG_INFO_CHN1_63_48
  631. PHYTX_PKT_END info
  632. Field only valid when PHYTX_PKT_END_info_valid is set
  633. Some per-chain TPC debug info for the first selected chain
  634. that PHY can pass back to MAC FW
  635. <legal all>
  636. */
  637. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_63_48_OFFSET 0x0000000000000028
  638. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_63_48_LSB 16
  639. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_63_48_MSB 31
  640. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_63_48_MASK 0x00000000ffff0000
  641. /* Description TPC_DBG_INFO_CHN1_79_64
  642. PHYTX_PKT_END info
  643. Field only valid when PHYTX_PKT_END_info_valid is set
  644. Some per-chain TPC debug info for the first selected chain
  645. that PHY can pass back to MAC FW
  646. <legal all>
  647. */
  648. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_79_64_OFFSET 0x0000000000000028
  649. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_79_64_LSB 32
  650. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_79_64_MSB 47
  651. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN1_79_64_MASK 0x0000ffff00000000
  652. /* Description TPC_DBG_INFO_CHN2_15_0
  653. PHYTX_PKT_END info
  654. Field only valid when PHYTX_PKT_END_info_valid is set
  655. Some per-chain TPC debug info for the second selected chain
  656. that PHY can pass back to MAC FW
  657. <legal all>
  658. */
  659. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_15_0_OFFSET 0x0000000000000028
  660. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_15_0_LSB 48
  661. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_15_0_MSB 63
  662. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_15_0_MASK 0xffff000000000000
  663. /* Description TPC_DBG_INFO_CHN2_31_16
  664. PHYTX_PKT_END info
  665. Field only valid when PHYTX_PKT_END_info_valid is set
  666. Some per-chain TPC debug info for the second selected chain
  667. that PHY can pass back to MAC FW
  668. <legal all>
  669. */
  670. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_31_16_OFFSET 0x0000000000000030
  671. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_31_16_LSB 0
  672. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_31_16_MSB 15
  673. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_31_16_MASK 0x000000000000ffff
  674. /* Description TPC_DBG_INFO_CHN2_47_32
  675. PHYTX_PKT_END info
  676. Field only valid when PHYTX_PKT_END_info_valid is set
  677. Some per-chain TPC debug info for the second selected chain
  678. that PHY can pass back to MAC FW
  679. <legal all>
  680. */
  681. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_47_32_OFFSET 0x0000000000000030
  682. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_47_32_LSB 16
  683. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_47_32_MSB 31
  684. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_47_32_MASK 0x00000000ffff0000
  685. /* Description TPC_DBG_INFO_CHN2_63_48
  686. PHYTX_PKT_END info
  687. Field only valid when PHYTX_PKT_END_info_valid is set
  688. Some per-chain TPC debug info for the second selected chain
  689. that PHY can pass back to MAC FW
  690. <legal all>
  691. */
  692. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_63_48_OFFSET 0x0000000000000030
  693. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_63_48_LSB 32
  694. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_63_48_MSB 47
  695. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_63_48_MASK 0x0000ffff00000000
  696. /* Description TPC_DBG_INFO_CHN2_79_64
  697. PHYTX_PKT_END info
  698. Field only valid when PHYTX_PKT_END_info_valid is set
  699. Some per-chain TPC debug info for the second selected chain
  700. that PHY can pass back to MAC FW
  701. <legal all>
  702. */
  703. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_79_64_OFFSET 0x0000000000000030
  704. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_79_64_LSB 48
  705. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_79_64_MSB 63
  706. #define RESPONSE_END_STATUS_TPC_DBG_INFO_CHN2_79_64_MASK 0xffff000000000000
  707. /* Description PHYTX_TX_END_SW_INFO_15_0
  708. PHYTX_PKT_END info
  709. Field only valid when PHYTX_PKT_END_info_valid is set
  710. Some PHY status data that PHY microcode can pass back to
  711. MAC FW, for any future requests, e.g. any DMA download
  712. time
  713. <legal all>
  714. */
  715. #define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_15_0_OFFSET 0x0000000000000038
  716. #define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_15_0_LSB 0
  717. #define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_15_0_MSB 15
  718. #define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_15_0_MASK 0x000000000000ffff
  719. /* Description PHYTX_TX_END_SW_INFO_31_16
  720. PHYTX_PKT_END info
  721. Field only valid when PHYTX_PKT_END_info_valid is set
  722. Some PHY status data that PHY microcode can pass back to
  723. MAC FW, for any future requests, e.g. any DMA download
  724. time
  725. <legal all>
  726. */
  727. #define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_31_16_OFFSET 0x0000000000000038
  728. #define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_31_16_LSB 16
  729. #define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_31_16_MSB 31
  730. #define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_31_16_MASK 0x00000000ffff0000
  731. /* Description PHYTX_TX_END_SW_INFO_47_32
  732. PHYTX_PKT_END info
  733. Field only valid when PHYTX_PKT_END_info_valid is set
  734. Some PHY status data that PHY microcode can pass back to
  735. MAC FW, for any future requests, e.g. any DMA download
  736. time
  737. <legal all>
  738. */
  739. #define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_47_32_OFFSET 0x0000000000000038
  740. #define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_47_32_LSB 32
  741. #define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_47_32_MSB 47
  742. #define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_47_32_MASK 0x0000ffff00000000
  743. /* Description PHYTX_TX_END_SW_INFO_63_48
  744. PHYTX_PKT_END info
  745. Field only valid when PHYTX_PKT_END_info_valid is set
  746. Some PHY status data that PHY microcode can pass back to
  747. MAC FW, for any future requests, e.g. any DMA download
  748. time
  749. <legal all>
  750. */
  751. #define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_63_48_OFFSET 0x0000000000000038
  752. #define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_63_48_LSB 48
  753. #define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_63_48_MSB 63
  754. #define RESPONSE_END_STATUS_PHYTX_TX_END_SW_INFO_63_48_MASK 0xffff000000000000
  755. /* Description ADDR1_31_0
  756. To be copied over from RESPONSE_REQUIRED_INFO or TX_CBF_INFO
  757. */
  758. #define RESPONSE_END_STATUS_ADDR1_31_0_OFFSET 0x0000000000000040
  759. #define RESPONSE_END_STATUS_ADDR1_31_0_LSB 0
  760. #define RESPONSE_END_STATUS_ADDR1_31_0_MSB 31
  761. #define RESPONSE_END_STATUS_ADDR1_31_0_MASK 0x00000000ffffffff
  762. /* Description ADDR1_47_32
  763. To be copied over from RESPONSE_REQUIRED_INFO or TX_CBF_INFO
  764. */
  765. #define RESPONSE_END_STATUS_ADDR1_47_32_OFFSET 0x0000000000000040
  766. #define RESPONSE_END_STATUS_ADDR1_47_32_LSB 32
  767. #define RESPONSE_END_STATUS_ADDR1_47_32_MSB 47
  768. #define RESPONSE_END_STATUS_ADDR1_47_32_MASK 0x0000ffff00000000
  769. /* Description ADDR2_15_0
  770. To be copied over from RESPONSE_REQUIRED_INFO or TX_CBF_INFO
  771. */
  772. #define RESPONSE_END_STATUS_ADDR2_15_0_OFFSET 0x0000000000000040
  773. #define RESPONSE_END_STATUS_ADDR2_15_0_LSB 48
  774. #define RESPONSE_END_STATUS_ADDR2_15_0_MSB 63
  775. #define RESPONSE_END_STATUS_ADDR2_15_0_MASK 0xffff000000000000
  776. /* Description ADDR2_47_16
  777. To be copied over from RESPONSE_REQUIRED_INFO or TX_CBF_INFO
  778. */
  779. #define RESPONSE_END_STATUS_ADDR2_47_16_OFFSET 0x0000000000000048
  780. #define RESPONSE_END_STATUS_ADDR2_47_16_LSB 0
  781. #define RESPONSE_END_STATUS_ADDR2_47_16_MSB 31
  782. #define RESPONSE_END_STATUS_ADDR2_47_16_MASK 0x00000000ffffffff
  783. /* Description ADDR3_31_0
  784. To be copied over from TX_CBF_INFO
  785. */
  786. #define RESPONSE_END_STATUS_ADDR3_31_0_OFFSET 0x0000000000000048
  787. #define RESPONSE_END_STATUS_ADDR3_31_0_LSB 32
  788. #define RESPONSE_END_STATUS_ADDR3_31_0_MSB 63
  789. #define RESPONSE_END_STATUS_ADDR3_31_0_MASK 0xffffffff00000000
  790. /* Description ADDR3_47_32
  791. To be copied over from TX_CBF_INFO
  792. */
  793. #define RESPONSE_END_STATUS_ADDR3_47_32_OFFSET 0x0000000000000050
  794. #define RESPONSE_END_STATUS_ADDR3_47_32_LSB 0
  795. #define RESPONSE_END_STATUS_ADDR3_47_32_MSB 15
  796. #define RESPONSE_END_STATUS_ADDR3_47_32_MASK 0x000000000000ffff
  797. /* Description RANGING
  798. To be copied over from TX_CBF_INFO: Set to 1 if the status
  799. is generated due to an active ranging session (.11az)
  800. */
  801. #define RESPONSE_END_STATUS_RANGING_OFFSET 0x0000000000000050
  802. #define RESPONSE_END_STATUS_RANGING_LSB 16
  803. #define RESPONSE_END_STATUS_RANGING_MSB 16
  804. #define RESPONSE_END_STATUS_RANGING_MASK 0x0000000000010000
  805. /* Description SECURE
  806. To be copied over from TX_CBF_INFO: Only valid if Ranging
  807. is set to 1, this indicates if the current ranging session
  808. is secure.
  809. */
  810. #define RESPONSE_END_STATUS_SECURE_OFFSET 0x0000000000000050
  811. #define RESPONSE_END_STATUS_SECURE_LSB 17
  812. #define RESPONSE_END_STATUS_SECURE_MSB 17
  813. #define RESPONSE_END_STATUS_SECURE_MASK 0x0000000000020000
  814. /* Description RANGING_FTM_FRAME_SENT
  815. Only valid if Ranging is set to 1
  816. TXPCU sets this bit if an FTM frame aggregated with an LMR
  817. was sent.
  818. */
  819. #define RESPONSE_END_STATUS_RANGING_FTM_FRAME_SENT_OFFSET 0x0000000000000050
  820. #define RESPONSE_END_STATUS_RANGING_FTM_FRAME_SENT_LSB 18
  821. #define RESPONSE_END_STATUS_RANGING_FTM_FRAME_SENT_MSB 18
  822. #define RESPONSE_END_STATUS_RANGING_FTM_FRAME_SENT_MASK 0x0000000000040000
  823. /* Description RESERVED_20A
  824. <legal 0>
  825. */
  826. #define RESPONSE_END_STATUS_RESERVED_20A_OFFSET 0x0000000000000050
  827. #define RESPONSE_END_STATUS_RESERVED_20A_LSB 19
  828. #define RESPONSE_END_STATUS_RESERVED_20A_MSB 31
  829. #define RESPONSE_END_STATUS_RESERVED_20A_MASK 0x00000000fff80000
  830. /* Description TLV64_PADDING
  831. Automatic DWORD padding inserted while converting TLV32
  832. to TLV64 for 64 bit ARCH
  833. <legal 0>
  834. */
  835. #define RESPONSE_END_STATUS_TLV64_PADDING_OFFSET 0x0000000000000050
  836. #define RESPONSE_END_STATUS_TLV64_PADDING_LSB 32
  837. #define RESPONSE_END_STATUS_TLV64_PADDING_MSB 63
  838. #define RESPONSE_END_STATUS_TLV64_PADDING_MASK 0xffffffff00000000
  839. #endif // RESPONSE_END_STATUS