1 /* 2 * Copyright (c) 2023 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 #ifndef _RX_PPDU_START_USER_INFO_H_ 18 #define _RX_PPDU_START_USER_INFO_H_ 19 #if !defined(__ASSEMBLER__) 20 #endif 21 22 #include "receive_user_info.h" 23 #define NUM_OF_DWORDS_RX_PPDU_START_USER_INFO 8 24 25 #define NUM_OF_QWORDS_RX_PPDU_START_USER_INFO 4 26 27 28 struct rx_ppdu_start_user_info { 29 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 30 struct receive_user_info receive_user_info_details; 31 #else 32 struct receive_user_info receive_user_info_details; 33 #endif 34 }; 35 36 37 /* Description RECEIVE_USER_INFO_DETAILS 38 39 Overview of receive parameters that the MAC needs to prepend 40 to every received MSDU/MPDU. 41 */ 42 43 44 /* Description PHY_PPDU_ID 45 46 A ppdu counter value that PHY increments for every PPDU 47 received. The counter value wraps around 48 <legal all> 49 */ 50 51 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_OFFSET 0x0000000000000000 52 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_LSB 0 53 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_MSB 15 54 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_MASK 0x000000000000ffff 55 56 57 /* Description USER_RSSI 58 59 RSSI for this user 60 Frequency domain RSSI measurement for this user. Based on 61 the channel estimate. 62 63 <legal all> 64 */ 65 66 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_RSSI_OFFSET 0x0000000000000000 67 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_RSSI_LSB 16 68 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_RSSI_MSB 23 69 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_RSSI_MASK 0x0000000000ff0000 70 71 72 /* Description PKT_TYPE 73 74 Packet type: 75 76 <enum_type PKT_TYPE_ENUM> 77 */ 78 79 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_OFFSET 0x0000000000000000 80 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_LSB 24 81 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_MSB 27 82 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_MASK 0x000000000f000000 83 84 85 /* Description STBC 86 87 When set, use STBC transmission rates 88 */ 89 90 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STBC_OFFSET 0x0000000000000000 91 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STBC_LSB 28 92 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STBC_MSB 28 93 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STBC_MASK 0x0000000010000000 94 95 96 /* Description RECEPTION_TYPE 97 98 Indicates what type of reception this is. 99 <enum 0 reception_type_SU > Basic SU reception (not 100 part of OFDMA or MU-MIMO) 101 <enum 1 reception_type_MU_MIMO > This is related to 102 DL type of reception 103 <enum 2 reception_type_MU_OFDMA > This is related to 104 DL type of reception 105 <enum 3 reception_type_MU_OFDMA_MIMO > This is related 106 to DL type of reception 107 <enum 4 reception_type_UL_MU_MIMO > This is related 108 to UL type of reception 109 <enum 5 reception_type_UL_MU_OFDMA > This is related 110 to UL type of reception 111 <enum 6 reception_type_UL_MU_OFDMA_MIMO > This is related 112 to UL type of reception 113 114 <legal 0-6> 115 */ 116 117 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_OFFSET 0x0000000000000000 118 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_LSB 29 119 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_MSB 31 120 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_MASK 0x00000000e0000000 121 122 123 /* Description RATE_MCS 124 125 For details, refer to MCS_TYPE description 126 <legal all> 127 */ 128 129 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RATE_MCS_OFFSET 0x0000000000000000 130 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RATE_MCS_LSB 32 131 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RATE_MCS_MSB 35 132 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RATE_MCS_MASK 0x0000000f00000000 133 134 135 /* Description SGI 136 137 Field only valid when pkt type is HT, VHT or HE. 138 139 <enum 0 gi_0_8_us > Legacy normal GI. Can also be used 140 for HE 141 <enum 1 gi_0_4_us > Legacy short GI. Can also be used 142 for HE 143 <enum 2 gi_1_6_us > HE related GI 144 <enum 3 gi_3_2_us > HE related GI 145 <legal 0 - 3> 146 */ 147 148 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_SGI_OFFSET 0x0000000000000000 149 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_SGI_LSB 36 150 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_SGI_MSB 37 151 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_SGI_MASK 0x0000003000000000 152 153 154 /* Description HE_RANGING_NDP 155 156 Set to 1 for expected HE TB ranging NDP Rx in response to 157 sounding/secure sounding ranging Trigger Tx 158 159 <legal all> 160 */ 161 162 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_HE_RANGING_NDP_OFFSET 0x0000000000000000 163 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_HE_RANGING_NDP_LSB 38 164 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_HE_RANGING_NDP_MSB 38 165 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_HE_RANGING_NDP_MASK 0x0000004000000000 166 167 168 /* Description RESERVED_1A 169 170 <legal 0> 171 */ 172 173 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1A_OFFSET 0x0000000000000000 174 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1A_LSB 39 175 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1A_MSB 39 176 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1A_MASK 0x0000008000000000 177 178 179 /* Description MIMO_SS_BITMAP 180 181 Bitmap, with each bit indicating if the related spatial 182 stream is used for this STA 183 LSB related to SS 0 184 185 0: spatial stream not used for this reception 186 1: spatial stream used for this reception 187 188 <legal all> 189 */ 190 191 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_OFFSET 0x0000000000000000 192 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_LSB 40 193 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_MSB 47 194 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_MASK 0x0000ff0000000000 195 196 197 /* Description RECEIVE_BANDWIDTH 198 199 Full receive Bandwidth 200 201 <enum_type BW_ENUM> 202 */ 203 204 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_OFFSET 0x0000000000000000 205 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_LSB 48 206 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_MSB 50 207 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_MASK 0x0007000000000000 208 209 210 /* Description RESERVED_1B 211 212 <legal 0> 213 */ 214 215 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1B_OFFSET 0x0000000000000000 216 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1B_LSB 51 217 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1B_MSB 55 218 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1B_MASK 0x00f8000000000000 219 220 221 /* Description DL_OFDMA_USER_INDEX 222 223 Field only valid in the of DL MU OFDMA reception 224 225 The user number within the RU_allocation. 226 227 This is needed for SW to determine the exact RU position 228 within the reception. 229 <legal all> 230 */ 231 232 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_USER_INDEX_OFFSET 0x0000000000000000 233 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_USER_INDEX_LSB 56 234 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_USER_INDEX_MSB 63 235 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_USER_INDEX_MASK 0xff00000000000000 236 237 238 /* Description DL_OFDMA_CONTENT_CHANNEL 239 240 Field only valid in the of DL MU OFDMA/MIMO reception 241 242 In case of DL MU reception, this field indicates the content 243 channel number where PHY found the RU information for this 244 user 245 246 This is needed for SW to determine the exact RU position 247 within the reception. 248 249 <enum 0 content_channel_1> 250 <enum 1 content_channel_2> 251 252 <legal all> 253 */ 254 255 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_CONTENT_CHANNEL_OFFSET 0x0000000000000008 256 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_CONTENT_CHANNEL_LSB 0 257 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_CONTENT_CHANNEL_MSB 0 258 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_CONTENT_CHANNEL_MASK 0x0000000000000001 259 260 261 /* Description RESERVED_2A 262 263 <legal 0> 264 */ 265 266 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_OFFSET 0x0000000000000008 267 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_LSB 1 268 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_MSB 7 269 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_MASK 0x00000000000000fe 270 271 272 /* Description NSS 273 274 Field only valid in case of Uplink_receive_type == mimo_only 275 OR ofdma_mimo 276 277 Number of Spatial Streams occupied by the User 278 279 <enum_type SS_COUNT_ENUM> 280 */ 281 282 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_NSS_OFFSET 0x0000000000000008 283 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_NSS_LSB 8 284 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_NSS_MSB 10 285 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_NSS_MASK 0x0000000000000700 286 287 288 /* Description STREAM_OFFSET 289 290 Field only valid in case of Uplink_receive_type == mimo_only 291 OR ofdma_mimo 292 293 Stream Offset from which the User occupies the Streams 294 295 Note MAC: 296 directly from pdg_fes_setup, based on BW 297 */ 298 299 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STREAM_OFFSET_OFFSET 0x0000000000000008 300 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STREAM_OFFSET_LSB 11 301 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STREAM_OFFSET_MSB 13 302 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STREAM_OFFSET_MASK 0x0000000000003800 303 304 305 /* Description STA_DCM 306 307 Indicates whether dual sub-carrier modulation is applied 308 309 0: No DCM 310 1:DCM 311 <legal all> 312 */ 313 314 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STA_DCM_OFFSET 0x0000000000000008 315 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STA_DCM_LSB 14 316 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STA_DCM_MSB 14 317 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STA_DCM_MASK 0x0000000000004000 318 319 320 /* Description LDPC 321 322 When set, use LDPC transmission rates were used. 323 <legal all> 324 */ 325 326 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_LDPC_OFFSET 0x0000000000000008 327 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_LDPC_LSB 15 328 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_LDPC_MSB 15 329 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_LDPC_MASK 0x0000000000008000 330 331 332 /* Description RU_TYPE_80_0 333 334 Indicates the size of the RU in the first 80 MHz sub-band 335 336 <enum 0 RU_26_per80> 337 <enum 1 RU_52_per80> 338 <enum 2 RU_78_per80> 339 <enum 3 RU_106_per80> 340 <enum 4 RU_132_per80> 341 <enum 5 RU_242_per80> 342 <enum 6 RU_484_per80> 343 <enum 7 RU_726_per80> 344 <enum 8 RU_996_per80> 345 <enum 9 RU_996x2> 346 <enum 10 RU_996x3> 347 <enum 11 RU_996x4> 348 <enum 12 RU_rsvd0> DO NOT USE 349 <enum 13 RU_rsvd1> DO NOT USE 350 <enum 14 RU_rsvd2> DO NOT USE 351 <enum 15 RU_NONE> No RUs in this 80 MHz 352 <legal 0-15> 353 */ 354 355 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_0_OFFSET 0x0000000000000008 356 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_0_LSB 16 357 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_0_MSB 19 358 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_0_MASK 0x00000000000f0000 359 360 361 /* Description RU_TYPE_80_1 362 363 Indicates the size of the RU in the second 80 MHz sub-band 364 365 <enum 0 RU_26_per80> 366 <enum 1 RU_52_per80> 367 <enum 2 RU_78_per80> 368 <enum 3 RU_106_per80> 369 <enum 4 RU_132_per80> 370 <enum 5 RU_242_per80> 371 <enum 6 RU_484_per80> 372 <enum 7 RU_726_per80> 373 <enum 8 RU_996_per80> 374 <enum 9 RU_996x2> 375 <enum 10 RU_996x3> 376 <enum 11 RU_996x4> 377 <enum 12 RU_rsvd0> DO NOT USE 378 <enum 13 RU_rsvd1> DO NOT USE 379 <enum 14 RU_rsvd2> DO NOT USE 380 <enum 15 RU_NONE> No RUs in this 80 MHz 381 <legal 0-15> 382 */ 383 384 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_1_OFFSET 0x0000000000000008 385 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_1_LSB 20 386 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_1_MSB 23 387 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_1_MASK 0x0000000000f00000 388 389 390 /* Description RU_TYPE_80_2 391 392 Indicates the size of the RU in the third 80 MHz sub-band 393 394 <enum 0 RU_26_per80> 395 <enum 1 RU_52_per80> 396 <enum 2 RU_78_per80> 397 <enum 3 RU_106_per80> 398 <enum 4 RU_132_per80> 399 <enum 5 RU_242_per80> 400 <enum 6 RU_484_per80> 401 <enum 7 RU_726_per80> 402 <enum 8 RU_996_per80> 403 <enum 9 RU_996x2> 404 <enum 10 RU_996x3> 405 <enum 11 RU_996x4> 406 <enum 12 RU_rsvd0> DO NOT USE 407 <enum 13 RU_rsvd1> DO NOT USE 408 <enum 14 RU_rsvd2> DO NOT USE 409 <enum 15 RU_NONE> No RUs in this 80 MHz 410 <legal 0-15> 411 */ 412 413 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_2_OFFSET 0x0000000000000008 414 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_2_LSB 24 415 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_2_MSB 27 416 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_2_MASK 0x000000000f000000 417 418 419 /* Description RU_TYPE_80_3 420 421 Indicates the size of the RU in the fourth 80 MHz sub-band 422 423 <enum 0 RU_26_per80> 424 <enum 1 RU_52_per80> 425 <enum 2 RU_78_per80> 426 <enum 3 RU_106_per80> 427 <enum 4 RU_132_per80> 428 <enum 5 RU_242_per80> 429 <enum 6 RU_484_per80> 430 <enum 7 RU_726_per80> 431 <enum 8 RU_996_per80> 432 <enum 9 RU_996x2> 433 <enum 10 RU_996x3> 434 <enum 11 RU_996x4> 435 <enum 12 RU_rsvd0> DO NOT USE 436 <enum 13 RU_rsvd1> DO NOT USE 437 <enum 14 RU_rsvd2> DO NOT USE 438 <enum 15 RU_NONE> No RUs in this 80 MHz 439 <legal 0-15> 440 */ 441 442 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_3_OFFSET 0x0000000000000008 443 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_3_LSB 28 444 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_3_MSB 31 445 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_3_MASK 0x00000000f0000000 446 447 448 /* Description RU_START_INDEX_80_0 449 450 RU index number to which User is assigned in the first 80 451 MHz 452 RU numbering is over the entire BW, starting from 0 and 453 in increasing frequency order and not primary-secondary 454 order 455 <legal 0-36> 456 */ 457 458 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_0_OFFSET 0x0000000000000008 459 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_0_LSB 32 460 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_0_MSB 37 461 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_0_MASK 0x0000003f00000000 462 463 464 /* Description RESERVED_3A 465 466 <legal 0> 467 */ 468 469 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3A_OFFSET 0x0000000000000008 470 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3A_LSB 38 471 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3A_MSB 39 472 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3A_MASK 0x000000c000000000 473 474 475 /* Description RU_START_INDEX_80_1 476 477 RU index number to which User is assigned in the second 478 80 MHz 479 RU numbering is over the entire BW, starting from 0 and 480 in increasing frequency order and not primary-secondary 481 order 482 <legal 0-36> 483 */ 484 485 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_1_OFFSET 0x0000000000000008 486 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_1_LSB 40 487 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_1_MSB 45 488 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_1_MASK 0x00003f0000000000 489 490 491 /* Description RESERVED_3B 492 493 <legal 0> 494 */ 495 496 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3B_OFFSET 0x0000000000000008 497 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3B_LSB 46 498 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3B_MSB 47 499 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3B_MASK 0x0000c00000000000 500 501 502 /* Description RU_START_INDEX_80_2 503 504 RU index number to which User is assigned in the third 80 505 MHz 506 RU numbering is over the entire BW, starting from 0 and 507 in increasing frequency order and not primary-secondary 508 order 509 <legal 0-36> 510 */ 511 512 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_2_OFFSET 0x0000000000000008 513 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_2_LSB 48 514 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_2_MSB 53 515 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_2_MASK 0x003f000000000000 516 517 518 /* Description RESERVED_3C 519 520 <legal 0> 521 */ 522 523 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3C_OFFSET 0x0000000000000008 524 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3C_LSB 54 525 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3C_MSB 55 526 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3C_MASK 0x00c0000000000000 527 528 529 /* Description RU_START_INDEX_80_3 530 531 RU index number to which User is assigned in the fourth 532 80 MHz 533 RU numbering is over the entire BW, starting from 0 and 534 in increasing frequency order and not primary-secondary 535 order 536 <legal 0-36> 537 */ 538 539 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_3_OFFSET 0x0000000000000008 540 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_3_LSB 56 541 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_3_MSB 61 542 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_3_MASK 0x3f00000000000000 543 544 545 /* Description RESERVED_3D 546 547 <legal 0> 548 */ 549 550 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3D_OFFSET 0x0000000000000008 551 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3D_LSB 62 552 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3D_MSB 63 553 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3D_MASK 0xc000000000000000 554 555 556 /* Description USER_FD_RSSI_SEG0 557 558 Frequency domain RSSI measurement for the lowest 80 MHz 559 subband of this user, per spatial stream 560 [7:0]: first spatial stream 561 ... 562 [31:24]: fourth spatial stream 563 564 <legal all> 565 */ 566 567 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG0_OFFSET 0x0000000000000010 568 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG0_LSB 0 569 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG0_MSB 31 570 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG0_MASK 0x00000000ffffffff 571 572 573 /* Description USER_FD_RSSI_SEG1 574 575 Frequency domain RSSI measurement for the second lowest 576 80 MHz subband of this user, per spatial stream 577 [7:0]: first spatial stream 578 ... 579 [31:24]: fourth spatial stream 580 581 <legal all> 582 */ 583 584 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG1_OFFSET 0x0000000000000010 585 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG1_LSB 32 586 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG1_MSB 63 587 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG1_MASK 0xffffffff00000000 588 589 590 /* Description USER_FD_RSSI_SEG2 591 592 Frequency domain RSSI measurement for the third lowest 80 593 MHz subband of this user, per spatial stream 594 [7:0]: first spatial stream 595 ... 596 [31:24]: fourth spatial stream 597 598 <legal all> 599 */ 600 601 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG2_OFFSET 0x0000000000000018 602 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG2_LSB 0 603 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG2_MSB 31 604 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG2_MASK 0x00000000ffffffff 605 606 607 /* Description USER_FD_RSSI_SEG3 608 609 Frequency domain RSSI measurement for the highest 80 MHz 610 subband of this user, per spatial stream 611 [7:0]: first spatial stream 612 ... 613 [31:24]: fourth spatial stream 614 615 <legal all> 616 */ 617 618 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG3_OFFSET 0x0000000000000018 619 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG3_LSB 32 620 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG3_MSB 63 621 #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG3_MASK 0xffffffff00000000 622 623 624 625 #endif // RX_PPDU_START_USER_INFO 626