phyrx_l_sig_a.h 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. /*
  2. * Copyright (c) 2021 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_L_SIG_A_H_
  21. #define _PHYRX_L_SIG_A_H_
  22. #if !defined(__ASSEMBLER__)
  23. #endif
  24. #include "l_sig_a_info.h"
  25. // ################ START SUMMARY #################
  26. //
  27. // Dword Fields
  28. // 0 struct l_sig_a_info phyrx_l_sig_a_info_details;
  29. //
  30. // ################ END SUMMARY #################
  31. #define NUM_OF_DWORDS_PHYRX_L_SIG_A 1
  32. struct phyrx_l_sig_a {
  33. struct l_sig_a_info phyrx_l_sig_a_info_details;
  34. };
  35. /*
  36. struct l_sig_a_info phyrx_l_sig_a_info_details
  37. See detailed description of the STRUCT
  38. */
  39. /* EXTERNAL REFERENCE : struct l_sig_a_info phyrx_l_sig_a_info_details */
  40. /* Description PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_RATE
  41. This format is originally defined for OFDM as a 4 bit
  42. field but the 5th bit was added to indicate 11b formatted
  43. frames. In the standard bit [4] is specified as reserved.
  44. For 11b frames this L-SIG is transformed in the PHY into the
  45. 11b preamble format. The following are the rates:
  46. <enum 8 ofdm_48_mbps> 64-QAM 2/3 (48 Mbps)
  47. <enum 9 ofdm_24_mbps> 16-QAM 1/2 (24 Mbps)
  48. <enum 10 ofdm_12_mbps> QPSK 1/2 (12 Mbps)
  49. <enum 11 ofdm_6_mbps> BPSK 1/2 (6 Mbps)
  50. <enum 12 ofdm_54_mbps> 64-QAM 3/4 (54 Mbps)
  51. <enum 13 ofdm_36_mbps> 16-QAM 3/4 (36 Mbps)
  52. <enum 14 ofdm_18_mbps> QPSK 1/2 (18 Mbps)
  53. <enum 15 ofdm_9_mbps> BPSK 3/4 (9 Mbps)
  54. <legal 8-15>
  55. */
  56. #define PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_RATE_OFFSET 0x00000000
  57. #define PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_RATE_LSB 0
  58. #define PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_RATE_MASK 0x0000000f
  59. /* Description PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_LSIG_RESERVED
  60. Reserved: Should be set to 0 by the MAC and ignored by
  61. the PHY
  62. <legal 0>
  63. */
  64. #define PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_LSIG_RESERVED_OFFSET 0x00000000
  65. #define PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_LSIG_RESERVED_LSB 4
  66. #define PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_LSIG_RESERVED_MASK 0x00000010
  67. /* Description PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_LENGTH
  68. The length indicates the number of octets in this MPDU.
  69. Note that when using mixed mode 11n preamble this length
  70. provides the spoofed length for the PPDU. This length
  71. provides part of the information to derive the actually PPDU
  72. length. For legacy OFDM and 11B frames the maximum length
  73. is
  74. <legal all>
  75. */
  76. #define PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_LENGTH_OFFSET 0x00000000
  77. #define PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_LENGTH_LSB 5
  78. #define PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_LENGTH_MASK 0x0001ffe0
  79. /* Description PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_PARITY
  80. 11a/n/ac TX: This field provides even parity over the
  81. first 18 bits of the signal field which means that the sum
  82. of 1s in the signal field will always be even on
  83. 11a/n/ac RX: this field contains the received parity
  84. field from the L-SIG symbol for the current packet.
  85. <legal 0-1>
  86. */
  87. #define PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_PARITY_OFFSET 0x00000000
  88. #define PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_PARITY_LSB 17
  89. #define PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_PARITY_MASK 0x00020000
  90. /* Description PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_TAIL
  91. The 6 bits of tail is always set to 0 is used to flush
  92. the BCC encoder and decoder. <legal 0>
  93. */
  94. #define PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_TAIL_OFFSET 0x00000000
  95. #define PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_TAIL_LSB 18
  96. #define PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_TAIL_MASK 0x00fc0000
  97. /* Description PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_PKT_TYPE
  98. Only used on the RX side.
  99. Note: This is not really part of L-SIG
  100. Packet type:
  101. <enum 0 dot11a>802.11a PPDU type
  102. <enum 1 dot11b>802.11b PPDU type
  103. <enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
  104. <enum 3 dot11ac>802.11ac PPDU type
  105. <enum 4 dot11ax>802.11ax PPDU type
  106. */
  107. #define PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_PKT_TYPE_OFFSET 0x00000000
  108. #define PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_PKT_TYPE_LSB 24
  109. #define PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_PKT_TYPE_MASK 0x0f000000
  110. /* Description PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_CAPTURED_IMPLICIT_SOUNDING
  111. Only used on the RX side.
  112. Note: This is not really part of L-SIG
  113. This indicates that the PHY has captured implicit
  114. sounding.
  115. */
  116. #define PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_CAPTURED_IMPLICIT_SOUNDING_OFFSET 0x00000000
  117. #define PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_CAPTURED_IMPLICIT_SOUNDING_LSB 28
  118. #define PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_CAPTURED_IMPLICIT_SOUNDING_MASK 0x10000000
  119. /* Description PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_RESERVED
  120. Reserved: Should be set to 0 by the transmitting MAC and
  121. ignored by the PHY <legal 0>
  122. */
  123. #define PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_RESERVED_OFFSET 0x00000000
  124. #define PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_RESERVED_LSB 29
  125. #define PHYRX_L_SIG_A_0_PHYRX_L_SIG_A_INFO_DETAILS_RESERVED_MASK 0xe0000000
  126. #endif // _PHYRX_L_SIG_A_H_