cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

vega10_pptable.h (18266B)


      1/*
      2 * Copyright 2016 Advanced Micro Devices, Inc.
      3 *
      4 * Permission is hereby granted, free of charge, to any person obtaining a
      5 * copy of this software and associated documentation files (the "Software"),
      6 * to deal in the Software without restriction, including without limitation
      7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
      8 * and/or sell copies of the Software, and to permit persons to whom the
      9 * Software is furnished to do so, subject to the following conditions:
     10 *
     11 * The above copyright notice and this permission notice shall be included in
     12 * all copies or substantial portions of the Software.
     13 *
     14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
     17 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
     18 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
     19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
     20 * OTHER DEALINGS IN THE SOFTWARE.
     21 *
     22 */
     23#ifndef _VEGA10_PPTABLE_H_
     24#define _VEGA10_PPTABLE_H_
     25
     26#pragma pack(push, 1)
     27
     28#define ATOM_VEGA10_PP_FANPARAMETERS_TACHOMETER_PULSES_PER_REVOLUTION_MASK 0x0f
     29#define ATOM_VEGA10_PP_FANPARAMETERS_NOFAN                                 0x80
     30
     31#define ATOM_VEGA10_PP_THERMALCONTROLLER_NONE      0
     32#define ATOM_VEGA10_PP_THERMALCONTROLLER_LM96163   17
     33#define ATOM_VEGA10_PP_THERMALCONTROLLER_VEGA10    24
     34
     35#define ATOM_VEGA10_PP_THERMALCONTROLLER_ADT7473_WITH_INTERNAL   0x89
     36#define ATOM_VEGA10_PP_THERMALCONTROLLER_EMC2103_WITH_INTERNAL   0x8D
     37
     38#define ATOM_VEGA10_PP_PLATFORM_CAP_POWERPLAY                   0x1
     39#define ATOM_VEGA10_PP_PLATFORM_CAP_SBIOSPOWERSOURCE            0x2
     40#define ATOM_VEGA10_PP_PLATFORM_CAP_HARDWAREDC                  0x4
     41#define ATOM_VEGA10_PP_PLATFORM_CAP_BACO                        0x8
     42#define ATOM_VEGA10_PP_PLATFORM_COMBINE_PCC_WITH_THERMAL_SIGNAL 0x10
     43
     44
     45/* ATOM_PPLIB_NONCLOCK_INFO::usClassification */
     46#define ATOM_PPLIB_CLASSIFICATION_UI_MASK               0x0007
     47#define ATOM_PPLIB_CLASSIFICATION_UI_SHIFT              0
     48#define ATOM_PPLIB_CLASSIFICATION_UI_NONE               0
     49#define ATOM_PPLIB_CLASSIFICATION_UI_BATTERY            1
     50#define ATOM_PPLIB_CLASSIFICATION_UI_BALANCED           3
     51#define ATOM_PPLIB_CLASSIFICATION_UI_PERFORMANCE        5
     52/* 2, 4, 6, 7 are reserved */
     53
     54#define ATOM_PPLIB_CLASSIFICATION_BOOT                  0x0008
     55#define ATOM_PPLIB_CLASSIFICATION_THERMAL               0x0010
     56#define ATOM_PPLIB_CLASSIFICATION_LIMITEDPOWERSOURCE    0x0020
     57#define ATOM_PPLIB_CLASSIFICATION_REST                  0x0040
     58#define ATOM_PPLIB_CLASSIFICATION_FORCED                0x0080
     59#define ATOM_PPLIB_CLASSIFICATION_ACPI                  0x1000
     60
     61/* ATOM_PPLIB_NONCLOCK_INFO::usClassification2 */
     62#define ATOM_PPLIB_CLASSIFICATION2_LIMITEDPOWERSOURCE_2 0x0001
     63
     64#define ATOM_Vega10_DISALLOW_ON_DC                   0x00004000
     65#define ATOM_Vega10_ENABLE_VARIBRIGHT                0x00008000
     66
     67#define ATOM_Vega10_TABLE_REVISION_VEGA10         8
     68
     69#define ATOM_Vega10_VoltageMode_AVFS_Interpolate     0
     70#define ATOM_Vega10_VoltageMode_AVFS_WorstCase       1
     71#define ATOM_Vega10_VoltageMode_Static               2
     72
     73typedef struct _ATOM_Vega10_POWERPLAYTABLE {
     74	struct atom_common_table_header sHeader;
     75	UCHAR  ucTableRevision;
     76	USHORT usTableSize;                        /* the size of header structure */
     77	ULONG  ulGoldenPPID;                       /* PPGen use only */
     78	ULONG  ulGoldenRevision;                   /* PPGen use only */
     79	USHORT usFormatID;                         /* PPGen use only */
     80	ULONG  ulPlatformCaps;                     /* See ATOM_Vega10_CAPS_* */
     81	ULONG  ulMaxODEngineClock;                 /* For Overdrive. */
     82	ULONG  ulMaxODMemoryClock;                 /* For Overdrive. */
     83	USHORT usPowerControlLimit;
     84	USHORT usUlvVoltageOffset;                 /* in mv units */
     85	USHORT usUlvSmnclkDid;
     86	USHORT usUlvMp1clkDid;
     87	USHORT usUlvGfxclkBypass;
     88	USHORT usGfxclkSlewRate;
     89	UCHAR  ucGfxVoltageMode;
     90	UCHAR  ucSocVoltageMode;
     91	UCHAR  ucUclkVoltageMode;
     92	UCHAR  ucUvdVoltageMode;
     93	UCHAR  ucVceVoltageMode;
     94	UCHAR  ucMp0VoltageMode;
     95	UCHAR  ucDcefVoltageMode;
     96	USHORT usStateArrayOffset;                 /* points to ATOM_Vega10_State_Array */
     97	USHORT usFanTableOffset;                   /* points to ATOM_Vega10_Fan_Table */
     98	USHORT usThermalControllerOffset;          /* points to ATOM_Vega10_Thermal_Controller */
     99	USHORT usSocclkDependencyTableOffset;      /* points to ATOM_Vega10_SOCCLK_Dependency_Table */
    100	USHORT usMclkDependencyTableOffset;        /* points to ATOM_Vega10_MCLK_Dependency_Table */
    101	USHORT usGfxclkDependencyTableOffset;      /* points to ATOM_Vega10_GFXCLK_Dependency_Table */
    102	USHORT usDcefclkDependencyTableOffset;     /* points to ATOM_Vega10_DCEFCLK_Dependency_Table */
    103	USHORT usVddcLookupTableOffset;            /* points to ATOM_Vega10_Voltage_Lookup_Table */
    104	USHORT usVddmemLookupTableOffset;          /* points to ATOM_Vega10_Voltage_Lookup_Table */
    105	USHORT usMMDependencyTableOffset;          /* points to ATOM_Vega10_MM_Dependency_Table */
    106	USHORT usVCEStateTableOffset;              /* points to ATOM_Vega10_VCE_State_Table */
    107	USHORT usReserve;                          /* No PPM Support for Vega10 */
    108	USHORT usPowerTuneTableOffset;             /* points to ATOM_Vega10_PowerTune_Table */
    109	USHORT usHardLimitTableOffset;             /* points to ATOM_Vega10_Hard_Limit_Table */
    110	USHORT usVddciLookupTableOffset;           /* points to ATOM_Vega10_Voltage_Lookup_Table */
    111	USHORT usPCIETableOffset;                  /* points to ATOM_Vega10_PCIE_Table */
    112	USHORT usPixclkDependencyTableOffset;      /* points to ATOM_Vega10_PIXCLK_Dependency_Table */
    113	USHORT usDispClkDependencyTableOffset;     /* points to ATOM_Vega10_DISPCLK_Dependency_Table */
    114	USHORT usPhyClkDependencyTableOffset;      /* points to ATOM_Vega10_PHYCLK_Dependency_Table */
    115} ATOM_Vega10_POWERPLAYTABLE;
    116
    117typedef struct _ATOM_Vega10_State {
    118	UCHAR  ucSocClockIndexHigh;
    119	UCHAR  ucSocClockIndexLow;
    120	UCHAR  ucGfxClockIndexHigh;
    121	UCHAR  ucGfxClockIndexLow;
    122	UCHAR  ucMemClockIndexHigh;
    123	UCHAR  ucMemClockIndexLow;
    124	USHORT usClassification;
    125	ULONG  ulCapsAndSettings;
    126	USHORT usClassification2;
    127} ATOM_Vega10_State;
    128
    129typedef struct _ATOM_Vega10_State_Array {
    130	UCHAR ucRevId;
    131	UCHAR ucNumEntries;                                         /* Number of entries. */
    132	ATOM_Vega10_State states[1];                             /* Dynamically allocate entries. */
    133} ATOM_Vega10_State_Array;
    134
    135typedef struct _ATOM_Vega10_CLK_Dependency_Record {
    136	ULONG  ulClk;                                               /* Frequency of Clock */
    137	UCHAR  ucVddInd;                                            /* Base voltage */
    138} ATOM_Vega10_CLK_Dependency_Record;
    139
    140typedef struct _ATOM_Vega10_GFXCLK_Dependency_Record {
    141	ULONG  ulClk;                                               /* Clock Frequency */
    142	UCHAR  ucVddInd;                                            /* SOC_VDD index */
    143	USHORT usCKSVOffsetandDisable;                              /* Bits 0~30: Voltage offset for CKS, Bit 31: Disable/enable for the GFXCLK level. */
    144	USHORT usAVFSOffset;                                        /* AVFS Voltage offset */
    145} ATOM_Vega10_GFXCLK_Dependency_Record;
    146
    147typedef struct _ATOM_Vega10_GFXCLK_Dependency_Record_V2 {
    148	ULONG  ulClk;
    149	UCHAR  ucVddInd;
    150	USHORT usCKSVOffsetandDisable;
    151	USHORT usAVFSOffset;
    152	UCHAR  ucACGEnable;
    153	UCHAR  ucReserved[3];
    154} ATOM_Vega10_GFXCLK_Dependency_Record_V2;
    155
    156typedef struct _ATOM_Vega10_MCLK_Dependency_Record {
    157	ULONG  ulMemClk;                                            /* Clock Frequency */
    158	UCHAR  ucVddInd;                                            /* SOC_VDD index */
    159	UCHAR  ucVddMemInd;                                         /* MEM_VDD - only non zero for MCLK record */
    160	UCHAR  ucVddciInd;                                          /* VDDCI   = only non zero for MCLK record */
    161} ATOM_Vega10_MCLK_Dependency_Record;
    162
    163typedef struct _ATOM_Vega10_GFXCLK_Dependency_Table {
    164	UCHAR ucRevId;
    165	UCHAR ucNumEntries;					/* Number of entries. */
    166	ATOM_Vega10_GFXCLK_Dependency_Record entries[];		/* Dynamically allocate entries. */
    167} ATOM_Vega10_GFXCLK_Dependency_Table;
    168
    169typedef struct _ATOM_Vega10_MCLK_Dependency_Table {
    170    UCHAR ucRevId;
    171    UCHAR ucNumEntries;                                         /* Number of entries. */
    172    ATOM_Vega10_MCLK_Dependency_Record entries[1];            /* Dynamically allocate entries. */
    173} ATOM_Vega10_MCLK_Dependency_Table;
    174
    175typedef struct _ATOM_Vega10_SOCCLK_Dependency_Table {
    176    UCHAR ucRevId;
    177    UCHAR ucNumEntries;                                         /* Number of entries. */
    178    ATOM_Vega10_CLK_Dependency_Record entries[1];            /* Dynamically allocate entries. */
    179} ATOM_Vega10_SOCCLK_Dependency_Table;
    180
    181typedef struct _ATOM_Vega10_DCEFCLK_Dependency_Table {
    182    UCHAR ucRevId;
    183    UCHAR ucNumEntries;                                         /* Number of entries. */
    184    ATOM_Vega10_CLK_Dependency_Record entries[1];            /* Dynamically allocate entries. */
    185} ATOM_Vega10_DCEFCLK_Dependency_Table;
    186
    187typedef struct _ATOM_Vega10_PIXCLK_Dependency_Table {
    188	UCHAR ucRevId;
    189	UCHAR ucNumEntries;                                         /* Number of entries. */
    190	ATOM_Vega10_CLK_Dependency_Record entries[1];            /* Dynamically allocate entries. */
    191} ATOM_Vega10_PIXCLK_Dependency_Table;
    192
    193typedef struct _ATOM_Vega10_DISPCLK_Dependency_Table {
    194	UCHAR ucRevId;
    195	UCHAR ucNumEntries;                                         /* Number of entries.*/
    196	ATOM_Vega10_CLK_Dependency_Record entries[1];            /* Dynamically allocate entries. */
    197} ATOM_Vega10_DISPCLK_Dependency_Table;
    198
    199typedef struct _ATOM_Vega10_PHYCLK_Dependency_Table {
    200	UCHAR ucRevId;
    201	UCHAR ucNumEntries;                                         /* Number of entries. */
    202	ATOM_Vega10_CLK_Dependency_Record entries[1];            /* Dynamically allocate entries. */
    203} ATOM_Vega10_PHYCLK_Dependency_Table;
    204
    205typedef struct _ATOM_Vega10_MM_Dependency_Record {
    206    UCHAR  ucVddcInd;                                           /* SOC_VDD voltage */
    207    ULONG  ulDClk;                                              /* UVD D-clock */
    208    ULONG  ulVClk;                                              /* UVD V-clock */
    209    ULONG  ulEClk;                                              /* VCE clock */
    210    ULONG  ulPSPClk;                                            /* PSP clock */
    211} ATOM_Vega10_MM_Dependency_Record;
    212
    213typedef struct _ATOM_Vega10_MM_Dependency_Table {
    214	UCHAR ucRevId;
    215	UCHAR ucNumEntries;                                         /* Number of entries */
    216	ATOM_Vega10_MM_Dependency_Record entries[1];             /* Dynamically allocate entries */
    217} ATOM_Vega10_MM_Dependency_Table;
    218
    219typedef struct _ATOM_Vega10_PCIE_Record {
    220	ULONG ulLCLK;                                               /* LClock */
    221	UCHAR ucPCIEGenSpeed;                                       /* PCIE Speed */
    222	UCHAR ucPCIELaneWidth;                                      /* PCIE Lane Width */
    223} ATOM_Vega10_PCIE_Record;
    224
    225typedef struct _ATOM_Vega10_PCIE_Table {
    226	UCHAR  ucRevId;
    227	UCHAR  ucNumEntries;                                        /* Number of entries */
    228	ATOM_Vega10_PCIE_Record entries[1];                      /* Dynamically allocate entries. */
    229} ATOM_Vega10_PCIE_Table;
    230
    231typedef struct _ATOM_Vega10_Voltage_Lookup_Record {
    232	USHORT usVdd;                                               /* Base voltage */
    233} ATOM_Vega10_Voltage_Lookup_Record;
    234
    235typedef struct _ATOM_Vega10_Voltage_Lookup_Table {
    236	UCHAR ucRevId;
    237	UCHAR ucNumEntries;                                          /* Number of entries */
    238	ATOM_Vega10_Voltage_Lookup_Record entries[1];             /* Dynamically allocate entries */
    239} ATOM_Vega10_Voltage_Lookup_Table;
    240
    241typedef struct _ATOM_Vega10_Fan_Table {
    242	UCHAR   ucRevId;                         /* Change this if the table format changes or version changes so that the other fields are not the same. */
    243	USHORT  usFanOutputSensitivity;          /* Sensitivity of fan reaction to temepature changes. */
    244	USHORT  usFanRPMMax;                     /* The default value in RPM. */
    245	USHORT  usThrottlingRPM;
    246	USHORT  usFanAcousticLimit;              /* Minimum Fan Controller Frequency Acoustic Limit. */
    247	USHORT  usTargetTemperature;             /* The default ideal temperature in Celcius. */
    248	USHORT  usMinimumPWMLimit;               /* The minimum PWM that the advanced fan controller can set. */
    249	USHORT  usTargetGfxClk;                   /* The ideal Fan Controller GFXCLK Frequency Acoustic Limit. */
    250	USHORT  usFanGainEdge;
    251	USHORT  usFanGainHotspot;
    252	USHORT  usFanGainLiquid;
    253	USHORT  usFanGainVrVddc;
    254	USHORT  usFanGainVrMvdd;
    255	USHORT  usFanGainPlx;
    256	USHORT  usFanGainHbm;
    257	UCHAR   ucEnableZeroRPM;
    258	USHORT  usFanStopTemperature;
    259	USHORT  usFanStartTemperature;
    260} ATOM_Vega10_Fan_Table;
    261
    262typedef struct _ATOM_Vega10_Fan_Table_V2 {
    263	UCHAR   ucRevId;
    264	USHORT  usFanOutputSensitivity;
    265	USHORT  usFanAcousticLimitRpm;
    266	USHORT  usThrottlingRPM;
    267	USHORT  usTargetTemperature;
    268	USHORT  usMinimumPWMLimit;
    269	USHORT  usTargetGfxClk;
    270	USHORT  usFanGainEdge;
    271	USHORT  usFanGainHotspot;
    272	USHORT  usFanGainLiquid;
    273	USHORT  usFanGainVrVddc;
    274	USHORT  usFanGainVrMvdd;
    275	USHORT  usFanGainPlx;
    276	USHORT  usFanGainHbm;
    277	UCHAR   ucEnableZeroRPM;
    278	USHORT  usFanStopTemperature;
    279	USHORT  usFanStartTemperature;
    280	UCHAR   ucFanParameters;
    281	UCHAR   ucFanMinRPM;
    282	UCHAR   ucFanMaxRPM;
    283} ATOM_Vega10_Fan_Table_V2;
    284
    285typedef struct _ATOM_Vega10_Fan_Table_V3 {
    286	UCHAR   ucRevId;
    287	USHORT  usFanOutputSensitivity;
    288	USHORT  usFanAcousticLimitRpm;
    289	USHORT  usThrottlingRPM;
    290	USHORT  usTargetTemperature;
    291	USHORT  usMinimumPWMLimit;
    292	USHORT  usTargetGfxClk;
    293	USHORT  usFanGainEdge;
    294	USHORT  usFanGainHotspot;
    295	USHORT  usFanGainLiquid;
    296	USHORT  usFanGainVrVddc;
    297	USHORT  usFanGainVrMvdd;
    298	USHORT  usFanGainPlx;
    299	USHORT  usFanGainHbm;
    300	UCHAR   ucEnableZeroRPM;
    301	USHORT  usFanStopTemperature;
    302	USHORT  usFanStartTemperature;
    303	UCHAR   ucFanParameters;
    304	UCHAR   ucFanMinRPM;
    305	UCHAR   ucFanMaxRPM;
    306	USHORT  usMGpuThrottlingRPM;
    307} ATOM_Vega10_Fan_Table_V3;
    308
    309typedef struct _ATOM_Vega10_Thermal_Controller {
    310	UCHAR ucRevId;
    311	UCHAR ucType;           /* one of ATOM_VEGA10_PP_THERMALCONTROLLER_*/
    312	UCHAR ucI2cLine;        /* as interpreted by DAL I2C */
    313	UCHAR ucI2cAddress;
    314	UCHAR ucFanParameters;  /* Fan Control Parameters. */
    315	UCHAR ucFanMinRPM;      /* Fan Minimum RPM (hundreds) -- for display purposes only.*/
    316	UCHAR ucFanMaxRPM;      /* Fan Maximum RPM (hundreds) -- for display purposes only.*/
    317    UCHAR ucFlags;          /* to be defined */
    318} ATOM_Vega10_Thermal_Controller;
    319
    320typedef struct _ATOM_Vega10_VCE_State_Record
    321{
    322    UCHAR  ucVCEClockIndex;         /*index into usVCEDependencyTableOffset of 'ATOM_Vega10_MM_Dependency_Table' type */
    323    UCHAR  ucFlag;                  /* 2 bits indicates memory p-states */
    324    UCHAR  ucSCLKIndex;             /* index into ATOM_Vega10_SCLK_Dependency_Table */
    325    UCHAR  ucMCLKIndex;             /* index into ATOM_Vega10_MCLK_Dependency_Table */
    326} ATOM_Vega10_VCE_State_Record;
    327
    328typedef struct _ATOM_Vega10_VCE_State_Table
    329{
    330    UCHAR ucRevId;
    331    UCHAR ucNumEntries;
    332    ATOM_Vega10_VCE_State_Record entries[1];
    333} ATOM_Vega10_VCE_State_Table;
    334
    335typedef struct _ATOM_Vega10_PowerTune_Table {
    336	UCHAR  ucRevId;
    337	USHORT usSocketPowerLimit;
    338	USHORT usBatteryPowerLimit;
    339	USHORT usSmallPowerLimit;
    340	USHORT usTdcLimit;
    341	USHORT usEdcLimit;
    342	USHORT usSoftwareShutdownTemp;
    343	USHORT usTemperatureLimitHotSpot;
    344	USHORT usTemperatureLimitLiquid1;
    345	USHORT usTemperatureLimitLiquid2;
    346	USHORT usTemperatureLimitHBM;
    347	USHORT usTemperatureLimitVrSoc;
    348	USHORT usTemperatureLimitVrMem;
    349	USHORT usTemperatureLimitPlx;
    350	USHORT usLoadLineResistance;
    351	UCHAR  ucLiquid1_I2C_address;
    352	UCHAR  ucLiquid2_I2C_address;
    353	UCHAR  ucVr_I2C_address;
    354	UCHAR  ucPlx_I2C_address;
    355	UCHAR  ucLiquid_I2C_LineSCL;
    356	UCHAR  ucLiquid_I2C_LineSDA;
    357	UCHAR  ucVr_I2C_LineSCL;
    358	UCHAR  ucVr_I2C_LineSDA;
    359	UCHAR  ucPlx_I2C_LineSCL;
    360	UCHAR  ucPlx_I2C_LineSDA;
    361	USHORT usTemperatureLimitTedge;
    362} ATOM_Vega10_PowerTune_Table;
    363
    364typedef struct _ATOM_Vega10_PowerTune_Table_V2
    365{
    366	UCHAR  ucRevId;
    367	USHORT usSocketPowerLimit;
    368	USHORT usBatteryPowerLimit;
    369	USHORT usSmallPowerLimit;
    370	USHORT usTdcLimit;
    371	USHORT usEdcLimit;
    372	USHORT usSoftwareShutdownTemp;
    373	USHORT usTemperatureLimitHotSpot;
    374	USHORT usTemperatureLimitLiquid1;
    375	USHORT usTemperatureLimitLiquid2;
    376	USHORT usTemperatureLimitHBM;
    377	USHORT usTemperatureLimitVrSoc;
    378	USHORT usTemperatureLimitVrMem;
    379	USHORT usTemperatureLimitPlx;
    380	USHORT usLoadLineResistance;
    381	UCHAR ucLiquid1_I2C_address;
    382	UCHAR ucLiquid2_I2C_address;
    383	UCHAR ucLiquid_I2C_Line;
    384	UCHAR ucVr_I2C_address;
    385	UCHAR ucVr_I2C_Line;
    386	UCHAR ucPlx_I2C_address;
    387	UCHAR ucPlx_I2C_Line;
    388	USHORT usTemperatureLimitTedge;
    389} ATOM_Vega10_PowerTune_Table_V2;
    390
    391typedef struct _ATOM_Vega10_PowerTune_Table_V3
    392{
    393	UCHAR  ucRevId;
    394	USHORT usSocketPowerLimit;
    395	USHORT usBatteryPowerLimit;
    396	USHORT usSmallPowerLimit;
    397	USHORT usTdcLimit;
    398	USHORT usEdcLimit;
    399	USHORT usSoftwareShutdownTemp;
    400	USHORT usTemperatureLimitHotSpot;
    401	USHORT usTemperatureLimitLiquid1;
    402	USHORT usTemperatureLimitLiquid2;
    403	USHORT usTemperatureLimitHBM;
    404	USHORT usTemperatureLimitVrSoc;
    405	USHORT usTemperatureLimitVrMem;
    406	USHORT usTemperatureLimitPlx;
    407	USHORT usLoadLineResistance;
    408	UCHAR  ucLiquid1_I2C_address;
    409	UCHAR  ucLiquid2_I2C_address;
    410	UCHAR  ucLiquid_I2C_Line;
    411	UCHAR  ucVr_I2C_address;
    412	UCHAR  ucVr_I2C_Line;
    413	UCHAR  ucPlx_I2C_address;
    414	UCHAR  ucPlx_I2C_Line;
    415	USHORT usTemperatureLimitTedge;
    416	USHORT usBoostStartTemperature;
    417	USHORT usBoostStopTemperature;
    418	ULONG  ulBoostClock;
    419	ULONG  Reserved[2];
    420} ATOM_Vega10_PowerTune_Table_V3;
    421
    422typedef struct _ATOM_Vega10_Hard_Limit_Record {
    423    ULONG  ulSOCCLKLimit;
    424    ULONG  ulGFXCLKLimit;
    425    ULONG  ulMCLKLimit;
    426    USHORT usVddcLimit;
    427    USHORT usVddciLimit;
    428    USHORT usVddMemLimit;
    429} ATOM_Vega10_Hard_Limit_Record;
    430
    431typedef struct _ATOM_Vega10_Hard_Limit_Table
    432{
    433    UCHAR ucRevId;
    434    UCHAR ucNumEntries;
    435    ATOM_Vega10_Hard_Limit_Record entries[1];
    436} ATOM_Vega10_Hard_Limit_Table;
    437
    438typedef struct _Vega10_PPTable_Generic_SubTable_Header
    439{
    440    UCHAR  ucRevId;
    441} Vega10_PPTable_Generic_SubTable_Header;
    442
    443#pragma pack(pop)
    444
    445#endif