response_end_status.h 51 KB

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