phyrx_vht_sig_a.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374
  1. /*
  2. * Copyright (c) 2020 The Linux Foundation. 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. // $ATH_LICENSE_HW_HDR_C$
  17. //
  18. // DO NOT EDIT! This file is automatically generated
  19. // These definitions are tied to a particular hardware layout
  20. #ifndef _PHYRX_VHT_SIG_A_H_
  21. #define _PHYRX_VHT_SIG_A_H_
  22. #if !defined(__ASSEMBLER__)
  23. #endif
  24. #include "vht_sig_a_info.h"
  25. // ################ START SUMMARY #################
  26. //
  27. // Dword Fields
  28. // 0-1 struct vht_sig_a_info phyrx_vht_sig_a_info_details;
  29. //
  30. // ################ END SUMMARY #################
  31. #define NUM_OF_DWORDS_PHYRX_VHT_SIG_A 2
  32. struct phyrx_vht_sig_a {
  33. struct vht_sig_a_info phyrx_vht_sig_a_info_details;
  34. };
  35. /*
  36. struct vht_sig_a_info phyrx_vht_sig_a_info_details
  37. See detailed description of the STRUCT
  38. */
  39. /* EXTERNAL REFERENCE : struct vht_sig_a_info phyrx_vht_sig_a_info_details */
  40. /* Description PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH
  41. Packet bandwidth
  42. <enum 0 20_MHZ_11AC>
  43. <enum 1 40_MHZ_11AC>
  44. <enum 2 80_MHZ_11AC>
  45. <enum 3 160_MHZ_11AC>
  46. <legal 0-3>
  47. */
  48. #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_OFFSET 0x00000000
  49. #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_LSB 0
  50. #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_MASK 0x00000003
  51. /* Description PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0
  52. Reserved. Set to 1 by MAC, PHY should ignore
  53. <legal 1>
  54. */
  55. #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_OFFSET 0x00000000
  56. #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_LSB 2
  57. #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_MASK 0x00000004
  58. /* Description PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_STBC
  59. Space time block coding:
  60. <enum 0 stbc_disabled> Indicates STBC is disabled
  61. <enum 1 stbc_enabled> Indicates STBC is enabled on
  62. all streams
  63. <legal 0-1>
  64. */
  65. #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_STBC_OFFSET 0x00000000
  66. #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_STBC_LSB 3
  67. #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_STBC_MASK 0x00000008
  68. /* Description PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_GROUP_ID
  69. In a SU VHT PPDU, if the PPDU carries MPDU(s) addressed
  70. to an AP or to a mesh STA, the Group ID field is set to 0,
  71. otherwise it is set to 63. In an NDP PPDU the Group ID is
  72. set according to IEEE 802.11ac_D1.0 Section 9.30.6
  73. (Transmission of a VHT NDP). For a MU-MIMO PPDU the Group ID
  74. is set as in 802.11ac_D1.0 Section 22.3.11.3 (Group ID).
  75. <legal all>
  76. */
  77. #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_OFFSET 0x00000000
  78. #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_LSB 4
  79. #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_MASK 0x000003f0
  80. /* Description PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_N_STS
  81. For MU:
  82. 3 bits/user with maximum of 4 users (user u uses
  83. vht_sig_a[0][10+3u] - vht_sig_a[0][12+3u]), u = 0, 1, 2,
  84. 3)
  85. Set to 0 for 0 space time streams
  86. Set to 1 for 1 space time stream
  87. Set to 2 for 2 space time streams
  88. Set to 3 for 3 space time streams
  89. Set to 4 for 4 space time streams (not supported in Wifi
  90. 3.0)
  91. Values 5-7 are reserved
  92. In this field, references to user u should be
  93. interpreted as MU user u. As described in the previous
  94. chapter in this document (see chapter on User number), the
  95. MU user value for a given client is defined for each MU
  96. group that the client participates in. The MU user number is
  97. not related to the internal user number that is used within
  98. the BFer.
  99. For SU:
  100. vht_sig_a[0][12:10]
  101. Set to 0 for 1 space time stream
  102. Set to 1 for 2 space time streams
  103. Set to 2 for 3 space time streams
  104. Set to 3 for 4 space time streams
  105. Set to 4 for 5 space time streams
  106. Set to 5 for 6 space time streams
  107. Set to 6 for 7 space time streams
  108. Set to 7 for 8 space time streams
  109. vht_sig_a[0][21:13]
  110. Partial AID:
  111. Set to the value of the TXVECTOR parameter PARTIAL_AID.
  112. Partial AID provides an abbreviated indication of the
  113. intended recipient(s) of the frame (see IEEE802.11ac_D1.0
  114. Section 9.17a (Partial AID in VHT PPDUs)).
  115. <legal all>
  116. */
  117. #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_N_STS_OFFSET 0x00000000
  118. #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_N_STS_LSB 10
  119. #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_N_STS_MASK 0x003ffc00
  120. /* Description PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED
  121. E_num 0 txop_ps_allowed Not supported: If set to by
  122. VHT AP if it allows non-AP VHT STAs in TXOP power save mode
  123. to enter Doze state during a TXOP
  124. <enum 1 no_txop_ps_allowed> Otherwise
  125. <legal 1>
  126. */
  127. #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_OFFSET 0x00000000
  128. #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_LSB 22
  129. #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_MASK 0x00400000
  130. /* Description PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B
  131. Reserved: Should be set to 1 by the MAC and ignored by
  132. the PHY <legal 1>
  133. */
  134. #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_OFFSET 0x00000000
  135. #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_LSB 23
  136. #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_MASK 0x00800000
  137. /* Description PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_0
  138. This field is not part of HT-SIG:
  139. Reserved: Should be set to 0 by the MAC and ignored by
  140. the PHY <legal 0>
  141. */
  142. #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_OFFSET 0x00000000
  143. #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_LSB 24
  144. #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_MASK 0xff000000
  145. /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_GI_SETTING
  146. <enum 0 normal_gi> Indicates short guard interval
  147. is not used in the data field
  148. <enum 1 short_gi> Indicates short guard interval is
  149. used in the data field
  150. <enum 3 short_gi_ambiguity> Indicates short guard
  151. interval is used in the data field and NSYM mod 10 = 9
  152. NSYM is defined in IEEE802.11ac_D1.0 Section 22.4.3
  153. (TXTIME and PSDU_LENGTH calculation).
  154. <legal 0,1,3>
  155. */
  156. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_OFFSET 0x00000004
  157. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_LSB 0
  158. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_MASK 0x00000003
  159. /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING
  160. For an SU PPDU, B2 is set to 0 for BCC, 1 for LDPC For
  161. an MU PPDU, if the MU[0] NSTS field is nonzero(#6773), then
  162. B2 indicates the coding used for user 0; set to 0 for BCC
  163. and 1 for LDPC. If the MU[0] NSTS field is 0, then this
  164. field is reserved and set to 1
  165. */
  166. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_OFFSET 0x00000004
  167. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_LSB 2
  168. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_MASK 0x00000004
  169. /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL
  170. Set to 1 if the LDPC PPDU encoding process (if an SU
  171. PPDU), or at least one LDPC user's PPDU encoding process (if
  172. an MU PPDU), results in an extra OFDM symbol (or symbols) as
  173. described in 22.3.10.5.4 (LDPC coding) and 22.3.10.5.5
  174. (Encoding process for MU PPDUs). Set to 0 otherwise.
  175. */
  176. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_OFFSET 0x00000004
  177. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_LSB 3
  178. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MASK 0x00000008
  179. /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_MCS
  180. For SU:
  181. Set to 0 for BPSK 1/2
  182. Set to 1 for QPSK 1/2
  183. Set to 2 for QPSK 3/4
  184. Set to 3 for 16-QAM 1/2
  185. Set to 4 for 16-QAM 3/4
  186. Set to 5 for 64-QAM 2/3
  187. Set to 6 for 64-QAM 3/4
  188. Set to 7 for 64-QAM 5/6
  189. Set to 8 for 256-QAM 3/4
  190. Set to 9 for 256-QAM 5/6
  191. For MU:
  192. If NSTS for user 1 is non-zero, then vht_sig_a[1][4]
  193. indicates coding for user 1: set to 0 for BCC, 1 for LDPC.
  194. If NSTS for user 1 is set to 0, then vht_sig_a[1][4] is
  195. reserved and set to 1.
  196. If NSTS for user 2 is non-zero, then vht_sig_a[1][5]
  197. indicates coding for user 2: set to 0 for BCC, 1 for LDPC.
  198. If NSTS for user 2 is set to 0, then vht_sig_a[1][5] is
  199. reserved and set to 1.
  200. If NSTS for user 3 is non-zero, then vht_sig_a[1][6]
  201. indicates coding for user 3: set to 0 for BCC, 1 for LDPC.
  202. If NSTS for user 3 is set to 0, then vht_sig_a[1][6] is
  203. reserved and set to 1.
  204. vht_sig_a[1][7] is reserved and set to 1
  205. <legal 0-15>
  206. */
  207. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_MCS_OFFSET 0x00000004
  208. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_MCS_LSB 4
  209. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_MCS_MASK 0x000000f0
  210. /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED
  211. For SU:
  212. Set to 1 if a Beamforming steering matrix is applied to
  213. the waveform in an SU transmission as described in
  214. IEEE802.11ac_D1.0 Section 19.3.11.11.2 (Spatial mapping),
  215. set to 0 otherwise.
  216. For MU:
  217. Reserved and set to 1
  218. <legal 0-1>
  219. */
  220. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_OFFSET 0x00000004
  221. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_LSB 8
  222. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_MASK 0x00000100
  223. /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1
  224. Reserved and set to 1. <legal 1>
  225. */
  226. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_OFFSET 0x00000004
  227. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_LSB 9
  228. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_MASK 0x00000200
  229. /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_CRC
  230. CRC calculated as in IEEE802.11ac_D1.0 Section
  231. 19.3.9.4.4 (CRC calculation for HTSIG) with C7 in
  232. vht_sig_a[1][10], etc. <legal all>
  233. */
  234. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_CRC_OFFSET 0x00000004
  235. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_CRC_LSB 10
  236. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_CRC_MASK 0x0003fc00
  237. /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_TAIL
  238. Used to terminate the trellis of the convolutional
  239. decoder. Set to 0. <legal 0>
  240. */
  241. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_TAIL_OFFSET 0x00000004
  242. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_TAIL_LSB 18
  243. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_TAIL_MASK 0x00fc0000
  244. /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_1
  245. This field is not part of HT-SIG:
  246. Reserved: Should be set to 0 by the MAC and ignored by
  247. the PHY <legal 0>
  248. */
  249. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_OFFSET 0x00000004
  250. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_LSB 24
  251. #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_MASK 0xff000000
  252. #endif // _PHYRX_VHT_SIG_A_H_