u_sig_eht_tb_info.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. /*
  2. * Copyright (c) 2023 Qualcomm Innovation Center, Inc. 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. #ifndef _U_SIG_EHT_TB_INFO_H_
  17. #define _U_SIG_EHT_TB_INFO_H_
  18. #if !defined(__ASSEMBLER__)
  19. #endif
  20. #define NUM_OF_DWORDS_U_SIG_EHT_TB_INFO 2
  21. struct u_sig_eht_tb_info {
  22. #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
  23. uint32_t phy_version : 3, // [2:0]
  24. transmit_bw : 3, // [5:3]
  25. dl_ul_flag : 1, // [6:6]
  26. bss_color_id : 6, // [12:7]
  27. txop_duration : 7, // [19:13]
  28. disregard_0a : 6, // [25:20]
  29. reserved_0c : 6; // [31:26]
  30. uint32_t eht_ppdu_sig_cmn_type : 2, // [1:0]
  31. validate_1a : 1, // [2:2]
  32. spatial_reuse : 8, // [10:3]
  33. disregard_1b : 5, // [15:11]
  34. crc : 4, // [19:16]
  35. tail : 6, // [25:20]
  36. reserved_1c : 5, // [30:26]
  37. rx_integrity_check_passed : 1; // [31:31]
  38. #else
  39. uint32_t reserved_0c : 6, // [31:26]
  40. disregard_0a : 6, // [25:20]
  41. txop_duration : 7, // [19:13]
  42. bss_color_id : 6, // [12:7]
  43. dl_ul_flag : 1, // [6:6]
  44. transmit_bw : 3, // [5:3]
  45. phy_version : 3; // [2:0]
  46. uint32_t rx_integrity_check_passed : 1, // [31:31]
  47. reserved_1c : 5, // [30:26]
  48. tail : 6, // [25:20]
  49. crc : 4, // [19:16]
  50. disregard_1b : 5, // [15:11]
  51. spatial_reuse : 8, // [10:3]
  52. validate_1a : 1, // [2:2]
  53. eht_ppdu_sig_cmn_type : 2; // [1:0]
  54. #endif
  55. };
  56. /* Description PHY_VERSION
  57. <enum 0 U_SIG_VERSION_EHT>
  58. Values 1 - 7 are reserved.
  59. <legal 0>
  60. */
  61. #define U_SIG_EHT_TB_INFO_PHY_VERSION_OFFSET 0x00000000
  62. #define U_SIG_EHT_TB_INFO_PHY_VERSION_LSB 0
  63. #define U_SIG_EHT_TB_INFO_PHY_VERSION_MSB 2
  64. #define U_SIG_EHT_TB_INFO_PHY_VERSION_MASK 0x00000007
  65. /* Description TRANSMIT_BW
  66. Bandwidth of the PPDU, as indicated in the trigger frame
  67. <enum 0 U_SIG_BW20> 20 MHz
  68. <enum 1 U_SIG_BW40> 40 MHz
  69. <enum 2 U_SIG_BW80> 80 MHz
  70. <enum 3 U_SIG_BW160> 160 MHz
  71. <enum 4 U_SIG_BW320> 320 MHz channelization scheme 1
  72. <enum 5 U_SIG_BW320_2> 320 MHz channelization scheme 2
  73. On RX side, field used by MAC HW
  74. <legal all>
  75. */
  76. #define U_SIG_EHT_TB_INFO_TRANSMIT_BW_OFFSET 0x00000000
  77. #define U_SIG_EHT_TB_INFO_TRANSMIT_BW_LSB 3
  78. #define U_SIG_EHT_TB_INFO_TRANSMIT_BW_MSB 5
  79. #define U_SIG_EHT_TB_INFO_TRANSMIT_BW_MASK 0x00000038
  80. /* Description DL_UL_FLAG
  81. Differentiates between DL and UL transmission
  82. <enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
  83. <enum 1 DL_UL_FLAG_IS_UL>
  84. <legal all>
  85. */
  86. #define U_SIG_EHT_TB_INFO_DL_UL_FLAG_OFFSET 0x00000000
  87. #define U_SIG_EHT_TB_INFO_DL_UL_FLAG_LSB 6
  88. #define U_SIG_EHT_TB_INFO_DL_UL_FLAG_MSB 6
  89. #define U_SIG_EHT_TB_INFO_DL_UL_FLAG_MASK 0x00000040
  90. /* Description BSS_COLOR_ID
  91. BSS color ID
  92. Field used by MAC HW
  93. <legal all>
  94. */
  95. #define U_SIG_EHT_TB_INFO_BSS_COLOR_ID_OFFSET 0x00000000
  96. #define U_SIG_EHT_TB_INFO_BSS_COLOR_ID_LSB 7
  97. #define U_SIG_EHT_TB_INFO_BSS_COLOR_ID_MSB 12
  98. #define U_SIG_EHT_TB_INFO_BSS_COLOR_ID_MASK 0x00001f80
  99. /* Description TXOP_DURATION
  100. Indicates the remaining time in the current TXOP
  101. Field used by MAC HW
  102. <legal all>
  103. */
  104. #define U_SIG_EHT_TB_INFO_TXOP_DURATION_OFFSET 0x00000000
  105. #define U_SIG_EHT_TB_INFO_TXOP_DURATION_LSB 13
  106. #define U_SIG_EHT_TB_INFO_TXOP_DURATION_MSB 19
  107. #define U_SIG_EHT_TB_INFO_TXOP_DURATION_MASK 0x000fe000
  108. /* Description DISREGARD_0A
  109. Set to value indicated in the trigger frame
  110. <legal all>
  111. */
  112. #define U_SIG_EHT_TB_INFO_DISREGARD_0A_OFFSET 0x00000000
  113. #define U_SIG_EHT_TB_INFO_DISREGARD_0A_LSB 20
  114. #define U_SIG_EHT_TB_INFO_DISREGARD_0A_MSB 25
  115. #define U_SIG_EHT_TB_INFO_DISREGARD_0A_MASK 0x03f00000
  116. /* Description RESERVED_0C
  117. <legal 0>
  118. */
  119. #define U_SIG_EHT_TB_INFO_RESERVED_0C_OFFSET 0x00000000
  120. #define U_SIG_EHT_TB_INFO_RESERVED_0C_LSB 26
  121. #define U_SIG_EHT_TB_INFO_RESERVED_0C_MSB 31
  122. #define U_SIG_EHT_TB_INFO_RESERVED_0C_MASK 0xfc000000
  123. /* Description EHT_PPDU_SIG_CMN_TYPE
  124. <enum 3 EHT_PPDU_SIG_rsvd> DO NOT USE
  125. <enum 0 EHT_PPDU_SIG_TB_or_DL_OFDMA> Need to look at both
  126. EHT-SIG content channels for DL OFDMA (including OFDMA+MU-MIMO)
  127. <enum 2 EHT_PPDU_SIG_DL_MU_MIMO> Need to look at both EHT-SIG
  128. content channels
  129. <enum 1 EHT_PPDU_SIG_SU> Need to look at only one EHT-SIG
  130. content channel
  131. <legal all>
  132. */
  133. #define U_SIG_EHT_TB_INFO_EHT_PPDU_SIG_CMN_TYPE_OFFSET 0x00000004
  134. #define U_SIG_EHT_TB_INFO_EHT_PPDU_SIG_CMN_TYPE_LSB 0
  135. #define U_SIG_EHT_TB_INFO_EHT_PPDU_SIG_CMN_TYPE_MSB 1
  136. #define U_SIG_EHT_TB_INFO_EHT_PPDU_SIG_CMN_TYPE_MASK 0x00000003
  137. /* Description VALIDATE_1A
  138. Set to value indicated in the trigger frame
  139. <legal 1>
  140. */
  141. #define U_SIG_EHT_TB_INFO_VALIDATE_1A_OFFSET 0x00000004
  142. #define U_SIG_EHT_TB_INFO_VALIDATE_1A_LSB 2
  143. #define U_SIG_EHT_TB_INFO_VALIDATE_1A_MSB 2
  144. #define U_SIG_EHT_TB_INFO_VALIDATE_1A_MASK 0x00000004
  145. /* Description SPATIAL_REUSE
  146. TODO: Placeholder
  147. <legal all>
  148. */
  149. #define U_SIG_EHT_TB_INFO_SPATIAL_REUSE_OFFSET 0x00000004
  150. #define U_SIG_EHT_TB_INFO_SPATIAL_REUSE_LSB 3
  151. #define U_SIG_EHT_TB_INFO_SPATIAL_REUSE_MSB 10
  152. #define U_SIG_EHT_TB_INFO_SPATIAL_REUSE_MASK 0x000007f8
  153. /* Description DISREGARD_1B
  154. Set to value indicated in the trigger frame
  155. <legal all>
  156. */
  157. #define U_SIG_EHT_TB_INFO_DISREGARD_1B_OFFSET 0x00000004
  158. #define U_SIG_EHT_TB_INFO_DISREGARD_1B_LSB 11
  159. #define U_SIG_EHT_TB_INFO_DISREGARD_1B_MSB 15
  160. #define U_SIG_EHT_TB_INFO_DISREGARD_1B_MASK 0x0000f800
  161. /* Description CRC
  162. CRC for U-SIG contents
  163. <legal all>
  164. */
  165. #define U_SIG_EHT_TB_INFO_CRC_OFFSET 0x00000004
  166. #define U_SIG_EHT_TB_INFO_CRC_LSB 16
  167. #define U_SIG_EHT_TB_INFO_CRC_MSB 19
  168. #define U_SIG_EHT_TB_INFO_CRC_MASK 0x000f0000
  169. /* Description TAIL
  170. <legal 0>
  171. */
  172. #define U_SIG_EHT_TB_INFO_TAIL_OFFSET 0x00000004
  173. #define U_SIG_EHT_TB_INFO_TAIL_LSB 20
  174. #define U_SIG_EHT_TB_INFO_TAIL_MSB 25
  175. #define U_SIG_EHT_TB_INFO_TAIL_MASK 0x03f00000
  176. /* Description RESERVED_1C
  177. <legal 0>
  178. */
  179. #define U_SIG_EHT_TB_INFO_RESERVED_1C_OFFSET 0x00000004
  180. #define U_SIG_EHT_TB_INFO_RESERVED_1C_LSB 26
  181. #define U_SIG_EHT_TB_INFO_RESERVED_1C_MSB 30
  182. #define U_SIG_EHT_TB_INFO_RESERVED_1C_MASK 0x7c000000
  183. /* Description RX_INTEGRITY_CHECK_PASSED
  184. TX side: Set to 0
  185. RX side: Set to 1 if PHY determines the U-SIG CRC check
  186. has passed, else set to 0
  187. <legal all>
  188. */
  189. #define U_SIG_EHT_TB_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x00000004
  190. #define U_SIG_EHT_TB_INFO_RX_INTEGRITY_CHECK_PASSED_LSB 31
  191. #define U_SIG_EHT_TB_INFO_RX_INTEGRITY_CHECK_PASSED_MSB 31
  192. #define U_SIG_EHT_TB_INFO_RX_INTEGRITY_CHECK_PASSED_MASK 0x80000000
  193. #endif // U_SIG_EHT_TB_INFO