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