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