xref: /wlan-driver/fw-api/hw/qca6750/v1/phyrx_vht_sig_a.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
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