phyrx_he_sig_a_su.h 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506
  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 _PHYRX_HE_SIG_A_SU_H_
  16. #define _PHYRX_HE_SIG_A_SU_H_
  17. #if !defined(__ASSEMBLER__)
  18. #endif
  19. #include "he_sig_a_su_info.h"
  20. #define NUM_OF_DWORDS_PHYRX_HE_SIG_A_SU 2
  21. #define NUM_OF_QWORDS_PHYRX_HE_SIG_A_SU 1
  22. struct phyrx_he_sig_a_su {
  23. #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
  24. struct he_sig_a_su_info phyrx_he_sig_a_su_info_details;
  25. #else
  26. struct he_sig_a_su_info phyrx_he_sig_a_su_info_details;
  27. #endif
  28. };
  29. /* Description PHYRX_HE_SIG_A_SU_INFO_DETAILS
  30. See detailed description of the STRUCT
  31. */
  32. /* Description FORMAT_INDICATION
  33. <enum 0 HE_SIGA_FORMAT_HE_TRIG>
  34. <enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU>
  35. <legal all>
  36. */
  37. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_OFFSET 0x0000000000000000
  38. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_LSB 0
  39. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_MSB 0
  40. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_MASK 0x0000000000000001
  41. /* Description BEAM_CHANGE
  42. Indicates whether spatial mapping is changed between legacy
  43. and HE portion of preamble. If not, channel estimation
  44. can include legacy preamble to improve accuracy
  45. <legal all>
  46. */
  47. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_OFFSET 0x0000000000000000
  48. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_LSB 1
  49. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_MSB 1
  50. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_MASK 0x0000000000000002
  51. /* Description DL_UL_FLAG
  52. Differentiates between DL and UL transmission
  53. <enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
  54. <enum 1 DL_UL_FLAG_IS_UL>
  55. <legal all>
  56. */
  57. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_OFFSET 0x0000000000000000
  58. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_LSB 2
  59. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_MSB 2
  60. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_MASK 0x0000000000000004
  61. /* Description TRANSMIT_MCS
  62. Indicates the data MCS
  63. Field Used by MAC HW
  64. <legal all>
  65. */
  66. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_OFFSET 0x0000000000000000
  67. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_LSB 3
  68. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_MSB 6
  69. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_MASK 0x0000000000000078
  70. /* Description DCM
  71. Indicates whether dual sub-carrier modulation is applied
  72. 0: No DCM
  73. 1:DCM
  74. <legal all>
  75. */
  76. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DCM_OFFSET 0x0000000000000000
  77. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DCM_LSB 7
  78. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DCM_MSB 7
  79. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DCM_MASK 0x0000000000000080
  80. /* Description BSS_COLOR_ID
  81. BSS color ID
  82. Field Used by MAC HW
  83. <legal all>
  84. */
  85. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_OFFSET 0x0000000000000000
  86. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_LSB 8
  87. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_MSB 13
  88. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_MASK 0x0000000000003f00
  89. /* Description RESERVED_0A
  90. Note: spec indicates this shall be set to 1
  91. <legal 1>
  92. */
  93. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_OFFSET 0x0000000000000000
  94. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_LSB 14
  95. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_MSB 14
  96. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_MASK 0x0000000000004000
  97. /* Description SPATIAL_REUSE
  98. Spatial reuse
  99. For 20MHz one SR field corresponding to entire 20MHz (other
  100. 3 fields indicate identical values)
  101. For 40MHz two SR fields for each 20MHz (other 2 fields indicate
  102. identical values)
  103. For 80MHz four SR fields for each 20MHz
  104. For 160MHz four SR fields for each 40MHz
  105. <legal all>
  106. */
  107. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_OFFSET 0x0000000000000000
  108. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_LSB 15
  109. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_MSB 18
  110. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_MASK 0x0000000000078000
  111. /* Description TRANSMIT_BW
  112. Bandwidth of the PPDU.
  113. For HE SU PPDU
  114. <enum 0 HE_SIG_A_BW20> 20 Mhz
  115. <enum 1 HE_SIG_A_BW40> 40 Mhz
  116. <enum 2 HE_SIG_A_BW80> 80 Mhz
  117. <enum 3 HE_SIG_A_BW160> 160 MHz or 80+80 MHz
  118. For HE Extended Range SU PPDU
  119. Set to 0 for 242-tone RU
  120. Set to 1 for right 106-tone RU within
  121. the primary 20 MHz
  122. On RX side, Field Used by MAC HW
  123. <legal all>
  124. */
  125. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_OFFSET 0x0000000000000000
  126. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_LSB 19
  127. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_MSB 20
  128. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_MASK 0x0000000000180000
  129. /* Description CP_LTF_SIZE
  130. Indicates the CP and HE-LTF type
  131. <enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP
  132. <enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
  133. <enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
  134. <enum 3 FourX_LTF_0_8CP_3_2CP>
  135. When DCM == 0 OR STBC == 0: 4x LTF + 3.2 µs CP
  136. When DCM == 1 AND STBC == 1: 4x LTF + 0.8 µs CP. Note:
  137. In this scenario, Neither DCM nor STBC is applied to HE
  138. data field.
  139. NOTE:
  140. If ( DCM == 1 ) and ( MCS > 0 ) and (STBC == 0)
  141. 0 = 1xLTF + 0.4 usec
  142. 1 = 2xLTF + 0.4 usec
  143. 2~3 = Reserved
  144. <legal all>
  145. */
  146. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_OFFSET 0x0000000000000000
  147. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_LSB 21
  148. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_MSB 22
  149. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_MASK 0x0000000000600000
  150. /* Description NSTS
  151. Indicates number of streams used for the SU transmission
  152. For HE SU PPDU
  153. Set to n for n+1 space time stream,
  154. where n = 0, 1, 2,.....,7.
  155. For HE Extended Range PPDU
  156. Set to 0 for 1 space time stream.
  157. Value 1 is TBD
  158. Values 2 - 7 are reserved
  159. <legal all>
  160. */
  161. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_NSTS_OFFSET 0x0000000000000000
  162. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_NSTS_LSB 23
  163. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_NSTS_MSB 25
  164. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_NSTS_MASK 0x0000000003800000
  165. /* Description RESERVED_0B
  166. <legal 0>
  167. */
  168. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_OFFSET 0x0000000000000000
  169. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_LSB 26
  170. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_MSB 31
  171. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_MASK 0x00000000fc000000
  172. /* Description TXOP_DURATION
  173. Indicates the remaining time in the current TXOP
  174. Field Used by MAC HW
  175. <legal all>
  176. */
  177. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_OFFSET 0x0000000000000000
  178. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_LSB 32
  179. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_MSB 38
  180. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_MASK 0x0000007f00000000
  181. /* Description CODING
  182. Distinguishes between BCC and LDPC coding.
  183. 0: BCC
  184. 1: LDPC
  185. <legal all>
  186. */
  187. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CODING_OFFSET 0x0000000000000000
  188. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CODING_LSB 39
  189. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CODING_MSB 39
  190. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CODING_MASK 0x0000008000000000
  191. /* Description LDPC_EXTRA_SYMBOL
  192. If LDPC,
  193. 0: LDPC extra symbol not present
  194. 1: LDPC extra symbol present
  195. Else
  196. Set to 1
  197. <legal all>
  198. */
  199. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_OFFSET 0x0000000000000000
  200. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_LSB 40
  201. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MSB 40
  202. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MASK 0x0000010000000000
  203. /* Description STBC
  204. Indicates whether STBC is applied
  205. 0: No STBC
  206. 1: STBC
  207. <legal all>
  208. */
  209. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_STBC_OFFSET 0x0000000000000000
  210. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_STBC_LSB 41
  211. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_STBC_MSB 41
  212. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_STBC_MASK 0x0000020000000000
  213. /* Description TXBF
  214. Indicates whether beamforming is applied
  215. 0: No beamforming
  216. 1: beamforming
  217. <legal all>
  218. */
  219. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXBF_OFFSET 0x0000000000000000
  220. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXBF_LSB 42
  221. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXBF_MSB 42
  222. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TXBF_MASK 0x0000040000000000
  223. /* Description PACKET_EXTENSION_A_FACTOR
  224. Common trigger info
  225. the packet extension duration of the trigger-based PPDU
  226. response with these two bits indicating the "a-factor"
  227. <enum 0 a_factor_4>
  228. <enum 1 a_factor_1>
  229. <enum 2 a_factor_2>
  230. <enum 3 a_factor_3>
  231. <legal all>
  232. */
  233. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_OFFSET 0x0000000000000000
  234. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_LSB 43
  235. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_MSB 44
  236. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_MASK 0x0000180000000000
  237. /* Description PACKET_EXTENSION_PE_DISAMBIGUITY
  238. Common trigger info
  239. the packet extension duration of the trigger-based PPDU
  240. response with this bit indicating the PE-Disambiguity
  241. <legal all>
  242. */
  243. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET 0x0000000000000000
  244. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB 45
  245. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB 45
  246. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK 0x0000200000000000
  247. /* Description RESERVED_1A
  248. Note: per standard, set to 1
  249. <legal 1>
  250. */
  251. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_OFFSET 0x0000000000000000
  252. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_LSB 46
  253. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_MSB 46
  254. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_MASK 0x0000400000000000
  255. /* Description DOPPLER_INDICATION
  256. 0: No Doppler support
  257. 1: Doppler support
  258. <legal all>
  259. */
  260. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_OFFSET 0x0000000000000000
  261. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_LSB 47
  262. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_MSB 47
  263. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_MASK 0x0000800000000000
  264. /* Description CRC
  265. CRC for HE-SIG-A contents.
  266. <legal all>
  267. */
  268. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CRC_OFFSET 0x0000000000000000
  269. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CRC_LSB 48
  270. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CRC_MSB 51
  271. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_CRC_MASK 0x000f000000000000
  272. /* Description TAIL
  273. <legal 0>
  274. */
  275. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TAIL_OFFSET 0x0000000000000000
  276. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TAIL_LSB 52
  277. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TAIL_MSB 57
  278. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_TAIL_MASK 0x03f0000000000000
  279. /* Description DOT11AX_SU_EXTENDED
  280. TX side:
  281. Set to 0
  282. RX side:
  283. On RX side, evaluated by MAC HW. This is the only way for
  284. MAC RX to know that this was an HE_SIG_A_SU received in
  285. 'extended' format
  286. When set, the 11ax frame is of the extended range format
  287. <legal all>
  288. */
  289. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_OFFSET 0x0000000000000000
  290. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_LSB 58
  291. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_MSB 58
  292. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_MASK 0x0400000000000000
  293. /* Description DOT11AX_EXT_RU_SIZE
  294. TX side:
  295. Set to 0
  296. RX side:
  297. Field only contains valid info when dot11ax_su_extended
  298. is set.
  299. On RX side, evaluated by MAC HW. This is the only way for
  300. MAC RX to know what the number of based RUs was in this
  301. extended range reception. It is used by the MAC to determine
  302. the RU size for the response...
  303. <enum 0 EXT_RU_26>
  304. <enum 1 EXT_RU_52>
  305. <enum 2 EXT_RU_106>
  306. <enum 3 EXT_RU_242><legal 0-3>
  307. */
  308. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_OFFSET 0x0000000000000000
  309. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_LSB 59
  310. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_MSB 61
  311. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_MASK 0x3800000000000000
  312. /* Description RX_NDP
  313. TX side:
  314. Set to 0
  315. RX side:Valid on RX side only, and looked at by MAC HW
  316. When set, PHY has received (expected) NDP frame
  317. <legal all>
  318. */
  319. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_OFFSET 0x0000000000000000
  320. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_LSB 62
  321. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_MSB 62
  322. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_MASK 0x4000000000000000
  323. /* Description RX_INTEGRITY_CHECK_PASSED
  324. TX side: Set to 0
  325. RX side: Set to 1 if PHY determines the HE-SIG-A CRC check
  326. has passed, else set to 0
  327. <legal all>
  328. */
  329. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
  330. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 63
  331. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 63
  332. #define PHYRX_HE_SIG_A_SU_PHYRX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
  333. #endif // PHYRX_HE_SIG_A_SU