xref: /wlan-driver/fw-api/hw/qca5332/mactx_he_sig_b2_mu.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1 
2 /* Copyright (c) 2022, Qualcomm Innovation Center, Inc. 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 
18 
19 
20 
21 
22 
23 
24 
25 
26 #ifndef _MACTX_HE_SIG_B2_MU_H_
27 #define _MACTX_HE_SIG_B2_MU_H_
28 #if !defined(__ASSEMBLER__)
29 #endif
30 
31 #include "he_sig_b2_mu_info.h"
32 #define NUM_OF_DWORDS_MACTX_HE_SIG_B2_MU 2
33 
34 #define NUM_OF_QWORDS_MACTX_HE_SIG_B2_MU 1
35 
36 
37 struct mactx_he_sig_b2_mu {
38 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
39              struct   he_sig_b2_mu_info                                         mactx_he_sig_b2_mu_info_details;
40 #else
41              struct   he_sig_b2_mu_info                                         mactx_he_sig_b2_mu_info_details;
42 #endif
43 };
44 
45 
46 /* Description		MACTX_HE_SIG_B2_MU_INFO_DETAILS
47 
48 			See detailed description of the STRUCT
49 */
50 
51 
52 /* Description		STA_ID
53 
54 			Identifies the STA that is addressed. Details of STA ID
55 			are TBD
56 */
57 
58 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_OFFSET            0x0000000000000000
59 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_LSB               0
60 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_MSB               10
61 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_ID_MASK              0x00000000000007ff
62 
63 
64 /* Description		STA_SPATIAL_CONFIG
65 
66 			Number of assigned spatial streams and their corresponding
67 			 index.
68 			Total number of spatial streams assigned for the MU-MIMO
69 			 allocation is also signaled.
70 */
71 
72 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_OFFSET 0x0000000000000000
73 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_LSB   11
74 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_MSB   14
75 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_SPATIAL_CONFIG_MASK  0x0000000000007800
76 
77 
78 /* Description		STA_MCS
79 
80 			Indicates the data MCS
81 */
82 
83 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_OFFSET           0x0000000000000000
84 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_LSB              15
85 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_MSB              18
86 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_MCS_MASK             0x0000000000078000
87 
88 
89 /* Description		RESERVED_SET_TO_1
90 
91 			<legal 1>
92 */
93 
94 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_OFFSET 0x0000000000000000
95 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_LSB    19
96 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_MSB    19
97 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_SET_TO_1_MASK   0x0000000000080000
98 
99 
100 /* Description		STA_CODING
101 
102 			Distinguishes between BCC/LDPC
103 
104 			0: BCC
105 			1: LDPC
106 			<legal all>
107 */
108 
109 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_OFFSET        0x0000000000000000
110 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_LSB           20
111 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_MSB           20
112 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_STA_CODING_MASK          0x0000000000100000
113 
114 
115 /* Description		RESERVED_0A
116 
117 			<legal 0>
118 */
119 
120 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_OFFSET       0x0000000000000000
121 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_LSB          21
122 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_MSB          27
123 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_0A_MASK         0x000000000fe00000
124 
125 
126 /* Description		NSTS
127 
128 			MAC RX side usage only:
129 			Needed by RXPCU. Provided by PHY so that RXPCU does not
130 			need to have the RU number decoding logic.
131 
132 			Number of spatial streams for this user
133 
134 			<enum 0 1_spatial_stream>Single spatial stream
135 			<enum 1 2_spatial_streams>2 spatial streams
136 			<enum 2 3_spatial_streams>3 spatial streams
137 			<enum 3 4_spatial_streams>4 spatial streams
138 			<enum 4 5_spatial_streams>5 spatial streams
139 			<enum 5 6_spatial_streams>6 spatial streams
140 			<enum 6 7_spatial_streams>7 spatial streams
141 			<enum 7 8_spatial_streams>8 spatial streams
142 */
143 
144 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_OFFSET              0x0000000000000000
145 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_LSB                 28
146 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_MSB                 30
147 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_NSTS_MASK                0x0000000070000000
148 
149 
150 /* Description		RX_INTEGRITY_CHECK_PASSED
151 
152 			TX side: Set to 0
153 			RX side: Set to 1 if PHY determines the CRC check of the
154 			 codeblock containing this HE-SIG-B user info has passed,
155 			else set to 0
156 
157 			<legal all>
158 */
159 
160 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
161 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 31
162 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 31
163 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000080000000
164 
165 
166 /* Description		USER_ORDER
167 
168 			RX side: Set to 0
169 			TX side: Ordering index of the User field
170 			Gaps between the ordering indices of User fields indicate
171 			 that the microcode shall generate "unallocated RU" User
172 			 fields (STAID=2046) to fill the gaps.
173 			<legal all>
174 */
175 
176 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_USER_ORDER_OFFSET        0x0000000000000000
177 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_USER_ORDER_LSB           32
178 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_USER_ORDER_MSB           39
179 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_USER_ORDER_MASK          0x000000ff00000000
180 
181 
182 /* Description		CC_MASK
183 
184 			RX side: Set to 0
185 			TX side: Indicates what content channel this User field
186 			can go to
187 			Bit 0: content channel 0
188 			Bit 1: content channel 1
189 			The other bits are unused, but could repeat the above pattern
190 			 for compatibility with 'EHT_SIG_USR_MU_MIMO_INFO.'
191 			<legal all>
192 */
193 
194 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_CC_MASK_OFFSET           0x0000000000000000
195 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_CC_MASK_LSB              40
196 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_CC_MASK_MSB              47
197 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_CC_MASK_MASK             0x0000ff0000000000
198 
199 
200 /* Description		RESERVED_1A
201 
202 			<legal 0>
203 */
204 
205 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_1A_OFFSET       0x0000000000000000
206 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_1A_LSB          48
207 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_1A_MSB          63
208 #define MACTX_HE_SIG_B2_MU_MACTX_HE_SIG_B2_MU_INFO_DETAILS_RESERVED_1A_MASK         0xffff000000000000
209 
210 
211 
212 #endif   // MACTX_HE_SIG_B2_MU
213