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