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