phyrx_rssi_legacy.h 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865
  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_RSSI_LEGACY_H_
  19. #define _PHYRX_RSSI_LEGACY_H_
  20. #if !defined(__ASSEMBLER__)
  21. #endif
  22. #include "receive_rssi_info.h"
  23. // ################ START SUMMARY #################
  24. //
  25. // Dword Fields
  26. // 0 reception_type[3:0], reserved_0[5:4], receive_bandwidth[7:6], rx_chain_mask[15:8], phy_ppdu_id[31:16]
  27. // 1 sw_phy_meta_data[31:0]
  28. // 2 ppdu_start_timestamp[31:0]
  29. // 3-18 struct receive_rssi_info pre_rssi_info_details;
  30. // 19-34 struct receive_rssi_info preamble_rssi_info_details;
  31. // 35 pre_rssi_comb[7:0], rssi_comb[15:8], normalized_pre_rssi_comb[23:16], normalized_rssi_comb[31:24]
  32. // 36 rssi_comb_ppdu[7:0], rssi_db_to_dbm_offset[15:8], reserved_36a[31:16]
  33. //
  34. // ################ END SUMMARY #################
  35. #define NUM_OF_DWORDS_PHYRX_RSSI_LEGACY 37
  36. struct phyrx_rssi_legacy {
  37. uint32_t reception_type : 4, //[3:0]
  38. reserved_0 : 2, //[5:4]
  39. receive_bandwidth : 2, //[7:6]
  40. rx_chain_mask : 8, //[15:8]
  41. phy_ppdu_id : 16; //[31:16]
  42. uint32_t sw_phy_meta_data : 32; //[31:0]
  43. uint32_t ppdu_start_timestamp : 32; //[31:0]
  44. struct receive_rssi_info pre_rssi_info_details;
  45. struct receive_rssi_info preamble_rssi_info_details;
  46. uint32_t pre_rssi_comb : 8, //[7:0]
  47. rssi_comb : 8, //[15:8]
  48. normalized_pre_rssi_comb : 8, //[23:16]
  49. normalized_rssi_comb : 8; //[31:24]
  50. uint32_t rssi_comb_ppdu : 8, //[7:0]
  51. rssi_db_to_dbm_offset : 8, //[15:8]
  52. reserved_36a : 16; //[31:16]
  53. };
  54. /*
  55. reception_type
  56. This field helps MAC SW determine which field in this
  57. (and following TLVs) will contain valid information. For
  58. example some RSSI info not valid in case of uplink_ofdma..
  59. <enum 0 reception_is_uplink_ofdma>
  60. <enum 1 reception_is_uplink_mimo>
  61. <enum 2 reception_is_other>
  62. <enum 3 reception_is_frameless> PHY RX has been
  63. instructed in advance that the upcoming reception is
  64. frameless. This implieas that in advance it is known that
  65. all frames will collide in the medium, and nothing can be
  66. properly decoded... This can happen during the CTS reception
  67. in response to the triggered MU-RTS transmission.
  68. MAC takes no action when seeing this e_num. For the
  69. frameless reception the indication in pkt_end is the final
  70. one evaluated by the MAC
  71. <legal 0-3>
  72. reserved_0
  73. <legal 0>
  74. receive_bandwidth
  75. Full receive Bandwidth
  76. <enum 0 full_rx_bw_20_mhz>
  77. <enum 1 full_rx_bw_40_mhz>
  78. <enum 2 full_rx_bw_80_mhz>
  79. <enum 3 full_rx_bw_160_mhz>
  80. <legal 0-3>
  81. rx_chain_mask
  82. The chain mask at the start of the reception of this
  83. frame.
  84. each bit is one antenna
  85. 0: the chain is NOT used
  86. 1: the chain is used
  87. Supports up to 8 chains
  88. Used in 11ax TPC calculations for UL OFDMA/MIMO and has
  89. to be in sync with the rssi_comb value as this is also used
  90. by the MAC for the TPC calculations.
  91. <legal all>
  92. phy_ppdu_id
  93. A ppdu counter value that PHY increments for every PPDU
  94. received. The counter value wraps around
  95. <legal all>
  96. sw_phy_meta_data
  97. 32 bit Meta data that SW can program in a 32 bit PHY
  98. register and PHY will insert the value in every
  99. RX_RSSI_LEGACY TLV that it generates.
  100. SW uses this field to embed among other things some SW
  101. channel info.
  102. ppdu_start_timestamp
  103. Timestamp that indicates when the PPDU that contained
  104. this MPDU started on the medium.
  105. Note that PHY will detect the start later, and will have
  106. to derive out of the preamble info when the frame actually
  107. appeared on the medium
  108. <legal 0- 10>
  109. struct receive_rssi_info pre_rssi_info_details
  110. This field is not valid when reception_is_uplink_ofdma
  111. Overview of the pre-RSSI values. That is RSSI values
  112. measured on the medium before this reception started.
  113. struct receive_rssi_info preamble_rssi_info_details
  114. This field is not valid when reception_is_uplink_ofdma
  115. Overview of the RSSI values measured during the
  116. pre-amble phase of this reception
  117. pre_rssi_comb
  118. Combined pre_rssi of all chains. Based on primary
  119. channel RSSI.
  120. RSSI is reported as 8b signed values. Nominally value is
  121. in dB units above or below the noisefloor(minCCApwr).
  122. The resolution can be:
  123. 1dB or 0.5dB. This is statically configured within the
  124. PHY and MAC
  125. In case of 1dB, the Range is:
  126. -128dB to 127dB
  127. In case of 0.5dB, the Range is:
  128. -64dB to 63.5dB
  129. <legal all>
  130. rssi_comb
  131. Combined rssi of all chains. Based on primary channel
  132. RSSI.
  133. RSSI is reported as 8b signed values. Nominally value is
  134. in dB units above or below the noisefloor(minCCApwr).
  135. The resolution can be:
  136. 1dB or 0.5dB. This is statically configured within the
  137. PHY and MAC
  138. In case of 1dB, the Range is:
  139. -128dB to 127dB
  140. In case of 0.5dB, the Range is:
  141. -64dB to 63.5dB
  142. <legal all>
  143. normalized_pre_rssi_comb
  144. Combined pre_rssi of all chains, but normalized back to
  145. a single chain. This avoids PDG from having to evaluate this
  146. in combination with receive chain mask and perform all kinds
  147. of pre-processing algorithms.
  148. Based on primary channel RSSI.
  149. RSSI is reported as 8b signed values. Nominally value is
  150. in dB units above or below the noisefloor(minCCApwr).
  151. The resolution can be:
  152. 1dB or 0.5dB. This is statically configured within the
  153. PHY and MAC
  154. In case of 1dB, the Range is:
  155. -128dB to 127dB
  156. In case of 0.5dB, the Range is:
  157. -64dB to 63.5dB
  158. <legal all>
  159. normalized_rssi_comb
  160. Combined rssi of all chains, but normalized back to a
  161. single chain. This avoids PDG from having to evaluate this
  162. in combination with receive chain mask and perform all kinds
  163. of pre-processing algorithms.
  164. Based on primary channel RSSI.
  165. RSSI is reported as 8b signed values. Nominally value is
  166. in dB units above or below the noisefloor(minCCApwr).
  167. The resolution can be:
  168. 1dB or 0.5dB. This is statically configured within the
  169. PHY and MAC
  170. In case of 1dB, the Range is:
  171. -128dB to 127dB
  172. In case of 0.5dB, the Range is:
  173. -64dB to 63.5dB
  174. <legal all>
  175. rssi_comb_ppdu
  176. Combined rssi of all chains, based on active
  177. RUs/subchannels
  178. RSSI is reported as 8b signed values. Nominally value is
  179. in dB units above or below the noisefloor(minCCApwr).
  180. The resolution can be:
  181. 1dB or 0.5dB. This is statically configured within the
  182. PHY and MAC
  183. In case of 1dB, the Range is:
  184. -128dB to 127dB
  185. In case of 0.5dB, the Range is:
  186. -64dB to 63.5dB
  187. When packet BW is 20 MHz,
  188. rssi_comb_ppdu = rssi_comb.
  189. When packet BW > 20 MHz,
  190. rssi_comb < rssi_comb_ppdu because rssi_comb only
  191. includes power of primary 20 MHz while rssi_comb_ppdu
  192. includes power of active RUs/subchannels.
  193. <legal all>
  194. rssi_db_to_dbm_offset
  195. Offset between 'dB' and 'dBm' values. SW can use this
  196. value to convert RSSI 'dBm' values back to 'dB,' and report
  197. both the values.
  198. When rssi_db_to_dbm_offset = 0,
  199. all rssi_xxx fields are defined in dB.
  200. When rssi_db_to_dbm_offset is a large negative value,
  201. all rssi_xxx fields are defined in dBm.
  202. <legal all>
  203. reserved_36a
  204. <legal 0>
  205. */
  206. /* Description PHYRX_RSSI_LEGACY_0_RECEPTION_TYPE
  207. This field helps MAC SW determine which field in this
  208. (and following TLVs) will contain valid information. For
  209. example some RSSI info not valid in case of uplink_ofdma..
  210. <enum 0 reception_is_uplink_ofdma>
  211. <enum 1 reception_is_uplink_mimo>
  212. <enum 2 reception_is_other>
  213. <enum 3 reception_is_frameless> PHY RX has been
  214. instructed in advance that the upcoming reception is
  215. frameless. This implieas that in advance it is known that
  216. all frames will collide in the medium, and nothing can be
  217. properly decoded... This can happen during the CTS reception
  218. in response to the triggered MU-RTS transmission.
  219. MAC takes no action when seeing this e_num. For the
  220. frameless reception the indication in pkt_end is the final
  221. one evaluated by the MAC
  222. <legal 0-3>
  223. */
  224. #define PHYRX_RSSI_LEGACY_0_RECEPTION_TYPE_OFFSET 0x00000000
  225. #define PHYRX_RSSI_LEGACY_0_RECEPTION_TYPE_LSB 0
  226. #define PHYRX_RSSI_LEGACY_0_RECEPTION_TYPE_MASK 0x0000000f
  227. /* Description PHYRX_RSSI_LEGACY_0_RESERVED_0
  228. <legal 0>
  229. */
  230. #define PHYRX_RSSI_LEGACY_0_RESERVED_0_OFFSET 0x00000000
  231. #define PHYRX_RSSI_LEGACY_0_RESERVED_0_LSB 4
  232. #define PHYRX_RSSI_LEGACY_0_RESERVED_0_MASK 0x00000030
  233. /* Description PHYRX_RSSI_LEGACY_0_RECEIVE_BANDWIDTH
  234. Full receive Bandwidth
  235. <enum 0 full_rx_bw_20_mhz>
  236. <enum 1 full_rx_bw_40_mhz>
  237. <enum 2 full_rx_bw_80_mhz>
  238. <enum 3 full_rx_bw_160_mhz>
  239. <legal 0-3>
  240. */
  241. #define PHYRX_RSSI_LEGACY_0_RECEIVE_BANDWIDTH_OFFSET 0x00000000
  242. #define PHYRX_RSSI_LEGACY_0_RECEIVE_BANDWIDTH_LSB 6
  243. #define PHYRX_RSSI_LEGACY_0_RECEIVE_BANDWIDTH_MASK 0x000000c0
  244. /* Description PHYRX_RSSI_LEGACY_0_RX_CHAIN_MASK
  245. The chain mask at the start of the reception of this
  246. frame.
  247. each bit is one antenna
  248. 0: the chain is NOT used
  249. 1: the chain is used
  250. Supports up to 8 chains
  251. Used in 11ax TPC calculations for UL OFDMA/MIMO and has
  252. to be in sync with the rssi_comb value as this is also used
  253. by the MAC for the TPC calculations.
  254. <legal all>
  255. */
  256. #define PHYRX_RSSI_LEGACY_0_RX_CHAIN_MASK_OFFSET 0x00000000
  257. #define PHYRX_RSSI_LEGACY_0_RX_CHAIN_MASK_LSB 8
  258. #define PHYRX_RSSI_LEGACY_0_RX_CHAIN_MASK_MASK 0x0000ff00
  259. /* Description PHYRX_RSSI_LEGACY_0_PHY_PPDU_ID
  260. A ppdu counter value that PHY increments for every PPDU
  261. received. The counter value wraps around
  262. <legal all>
  263. */
  264. #define PHYRX_RSSI_LEGACY_0_PHY_PPDU_ID_OFFSET 0x00000000
  265. #define PHYRX_RSSI_LEGACY_0_PHY_PPDU_ID_LSB 16
  266. #define PHYRX_RSSI_LEGACY_0_PHY_PPDU_ID_MASK 0xffff0000
  267. /* Description PHYRX_RSSI_LEGACY_1_SW_PHY_META_DATA
  268. 32 bit Meta data that SW can program in a 32 bit PHY
  269. register and PHY will insert the value in every
  270. RX_RSSI_LEGACY TLV that it generates.
  271. SW uses this field to embed among other things some SW
  272. channel info.
  273. */
  274. #define PHYRX_RSSI_LEGACY_1_SW_PHY_META_DATA_OFFSET 0x00000004
  275. #define PHYRX_RSSI_LEGACY_1_SW_PHY_META_DATA_LSB 0
  276. #define PHYRX_RSSI_LEGACY_1_SW_PHY_META_DATA_MASK 0xffffffff
  277. /* Description PHYRX_RSSI_LEGACY_2_PPDU_START_TIMESTAMP
  278. Timestamp that indicates when the PPDU that contained
  279. this MPDU started on the medium.
  280. Note that PHY will detect the start later, and will have
  281. to derive out of the preamble info when the frame actually
  282. appeared on the medium
  283. <legal 0- 10>
  284. */
  285. #define PHYRX_RSSI_LEGACY_2_PPDU_START_TIMESTAMP_OFFSET 0x00000008
  286. #define PHYRX_RSSI_LEGACY_2_PPDU_START_TIMESTAMP_LSB 0
  287. #define PHYRX_RSSI_LEGACY_2_PPDU_START_TIMESTAMP_MASK 0xffffffff
  288. #define PHYRX_RSSI_LEGACY_3_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x0000000c
  289. #define PHYRX_RSSI_LEGACY_3_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  290. #define PHYRX_RSSI_LEGACY_3_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  291. #define PHYRX_RSSI_LEGACY_4_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000010
  292. #define PHYRX_RSSI_LEGACY_4_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  293. #define PHYRX_RSSI_LEGACY_4_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  294. #define PHYRX_RSSI_LEGACY_5_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000014
  295. #define PHYRX_RSSI_LEGACY_5_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  296. #define PHYRX_RSSI_LEGACY_5_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  297. #define PHYRX_RSSI_LEGACY_6_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000018
  298. #define PHYRX_RSSI_LEGACY_6_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  299. #define PHYRX_RSSI_LEGACY_6_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  300. #define PHYRX_RSSI_LEGACY_7_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x0000001c
  301. #define PHYRX_RSSI_LEGACY_7_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  302. #define PHYRX_RSSI_LEGACY_7_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  303. #define PHYRX_RSSI_LEGACY_8_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000020
  304. #define PHYRX_RSSI_LEGACY_8_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  305. #define PHYRX_RSSI_LEGACY_8_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  306. #define PHYRX_RSSI_LEGACY_9_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000024
  307. #define PHYRX_RSSI_LEGACY_9_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  308. #define PHYRX_RSSI_LEGACY_9_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  309. #define PHYRX_RSSI_LEGACY_10_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000028
  310. #define PHYRX_RSSI_LEGACY_10_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  311. #define PHYRX_RSSI_LEGACY_10_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  312. #define PHYRX_RSSI_LEGACY_11_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x0000002c
  313. #define PHYRX_RSSI_LEGACY_11_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  314. #define PHYRX_RSSI_LEGACY_11_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  315. #define PHYRX_RSSI_LEGACY_12_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000030
  316. #define PHYRX_RSSI_LEGACY_12_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  317. #define PHYRX_RSSI_LEGACY_12_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  318. #define PHYRX_RSSI_LEGACY_13_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000034
  319. #define PHYRX_RSSI_LEGACY_13_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  320. #define PHYRX_RSSI_LEGACY_13_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  321. #define PHYRX_RSSI_LEGACY_14_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000038
  322. #define PHYRX_RSSI_LEGACY_14_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  323. #define PHYRX_RSSI_LEGACY_14_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  324. #define PHYRX_RSSI_LEGACY_15_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x0000003c
  325. #define PHYRX_RSSI_LEGACY_15_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  326. #define PHYRX_RSSI_LEGACY_15_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  327. #define PHYRX_RSSI_LEGACY_16_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000040
  328. #define PHYRX_RSSI_LEGACY_16_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  329. #define PHYRX_RSSI_LEGACY_16_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  330. #define PHYRX_RSSI_LEGACY_17_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000044
  331. #define PHYRX_RSSI_LEGACY_17_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  332. #define PHYRX_RSSI_LEGACY_17_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  333. #define PHYRX_RSSI_LEGACY_18_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000048
  334. #define PHYRX_RSSI_LEGACY_18_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  335. #define PHYRX_RSSI_LEGACY_18_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  336. #define PHYRX_RSSI_LEGACY_19_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x0000004c
  337. #define PHYRX_RSSI_LEGACY_19_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  338. #define PHYRX_RSSI_LEGACY_19_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  339. #define PHYRX_RSSI_LEGACY_20_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000050
  340. #define PHYRX_RSSI_LEGACY_20_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  341. #define PHYRX_RSSI_LEGACY_20_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  342. #define PHYRX_RSSI_LEGACY_21_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000054
  343. #define PHYRX_RSSI_LEGACY_21_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  344. #define PHYRX_RSSI_LEGACY_21_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  345. #define PHYRX_RSSI_LEGACY_22_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000058
  346. #define PHYRX_RSSI_LEGACY_22_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  347. #define PHYRX_RSSI_LEGACY_22_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  348. #define PHYRX_RSSI_LEGACY_23_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x0000005c
  349. #define PHYRX_RSSI_LEGACY_23_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  350. #define PHYRX_RSSI_LEGACY_23_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  351. #define PHYRX_RSSI_LEGACY_24_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000060
  352. #define PHYRX_RSSI_LEGACY_24_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  353. #define PHYRX_RSSI_LEGACY_24_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  354. #define PHYRX_RSSI_LEGACY_25_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000064
  355. #define PHYRX_RSSI_LEGACY_25_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  356. #define PHYRX_RSSI_LEGACY_25_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  357. #define PHYRX_RSSI_LEGACY_26_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000068
  358. #define PHYRX_RSSI_LEGACY_26_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  359. #define PHYRX_RSSI_LEGACY_26_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  360. #define PHYRX_RSSI_LEGACY_27_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x0000006c
  361. #define PHYRX_RSSI_LEGACY_27_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  362. #define PHYRX_RSSI_LEGACY_27_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  363. #define PHYRX_RSSI_LEGACY_28_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000070
  364. #define PHYRX_RSSI_LEGACY_28_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  365. #define PHYRX_RSSI_LEGACY_28_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  366. #define PHYRX_RSSI_LEGACY_29_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000074
  367. #define PHYRX_RSSI_LEGACY_29_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  368. #define PHYRX_RSSI_LEGACY_29_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  369. #define PHYRX_RSSI_LEGACY_30_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000078
  370. #define PHYRX_RSSI_LEGACY_30_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  371. #define PHYRX_RSSI_LEGACY_30_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  372. #define PHYRX_RSSI_LEGACY_31_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x0000007c
  373. #define PHYRX_RSSI_LEGACY_31_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  374. #define PHYRX_RSSI_LEGACY_31_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  375. #define PHYRX_RSSI_LEGACY_32_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000080
  376. #define PHYRX_RSSI_LEGACY_32_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  377. #define PHYRX_RSSI_LEGACY_32_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  378. #define PHYRX_RSSI_LEGACY_33_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000084
  379. #define PHYRX_RSSI_LEGACY_33_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  380. #define PHYRX_RSSI_LEGACY_33_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  381. #define PHYRX_RSSI_LEGACY_34_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000088
  382. #define PHYRX_RSSI_LEGACY_34_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  383. #define PHYRX_RSSI_LEGACY_34_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  384. /* Description PHYRX_RSSI_LEGACY_35_PRE_RSSI_COMB
  385. Combined pre_rssi of all chains. Based on primary
  386. channel RSSI.
  387. RSSI is reported as 8b signed values. Nominally value is
  388. in dB units above or below the noisefloor(minCCApwr).
  389. The resolution can be:
  390. 1dB or 0.5dB. This is statically configured within the
  391. PHY and MAC
  392. In case of 1dB, the Range is:
  393. -128dB to 127dB
  394. In case of 0.5dB, the Range is:
  395. -64dB to 63.5dB
  396. <legal all>
  397. */
  398. #define PHYRX_RSSI_LEGACY_35_PRE_RSSI_COMB_OFFSET 0x0000008c
  399. #define PHYRX_RSSI_LEGACY_35_PRE_RSSI_COMB_LSB 0
  400. #define PHYRX_RSSI_LEGACY_35_PRE_RSSI_COMB_MASK 0x000000ff
  401. /* Description PHYRX_RSSI_LEGACY_35_RSSI_COMB
  402. Combined rssi of all chains. Based on primary channel
  403. RSSI.
  404. RSSI is reported as 8b signed values. Nominally value is
  405. in dB units above or below the noisefloor(minCCApwr).
  406. The resolution can be:
  407. 1dB or 0.5dB. This is statically configured within the
  408. PHY and MAC
  409. In case of 1dB, the Range is:
  410. -128dB to 127dB
  411. In case of 0.5dB, the Range is:
  412. -64dB to 63.5dB
  413. <legal all>
  414. */
  415. #define PHYRX_RSSI_LEGACY_35_RSSI_COMB_OFFSET 0x0000008c
  416. #define PHYRX_RSSI_LEGACY_35_RSSI_COMB_LSB 8
  417. #define PHYRX_RSSI_LEGACY_35_RSSI_COMB_MASK 0x0000ff00
  418. /* Description PHYRX_RSSI_LEGACY_35_NORMALIZED_PRE_RSSI_COMB
  419. Combined pre_rssi of all chains, but normalized back to
  420. a single chain. This avoids PDG from having to evaluate this
  421. in combination with receive chain mask and perform all kinds
  422. of pre-processing algorithms.
  423. Based on primary channel RSSI.
  424. RSSI is reported as 8b signed values. Nominally value is
  425. in dB units above or below the noisefloor(minCCApwr).
  426. The resolution can be:
  427. 1dB or 0.5dB. This is statically configured within the
  428. PHY and MAC
  429. In case of 1dB, the Range is:
  430. -128dB to 127dB
  431. In case of 0.5dB, the Range is:
  432. -64dB to 63.5dB
  433. <legal all>
  434. */
  435. #define PHYRX_RSSI_LEGACY_35_NORMALIZED_PRE_RSSI_COMB_OFFSET 0x0000008c
  436. #define PHYRX_RSSI_LEGACY_35_NORMALIZED_PRE_RSSI_COMB_LSB 16
  437. #define PHYRX_RSSI_LEGACY_35_NORMALIZED_PRE_RSSI_COMB_MASK 0x00ff0000
  438. /* Description PHYRX_RSSI_LEGACY_35_NORMALIZED_RSSI_COMB
  439. Combined rssi of all chains, but normalized back to a
  440. single chain. This avoids PDG from having to evaluate this
  441. in combination with receive chain mask and perform all kinds
  442. of pre-processing algorithms.
  443. Based on primary channel RSSI.
  444. RSSI is reported as 8b signed values. Nominally value is
  445. in dB units above or below the noisefloor(minCCApwr).
  446. The resolution can be:
  447. 1dB or 0.5dB. This is statically configured within the
  448. PHY and MAC
  449. In case of 1dB, the Range is:
  450. -128dB to 127dB
  451. In case of 0.5dB, the Range is:
  452. -64dB to 63.5dB
  453. <legal all>
  454. */
  455. #define PHYRX_RSSI_LEGACY_35_NORMALIZED_RSSI_COMB_OFFSET 0x0000008c
  456. #define PHYRX_RSSI_LEGACY_35_NORMALIZED_RSSI_COMB_LSB 24
  457. #define PHYRX_RSSI_LEGACY_35_NORMALIZED_RSSI_COMB_MASK 0xff000000
  458. /* Description PHYRX_RSSI_LEGACY_36_RSSI_COMB_PPDU
  459. Combined rssi of all chains, based on active
  460. RUs/subchannels
  461. RSSI is reported as 8b signed values. Nominally value is
  462. in dB units above or below the noisefloor(minCCApwr).
  463. The resolution can be:
  464. 1dB or 0.5dB. This is statically configured within the
  465. PHY and MAC
  466. In case of 1dB, the Range is:
  467. -128dB to 127dB
  468. In case of 0.5dB, the Range is:
  469. -64dB to 63.5dB
  470. When packet BW is 20 MHz,
  471. rssi_comb_ppdu = rssi_comb.
  472. When packet BW > 20 MHz,
  473. rssi_comb < rssi_comb_ppdu because rssi_comb only
  474. includes power of primary 20 MHz while rssi_comb_ppdu
  475. includes power of active RUs/subchannels.
  476. <legal all>
  477. */
  478. #define PHYRX_RSSI_LEGACY_36_RSSI_COMB_PPDU_OFFSET 0x00000090
  479. #define PHYRX_RSSI_LEGACY_36_RSSI_COMB_PPDU_LSB 0
  480. #define PHYRX_RSSI_LEGACY_36_RSSI_COMB_PPDU_MASK 0x000000ff
  481. /* Description PHYRX_RSSI_LEGACY_36_RSSI_DB_TO_DBM_OFFSET
  482. Offset between 'dB' and 'dBm' values. SW can use this
  483. value to convert RSSI 'dBm' values back to 'dB,' and report
  484. both the values.
  485. When rssi_db_to_dbm_offset = 0,
  486. all rssi_xxx fields are defined in dB.
  487. When rssi_db_to_dbm_offset is a large negative value,
  488. all rssi_xxx fields are defined in dBm.
  489. <legal all>
  490. */
  491. #define PHYRX_RSSI_LEGACY_36_RSSI_DB_TO_DBM_OFFSET_OFFSET 0x00000090
  492. #define PHYRX_RSSI_LEGACY_36_RSSI_DB_TO_DBM_OFFSET_LSB 8
  493. #define PHYRX_RSSI_LEGACY_36_RSSI_DB_TO_DBM_OFFSET_MASK 0x0000ff00
  494. /* Description PHYRX_RSSI_LEGACY_36_RESERVED_36A
  495. <legal 0>
  496. */
  497. #define PHYRX_RSSI_LEGACY_36_RESERVED_36A_OFFSET 0x00000090
  498. #define PHYRX_RSSI_LEGACY_36_RESERVED_36A_LSB 16
  499. #define PHYRX_RSSI_LEGACY_36_RESERVED_36A_MASK 0xffff0000
  500. #endif // _PHYRX_RSSI_LEGACY_H_