phyrx_pkt_end_info.h 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536
  1. /*
  2. * Copyright (c) 2018 The Linux Foundation. All rights reserved.
  3. *
  4. * Permission to use, copy, modify, and/or distribute this software for
  5. * any purpose with or without fee is hereby granted, provided that the
  6. * above copyright notice and this permission notice appear in all
  7. * copies.
  8. *
  9. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
  10. * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
  11. * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
  12. * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
  13. * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
  14. * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  15. * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  16. * PERFORMANCE OF THIS SOFTWARE.
  17. */
  18. #ifndef _PHYRX_PKT_END_INFO_H_
  19. #define _PHYRX_PKT_END_INFO_H_
  20. #if !defined(__ASSEMBLER__)
  21. #endif
  22. #include "rx_location_info.h"
  23. #include "rx_timing_offset_info.h"
  24. #include "receive_rssi_info.h"
  25. // ################ START SUMMARY #################
  26. //
  27. // Dword Fields
  28. // 0 phy_internal_nap[0], location_info_valid[1], timing_info_valid[2], rssi_info_valid[3], rx_frame_correction_needed[4], frameless_frame_received[5], reserved_0a[11:6], dl_ofdma_info_valid[12], dl_ofdma_ru_start_index[19:13], dl_ofdma_ru_width[26:20], reserved_0b[31:27]
  29. // 1 phy_timestamp_1_lower_32[31:0]
  30. // 2 phy_timestamp_1_upper_32[31:0]
  31. // 3 phy_timestamp_2_lower_32[31:0]
  32. // 4 phy_timestamp_2_upper_32[31:0]
  33. // 5-13 struct rx_location_info rx_location_info_details;
  34. // 14 struct rx_timing_offset_info rx_timing_offset_info_details;
  35. // 15-30 struct receive_rssi_info post_rssi_info_details;
  36. // 31 phy_sw_status_31_0[31:0]
  37. // 32 phy_sw_status_63_32[31:0]
  38. //
  39. // ################ END SUMMARY #################
  40. #define NUM_OF_DWORDS_PHYRX_PKT_END_INFO 33
  41. struct phyrx_pkt_end_info {
  42. uint32_t phy_internal_nap : 1, //[0]
  43. location_info_valid : 1, //[1]
  44. timing_info_valid : 1, //[2]
  45. rssi_info_valid : 1, //[3]
  46. rx_frame_correction_needed : 1, //[4]
  47. frameless_frame_received : 1, //[5]
  48. reserved_0a : 6, //[11:6]
  49. dl_ofdma_info_valid : 1, //[12]
  50. dl_ofdma_ru_start_index : 7, //[19:13]
  51. dl_ofdma_ru_width : 7, //[26:20]
  52. reserved_0b : 5; //[31:27]
  53. uint32_t phy_timestamp_1_lower_32 : 32; //[31:0]
  54. uint32_t phy_timestamp_1_upper_32 : 32; //[31:0]
  55. uint32_t phy_timestamp_2_lower_32 : 32; //[31:0]
  56. uint32_t phy_timestamp_2_upper_32 : 32; //[31:0]
  57. struct rx_location_info rx_location_info_details;
  58. struct rx_timing_offset_info rx_timing_offset_info_details;
  59. struct receive_rssi_info post_rssi_info_details;
  60. uint32_t phy_sw_status_31_0 : 32; //[31:0]
  61. uint32_t phy_sw_status_63_32 : 32; //[31:0]
  62. };
  63. /*
  64. phy_internal_nap
  65. When set, PHY RX entered an internal NAP state, as PHY
  66. determined that this reception was not destined to this
  67. device
  68. location_info_valid
  69. Indicates that the RX_LOCATION_INFO structure later on
  70. in the TLV contains valid info
  71. timing_info_valid
  72. Indicates that the RX_TIMING_OFFSET_INFO structure later
  73. on in the TLV contains valid info
  74. rssi_info_valid
  75. Indicates that the RECEIVE_RSSI_INFO structure later on
  76. in the TLV contains valid info
  77. rx_frame_correction_needed
  78. When clear, no action is needed in the MAC.
  79. When set, the falling edge of the rx_frame happened 4us
  80. too late. MAC will need to compensate for this delay in
  81. order to maintain proper SIFS timing and/or not to get
  82. de-slotted.
  83. PHY uses this for very short 11a frames.
  84. When set, PHY will have passed this TLV to the MAC up to
  85. 8 us into the 'real SIFS' time, and thus within 4us from the
  86. falling edge of the rx_frame.
  87. <legal all>
  88. frameless_frame_received
  89. When set, PHY has received the 'frameless frame' . Can
  90. be used in the 'MU-RTS -CTS exchange where CTS reception can
  91. be problematic.
  92. <legal all>
  93. reserved_0a
  94. <legal 0>
  95. dl_ofdma_info_valid
  96. When set, the following DL_ofdma_... fields are valid.
  97. It provides the MAC insight into which RU was allocated
  98. to this device.
  99. <legal all>
  100. dl_ofdma_ru_start_index
  101. RU index number to which User is assigned
  102. RU numbering is over the entire BW, starting from 0
  103. <legal 0-73>
  104. dl_ofdma_ru_width
  105. The size of the RU for this user.
  106. In units of 1 (26 tone) RU
  107. <legal 1-74>
  108. reserved_0b
  109. <legal 0>
  110. phy_timestamp_1_lower_32
  111. TODO PHY: cleanup descriptionThe PHY timestamp in the
  112. AMPI of the first rising edge of rx_clear_pri after
  113. TX_PHY_DESC. . This field should set to 0 by the PHY and
  114. should be updated by the AMPI before being forwarded to the
  115. rest of the MAC. This field indicates the lower 32 bits of
  116. the timestamp
  117. phy_timestamp_1_upper_32
  118. TODO PHY: cleanup description
  119. The PHY timestamp in the AMPI of the first rising edge
  120. of rx_clear_pri after TX_PHY_DESC. This field should set to
  121. 0 by the PHY and should be updated by the AMPI before being
  122. forwarded to the rest of the MAC. This field indicates the
  123. upper 32 bits of the timestamp
  124. phy_timestamp_2_lower_32
  125. TODO PHY: cleanup description
  126. The PHY timestamp in the AMPI of the rising edge of
  127. rx_clear_pri after RX_RSSI_LEGACY. This field should set to
  128. 0 by the PHY and should be updated by the AMPI before being
  129. forwarded to the rest of the MAC. This field indicates the
  130. lower 32 bits of the timestamp
  131. phy_timestamp_2_upper_32
  132. TODO PHY: cleanup description
  133. The PHY timestamp in the AMPI of the rising edge of
  134. rx_clear_pri after RX_RSSI_LEGACY. This field should set to
  135. 0 by the PHY and should be updated by the AMPI before being
  136. forwarded to the rest of the MAC. This field indicates the
  137. upper 32 bits of the timestamp
  138. struct rx_location_info rx_location_info_details
  139. Overview of location related info
  140. struct rx_timing_offset_info rx_timing_offset_info_details
  141. Overview of timing offset related info
  142. struct receive_rssi_info post_rssi_info_details
  143. Overview of the post-RSSI values.
  144. phy_sw_status_31_0
  145. Some PHY micro code status that can be put in here.
  146. Details of definition within SW specification
  147. This field can be used for debugging, FW - SW message
  148. exchange, etc.
  149. It could for example be a pointer to a DDR memory
  150. location where PHY FW put some debug info.
  151. <legal all>
  152. phy_sw_status_63_32
  153. Some PHY micro code status that can be put in here.
  154. Details of definition within SW specification
  155. This field can be used for debugging, FW - SW message
  156. exchange, etc.
  157. It could for example be a pointer to a DDR memory
  158. location where PHY FW put some debug info.
  159. <legal all>
  160. */
  161. /* Description PHYRX_PKT_END_INFO_0_PHY_INTERNAL_NAP
  162. When set, PHY RX entered an internal NAP state, as PHY
  163. determined that this reception was not destined to this
  164. device
  165. */
  166. #define PHYRX_PKT_END_INFO_0_PHY_INTERNAL_NAP_OFFSET 0x00000000
  167. #define PHYRX_PKT_END_INFO_0_PHY_INTERNAL_NAP_LSB 0
  168. #define PHYRX_PKT_END_INFO_0_PHY_INTERNAL_NAP_MASK 0x00000001
  169. /* Description PHYRX_PKT_END_INFO_0_LOCATION_INFO_VALID
  170. Indicates that the RX_LOCATION_INFO structure later on
  171. in the TLV contains valid info
  172. */
  173. #define PHYRX_PKT_END_INFO_0_LOCATION_INFO_VALID_OFFSET 0x00000000
  174. #define PHYRX_PKT_END_INFO_0_LOCATION_INFO_VALID_LSB 1
  175. #define PHYRX_PKT_END_INFO_0_LOCATION_INFO_VALID_MASK 0x00000002
  176. /* Description PHYRX_PKT_END_INFO_0_TIMING_INFO_VALID
  177. Indicates that the RX_TIMING_OFFSET_INFO structure later
  178. on in the TLV contains valid info
  179. */
  180. #define PHYRX_PKT_END_INFO_0_TIMING_INFO_VALID_OFFSET 0x00000000
  181. #define PHYRX_PKT_END_INFO_0_TIMING_INFO_VALID_LSB 2
  182. #define PHYRX_PKT_END_INFO_0_TIMING_INFO_VALID_MASK 0x00000004
  183. /* Description PHYRX_PKT_END_INFO_0_RSSI_INFO_VALID
  184. Indicates that the RECEIVE_RSSI_INFO structure later on
  185. in the TLV contains valid info
  186. */
  187. #define PHYRX_PKT_END_INFO_0_RSSI_INFO_VALID_OFFSET 0x00000000
  188. #define PHYRX_PKT_END_INFO_0_RSSI_INFO_VALID_LSB 3
  189. #define PHYRX_PKT_END_INFO_0_RSSI_INFO_VALID_MASK 0x00000008
  190. /* Description PHYRX_PKT_END_INFO_0_RX_FRAME_CORRECTION_NEEDED
  191. When clear, no action is needed in the MAC.
  192. When set, the falling edge of the rx_frame happened 4us
  193. too late. MAC will need to compensate for this delay in
  194. order to maintain proper SIFS timing and/or not to get
  195. de-slotted.
  196. PHY uses this for very short 11a frames.
  197. When set, PHY will have passed this TLV to the MAC up to
  198. 8 us into the 'real SIFS' time, and thus within 4us from the
  199. falling edge of the rx_frame.
  200. <legal all>
  201. */
  202. #define PHYRX_PKT_END_INFO_0_RX_FRAME_CORRECTION_NEEDED_OFFSET 0x00000000
  203. #define PHYRX_PKT_END_INFO_0_RX_FRAME_CORRECTION_NEEDED_LSB 4
  204. #define PHYRX_PKT_END_INFO_0_RX_FRAME_CORRECTION_NEEDED_MASK 0x00000010
  205. /* Description PHYRX_PKT_END_INFO_0_FRAMELESS_FRAME_RECEIVED
  206. When set, PHY has received the 'frameless frame' . Can
  207. be used in the 'MU-RTS -CTS exchange where CTS reception can
  208. be problematic.
  209. <legal all>
  210. */
  211. #define PHYRX_PKT_END_INFO_0_FRAMELESS_FRAME_RECEIVED_OFFSET 0x00000000
  212. #define PHYRX_PKT_END_INFO_0_FRAMELESS_FRAME_RECEIVED_LSB 5
  213. #define PHYRX_PKT_END_INFO_0_FRAMELESS_FRAME_RECEIVED_MASK 0x00000020
  214. /* Description PHYRX_PKT_END_INFO_0_RESERVED_0A
  215. <legal 0>
  216. */
  217. #define PHYRX_PKT_END_INFO_0_RESERVED_0A_OFFSET 0x00000000
  218. #define PHYRX_PKT_END_INFO_0_RESERVED_0A_LSB 6
  219. #define PHYRX_PKT_END_INFO_0_RESERVED_0A_MASK 0x00000fc0
  220. /* Description PHYRX_PKT_END_INFO_0_DL_OFDMA_INFO_VALID
  221. When set, the following DL_ofdma_... fields are valid.
  222. It provides the MAC insight into which RU was allocated
  223. to this device.
  224. <legal all>
  225. */
  226. #define PHYRX_PKT_END_INFO_0_DL_OFDMA_INFO_VALID_OFFSET 0x00000000
  227. #define PHYRX_PKT_END_INFO_0_DL_OFDMA_INFO_VALID_LSB 12
  228. #define PHYRX_PKT_END_INFO_0_DL_OFDMA_INFO_VALID_MASK 0x00001000
  229. /* Description PHYRX_PKT_END_INFO_0_DL_OFDMA_RU_START_INDEX
  230. RU index number to which User is assigned
  231. RU numbering is over the entire BW, starting from 0
  232. <legal 0-73>
  233. */
  234. #define PHYRX_PKT_END_INFO_0_DL_OFDMA_RU_START_INDEX_OFFSET 0x00000000
  235. #define PHYRX_PKT_END_INFO_0_DL_OFDMA_RU_START_INDEX_LSB 13
  236. #define PHYRX_PKT_END_INFO_0_DL_OFDMA_RU_START_INDEX_MASK 0x000fe000
  237. /* Description PHYRX_PKT_END_INFO_0_DL_OFDMA_RU_WIDTH
  238. The size of the RU for this user.
  239. In units of 1 (26 tone) RU
  240. <legal 1-74>
  241. */
  242. #define PHYRX_PKT_END_INFO_0_DL_OFDMA_RU_WIDTH_OFFSET 0x00000000
  243. #define PHYRX_PKT_END_INFO_0_DL_OFDMA_RU_WIDTH_LSB 20
  244. #define PHYRX_PKT_END_INFO_0_DL_OFDMA_RU_WIDTH_MASK 0x07f00000
  245. /* Description PHYRX_PKT_END_INFO_0_RESERVED_0B
  246. <legal 0>
  247. */
  248. #define PHYRX_PKT_END_INFO_0_RESERVED_0B_OFFSET 0x00000000
  249. #define PHYRX_PKT_END_INFO_0_RESERVED_0B_LSB 27
  250. #define PHYRX_PKT_END_INFO_0_RESERVED_0B_MASK 0xf8000000
  251. /* Description PHYRX_PKT_END_INFO_1_PHY_TIMESTAMP_1_LOWER_32
  252. TODO PHY: cleanup descriptionThe PHY timestamp in the
  253. AMPI of the first rising edge of rx_clear_pri after
  254. TX_PHY_DESC. . This field should set to 0 by the PHY and
  255. should be updated by the AMPI before being forwarded to the
  256. rest of the MAC. This field indicates the lower 32 bits of
  257. the timestamp
  258. */
  259. #define PHYRX_PKT_END_INFO_1_PHY_TIMESTAMP_1_LOWER_32_OFFSET 0x00000004
  260. #define PHYRX_PKT_END_INFO_1_PHY_TIMESTAMP_1_LOWER_32_LSB 0
  261. #define PHYRX_PKT_END_INFO_1_PHY_TIMESTAMP_1_LOWER_32_MASK 0xffffffff
  262. /* Description PHYRX_PKT_END_INFO_2_PHY_TIMESTAMP_1_UPPER_32
  263. TODO PHY: cleanup description
  264. The PHY timestamp in the AMPI of the first rising edge
  265. of rx_clear_pri after TX_PHY_DESC. This field should set to
  266. 0 by the PHY and should be updated by the AMPI before being
  267. forwarded to the rest of the MAC. This field indicates the
  268. upper 32 bits of the timestamp
  269. */
  270. #define PHYRX_PKT_END_INFO_2_PHY_TIMESTAMP_1_UPPER_32_OFFSET 0x00000008
  271. #define PHYRX_PKT_END_INFO_2_PHY_TIMESTAMP_1_UPPER_32_LSB 0
  272. #define PHYRX_PKT_END_INFO_2_PHY_TIMESTAMP_1_UPPER_32_MASK 0xffffffff
  273. /* Description PHYRX_PKT_END_INFO_3_PHY_TIMESTAMP_2_LOWER_32
  274. TODO PHY: cleanup description
  275. The PHY timestamp in the AMPI of the rising edge of
  276. rx_clear_pri after RX_RSSI_LEGACY. This field should set to
  277. 0 by the PHY and should be updated by the AMPI before being
  278. forwarded to the rest of the MAC. This field indicates the
  279. lower 32 bits of the timestamp
  280. */
  281. #define PHYRX_PKT_END_INFO_3_PHY_TIMESTAMP_2_LOWER_32_OFFSET 0x0000000c
  282. #define PHYRX_PKT_END_INFO_3_PHY_TIMESTAMP_2_LOWER_32_LSB 0
  283. #define PHYRX_PKT_END_INFO_3_PHY_TIMESTAMP_2_LOWER_32_MASK 0xffffffff
  284. /* Description PHYRX_PKT_END_INFO_4_PHY_TIMESTAMP_2_UPPER_32
  285. TODO PHY: cleanup description
  286. The PHY timestamp in the AMPI of the rising edge of
  287. rx_clear_pri after RX_RSSI_LEGACY. This field should set to
  288. 0 by the PHY and should be updated by the AMPI before being
  289. forwarded to the rest of the MAC. This field indicates the
  290. upper 32 bits of the timestamp
  291. */
  292. #define PHYRX_PKT_END_INFO_4_PHY_TIMESTAMP_2_UPPER_32_OFFSET 0x00000010
  293. #define PHYRX_PKT_END_INFO_4_PHY_TIMESTAMP_2_UPPER_32_LSB 0
  294. #define PHYRX_PKT_END_INFO_4_PHY_TIMESTAMP_2_UPPER_32_MASK 0xffffffff
  295. #define PHYRX_PKT_END_INFO_5_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_OFFSET 0x00000014
  296. #define PHYRX_PKT_END_INFO_5_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_LSB 0
  297. #define PHYRX_PKT_END_INFO_5_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_MASK 0xffffffff
  298. #define PHYRX_PKT_END_INFO_6_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_OFFSET 0x00000018
  299. #define PHYRX_PKT_END_INFO_6_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_LSB 0
  300. #define PHYRX_PKT_END_INFO_6_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_MASK 0xffffffff
  301. #define PHYRX_PKT_END_INFO_7_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_OFFSET 0x0000001c
  302. #define PHYRX_PKT_END_INFO_7_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_LSB 0
  303. #define PHYRX_PKT_END_INFO_7_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_MASK 0xffffffff
  304. #define PHYRX_PKT_END_INFO_8_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_OFFSET 0x00000020
  305. #define PHYRX_PKT_END_INFO_8_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_LSB 0
  306. #define PHYRX_PKT_END_INFO_8_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_MASK 0xffffffff
  307. #define PHYRX_PKT_END_INFO_9_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_OFFSET 0x00000024
  308. #define PHYRX_PKT_END_INFO_9_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_LSB 0
  309. #define PHYRX_PKT_END_INFO_9_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_MASK 0xffffffff
  310. #define PHYRX_PKT_END_INFO_10_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_OFFSET 0x00000028
  311. #define PHYRX_PKT_END_INFO_10_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_LSB 0
  312. #define PHYRX_PKT_END_INFO_10_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_MASK 0xffffffff
  313. #define PHYRX_PKT_END_INFO_11_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_OFFSET 0x0000002c
  314. #define PHYRX_PKT_END_INFO_11_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_LSB 0
  315. #define PHYRX_PKT_END_INFO_11_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_MASK 0xffffffff
  316. #define PHYRX_PKT_END_INFO_12_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_OFFSET 0x00000030
  317. #define PHYRX_PKT_END_INFO_12_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_LSB 0
  318. #define PHYRX_PKT_END_INFO_12_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_MASK 0xffffffff
  319. #define PHYRX_PKT_END_INFO_13_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_OFFSET 0x00000034
  320. #define PHYRX_PKT_END_INFO_13_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_LSB 0
  321. #define PHYRX_PKT_END_INFO_13_RX_LOCATION_INFO_RX_LOCATION_INFO_DETAILS_MASK 0xffffffff
  322. #define PHYRX_PKT_END_INFO_14_RX_TIMING_OFFSET_INFO_RX_TIMING_OFFSET_INFO_DETAILS_OFFSET 0x00000038
  323. #define PHYRX_PKT_END_INFO_14_RX_TIMING_OFFSET_INFO_RX_TIMING_OFFSET_INFO_DETAILS_LSB 0
  324. #define PHYRX_PKT_END_INFO_14_RX_TIMING_OFFSET_INFO_RX_TIMING_OFFSET_INFO_DETAILS_MASK 0xffffffff
  325. #define PHYRX_PKT_END_INFO_15_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_OFFSET 0x0000003c
  326. #define PHYRX_PKT_END_INFO_15_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_LSB 0
  327. #define PHYRX_PKT_END_INFO_15_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_MASK 0xffffffff
  328. #define PHYRX_PKT_END_INFO_16_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_OFFSET 0x00000040
  329. #define PHYRX_PKT_END_INFO_16_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_LSB 0
  330. #define PHYRX_PKT_END_INFO_16_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_MASK 0xffffffff
  331. #define PHYRX_PKT_END_INFO_17_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_OFFSET 0x00000044
  332. #define PHYRX_PKT_END_INFO_17_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_LSB 0
  333. #define PHYRX_PKT_END_INFO_17_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_MASK 0xffffffff
  334. #define PHYRX_PKT_END_INFO_18_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_OFFSET 0x00000048
  335. #define PHYRX_PKT_END_INFO_18_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_LSB 0
  336. #define PHYRX_PKT_END_INFO_18_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_MASK 0xffffffff
  337. #define PHYRX_PKT_END_INFO_19_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_OFFSET 0x0000004c
  338. #define PHYRX_PKT_END_INFO_19_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_LSB 0
  339. #define PHYRX_PKT_END_INFO_19_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_MASK 0xffffffff
  340. #define PHYRX_PKT_END_INFO_20_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_OFFSET 0x00000050
  341. #define PHYRX_PKT_END_INFO_20_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_LSB 0
  342. #define PHYRX_PKT_END_INFO_20_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_MASK 0xffffffff
  343. #define PHYRX_PKT_END_INFO_21_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_OFFSET 0x00000054
  344. #define PHYRX_PKT_END_INFO_21_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_LSB 0
  345. #define PHYRX_PKT_END_INFO_21_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_MASK 0xffffffff
  346. #define PHYRX_PKT_END_INFO_22_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_OFFSET 0x00000058
  347. #define PHYRX_PKT_END_INFO_22_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_LSB 0
  348. #define PHYRX_PKT_END_INFO_22_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_MASK 0xffffffff
  349. #define PHYRX_PKT_END_INFO_23_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_OFFSET 0x0000005c
  350. #define PHYRX_PKT_END_INFO_23_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_LSB 0
  351. #define PHYRX_PKT_END_INFO_23_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_MASK 0xffffffff
  352. #define PHYRX_PKT_END_INFO_24_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_OFFSET 0x00000060
  353. #define PHYRX_PKT_END_INFO_24_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_LSB 0
  354. #define PHYRX_PKT_END_INFO_24_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_MASK 0xffffffff
  355. #define PHYRX_PKT_END_INFO_25_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_OFFSET 0x00000064
  356. #define PHYRX_PKT_END_INFO_25_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_LSB 0
  357. #define PHYRX_PKT_END_INFO_25_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_MASK 0xffffffff
  358. #define PHYRX_PKT_END_INFO_26_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_OFFSET 0x00000068
  359. #define PHYRX_PKT_END_INFO_26_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_LSB 0
  360. #define PHYRX_PKT_END_INFO_26_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_MASK 0xffffffff
  361. #define PHYRX_PKT_END_INFO_27_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_OFFSET 0x0000006c
  362. #define PHYRX_PKT_END_INFO_27_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_LSB 0
  363. #define PHYRX_PKT_END_INFO_27_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_MASK 0xffffffff
  364. #define PHYRX_PKT_END_INFO_28_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_OFFSET 0x00000070
  365. #define PHYRX_PKT_END_INFO_28_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_LSB 0
  366. #define PHYRX_PKT_END_INFO_28_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_MASK 0xffffffff
  367. #define PHYRX_PKT_END_INFO_29_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_OFFSET 0x00000074
  368. #define PHYRX_PKT_END_INFO_29_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_LSB 0
  369. #define PHYRX_PKT_END_INFO_29_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_MASK 0xffffffff
  370. #define PHYRX_PKT_END_INFO_30_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_OFFSET 0x00000078
  371. #define PHYRX_PKT_END_INFO_30_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_LSB 0
  372. #define PHYRX_PKT_END_INFO_30_RECEIVE_RSSI_INFO_POST_RSSI_INFO_DETAILS_MASK 0xffffffff
  373. /* Description PHYRX_PKT_END_INFO_31_PHY_SW_STATUS_31_0
  374. Some PHY micro code status that can be put in here.
  375. Details of definition within SW specification
  376. This field can be used for debugging, FW - SW message
  377. exchange, etc.
  378. It could for example be a pointer to a DDR memory
  379. location where PHY FW put some debug info.
  380. <legal all>
  381. */
  382. #define PHYRX_PKT_END_INFO_31_PHY_SW_STATUS_31_0_OFFSET 0x0000007c
  383. #define PHYRX_PKT_END_INFO_31_PHY_SW_STATUS_31_0_LSB 0
  384. #define PHYRX_PKT_END_INFO_31_PHY_SW_STATUS_31_0_MASK 0xffffffff
  385. /* Description PHYRX_PKT_END_INFO_32_PHY_SW_STATUS_63_32
  386. Some PHY micro code status that can be put in here.
  387. Details of definition within SW specification
  388. This field can be used for debugging, FW - SW message
  389. exchange, etc.
  390. It could for example be a pointer to a DDR memory
  391. location where PHY FW put some debug info.
  392. <legal all>
  393. */
  394. #define PHYRX_PKT_END_INFO_32_PHY_SW_STATUS_63_32_OFFSET 0x00000080
  395. #define PHYRX_PKT_END_INFO_32_PHY_SW_STATUS_63_32_LSB 0
  396. #define PHYRX_PKT_END_INFO_32_PHY_SW_STATUS_63_32_MASK 0xffffffff
  397. #endif // _PHYRX_PKT_END_INFO_H_