rx_ppdu_start_user_info.h 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636
  1. /* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
  2. *
  3. * Permission to use, copy, modify, and/or distribute this software for any
  4. * purpose with or without fee is hereby granted, provided that the above
  5. * copyright notice and this permission notice appear in all copies.
  6. *
  7. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  8. * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  9. * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  10. * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  11. * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  12. * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  13. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  14. */
  15. #ifndef _RX_PPDU_START_USER_INFO_H_
  16. #define _RX_PPDU_START_USER_INFO_H_
  17. #if !defined(__ASSEMBLER__)
  18. #endif
  19. #include "receive_user_info.h"
  20. #define NUM_OF_DWORDS_RX_PPDU_START_USER_INFO 8
  21. #define NUM_OF_QWORDS_RX_PPDU_START_USER_INFO 4
  22. struct rx_ppdu_start_user_info {
  23. #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
  24. struct receive_user_info receive_user_info_details;
  25. #else
  26. struct receive_user_info receive_user_info_details;
  27. #endif
  28. };
  29. /* Description RECEIVE_USER_INFO_DETAILS
  30. Overview of receive parameters that the MAC needs to prepend
  31. to every received MSDU/MPDU.
  32. */
  33. /* Description PHY_PPDU_ID
  34. A ppdu counter value that PHY increments for every PPDU
  35. received. The counter value wraps around
  36. <legal all>
  37. */
  38. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_OFFSET 0x0000000000000000
  39. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_LSB 0
  40. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_MSB 15
  41. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_MASK 0x000000000000ffff
  42. /* Description USER_RSSI
  43. RSSI for this user
  44. Frequency domain RSSI measurement for this user. Based on
  45. the channel estimate.
  46. <legal all>
  47. */
  48. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_RSSI_OFFSET 0x0000000000000000
  49. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_RSSI_LSB 16
  50. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_RSSI_MSB 23
  51. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_RSSI_MASK 0x0000000000ff0000
  52. /* Description PKT_TYPE
  53. Packet type:
  54. <enum_type PKT_TYPE_ENUM>
  55. */
  56. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_OFFSET 0x0000000000000000
  57. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_LSB 24
  58. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_MSB 27
  59. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_MASK 0x000000000f000000
  60. /* Description STBC
  61. When set, use STBC transmission rates
  62. */
  63. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STBC_OFFSET 0x0000000000000000
  64. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STBC_LSB 28
  65. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STBC_MSB 28
  66. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STBC_MASK 0x0000000010000000
  67. /* Description RECEPTION_TYPE
  68. Indicates what type of reception this is.
  69. <enum 0 reception_type_SU > Basic SU reception (not
  70. part of OFDMA or MU-MIMO)
  71. <enum 1 reception_type_MU_MIMO > This is related to
  72. DL type of reception
  73. <enum 2 reception_type_MU_OFDMA > This is related to
  74. DL type of reception
  75. <enum 3 reception_type_MU_OFDMA_MIMO > This is related
  76. to DL type of reception
  77. <enum 4 reception_type_UL_MU_MIMO > This is related
  78. to UL type of reception
  79. <enum 5 reception_type_UL_MU_OFDMA > This is related
  80. to UL type of reception
  81. <enum 6 reception_type_UL_MU_OFDMA_MIMO > This is related
  82. to UL type of reception
  83. <legal 0-6>
  84. */
  85. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_OFFSET 0x0000000000000000
  86. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_LSB 29
  87. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_MSB 31
  88. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_MASK 0x00000000e0000000
  89. /* Description RATE_MCS
  90. For details, refer to MCS_TYPE description
  91. <legal all>
  92. */
  93. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RATE_MCS_OFFSET 0x0000000000000000
  94. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RATE_MCS_LSB 32
  95. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RATE_MCS_MSB 35
  96. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RATE_MCS_MASK 0x0000000f00000000
  97. /* Description SGI
  98. Field only valid when pkt type is HT, VHT or HE.
  99. <enum 0 gi_0_8_us > Legacy normal GI. Can also be used
  100. for HE
  101. <enum 1 gi_0_4_us > Legacy short GI. Can also be used
  102. for HE
  103. <enum 2 gi_1_6_us > HE related GI
  104. <enum 3 gi_3_2_us > HE related GI
  105. <legal 0 - 3>
  106. */
  107. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_SGI_OFFSET 0x0000000000000000
  108. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_SGI_LSB 36
  109. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_SGI_MSB 37
  110. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_SGI_MASK 0x0000003000000000
  111. /* Description HE_RANGING_NDP
  112. Set to 1 for expected HE TB ranging NDP Rx in response to
  113. sounding/secure sounding ranging Trigger Tx
  114. <legal all>
  115. */
  116. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_HE_RANGING_NDP_OFFSET 0x0000000000000000
  117. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_HE_RANGING_NDP_LSB 38
  118. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_HE_RANGING_NDP_MSB 38
  119. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_HE_RANGING_NDP_MASK 0x0000004000000000
  120. /* Description RESERVED_1A
  121. <legal 0>
  122. */
  123. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1A_OFFSET 0x0000000000000000
  124. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1A_LSB 39
  125. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1A_MSB 39
  126. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1A_MASK 0x0000008000000000
  127. /* Description MIMO_SS_BITMAP
  128. Bitmap, with each bit indicating if the related spatial
  129. stream is used for this STA
  130. LSB related to SS 0
  131. 0: spatial stream not used for this reception
  132. 1: spatial stream used for this reception
  133. <legal all>
  134. */
  135. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_OFFSET 0x0000000000000000
  136. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_LSB 40
  137. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_MSB 47
  138. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_MASK 0x0000ff0000000000
  139. /* Description RECEIVE_BANDWIDTH
  140. Full receive Bandwidth
  141. <enum_type BW_ENUM>
  142. */
  143. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_OFFSET 0x0000000000000000
  144. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_LSB 48
  145. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_MSB 50
  146. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_MASK 0x0007000000000000
  147. /* Description RESERVED_1B
  148. <legal 0>
  149. */
  150. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1B_OFFSET 0x0000000000000000
  151. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1B_LSB 51
  152. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1B_MSB 55
  153. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1B_MASK 0x00f8000000000000
  154. /* Description DL_OFDMA_USER_INDEX
  155. Field only valid in the of DL MU OFDMA reception
  156. The user number within the RU_allocation.
  157. This is needed for SW to determine the exact RU position
  158. within the reception.
  159. <legal all>
  160. */
  161. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_USER_INDEX_OFFSET 0x0000000000000000
  162. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_USER_INDEX_LSB 56
  163. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_USER_INDEX_MSB 63
  164. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_USER_INDEX_MASK 0xff00000000000000
  165. /* Description DL_OFDMA_CONTENT_CHANNEL
  166. Field only valid in the of DL MU OFDMA/MIMO reception
  167. In case of DL MU reception, this field indicates the content
  168. channel number where PHY found the RU information for this
  169. user
  170. This is needed for SW to determine the exact RU position
  171. within the reception.
  172. <enum 0 content_channel_1>
  173. <enum 1 content_channel_2>
  174. <legal all>
  175. */
  176. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_CONTENT_CHANNEL_OFFSET 0x0000000000000008
  177. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_CONTENT_CHANNEL_LSB 0
  178. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_CONTENT_CHANNEL_MSB 0
  179. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_CONTENT_CHANNEL_MASK 0x0000000000000001
  180. /* Description RESERVED_2A
  181. <legal 0>
  182. */
  183. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_OFFSET 0x0000000000000008
  184. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_LSB 1
  185. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_MSB 7
  186. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_MASK 0x00000000000000fe
  187. /* Description NSS
  188. Field only valid in case of Uplink_receive_type == mimo_only
  189. OR ofdma_mimo
  190. Number of Spatial Streams occupied by the User
  191. <enum_type SS_COUNT_ENUM>
  192. */
  193. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_NSS_OFFSET 0x0000000000000008
  194. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_NSS_LSB 8
  195. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_NSS_MSB 10
  196. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_NSS_MASK 0x0000000000000700
  197. /* Description STREAM_OFFSET
  198. Field only valid in case of Uplink_receive_type == mimo_only
  199. OR ofdma_mimo
  200. Stream Offset from which the User occupies the Streams
  201. Note MAC:
  202. directly from pdg_fes_setup, based on BW
  203. */
  204. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STREAM_OFFSET_OFFSET 0x0000000000000008
  205. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STREAM_OFFSET_LSB 11
  206. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STREAM_OFFSET_MSB 13
  207. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STREAM_OFFSET_MASK 0x0000000000003800
  208. /* Description STA_DCM
  209. Indicates whether dual sub-carrier modulation is applied
  210. 0: No DCM
  211. 1:DCM
  212. <legal all>
  213. */
  214. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STA_DCM_OFFSET 0x0000000000000008
  215. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STA_DCM_LSB 14
  216. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STA_DCM_MSB 14
  217. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STA_DCM_MASK 0x0000000000004000
  218. /* Description LDPC
  219. When set, use LDPC transmission rates were used.
  220. <legal all>
  221. */
  222. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_LDPC_OFFSET 0x0000000000000008
  223. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_LDPC_LSB 15
  224. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_LDPC_MSB 15
  225. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_LDPC_MASK 0x0000000000008000
  226. /* Description RU_TYPE_80_0
  227. Indicates the size of the RU in the first 80 MHz sub-band
  228. <enum 0 RU_26_per80>
  229. <enum 1 RU_52_per80>
  230. <enum 2 RU_78_per80>
  231. <enum 3 RU_106_per80>
  232. <enum 4 RU_132_per80>
  233. <enum 5 RU_242_per80>
  234. <enum 6 RU_484_per80>
  235. <enum 7 RU_726_per80>
  236. <enum 8 RU_996_per80>
  237. <enum 9 RU_996x2>
  238. <enum 10 RU_996x3>
  239. <enum 11 RU_996x4>
  240. <enum 12 RU_rsvd0> DO NOT USE
  241. <enum 13 RU_rsvd1> DO NOT USE
  242. <enum 14 RU_rsvd2> DO NOT USE
  243. <enum 15 RU_NONE> No RUs in this 80 MHz
  244. <legal 0-15>
  245. */
  246. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_0_OFFSET 0x0000000000000008
  247. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_0_LSB 16
  248. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_0_MSB 19
  249. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_0_MASK 0x00000000000f0000
  250. /* Description RU_TYPE_80_1
  251. Indicates the size of the RU in the second 80 MHz sub-band
  252. <enum 0 RU_26_per80>
  253. <enum 1 RU_52_per80>
  254. <enum 2 RU_78_per80>
  255. <enum 3 RU_106_per80>
  256. <enum 4 RU_132_per80>
  257. <enum 5 RU_242_per80>
  258. <enum 6 RU_484_per80>
  259. <enum 7 RU_726_per80>
  260. <enum 8 RU_996_per80>
  261. <enum 9 RU_996x2>
  262. <enum 10 RU_996x3>
  263. <enum 11 RU_996x4>
  264. <enum 12 RU_rsvd0> DO NOT USE
  265. <enum 13 RU_rsvd1> DO NOT USE
  266. <enum 14 RU_rsvd2> DO NOT USE
  267. <enum 15 RU_NONE> No RUs in this 80 MHz
  268. <legal 0-15>
  269. */
  270. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_1_OFFSET 0x0000000000000008
  271. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_1_LSB 20
  272. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_1_MSB 23
  273. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_1_MASK 0x0000000000f00000
  274. /* Description RU_TYPE_80_2
  275. Indicates the size of the RU in the third 80 MHz sub-band
  276. <enum 0 RU_26_per80>
  277. <enum 1 RU_52_per80>
  278. <enum 2 RU_78_per80>
  279. <enum 3 RU_106_per80>
  280. <enum 4 RU_132_per80>
  281. <enum 5 RU_242_per80>
  282. <enum 6 RU_484_per80>
  283. <enum 7 RU_726_per80>
  284. <enum 8 RU_996_per80>
  285. <enum 9 RU_996x2>
  286. <enum 10 RU_996x3>
  287. <enum 11 RU_996x4>
  288. <enum 12 RU_rsvd0> DO NOT USE
  289. <enum 13 RU_rsvd1> DO NOT USE
  290. <enum 14 RU_rsvd2> DO NOT USE
  291. <enum 15 RU_NONE> No RUs in this 80 MHz
  292. <legal 0-15>
  293. */
  294. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_2_OFFSET 0x0000000000000008
  295. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_2_LSB 24
  296. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_2_MSB 27
  297. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_2_MASK 0x000000000f000000
  298. /* Description RU_TYPE_80_3
  299. Indicates the size of the RU in the fourth 80 MHz sub-band
  300. <enum 0 RU_26_per80>
  301. <enum 1 RU_52_per80>
  302. <enum 2 RU_78_per80>
  303. <enum 3 RU_106_per80>
  304. <enum 4 RU_132_per80>
  305. <enum 5 RU_242_per80>
  306. <enum 6 RU_484_per80>
  307. <enum 7 RU_726_per80>
  308. <enum 8 RU_996_per80>
  309. <enum 9 RU_996x2>
  310. <enum 10 RU_996x3>
  311. <enum 11 RU_996x4>
  312. <enum 12 RU_rsvd0> DO NOT USE
  313. <enum 13 RU_rsvd1> DO NOT USE
  314. <enum 14 RU_rsvd2> DO NOT USE
  315. <enum 15 RU_NONE> No RUs in this 80 MHz
  316. <legal 0-15>
  317. */
  318. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_3_OFFSET 0x0000000000000008
  319. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_3_LSB 28
  320. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_3_MSB 31
  321. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_3_MASK 0x00000000f0000000
  322. /* Description RU_START_INDEX_80_0
  323. RU index number to which User is assigned in the first 80
  324. MHz
  325. RU numbering is over the entire BW, starting from 0 and
  326. in increasing frequency order and not primary-secondary
  327. order
  328. <legal 0-36>
  329. */
  330. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_0_OFFSET 0x0000000000000008
  331. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_0_LSB 32
  332. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_0_MSB 37
  333. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_0_MASK 0x0000003f00000000
  334. /* Description RESERVED_3A
  335. <legal 0>
  336. */
  337. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3A_OFFSET 0x0000000000000008
  338. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3A_LSB 38
  339. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3A_MSB 39
  340. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3A_MASK 0x000000c000000000
  341. /* Description RU_START_INDEX_80_1
  342. RU index number to which User is assigned in the second
  343. 80 MHz
  344. RU numbering is over the entire BW, starting from 0 and
  345. in increasing frequency order and not primary-secondary
  346. order
  347. <legal 0-36>
  348. */
  349. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_1_OFFSET 0x0000000000000008
  350. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_1_LSB 40
  351. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_1_MSB 45
  352. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_1_MASK 0x00003f0000000000
  353. /* Description RESERVED_3B
  354. <legal 0>
  355. */
  356. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3B_OFFSET 0x0000000000000008
  357. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3B_LSB 46
  358. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3B_MSB 47
  359. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3B_MASK 0x0000c00000000000
  360. /* Description RU_START_INDEX_80_2
  361. RU index number to which User is assigned in the third 80
  362. MHz
  363. RU numbering is over the entire BW, starting from 0 and
  364. in increasing frequency order and not primary-secondary
  365. order
  366. <legal 0-36>
  367. */
  368. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_2_OFFSET 0x0000000000000008
  369. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_2_LSB 48
  370. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_2_MSB 53
  371. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_2_MASK 0x003f000000000000
  372. /* Description RESERVED_3C
  373. <legal 0>
  374. */
  375. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3C_OFFSET 0x0000000000000008
  376. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3C_LSB 54
  377. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3C_MSB 55
  378. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3C_MASK 0x00c0000000000000
  379. /* Description RU_START_INDEX_80_3
  380. RU index number to which User is assigned in the fourth
  381. 80 MHz
  382. RU numbering is over the entire BW, starting from 0 and
  383. in increasing frequency order and not primary-secondary
  384. order
  385. <legal 0-36>
  386. */
  387. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_3_OFFSET 0x0000000000000008
  388. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_3_LSB 56
  389. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_3_MSB 61
  390. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_3_MASK 0x3f00000000000000
  391. /* Description RESERVED_3D
  392. <legal 0>
  393. */
  394. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3D_OFFSET 0x0000000000000008
  395. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3D_LSB 62
  396. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3D_MSB 63
  397. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3D_MASK 0xc000000000000000
  398. /* Description USER_FD_RSSI_SEG0
  399. Frequency domain RSSI measurement for the lowest 80 MHz
  400. subband of this user, per spatial stream
  401. [7:0]: first spatial stream
  402. ...
  403. [31:24]: fourth spatial stream
  404. <legal all>
  405. */
  406. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG0_OFFSET 0x0000000000000010
  407. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG0_LSB 0
  408. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG0_MSB 31
  409. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG0_MASK 0x00000000ffffffff
  410. /* Description USER_FD_RSSI_SEG1
  411. Frequency domain RSSI measurement for the second lowest
  412. 80 MHz subband of this user, per spatial stream
  413. [7:0]: first spatial stream
  414. ...
  415. [31:24]: fourth spatial stream
  416. <legal all>
  417. */
  418. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG1_OFFSET 0x0000000000000010
  419. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG1_LSB 32
  420. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG1_MSB 63
  421. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG1_MASK 0xffffffff00000000
  422. /* Description USER_FD_RSSI_SEG2
  423. Frequency domain RSSI measurement for the third lowest 80
  424. MHz subband of this user, per spatial stream
  425. [7:0]: first spatial stream
  426. ...
  427. [31:24]: fourth spatial stream
  428. <legal all>
  429. */
  430. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG2_OFFSET 0x0000000000000018
  431. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG2_LSB 0
  432. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG2_MSB 31
  433. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG2_MASK 0x00000000ffffffff
  434. /* Description USER_FD_RSSI_SEG3
  435. Frequency domain RSSI measurement for the highest 80 MHz
  436. subband of this user, per spatial stream
  437. [7:0]: first spatial stream
  438. ...
  439. [31:24]: fourth spatial stream
  440. In Hamilton v1 this structure had 4 more (32-bit) words
  441. after this field.
  442. <legal all>
  443. */
  444. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG3_OFFSET 0x0000000000000018
  445. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG3_LSB 32
  446. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG3_MSB 63
  447. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG3_MASK 0xffffffff00000000
  448. #endif // RX_PPDU_START_USER_INFO