1*5113495bSYour Name /* 2*5113495bSYour Name * Copyright (c) 2018 The Linux Foundation. All rights reserved. 3*5113495bSYour Name * 4*5113495bSYour Name * Permission to use, copy, modify, and/or distribute this software for 5*5113495bSYour Name * any purpose with or without fee is hereby granted, provided that the 6*5113495bSYour Name * above copyright notice and this permission notice appear in all 7*5113495bSYour Name * copies. 8*5113495bSYour Name * 9*5113495bSYour Name * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 10*5113495bSYour Name * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 11*5113495bSYour Name * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 12*5113495bSYour Name * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 13*5113495bSYour Name * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 14*5113495bSYour Name * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 15*5113495bSYour Name * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 16*5113495bSYour Name * PERFORMANCE OF THIS SOFTWARE. 17*5113495bSYour Name */ 18*5113495bSYour Name 19*5113495bSYour Name #ifndef _PHYRX_RSSI_LEGACY_H_ 20*5113495bSYour Name #define _PHYRX_RSSI_LEGACY_H_ 21*5113495bSYour Name #if !defined(__ASSEMBLER__) 22*5113495bSYour Name #endif 23*5113495bSYour Name 24*5113495bSYour Name #include "receive_rssi_info.h" 25*5113495bSYour Name 26*5113495bSYour Name // ################ START SUMMARY ################# 27*5113495bSYour Name // 28*5113495bSYour Name // Dword Fields 29*5113495bSYour Name // 0 reception_type[3:0], reserved_0[5:4], receive_bandwidth[7:6], rx_chain_mask[15:8], phy_ppdu_id[31:16] 30*5113495bSYour Name // 1 sw_phy_meta_data[31:0] 31*5113495bSYour Name // 2 ppdu_start_timestamp[31:0] 32*5113495bSYour Name // 3-18 struct receive_rssi_info pre_rssi_info_details; 33*5113495bSYour Name // 19-34 struct receive_rssi_info preamble_rssi_info_details; 34*5113495bSYour Name // 35 pre_rssi_comb[7:0], rssi_comb[15:8], normalized_pre_rssi_comb[23:16], normalized_rssi_comb[31:24] 35*5113495bSYour Name // 36 rssi_comb_ppdu[7:0], rssi_db_to_dbm_offset[15:8], reserved_36a[31:16] 36*5113495bSYour Name // 37*5113495bSYour Name // ################ END SUMMARY ################# 38*5113495bSYour Name 39*5113495bSYour Name #define NUM_OF_DWORDS_PHYRX_RSSI_LEGACY 37 40*5113495bSYour Name 41*5113495bSYour Name struct phyrx_rssi_legacy { 42*5113495bSYour Name uint32_t reception_type : 4, //[3:0] 43*5113495bSYour Name reserved_0 : 2, //[5:4] 44*5113495bSYour Name receive_bandwidth : 2, //[7:6] 45*5113495bSYour Name rx_chain_mask : 8, //[15:8] 46*5113495bSYour Name phy_ppdu_id : 16; //[31:16] 47*5113495bSYour Name uint32_t sw_phy_meta_data : 32; //[31:0] 48*5113495bSYour Name uint32_t ppdu_start_timestamp : 32; //[31:0] 49*5113495bSYour Name struct receive_rssi_info pre_rssi_info_details; 50*5113495bSYour Name struct receive_rssi_info preamble_rssi_info_details; 51*5113495bSYour Name uint32_t pre_rssi_comb : 8, //[7:0] 52*5113495bSYour Name rssi_comb : 8, //[15:8] 53*5113495bSYour Name normalized_pre_rssi_comb : 8, //[23:16] 54*5113495bSYour Name normalized_rssi_comb : 8; //[31:24] 55*5113495bSYour Name uint32_t rssi_comb_ppdu : 8, //[7:0] 56*5113495bSYour Name rssi_db_to_dbm_offset : 8, //[15:8] 57*5113495bSYour Name reserved_36a : 16; //[31:16] 58*5113495bSYour Name }; 59*5113495bSYour Name 60*5113495bSYour Name /* 61*5113495bSYour Name 62*5113495bSYour Name reception_type 63*5113495bSYour Name 64*5113495bSYour Name This field helps MAC SW determine which field in this 65*5113495bSYour Name (and following TLVs) will contain valid information. For 66*5113495bSYour Name example some RSSI info not valid in case of uplink_ofdma.. 67*5113495bSYour Name 68*5113495bSYour Name <enum 0 reception_is_uplink_ofdma> 69*5113495bSYour Name 70*5113495bSYour Name <enum 1 reception_is_uplink_mimo> 71*5113495bSYour Name 72*5113495bSYour Name <enum 2 reception_is_other> 73*5113495bSYour Name 74*5113495bSYour Name <enum 3 reception_is_frameless> PHY RX has been 75*5113495bSYour Name instructed in advance that the upcoming reception is 76*5113495bSYour Name frameless. This implieas that in advance it is known that 77*5113495bSYour Name all frames will collide in the medium, and nothing can be 78*5113495bSYour Name properly decoded... This can happen during the CTS reception 79*5113495bSYour Name in response to the triggered MU-RTS transmission. 80*5113495bSYour Name 81*5113495bSYour Name MAC takes no action when seeing this e_num. For the 82*5113495bSYour Name frameless reception the indication in pkt_end is the final 83*5113495bSYour Name one evaluated by the MAC 84*5113495bSYour Name 85*5113495bSYour Name <legal 0-3> 86*5113495bSYour Name 87*5113495bSYour Name reserved_0 88*5113495bSYour Name 89*5113495bSYour Name <legal 0> 90*5113495bSYour Name 91*5113495bSYour Name receive_bandwidth 92*5113495bSYour Name 93*5113495bSYour Name Full receive Bandwidth 94*5113495bSYour Name 95*5113495bSYour Name 96*5113495bSYour Name 97*5113495bSYour Name <enum 0 full_rx_bw_20_mhz> 98*5113495bSYour Name 99*5113495bSYour Name <enum 1 full_rx_bw_40_mhz> 100*5113495bSYour Name 101*5113495bSYour Name <enum 2 full_rx_bw_80_mhz> 102*5113495bSYour Name 103*5113495bSYour Name <enum 3 full_rx_bw_160_mhz> 104*5113495bSYour Name 105*5113495bSYour Name 106*5113495bSYour Name 107*5113495bSYour Name <legal 0-3> 108*5113495bSYour Name 109*5113495bSYour Name rx_chain_mask 110*5113495bSYour Name 111*5113495bSYour Name The chain mask at the start of the reception of this 112*5113495bSYour Name frame. 113*5113495bSYour Name 114*5113495bSYour Name 115*5113495bSYour Name 116*5113495bSYour Name each bit is one antenna 117*5113495bSYour Name 118*5113495bSYour Name 0: the chain is NOT used 119*5113495bSYour Name 120*5113495bSYour Name 1: the chain is used 121*5113495bSYour Name 122*5113495bSYour Name 123*5113495bSYour Name 124*5113495bSYour Name Supports up to 8 chains 125*5113495bSYour Name 126*5113495bSYour Name 127*5113495bSYour Name 128*5113495bSYour Name Used in 11ax TPC calculations for UL OFDMA/MIMO and has 129*5113495bSYour Name to be in sync with the rssi_comb value as this is also used 130*5113495bSYour Name by the MAC for the TPC calculations. 131*5113495bSYour Name 132*5113495bSYour Name <legal all> 133*5113495bSYour Name 134*5113495bSYour Name phy_ppdu_id 135*5113495bSYour Name 136*5113495bSYour Name A ppdu counter value that PHY increments for every PPDU 137*5113495bSYour Name received. The counter value wraps around 138*5113495bSYour Name 139*5113495bSYour Name <legal all> 140*5113495bSYour Name 141*5113495bSYour Name sw_phy_meta_data 142*5113495bSYour Name 143*5113495bSYour Name 32 bit Meta data that SW can program in a 32 bit PHY 144*5113495bSYour Name register and PHY will insert the value in every 145*5113495bSYour Name RX_RSSI_LEGACY TLV that it generates. 146*5113495bSYour Name 147*5113495bSYour Name SW uses this field to embed among other things some SW 148*5113495bSYour Name channel info. 149*5113495bSYour Name 150*5113495bSYour Name ppdu_start_timestamp 151*5113495bSYour Name 152*5113495bSYour Name Timestamp that indicates when the PPDU that contained 153*5113495bSYour Name this MPDU started on the medium. 154*5113495bSYour Name 155*5113495bSYour Name 156*5113495bSYour Name 157*5113495bSYour Name Note that PHY will detect the start later, and will have 158*5113495bSYour Name to derive out of the preamble info when the frame actually 159*5113495bSYour Name appeared on the medium 160*5113495bSYour Name 161*5113495bSYour Name <legal 0- 10> 162*5113495bSYour Name 163*5113495bSYour Name struct receive_rssi_info pre_rssi_info_details 164*5113495bSYour Name 165*5113495bSYour Name This field is not valid when reception_is_uplink_ofdma 166*5113495bSYour Name 167*5113495bSYour Name 168*5113495bSYour Name 169*5113495bSYour Name Overview of the pre-RSSI values. That is RSSI values 170*5113495bSYour Name measured on the medium before this reception started. 171*5113495bSYour Name 172*5113495bSYour Name struct receive_rssi_info preamble_rssi_info_details 173*5113495bSYour Name 174*5113495bSYour Name This field is not valid when reception_is_uplink_ofdma 175*5113495bSYour Name 176*5113495bSYour Name 177*5113495bSYour Name 178*5113495bSYour Name Overview of the RSSI values measured during the 179*5113495bSYour Name pre-amble phase of this reception 180*5113495bSYour Name 181*5113495bSYour Name pre_rssi_comb 182*5113495bSYour Name 183*5113495bSYour Name Combined pre_rssi of all chains. Based on primary 184*5113495bSYour Name channel RSSI. 185*5113495bSYour Name 186*5113495bSYour Name 187*5113495bSYour Name 188*5113495bSYour Name RSSI is reported as 8b signed values. Nominally value is 189*5113495bSYour Name in dB units above or below the noisefloor(minCCApwr). 190*5113495bSYour Name 191*5113495bSYour Name 192*5113495bSYour Name 193*5113495bSYour Name The resolution can be: 194*5113495bSYour Name 195*5113495bSYour Name 1dB or 0.5dB. This is statically configured within the 196*5113495bSYour Name PHY and MAC 197*5113495bSYour Name 198*5113495bSYour Name 199*5113495bSYour Name 200*5113495bSYour Name In case of 1dB, the Range is: 201*5113495bSYour Name 202*5113495bSYour Name -128dB to 127dB 203*5113495bSYour Name 204*5113495bSYour Name 205*5113495bSYour Name 206*5113495bSYour Name In case of 0.5dB, the Range is: 207*5113495bSYour Name 208*5113495bSYour Name -64dB to 63.5dB 209*5113495bSYour Name 210*5113495bSYour Name 211*5113495bSYour Name 212*5113495bSYour Name <legal all> 213*5113495bSYour Name 214*5113495bSYour Name rssi_comb 215*5113495bSYour Name 216*5113495bSYour Name Combined rssi of all chains. Based on primary channel 217*5113495bSYour Name RSSI. 218*5113495bSYour Name 219*5113495bSYour Name 220*5113495bSYour Name 221*5113495bSYour Name RSSI is reported as 8b signed values. Nominally value is 222*5113495bSYour Name in dB units above or below the noisefloor(minCCApwr). 223*5113495bSYour Name 224*5113495bSYour Name 225*5113495bSYour Name 226*5113495bSYour Name The resolution can be: 227*5113495bSYour Name 228*5113495bSYour Name 1dB or 0.5dB. This is statically configured within the 229*5113495bSYour Name PHY and MAC 230*5113495bSYour Name 231*5113495bSYour Name 232*5113495bSYour Name 233*5113495bSYour Name In case of 1dB, the Range is: 234*5113495bSYour Name 235*5113495bSYour Name -128dB to 127dB 236*5113495bSYour Name 237*5113495bSYour Name 238*5113495bSYour Name 239*5113495bSYour Name In case of 0.5dB, the Range is: 240*5113495bSYour Name 241*5113495bSYour Name -64dB to 63.5dB 242*5113495bSYour Name 243*5113495bSYour Name 244*5113495bSYour Name 245*5113495bSYour Name <legal all> 246*5113495bSYour Name 247*5113495bSYour Name normalized_pre_rssi_comb 248*5113495bSYour Name 249*5113495bSYour Name Combined pre_rssi of all chains, but normalized back to 250*5113495bSYour Name a single chain. This avoids PDG from having to evaluate this 251*5113495bSYour Name in combination with receive chain mask and perform all kinds 252*5113495bSYour Name of pre-processing algorithms. 253*5113495bSYour Name 254*5113495bSYour Name 255*5113495bSYour Name 256*5113495bSYour Name Based on primary channel RSSI. 257*5113495bSYour Name 258*5113495bSYour Name 259*5113495bSYour Name 260*5113495bSYour Name RSSI is reported as 8b signed values. Nominally value is 261*5113495bSYour Name in dB units above or below the noisefloor(minCCApwr). 262*5113495bSYour Name 263*5113495bSYour Name 264*5113495bSYour Name 265*5113495bSYour Name The resolution can be: 266*5113495bSYour Name 267*5113495bSYour Name 1dB or 0.5dB. This is statically configured within the 268*5113495bSYour Name PHY and MAC 269*5113495bSYour Name 270*5113495bSYour Name 271*5113495bSYour Name 272*5113495bSYour Name In case of 1dB, the Range is: 273*5113495bSYour Name 274*5113495bSYour Name -128dB to 127dB 275*5113495bSYour Name 276*5113495bSYour Name 277*5113495bSYour Name 278*5113495bSYour Name In case of 0.5dB, the Range is: 279*5113495bSYour Name 280*5113495bSYour Name -64dB to 63.5dB 281*5113495bSYour Name 282*5113495bSYour Name 283*5113495bSYour Name 284*5113495bSYour Name <legal all> 285*5113495bSYour Name 286*5113495bSYour Name normalized_rssi_comb 287*5113495bSYour Name 288*5113495bSYour Name Combined rssi of all chains, but normalized back to a 289*5113495bSYour Name single chain. This avoids PDG from having to evaluate this 290*5113495bSYour Name in combination with receive chain mask and perform all kinds 291*5113495bSYour Name of pre-processing algorithms. 292*5113495bSYour Name 293*5113495bSYour Name 294*5113495bSYour Name 295*5113495bSYour Name Based on primary channel RSSI. 296*5113495bSYour Name 297*5113495bSYour Name 298*5113495bSYour Name 299*5113495bSYour Name RSSI is reported as 8b signed values. Nominally value is 300*5113495bSYour Name in dB units above or below the noisefloor(minCCApwr). 301*5113495bSYour Name 302*5113495bSYour Name 303*5113495bSYour Name 304*5113495bSYour Name The resolution can be: 305*5113495bSYour Name 306*5113495bSYour Name 1dB or 0.5dB. This is statically configured within the 307*5113495bSYour Name PHY and MAC 308*5113495bSYour Name 309*5113495bSYour Name In case of 1dB, the Range is: 310*5113495bSYour Name 311*5113495bSYour Name -128dB to 127dB 312*5113495bSYour Name 313*5113495bSYour Name 314*5113495bSYour Name 315*5113495bSYour Name In case of 0.5dB, the Range is: 316*5113495bSYour Name 317*5113495bSYour Name -64dB to 63.5dB 318*5113495bSYour Name 319*5113495bSYour Name 320*5113495bSYour Name 321*5113495bSYour Name <legal all> 322*5113495bSYour Name 323*5113495bSYour Name rssi_comb_ppdu 324*5113495bSYour Name 325*5113495bSYour Name Combined rssi of all chains, based on active 326*5113495bSYour Name RUs/subchannels 327*5113495bSYour Name 328*5113495bSYour Name 329*5113495bSYour Name 330*5113495bSYour Name RSSI is reported as 8b signed values. Nominally value is 331*5113495bSYour Name in dB units above or below the noisefloor(minCCApwr). 332*5113495bSYour Name 333*5113495bSYour Name 334*5113495bSYour Name 335*5113495bSYour Name The resolution can be: 336*5113495bSYour Name 337*5113495bSYour Name 1dB or 0.5dB. This is statically configured within the 338*5113495bSYour Name PHY and MAC 339*5113495bSYour Name 340*5113495bSYour Name 341*5113495bSYour Name 342*5113495bSYour Name In case of 1dB, the Range is: 343*5113495bSYour Name 344*5113495bSYour Name -128dB to 127dB 345*5113495bSYour Name 346*5113495bSYour Name 347*5113495bSYour Name 348*5113495bSYour Name In case of 0.5dB, the Range is: 349*5113495bSYour Name 350*5113495bSYour Name -64dB to 63.5dB 351*5113495bSYour Name 352*5113495bSYour Name 353*5113495bSYour Name 354*5113495bSYour Name When packet BW is 20 MHz, 355*5113495bSYour Name 356*5113495bSYour Name rssi_comb_ppdu = rssi_comb. 357*5113495bSYour Name 358*5113495bSYour Name 359*5113495bSYour Name 360*5113495bSYour Name When packet BW > 20 MHz, 361*5113495bSYour Name 362*5113495bSYour Name rssi_comb < rssi_comb_ppdu because rssi_comb only 363*5113495bSYour Name includes power of primary 20 MHz while rssi_comb_ppdu 364*5113495bSYour Name includes power of active RUs/subchannels. 365*5113495bSYour Name 366*5113495bSYour Name 367*5113495bSYour Name 368*5113495bSYour Name <legal all> 369*5113495bSYour Name 370*5113495bSYour Name rssi_db_to_dbm_offset 371*5113495bSYour Name 372*5113495bSYour Name Offset between 'dB' and 'dBm' values. SW can use this 373*5113495bSYour Name value to convert RSSI 'dBm' values back to 'dB,' and report 374*5113495bSYour Name both the values. 375*5113495bSYour Name 376*5113495bSYour Name 377*5113495bSYour Name 378*5113495bSYour Name When rssi_db_to_dbm_offset = 0, 379*5113495bSYour Name 380*5113495bSYour Name all rssi_xxx fields are defined in dB. 381*5113495bSYour Name 382*5113495bSYour Name 383*5113495bSYour Name 384*5113495bSYour Name When rssi_db_to_dbm_offset is a large negative value, 385*5113495bSYour Name all rssi_xxx fields are defined in dBm. 386*5113495bSYour Name 387*5113495bSYour Name 388*5113495bSYour Name 389*5113495bSYour Name <legal all> 390*5113495bSYour Name 391*5113495bSYour Name reserved_36a 392*5113495bSYour Name 393*5113495bSYour Name <legal 0> 394*5113495bSYour Name */ 395*5113495bSYour Name 396*5113495bSYour Name 397*5113495bSYour Name /* Description PHYRX_RSSI_LEGACY_0_RECEPTION_TYPE 398*5113495bSYour Name 399*5113495bSYour Name This field helps MAC SW determine which field in this 400*5113495bSYour Name (and following TLVs) will contain valid information. For 401*5113495bSYour Name example some RSSI info not valid in case of uplink_ofdma.. 402*5113495bSYour Name 403*5113495bSYour Name <enum 0 reception_is_uplink_ofdma> 404*5113495bSYour Name 405*5113495bSYour Name <enum 1 reception_is_uplink_mimo> 406*5113495bSYour Name 407*5113495bSYour Name <enum 2 reception_is_other> 408*5113495bSYour Name 409*5113495bSYour Name <enum 3 reception_is_frameless> PHY RX has been 410*5113495bSYour Name instructed in advance that the upcoming reception is 411*5113495bSYour Name frameless. This implieas that in advance it is known that 412*5113495bSYour Name all frames will collide in the medium, and nothing can be 413*5113495bSYour Name properly decoded... This can happen during the CTS reception 414*5113495bSYour Name in response to the triggered MU-RTS transmission. 415*5113495bSYour Name 416*5113495bSYour Name MAC takes no action when seeing this e_num. For the 417*5113495bSYour Name frameless reception the indication in pkt_end is the final 418*5113495bSYour Name one evaluated by the MAC 419*5113495bSYour Name 420*5113495bSYour Name <legal 0-3> 421*5113495bSYour Name */ 422*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_RECEPTION_TYPE_OFFSET 0x00000000 423*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_RECEPTION_TYPE_LSB 0 424*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_RECEPTION_TYPE_MASK 0x0000000f 425*5113495bSYour Name 426*5113495bSYour Name /* Description PHYRX_RSSI_LEGACY_0_RESERVED_0 427*5113495bSYour Name 428*5113495bSYour Name <legal 0> 429*5113495bSYour Name */ 430*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_RESERVED_0_OFFSET 0x00000000 431*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_RESERVED_0_LSB 4 432*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_RESERVED_0_MASK 0x00000030 433*5113495bSYour Name 434*5113495bSYour Name /* Description PHYRX_RSSI_LEGACY_0_RECEIVE_BANDWIDTH 435*5113495bSYour Name 436*5113495bSYour Name Full receive Bandwidth 437*5113495bSYour Name 438*5113495bSYour Name 439*5113495bSYour Name 440*5113495bSYour Name <enum 0 full_rx_bw_20_mhz> 441*5113495bSYour Name 442*5113495bSYour Name <enum 1 full_rx_bw_40_mhz> 443*5113495bSYour Name 444*5113495bSYour Name <enum 2 full_rx_bw_80_mhz> 445*5113495bSYour Name 446*5113495bSYour Name <enum 3 full_rx_bw_160_mhz> 447*5113495bSYour Name 448*5113495bSYour Name 449*5113495bSYour Name 450*5113495bSYour Name <legal 0-3> 451*5113495bSYour Name */ 452*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_RECEIVE_BANDWIDTH_OFFSET 0x00000000 453*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_RECEIVE_BANDWIDTH_LSB 6 454*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_RECEIVE_BANDWIDTH_MASK 0x000000c0 455*5113495bSYour Name 456*5113495bSYour Name /* Description PHYRX_RSSI_LEGACY_0_RX_CHAIN_MASK 457*5113495bSYour Name 458*5113495bSYour Name The chain mask at the start of the reception of this 459*5113495bSYour Name frame. 460*5113495bSYour Name 461*5113495bSYour Name 462*5113495bSYour Name 463*5113495bSYour Name each bit is one antenna 464*5113495bSYour Name 465*5113495bSYour Name 0: the chain is NOT used 466*5113495bSYour Name 467*5113495bSYour Name 1: the chain is used 468*5113495bSYour Name 469*5113495bSYour Name 470*5113495bSYour Name 471*5113495bSYour Name Supports up to 8 chains 472*5113495bSYour Name 473*5113495bSYour Name 474*5113495bSYour Name 475*5113495bSYour Name Used in 11ax TPC calculations for UL OFDMA/MIMO and has 476*5113495bSYour Name to be in sync with the rssi_comb value as this is also used 477*5113495bSYour Name by the MAC for the TPC calculations. 478*5113495bSYour Name 479*5113495bSYour Name <legal all> 480*5113495bSYour Name */ 481*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_RX_CHAIN_MASK_OFFSET 0x00000000 482*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_RX_CHAIN_MASK_LSB 8 483*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_RX_CHAIN_MASK_MASK 0x0000ff00 484*5113495bSYour Name 485*5113495bSYour Name /* Description PHYRX_RSSI_LEGACY_0_PHY_PPDU_ID 486*5113495bSYour Name 487*5113495bSYour Name A ppdu counter value that PHY increments for every PPDU 488*5113495bSYour Name received. The counter value wraps around 489*5113495bSYour Name 490*5113495bSYour Name <legal all> 491*5113495bSYour Name */ 492*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_PHY_PPDU_ID_OFFSET 0x00000000 493*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_PHY_PPDU_ID_LSB 16 494*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_PHY_PPDU_ID_MASK 0xffff0000 495*5113495bSYour Name 496*5113495bSYour Name /* Description PHYRX_RSSI_LEGACY_1_SW_PHY_META_DATA 497*5113495bSYour Name 498*5113495bSYour Name 32 bit Meta data that SW can program in a 32 bit PHY 499*5113495bSYour Name register and PHY will insert the value in every 500*5113495bSYour Name RX_RSSI_LEGACY TLV that it generates. 501*5113495bSYour Name 502*5113495bSYour Name SW uses this field to embed among other things some SW 503*5113495bSYour Name channel info. 504*5113495bSYour Name */ 505*5113495bSYour Name #define PHYRX_RSSI_LEGACY_1_SW_PHY_META_DATA_OFFSET 0x00000004 506*5113495bSYour Name #define PHYRX_RSSI_LEGACY_1_SW_PHY_META_DATA_LSB 0 507*5113495bSYour Name #define PHYRX_RSSI_LEGACY_1_SW_PHY_META_DATA_MASK 0xffffffff 508*5113495bSYour Name 509*5113495bSYour Name /* Description PHYRX_RSSI_LEGACY_2_PPDU_START_TIMESTAMP 510*5113495bSYour Name 511*5113495bSYour Name Timestamp that indicates when the PPDU that contained 512*5113495bSYour Name this MPDU started on the medium. 513*5113495bSYour Name 514*5113495bSYour Name 515*5113495bSYour Name 516*5113495bSYour Name Note that PHY will detect the start later, and will have 517*5113495bSYour Name to derive out of the preamble info when the frame actually 518*5113495bSYour Name appeared on the medium 519*5113495bSYour Name 520*5113495bSYour Name <legal 0- 10> 521*5113495bSYour Name */ 522*5113495bSYour Name #define PHYRX_RSSI_LEGACY_2_PPDU_START_TIMESTAMP_OFFSET 0x00000008 523*5113495bSYour Name #define PHYRX_RSSI_LEGACY_2_PPDU_START_TIMESTAMP_LSB 0 524*5113495bSYour Name #define PHYRX_RSSI_LEGACY_2_PPDU_START_TIMESTAMP_MASK 0xffffffff 525*5113495bSYour Name #define PHYRX_RSSI_LEGACY_3_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x0000000c 526*5113495bSYour Name #define PHYRX_RSSI_LEGACY_3_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0 527*5113495bSYour Name #define PHYRX_RSSI_LEGACY_3_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff 528*5113495bSYour Name #define PHYRX_RSSI_LEGACY_4_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000010 529*5113495bSYour Name #define PHYRX_RSSI_LEGACY_4_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0 530*5113495bSYour Name #define PHYRX_RSSI_LEGACY_4_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff 531*5113495bSYour Name #define PHYRX_RSSI_LEGACY_5_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000014 532*5113495bSYour Name #define PHYRX_RSSI_LEGACY_5_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0 533*5113495bSYour Name #define PHYRX_RSSI_LEGACY_5_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff 534*5113495bSYour Name #define PHYRX_RSSI_LEGACY_6_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000018 535*5113495bSYour Name #define PHYRX_RSSI_LEGACY_6_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0 536*5113495bSYour Name #define PHYRX_RSSI_LEGACY_6_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff 537*5113495bSYour Name #define PHYRX_RSSI_LEGACY_7_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x0000001c 538*5113495bSYour Name #define PHYRX_RSSI_LEGACY_7_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0 539*5113495bSYour Name #define PHYRX_RSSI_LEGACY_7_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff 540*5113495bSYour Name #define PHYRX_RSSI_LEGACY_8_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000020 541*5113495bSYour Name #define PHYRX_RSSI_LEGACY_8_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0 542*5113495bSYour Name #define PHYRX_RSSI_LEGACY_8_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff 543*5113495bSYour Name #define PHYRX_RSSI_LEGACY_9_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000024 544*5113495bSYour Name #define PHYRX_RSSI_LEGACY_9_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0 545*5113495bSYour Name #define PHYRX_RSSI_LEGACY_9_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff 546*5113495bSYour Name #define PHYRX_RSSI_LEGACY_10_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000028 547*5113495bSYour Name #define PHYRX_RSSI_LEGACY_10_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0 548*5113495bSYour Name #define PHYRX_RSSI_LEGACY_10_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff 549*5113495bSYour Name #define PHYRX_RSSI_LEGACY_11_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x0000002c 550*5113495bSYour Name #define PHYRX_RSSI_LEGACY_11_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0 551*5113495bSYour Name #define PHYRX_RSSI_LEGACY_11_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff 552*5113495bSYour Name #define PHYRX_RSSI_LEGACY_12_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000030 553*5113495bSYour Name #define PHYRX_RSSI_LEGACY_12_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0 554*5113495bSYour Name #define PHYRX_RSSI_LEGACY_12_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff 555*5113495bSYour Name #define PHYRX_RSSI_LEGACY_13_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000034 556*5113495bSYour Name #define PHYRX_RSSI_LEGACY_13_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0 557*5113495bSYour Name #define PHYRX_RSSI_LEGACY_13_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff 558*5113495bSYour Name #define PHYRX_RSSI_LEGACY_14_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000038 559*5113495bSYour Name #define PHYRX_RSSI_LEGACY_14_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0 560*5113495bSYour Name #define PHYRX_RSSI_LEGACY_14_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff 561*5113495bSYour Name #define PHYRX_RSSI_LEGACY_15_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x0000003c 562*5113495bSYour Name #define PHYRX_RSSI_LEGACY_15_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0 563*5113495bSYour Name #define PHYRX_RSSI_LEGACY_15_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff 564*5113495bSYour Name #define PHYRX_RSSI_LEGACY_16_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000040 565*5113495bSYour Name #define PHYRX_RSSI_LEGACY_16_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0 566*5113495bSYour Name #define PHYRX_RSSI_LEGACY_16_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff 567*5113495bSYour Name #define PHYRX_RSSI_LEGACY_17_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000044 568*5113495bSYour Name #define PHYRX_RSSI_LEGACY_17_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0 569*5113495bSYour Name #define PHYRX_RSSI_LEGACY_17_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff 570*5113495bSYour Name #define PHYRX_RSSI_LEGACY_18_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000048 571*5113495bSYour Name #define PHYRX_RSSI_LEGACY_18_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0 572*5113495bSYour Name #define PHYRX_RSSI_LEGACY_18_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff 573*5113495bSYour Name #define PHYRX_RSSI_LEGACY_19_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x0000004c 574*5113495bSYour Name #define PHYRX_RSSI_LEGACY_19_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0 575*5113495bSYour Name #define PHYRX_RSSI_LEGACY_19_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff 576*5113495bSYour Name #define PHYRX_RSSI_LEGACY_20_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000050 577*5113495bSYour Name #define PHYRX_RSSI_LEGACY_20_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0 578*5113495bSYour Name #define PHYRX_RSSI_LEGACY_20_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff 579*5113495bSYour Name #define PHYRX_RSSI_LEGACY_21_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000054 580*5113495bSYour Name #define PHYRX_RSSI_LEGACY_21_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0 581*5113495bSYour Name #define PHYRX_RSSI_LEGACY_21_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff 582*5113495bSYour Name #define PHYRX_RSSI_LEGACY_22_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000058 583*5113495bSYour Name #define PHYRX_RSSI_LEGACY_22_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0 584*5113495bSYour Name #define PHYRX_RSSI_LEGACY_22_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff 585*5113495bSYour Name #define PHYRX_RSSI_LEGACY_23_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x0000005c 586*5113495bSYour Name #define PHYRX_RSSI_LEGACY_23_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0 587*5113495bSYour Name #define PHYRX_RSSI_LEGACY_23_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff 588*5113495bSYour Name #define PHYRX_RSSI_LEGACY_24_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000060 589*5113495bSYour Name #define PHYRX_RSSI_LEGACY_24_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0 590*5113495bSYour Name #define PHYRX_RSSI_LEGACY_24_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff 591*5113495bSYour Name #define PHYRX_RSSI_LEGACY_25_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000064 592*5113495bSYour Name #define PHYRX_RSSI_LEGACY_25_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0 593*5113495bSYour Name #define PHYRX_RSSI_LEGACY_25_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff 594*5113495bSYour Name #define PHYRX_RSSI_LEGACY_26_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000068 595*5113495bSYour Name #define PHYRX_RSSI_LEGACY_26_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0 596*5113495bSYour Name #define PHYRX_RSSI_LEGACY_26_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff 597*5113495bSYour Name #define PHYRX_RSSI_LEGACY_27_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x0000006c 598*5113495bSYour Name #define PHYRX_RSSI_LEGACY_27_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0 599*5113495bSYour Name #define PHYRX_RSSI_LEGACY_27_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff 600*5113495bSYour Name #define PHYRX_RSSI_LEGACY_28_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000070 601*5113495bSYour Name #define PHYRX_RSSI_LEGACY_28_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0 602*5113495bSYour Name #define PHYRX_RSSI_LEGACY_28_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff 603*5113495bSYour Name #define PHYRX_RSSI_LEGACY_29_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000074 604*5113495bSYour Name #define PHYRX_RSSI_LEGACY_29_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0 605*5113495bSYour Name #define PHYRX_RSSI_LEGACY_29_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff 606*5113495bSYour Name #define PHYRX_RSSI_LEGACY_30_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000078 607*5113495bSYour Name #define PHYRX_RSSI_LEGACY_30_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0 608*5113495bSYour Name #define PHYRX_RSSI_LEGACY_30_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff 609*5113495bSYour Name #define PHYRX_RSSI_LEGACY_31_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x0000007c 610*5113495bSYour Name #define PHYRX_RSSI_LEGACY_31_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0 611*5113495bSYour Name #define PHYRX_RSSI_LEGACY_31_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff 612*5113495bSYour Name #define PHYRX_RSSI_LEGACY_32_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000080 613*5113495bSYour Name #define PHYRX_RSSI_LEGACY_32_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0 614*5113495bSYour Name #define PHYRX_RSSI_LEGACY_32_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff 615*5113495bSYour Name #define PHYRX_RSSI_LEGACY_33_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000084 616*5113495bSYour Name #define PHYRX_RSSI_LEGACY_33_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0 617*5113495bSYour Name #define PHYRX_RSSI_LEGACY_33_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff 618*5113495bSYour Name #define PHYRX_RSSI_LEGACY_34_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000088 619*5113495bSYour Name #define PHYRX_RSSI_LEGACY_34_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0 620*5113495bSYour Name #define PHYRX_RSSI_LEGACY_34_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff 621*5113495bSYour Name 622*5113495bSYour Name /* Description PHYRX_RSSI_LEGACY_35_PRE_RSSI_COMB 623*5113495bSYour Name 624*5113495bSYour Name Combined pre_rssi of all chains. Based on primary 625*5113495bSYour Name channel RSSI. 626*5113495bSYour Name 627*5113495bSYour Name 628*5113495bSYour Name 629*5113495bSYour Name RSSI is reported as 8b signed values. Nominally value is 630*5113495bSYour Name in dB units above or below the noisefloor(minCCApwr). 631*5113495bSYour Name 632*5113495bSYour Name 633*5113495bSYour Name 634*5113495bSYour Name The resolution can be: 635*5113495bSYour Name 636*5113495bSYour Name 1dB or 0.5dB. This is statically configured within the 637*5113495bSYour Name PHY and MAC 638*5113495bSYour Name 639*5113495bSYour Name 640*5113495bSYour Name 641*5113495bSYour Name In case of 1dB, the Range is: 642*5113495bSYour Name 643*5113495bSYour Name -128dB to 127dB 644*5113495bSYour Name 645*5113495bSYour Name 646*5113495bSYour Name 647*5113495bSYour Name In case of 0.5dB, the Range is: 648*5113495bSYour Name 649*5113495bSYour Name -64dB to 63.5dB 650*5113495bSYour Name 651*5113495bSYour Name 652*5113495bSYour Name 653*5113495bSYour Name <legal all> 654*5113495bSYour Name */ 655*5113495bSYour Name #define PHYRX_RSSI_LEGACY_35_PRE_RSSI_COMB_OFFSET 0x0000008c 656*5113495bSYour Name #define PHYRX_RSSI_LEGACY_35_PRE_RSSI_COMB_LSB 0 657*5113495bSYour Name #define PHYRX_RSSI_LEGACY_35_PRE_RSSI_COMB_MASK 0x000000ff 658*5113495bSYour Name 659*5113495bSYour Name /* Description PHYRX_RSSI_LEGACY_35_RSSI_COMB 660*5113495bSYour Name 661*5113495bSYour Name Combined rssi of all chains. Based on primary channel 662*5113495bSYour Name RSSI. 663*5113495bSYour Name 664*5113495bSYour Name 665*5113495bSYour Name 666*5113495bSYour Name RSSI is reported as 8b signed values. Nominally value is 667*5113495bSYour Name in dB units above or below the noisefloor(minCCApwr). 668*5113495bSYour Name 669*5113495bSYour Name 670*5113495bSYour Name 671*5113495bSYour Name The resolution can be: 672*5113495bSYour Name 673*5113495bSYour Name 1dB or 0.5dB. This is statically configured within the 674*5113495bSYour Name PHY and MAC 675*5113495bSYour Name 676*5113495bSYour Name 677*5113495bSYour Name 678*5113495bSYour Name In case of 1dB, the Range is: 679*5113495bSYour Name 680*5113495bSYour Name -128dB to 127dB 681*5113495bSYour Name 682*5113495bSYour Name 683*5113495bSYour Name 684*5113495bSYour Name In case of 0.5dB, the Range is: 685*5113495bSYour Name 686*5113495bSYour Name -64dB to 63.5dB 687*5113495bSYour Name 688*5113495bSYour Name 689*5113495bSYour Name 690*5113495bSYour Name <legal all> 691*5113495bSYour Name */ 692*5113495bSYour Name #define PHYRX_RSSI_LEGACY_35_RSSI_COMB_OFFSET 0x0000008c 693*5113495bSYour Name #define PHYRX_RSSI_LEGACY_35_RSSI_COMB_LSB 8 694*5113495bSYour Name #define PHYRX_RSSI_LEGACY_35_RSSI_COMB_MASK 0x0000ff00 695*5113495bSYour Name 696*5113495bSYour Name /* Description PHYRX_RSSI_LEGACY_35_NORMALIZED_PRE_RSSI_COMB 697*5113495bSYour Name 698*5113495bSYour Name Combined pre_rssi of all chains, but normalized back to 699*5113495bSYour Name a single chain. This avoids PDG from having to evaluate this 700*5113495bSYour Name in combination with receive chain mask and perform all kinds 701*5113495bSYour Name of pre-processing algorithms. 702*5113495bSYour Name 703*5113495bSYour Name 704*5113495bSYour Name 705*5113495bSYour Name Based on primary channel RSSI. 706*5113495bSYour Name 707*5113495bSYour Name 708*5113495bSYour Name 709*5113495bSYour Name RSSI is reported as 8b signed values. Nominally value is 710*5113495bSYour Name in dB units above or below the noisefloor(minCCApwr). 711*5113495bSYour Name 712*5113495bSYour Name 713*5113495bSYour Name 714*5113495bSYour Name The resolution can be: 715*5113495bSYour Name 716*5113495bSYour Name 1dB or 0.5dB. This is statically configured within the 717*5113495bSYour Name PHY and MAC 718*5113495bSYour Name 719*5113495bSYour Name 720*5113495bSYour Name 721*5113495bSYour Name In case of 1dB, the Range is: 722*5113495bSYour Name 723*5113495bSYour Name -128dB to 127dB 724*5113495bSYour Name 725*5113495bSYour Name 726*5113495bSYour Name 727*5113495bSYour Name In case of 0.5dB, the Range is: 728*5113495bSYour Name 729*5113495bSYour Name -64dB to 63.5dB 730*5113495bSYour Name 731*5113495bSYour Name 732*5113495bSYour Name 733*5113495bSYour Name <legal all> 734*5113495bSYour Name */ 735*5113495bSYour Name #define PHYRX_RSSI_LEGACY_35_NORMALIZED_PRE_RSSI_COMB_OFFSET 0x0000008c 736*5113495bSYour Name #define PHYRX_RSSI_LEGACY_35_NORMALIZED_PRE_RSSI_COMB_LSB 16 737*5113495bSYour Name #define PHYRX_RSSI_LEGACY_35_NORMALIZED_PRE_RSSI_COMB_MASK 0x00ff0000 738*5113495bSYour Name 739*5113495bSYour Name /* Description PHYRX_RSSI_LEGACY_35_NORMALIZED_RSSI_COMB 740*5113495bSYour Name 741*5113495bSYour Name Combined rssi of all chains, but normalized back to a 742*5113495bSYour Name single chain. This avoids PDG from having to evaluate this 743*5113495bSYour Name in combination with receive chain mask and perform all kinds 744*5113495bSYour Name of pre-processing algorithms. 745*5113495bSYour Name 746*5113495bSYour Name 747*5113495bSYour Name 748*5113495bSYour Name Based on primary channel RSSI. 749*5113495bSYour Name 750*5113495bSYour Name 751*5113495bSYour Name 752*5113495bSYour Name RSSI is reported as 8b signed values. Nominally value is 753*5113495bSYour Name in dB units above or below the noisefloor(minCCApwr). 754*5113495bSYour Name 755*5113495bSYour Name 756*5113495bSYour Name 757*5113495bSYour Name The resolution can be: 758*5113495bSYour Name 759*5113495bSYour Name 1dB or 0.5dB. This is statically configured within the 760*5113495bSYour Name PHY and MAC 761*5113495bSYour Name 762*5113495bSYour Name In case of 1dB, the Range is: 763*5113495bSYour Name 764*5113495bSYour Name -128dB to 127dB 765*5113495bSYour Name 766*5113495bSYour Name 767*5113495bSYour Name 768*5113495bSYour Name In case of 0.5dB, the Range is: 769*5113495bSYour Name 770*5113495bSYour Name -64dB to 63.5dB 771*5113495bSYour Name 772*5113495bSYour Name 773*5113495bSYour Name 774*5113495bSYour Name <legal all> 775*5113495bSYour Name */ 776*5113495bSYour Name #define PHYRX_RSSI_LEGACY_35_NORMALIZED_RSSI_COMB_OFFSET 0x0000008c 777*5113495bSYour Name #define PHYRX_RSSI_LEGACY_35_NORMALIZED_RSSI_COMB_LSB 24 778*5113495bSYour Name #define PHYRX_RSSI_LEGACY_35_NORMALIZED_RSSI_COMB_MASK 0xff000000 779*5113495bSYour Name 780*5113495bSYour Name /* Description PHYRX_RSSI_LEGACY_36_RSSI_COMB_PPDU 781*5113495bSYour Name 782*5113495bSYour Name Combined rssi of all chains, based on active 783*5113495bSYour Name RUs/subchannels 784*5113495bSYour Name 785*5113495bSYour Name 786*5113495bSYour Name 787*5113495bSYour Name RSSI is reported as 8b signed values. Nominally value is 788*5113495bSYour Name in dB units above or below the noisefloor(minCCApwr). 789*5113495bSYour Name 790*5113495bSYour Name 791*5113495bSYour Name 792*5113495bSYour Name The resolution can be: 793*5113495bSYour Name 794*5113495bSYour Name 1dB or 0.5dB. This is statically configured within the 795*5113495bSYour Name PHY and MAC 796*5113495bSYour Name 797*5113495bSYour Name 798*5113495bSYour Name 799*5113495bSYour Name In case of 1dB, the Range is: 800*5113495bSYour Name 801*5113495bSYour Name -128dB to 127dB 802*5113495bSYour Name 803*5113495bSYour Name 804*5113495bSYour Name 805*5113495bSYour Name In case of 0.5dB, the Range is: 806*5113495bSYour Name 807*5113495bSYour Name -64dB to 63.5dB 808*5113495bSYour Name 809*5113495bSYour Name 810*5113495bSYour Name 811*5113495bSYour Name When packet BW is 20 MHz, 812*5113495bSYour Name 813*5113495bSYour Name rssi_comb_ppdu = rssi_comb. 814*5113495bSYour Name 815*5113495bSYour Name 816*5113495bSYour Name 817*5113495bSYour Name When packet BW > 20 MHz, 818*5113495bSYour Name 819*5113495bSYour Name rssi_comb < rssi_comb_ppdu because rssi_comb only 820*5113495bSYour Name includes power of primary 20 MHz while rssi_comb_ppdu 821*5113495bSYour Name includes power of active RUs/subchannels. 822*5113495bSYour Name 823*5113495bSYour Name 824*5113495bSYour Name 825*5113495bSYour Name <legal all> 826*5113495bSYour Name */ 827*5113495bSYour Name #define PHYRX_RSSI_LEGACY_36_RSSI_COMB_PPDU_OFFSET 0x00000090 828*5113495bSYour Name #define PHYRX_RSSI_LEGACY_36_RSSI_COMB_PPDU_LSB 0 829*5113495bSYour Name #define PHYRX_RSSI_LEGACY_36_RSSI_COMB_PPDU_MASK 0x000000ff 830*5113495bSYour Name 831*5113495bSYour Name /* Description PHYRX_RSSI_LEGACY_36_RSSI_DB_TO_DBM_OFFSET 832*5113495bSYour Name 833*5113495bSYour Name Offset between 'dB' and 'dBm' values. SW can use this 834*5113495bSYour Name value to convert RSSI 'dBm' values back to 'dB,' and report 835*5113495bSYour Name both the values. 836*5113495bSYour Name 837*5113495bSYour Name 838*5113495bSYour Name 839*5113495bSYour Name When rssi_db_to_dbm_offset = 0, 840*5113495bSYour Name 841*5113495bSYour Name all rssi_xxx fields are defined in dB. 842*5113495bSYour Name 843*5113495bSYour Name 844*5113495bSYour Name 845*5113495bSYour Name When rssi_db_to_dbm_offset is a large negative value, 846*5113495bSYour Name all rssi_xxx fields are defined in dBm. 847*5113495bSYour Name 848*5113495bSYour Name 849*5113495bSYour Name 850*5113495bSYour Name <legal all> 851*5113495bSYour Name */ 852*5113495bSYour Name #define PHYRX_RSSI_LEGACY_36_RSSI_DB_TO_DBM_OFFSET_OFFSET 0x00000090 853*5113495bSYour Name #define PHYRX_RSSI_LEGACY_36_RSSI_DB_TO_DBM_OFFSET_LSB 8 854*5113495bSYour Name #define PHYRX_RSSI_LEGACY_36_RSSI_DB_TO_DBM_OFFSET_MASK 0x0000ff00 855*5113495bSYour Name 856*5113495bSYour Name /* Description PHYRX_RSSI_LEGACY_36_RESERVED_36A 857*5113495bSYour Name 858*5113495bSYour Name <legal 0> 859*5113495bSYour Name */ 860*5113495bSYour Name #define PHYRX_RSSI_LEGACY_36_RESERVED_36A_OFFSET 0x00000090 861*5113495bSYour Name #define PHYRX_RSSI_LEGACY_36_RESERVED_36A_LSB 16 862*5113495bSYour Name #define PHYRX_RSSI_LEGACY_36_RESERVED_36A_MASK 0xffff0000 863*5113495bSYour Name 864*5113495bSYour Name 865*5113495bSYour Name #endif // _PHYRX_RSSI_LEGACY_H_ 866