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_VHT_SIG_A_H_ 25 #define _PHYRX_VHT_SIG_A_H_ 26 #if !defined(__ASSEMBLER__) 27 #endif 28 29 #include "vht_sig_a_info.h" 30 31 // ################ START SUMMARY ################# 32 // 33 // Dword Fields 34 // 0-1 struct vht_sig_a_info phyrx_vht_sig_a_info_details; 35 // 36 // ################ END SUMMARY ################# 37 38 #define NUM_OF_DWORDS_PHYRX_VHT_SIG_A 2 39 40 struct phyrx_vht_sig_a { 41 struct vht_sig_a_info phyrx_vht_sig_a_info_details; 42 }; 43 44 /* 45 46 struct vht_sig_a_info phyrx_vht_sig_a_info_details 47 48 See detailed description of the STRUCT 49 */ 50 51 52 /* EXTERNAL REFERENCE : struct vht_sig_a_info phyrx_vht_sig_a_info_details */ 53 54 55 /* Description PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH 56 57 Packet bandwidth 58 59 60 61 <enum 0 20_MHZ_11AC> 62 63 <enum 1 40_MHZ_11AC> 64 65 <enum 2 80_MHZ_11AC> 66 67 <enum 3 160_MHZ_11AC> 68 69 70 71 <legal 0-3> 72 */ 73 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_OFFSET 0x00000000 74 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_LSB 0 75 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_MASK 0x00000003 76 77 /* Description PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0 78 79 Reserved. Set to 1 by MAC, PHY should ignore 80 81 <legal 1> 82 */ 83 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_OFFSET 0x00000000 84 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_LSB 2 85 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_MASK 0x00000004 86 87 /* Description PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_STBC 88 89 Space time block coding: 90 91 <enum 0 stbc_disabled> Indicates STBC is disabled 92 93 <enum 1 stbc_enabled> Indicates STBC is enabled on 94 all streams 95 96 <legal 0-1> 97 */ 98 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_STBC_OFFSET 0x00000000 99 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_STBC_LSB 3 100 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_STBC_MASK 0x00000008 101 102 /* Description PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_GROUP_ID 103 104 In a SU VHT PPDU, if the PPDU carries MPDU(s) addressed 105 to an AP or to a mesh STA, the Group ID field is set to 0, 106 otherwise it is set to 63. In an NDP PPDU the Group ID is 107 set according to IEEE 802.11ac_D1.0 Section 9.30.6 108 (Transmission of a VHT NDP). For a MU-MIMO PPDU the Group ID 109 is set as in 802.11ac_D1.0 Section 22.3.11.3 (Group ID). 110 <legal all> 111 */ 112 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_OFFSET 0x00000000 113 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_LSB 4 114 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_MASK 0x000003f0 115 116 /* Description PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_N_STS 117 118 For MU: 119 120 3 bits/user with maximum of 4 users (user u uses 121 122 vht_sig_a[0][10+3u] - vht_sig_a[0][12+3u]), u = 0, 1, 2, 123 3) 124 125 Set to 0 for 0 space time streams 126 127 Set to 1 for 1 space time stream 128 129 Set to 2 for 2 space time streams 130 131 Set to 3 for 3 space time streams 132 133 Set to 4 for 4 space time streams (not supported in Wifi 134 3.0) 135 136 Values 5-7 are reserved 137 138 In this field, references to user u should be 139 interpreted as MU user u. As described in the previous 140 chapter in this document (see chapter on User number), the 141 MU user value for a given client is defined for each MU 142 group that the client participates in. The MU user number is 143 not related to the internal user number that is used within 144 the BFer. 145 146 147 148 149 150 For SU: 151 152 vht_sig_a[0][12:10] 153 154 Set to 0 for 1 space time stream 155 156 Set to 1 for 2 space time streams 157 158 Set to 2 for 3 space time streams 159 160 Set to 3 for 4 space time streams 161 162 Set to 4 for 5 space time streams 163 164 Set to 5 for 6 space time streams 165 166 Set to 6 for 7 space time streams 167 168 Set to 7 for 8 space time streams 169 170 171 172 vht_sig_a[0][21:13] 173 174 Partial AID: 175 176 Set to the value of the TXVECTOR parameter PARTIAL_AID. 177 Partial AID provides an abbreviated indication of the 178 intended recipient(s) of the frame (see IEEE802.11ac_D1.0 179 Section 9.17a (Partial AID in VHT PPDUs)). 180 181 <legal all> 182 */ 183 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_N_STS_OFFSET 0x00000000 184 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_N_STS_LSB 10 185 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_N_STS_MASK 0x003ffc00 186 187 /* Description PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED 188 189 E_num 0 txop_ps_allowed Not supported: If set to by 190 VHT AP if it allows non-AP VHT STAs in TXOP power save mode 191 to enter Doze state during a TXOP 192 193 <enum 1 no_txop_ps_allowed> Otherwise 194 195 <legal 1> 196 */ 197 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_OFFSET 0x00000000 198 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_LSB 22 199 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_MASK 0x00400000 200 201 /* Description PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B 202 203 Reserved: Should be set to 1 by the MAC and ignored by 204 the PHY <legal 1> 205 */ 206 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_OFFSET 0x00000000 207 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_LSB 23 208 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_MASK 0x00800000 209 210 /* Description PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_0 211 212 This field is not part of HT-SIG: 213 214 Reserved: Should be set to 0 by the MAC and ignored by 215 the PHY <legal 0> 216 */ 217 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_OFFSET 0x00000000 218 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_LSB 24 219 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_MASK 0xff000000 220 221 /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_GI_SETTING 222 223 <enum 0 normal_gi> Indicates short guard interval 224 is not used in the data field 225 226 <enum 1 short_gi> Indicates short guard interval is 227 used in the data field 228 229 <enum 3 short_gi_ambiguity> Indicates short guard 230 interval is used in the data field and NSYM mod 10 = 9 231 232 NSYM is defined in IEEE802.11ac_D1.0 Section 22.4.3 233 (TXTIME and PSDU_LENGTH calculation). 234 235 <legal 0,1,3> 236 */ 237 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_OFFSET 0x00000004 238 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_LSB 0 239 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_MASK 0x00000003 240 241 /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING 242 243 For an SU PPDU, B2 is set to 0 for BCC, 1 for LDPC For 244 an MU PPDU, if the MU[0] NSTS field is nonzero(#6773), then 245 B2 indicates the coding used for user 0; set to 0 for BCC 246 and 1 for LDPC. If the MU[0] NSTS field is 0, then this 247 field is reserved and set to 1 248 */ 249 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_OFFSET 0x00000004 250 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_LSB 2 251 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_MASK 0x00000004 252 253 /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL 254 255 Set to 1 if the LDPC PPDU encoding process (if an SU 256 PPDU), or at least one LDPC user's PPDU encoding process (if 257 an MU PPDU), results in an extra OFDM symbol (or symbols) as 258 described in 22.3.10.5.4 (LDPC coding) and 22.3.10.5.5 259 (Encoding process for MU PPDUs). Set to 0 otherwise. 260 */ 261 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_OFFSET 0x00000004 262 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_LSB 3 263 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MASK 0x00000008 264 265 /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_MCS 266 267 For SU: 268 269 Set to 0 for BPSK 1/2 270 271 Set to 1 for QPSK 1/2 272 273 Set to 2 for QPSK 3/4 274 275 Set to 3 for 16-QAM 1/2 276 277 Set to 4 for 16-QAM 3/4 278 279 Set to 5 for 64-QAM 2/3 280 281 Set to 6 for 64-QAM 3/4 282 283 Set to 7 for 64-QAM 5/6 284 285 Set to 8 for 256-QAM 3/4 286 287 Set to 9 for 256-QAM 5/6 288 289 For MU: 290 291 If NSTS for user 1 is non-zero, then vht_sig_a[1][4] 292 indicates coding for user 1: set to 0 for BCC, 1 for LDPC. 293 294 If NSTS for user 1 is set to 0, then vht_sig_a[1][4] is 295 reserved and set to 1. 296 297 If NSTS for user 2 is non-zero, then vht_sig_a[1][5] 298 indicates coding for user 2: set to 0 for BCC, 1 for LDPC. 299 300 If NSTS for user 2 is set to 0, then vht_sig_a[1][5] is 301 reserved and set to 1. 302 303 If NSTS for user 3 is non-zero, then vht_sig_a[1][6] 304 indicates coding for user 3: set to 0 for BCC, 1 for LDPC. 305 306 If NSTS for user 3 is set to 0, then vht_sig_a[1][6] is 307 reserved and set to 1. 308 309 vht_sig_a[1][7] is reserved and set to 1 310 311 <legal 0-15> 312 */ 313 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_MCS_OFFSET 0x00000004 314 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_MCS_LSB 4 315 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_MCS_MASK 0x000000f0 316 317 /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED 318 319 For SU: 320 321 Set to 1 if a Beamforming steering matrix is applied to 322 the waveform in an SU transmission as described in 323 IEEE802.11ac_D1.0 Section 19.3.11.11.2 (Spatial mapping), 324 set to 0 otherwise. 325 326 For MU: 327 328 Reserved and set to 1 329 330 <legal 0-1> 331 */ 332 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_OFFSET 0x00000004 333 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_LSB 8 334 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_MASK 0x00000100 335 336 /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1 337 338 Reserved and set to 1. <legal 1> 339 */ 340 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_OFFSET 0x00000004 341 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_LSB 9 342 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_MASK 0x00000200 343 344 /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_CRC 345 346 CRC calculated as in IEEE802.11ac_D1.0 Section 347 19.3.9.4.4 (CRC calculation for HTSIG) with C7 in 348 vht_sig_a[1][10], etc. <legal all> 349 */ 350 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_CRC_OFFSET 0x00000004 351 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_CRC_LSB 10 352 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_CRC_MASK 0x0003fc00 353 354 /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_TAIL 355 356 Used to terminate the trellis of the convolutional 357 decoder. Set to 0. <legal 0> 358 */ 359 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_TAIL_OFFSET 0x00000004 360 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_TAIL_LSB 18 361 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_TAIL_MASK 0x00fc0000 362 363 /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_1 364 365 This field is not part of HT-SIG: 366 367 Reserved: Should be set to 0 by the MAC and ignored by 368 the PHY <legal 0> 369 */ 370 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_OFFSET 0x00000004 371 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_LSB 24 372 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_MASK 0xff000000 373 374 375 #endif // _PHYRX_VHT_SIG_A_H_ 376