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 _RX_PPDU_START_USER_INFO_H_ 25 #define _RX_PPDU_START_USER_INFO_H_ 26 #if !defined(__ASSEMBLER__) 27 #endif 28 29 #include "receive_user_info.h" 30 31 // ################ START SUMMARY ################# 32 // 33 // Dword Fields 34 // 0-2 struct receive_user_info receive_user_info_details; 35 // 36 // ################ END SUMMARY ################# 37 38 #define NUM_OF_DWORDS_RX_PPDU_START_USER_INFO 3 39 40 struct rx_ppdu_start_user_info { 41 struct receive_user_info receive_user_info_details; 42 }; 43 44 /* 45 46 struct receive_user_info receive_user_info_details 47 48 Overview of receive parameters that the MAC needs to 49 prepend to every received MSDU/MPDU. 50 */ 51 52 53 /* EXTERNAL REFERENCE : struct receive_user_info receive_user_info_details */ 54 55 56 /* Description RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID 57 58 A ppdu counter value that PHY increments for every PPDU 59 received. The counter value wraps around 60 61 <legal all> 62 */ 63 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_OFFSET 0x00000000 64 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_LSB 0 65 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_MASK 0x0000ffff 66 67 /* Description RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_USER_RSSI 68 69 RSSI for this user 70 71 Frequency domain RSSI measurement for this user. Based 72 on the channel estimate. 73 74 75 76 <legal all> 77 */ 78 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_USER_RSSI_OFFSET 0x00000000 79 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_USER_RSSI_LSB 16 80 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_USER_RSSI_MASK 0x00ff0000 81 82 /* Description RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PKT_TYPE 83 84 Packet type: 85 86 87 88 <enum 0 dot11a>802.11a PPDU type 89 90 <enum 1 dot11b>802.11b PPDU type 91 92 <enum 2 dot11n_mm>802.11n Mixed Mode PPDU type 93 94 <enum 3 dot11ac>802.11ac PPDU type 95 96 <enum 4 dot11ax>802.11ax PPDU type 97 98 <enum 5 dot11ba>802.11ba (WUR) PPDU type 99 */ 100 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_OFFSET 0x00000000 101 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_LSB 24 102 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_MASK 0x0f000000 103 104 /* Description RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_STBC 105 106 When set, use STBC transmission rates 107 */ 108 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_STBC_OFFSET 0x00000000 109 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_STBC_LSB 28 110 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_STBC_MASK 0x10000000 111 112 /* Description RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE 113 114 Indicates what type of reception this is. 115 116 <enum 0 reception_type_SU > Basic SU reception (not 117 part of OFDMA or MU-MIMO) 118 119 <enum 1 reception_type_MU_MIMO > This is related to 120 DL type of reception 121 122 <enum 2 reception_type_MU_OFDMA > This is related 123 to DL type of reception 124 125 <enum 3 reception_type_MU_OFDMA_MIMO > This is 126 related to DL type of reception 127 128 <enum 4 reception_type_UL_MU_MIMO > This is related 129 to UL type of reception 130 131 <enum 5 reception_type_UL_MU_OFDMA > This is 132 related to UL type of reception 133 134 <enum 6 reception_type_UL_MU_OFDMA_MIMO > This is 135 related to UL type of reception 136 137 138 139 <legal 0-6> 140 */ 141 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_OFFSET 0x00000000 142 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_LSB 29 143 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_MASK 0xe0000000 144 145 /* Description RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RATE_MCS 146 147 For details, refer to MCS_TYPE description 148 149 <legal all> 150 */ 151 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RATE_MCS_OFFSET 0x00000004 152 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RATE_MCS_LSB 0 153 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RATE_MCS_MASK 0x0000000f 154 155 /* Description RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_SGI 156 157 Field only valid when pkt type is HT, VHT or HE. 158 159 160 161 <enum 0 gi_0_8_us > Legacy normal GI. Can also be 162 used for HE 163 164 <enum 1 gi_0_4_us > Legacy short GI. Can also be 165 used for HE 166 167 <enum 2 gi_1_6_us > HE related GI 168 169 <enum 3 gi_3_2_us > HE related GI 170 171 <legal 0 - 3> 172 */ 173 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_SGI_OFFSET 0x00000004 174 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_SGI_LSB 4 175 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_SGI_MASK 0x00000030 176 177 /* Description RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH 178 179 Full receive Bandwidth 180 181 182 183 <enum 0 full_rx_bw_20_mhz> 184 185 <enum 1 full_rx_bw_40_mhz> 186 187 <enum 2 full_rx_bw_80_mhz> 188 189 <enum 3 full_rx_bw_160_mhz> 190 191 192 193 <legal 0-3> 194 */ 195 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_OFFSET 0x00000004 196 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_LSB 6 197 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_MASK 0x000000c0 198 199 /* Description RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP 200 201 Bitmap, with each bit indicating if the related spatial 202 stream is used for this STA 203 204 LSB related to SS 0 205 206 207 208 0: spatial stream not used for this reception 209 210 1: spatial stream used for this reception 211 212 213 214 <legal all> 215 */ 216 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_OFFSET 0x00000004 217 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_LSB 8 218 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_MASK 0x0000ff00 219 220 /* Description RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_RU_ALLOCATION 221 222 Field only valid in case of OFDMA type receptions (DL 223 and UL) 224 225 226 227 Indicates the RU number associated with this user. 228 229 230 231 In case of reception where the transmission was DL MU 232 OFDMA, this field provides the RU pattern. Note that fields 233 ofdma_user_index and ofdma_content_channel are needed to 234 determine which RU (within a 40 MHz channel) was actually 235 assigned to this user, but this does not give info on which 236 40 MHz channel was assigned to this user. Please refer 237 DL_ofdma_ru_* in PHYRX_PKT_END_INFO for complete RU info for 238 this user. 239 240 241 242 In case of reception where the transmission was UL MU 243 OFDMA, PHY is recommended to insert the RU start index in 244 this field. Note that PHY may insert the RU width in 245 Reserved_2a[6:0]. 246 247 <legal all> 248 */ 249 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_RU_ALLOCATION_OFFSET 0x00000004 250 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_RU_ALLOCATION_LSB 16 251 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_RU_ALLOCATION_MASK 0x00ff0000 252 253 /* Description RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_USER_INDEX 254 255 Field only valid in the of DL MU OFDMA reception 256 257 258 259 The user number within the RU_allocation. 260 261 262 263 This is needed for SW to determine the exact RU position 264 within the reception. 265 266 <legal all> 267 */ 268 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_USER_INDEX_OFFSET 0x00000004 269 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_USER_INDEX_LSB 24 270 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_USER_INDEX_MASK 0x7f000000 271 272 /* Description RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_CONTENT_CHANNEL 273 274 Field only valid in the of DL MU OFDMA/MIMO reception 275 276 277 278 In case of DL MU reception, this field indicates the 279 content channel number where PHY found the RU information 280 for this user 281 282 283 284 This is needed for SW to determine the exact RU position 285 within the reception. 286 287 288 289 <enum 0 content_channel_1> 290 291 <enum 1 content_channel_2> 292 293 294 295 <legal all> 296 */ 297 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_CONTENT_CHANNEL_OFFSET 0x00000004 298 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_CONTENT_CHANNEL_LSB 31 299 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_CONTENT_CHANNEL_MASK 0x80000000 300 301 /* Description RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_LDPC 302 303 When set, use LDPC transmission rates were used. 304 305 <legal all> 306 */ 307 #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_LDPC_OFFSET 0x00000008 308 #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_LDPC_LSB 0 309 #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_LDPC_MASK 0x00000001 310 311 /* Description RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RU_WIDTH 312 313 In case of UL OFDMA reception, PHY is recommended to 314 insert the RU width 315 316 In Hastings80: was using Reserved_2a[6:0]. 317 318 <legal 1 - 74> 319 */ 320 #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RU_WIDTH_OFFSET 0x00000008 321 #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RU_WIDTH_LSB 1 322 #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RU_WIDTH_MASK 0x000000fe 323 324 /* Description RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RESERVED_2A 325 326 <legal 0> 327 */ 328 #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_OFFSET 0x00000008 329 #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_LSB 8 330 #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_MASK 0xffffff00 331 332 333 #endif // _RX_PPDU_START_USER_INFO_H_ 334