/*
* Copyright 2014 Advanced Micro Devices, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*
*/
#ifndef CZ_PP_SMC_H
#define CZ_PP_SMC_H
#pragma pack (push, 1 )
/* Fan control algorithm:*/
#define FDO_MODE_HARDWARE 0
#define FDO_MODE_PIECE_WISE_LINEAR 1
enum FAN_CONTROL {
FAN_CONTROL_FUZZY,
FAN_CONTROL_TABLE
};
enum DPM_ARRAY {
DPM_ARRAY_HARD_MAX,
DPM_ARRAY_HARD_MIN,
DPM_ARRAY_SOFT_MAX,
DPM_ARRAY_SOFT_MIN
};
/*
* Return codes for driver to SMC communication.
* Leave these #define-s, enums might not be exactly 8-bits on the microcontroller.
*/
#define PPSMC_Result_OK ((uint16_t)0 x01)
#define PPSMC_Result_NoMore ((uint16_t)0 x02)
#define PPSMC_Result_NotNow ((uint16_t)0 x03)
#define PPSMC_Result_Failed ((uint16_t)0 xFF)
#define PPSMC_Result_UnknownCmd ((uint16_t)0 xFE)
#define PPSMC_Result_UnknownVT ((uint16_t)0 xFD)
#define PPSMC_isERROR(x) ((uint16_t)0 x80 & (x))
/*
* Supported driver messages
*/
#define PPSMC_MSG_Test ((uint16_t) 0 x1)
#define PPSMC_MSG_GetFeatureStatus ((uint16_t) 0 x2)
#define PPSMC_MSG_EnableAllSmuFeatures ((uint16_t) 0 x3)
#define PPSMC_MSG_DisableAllSmuFeatures ((uint16_t) 0 x4)
#define PPSMC_MSG_OptimizeBattery ((uint16_t) 0 x5)
#define PPSMC_MSG_MaximizePerf ((uint16_t) 0 x6)
#define PPSMC_MSG_UVDPowerOFF ((uint16_t) 0 x7)
#define PPSMC_MSG_UVDPowerON ((uint16_t) 0 x8)
#define PPSMC_MSG_VCEPowerOFF ((uint16_t) 0 x9)
#define PPSMC_MSG_VCEPowerON ((uint16_t) 0 xA)
#define PPSMC_MSG_ACPPowerOFF ((uint16_t) 0 xB)
#define PPSMC_MSG_ACPPowerON ((uint16_t) 0 xC)
#define PPSMC_MSG_SDMAPowerOFF ((uint16_t) 0 xD)
#define PPSMC_MSG_SDMAPowerON ((uint16_t) 0 xE)
#define PPSMC_MSG_XDMAPowerOFF ((uint16_t) 0 xF)
#define PPSMC_MSG_XDMAPowerON ((uint16_t) 0 x10)
#define PPSMC_MSG_SetMinDeepSleepSclk ((uint16_t) 0 x11)
#define PPSMC_MSG_SetSclkSoftMin ((uint16_t) 0 x12)
#define PPSMC_MSG_SetSclkSoftMax ((uint16_t) 0 x13)
#define PPSMC_MSG_SetSclkHardMin ((uint16_t) 0 x14)
#define PPSMC_MSG_SetSclkHardMax ((uint16_t) 0 x15)
#define PPSMC_MSG_SetLclkSoftMin ((uint16_t) 0 x16)
#define PPSMC_MSG_SetLclkSoftMax ((uint16_t) 0 x17)
#define PPSMC_MSG_SetLclkHardMin ((uint16_t) 0 x18)
#define PPSMC_MSG_SetLclkHardMax ((uint16_t) 0 x19)
#define PPSMC_MSG_SetUvdSoftMin ((uint16_t) 0 x1A)
#define PPSMC_MSG_SetUvdSoftMax ((uint16_t) 0 x1B)
#define PPSMC_MSG_SetUvdHardMin ((uint16_t) 0 x1C)
#define PPSMC_MSG_SetUvdHardMax ((uint16_t) 0 x1D)
#define PPSMC_MSG_SetEclkSoftMin ((uint16_t) 0 x1E)
#define PPSMC_MSG_SetEclkSoftMax ((uint16_t) 0 x1F)
#define PPSMC_MSG_SetEclkHardMin ((uint16_t) 0 x20)
#define PPSMC_MSG_SetEclkHardMax ((uint16_t) 0 x21)
#define PPSMC_MSG_SetAclkSoftMin ((uint16_t) 0 x22)
#define PPSMC_MSG_SetAclkSoftMax ((uint16_t) 0 x23)
#define PPSMC_MSG_SetAclkHardMin ((uint16_t) 0 x24)
#define PPSMC_MSG_SetAclkHardMax ((uint16_t) 0 x25)
#define PPSMC_MSG_SetNclkSoftMin ((uint16_t) 0 x26)
#define PPSMC_MSG_SetNclkSoftMax ((uint16_t) 0 x27)
#define PPSMC_MSG_SetNclkHardMin ((uint16_t) 0 x28)
#define PPSMC_MSG_SetNclkHardMax ((uint16_t) 0 x29)
#define PPSMC_MSG_SetPstateSoftMin ((uint16_t) 0 x2A)
#define PPSMC_MSG_SetPstateSoftMax ((uint16_t) 0 x2B)
#define PPSMC_MSG_SetPstateHardMin ((uint16_t) 0 x2C)
#define PPSMC_MSG_SetPstateHardMax ((uint16_t) 0 x2D)
#define PPSMC_MSG_DisableLowMemoryPstate ((uint16_t) 0 x2E)
#define PPSMC_MSG_EnableLowMemoryPstate ((uint16_t) 0 x2F)
#define PPSMC_MSG_UcodeAddressLow ((uint16_t) 0 x30)
#define PPSMC_MSG_UcodeAddressHigh ((uint16_t) 0 x31)
#define PPSMC_MSG_UcodeLoadStatus ((uint16_t) 0 x32)
#define PPSMC_MSG_DriverDramAddrHi ((uint16_t) 0 x33)
#define PPSMC_MSG_DriverDramAddrLo ((uint16_t) 0 x34)
#define PPSMC_MSG_CondExecDramAddrHi ((uint16_t) 0 x35)
#define PPSMC_MSG_CondExecDramAddrLo ((uint16_t) 0 x36)
#define PPSMC_MSG_LoadUcodes ((uint16_t) 0 x37)
#define PPSMC_MSG_DriverResetMode ((uint16_t) 0 x38)
#define PPSMC_MSG_PowerStateNotify ((uint16_t) 0 x39)
#define PPSMC_MSG_SetDisplayPhyConfig ((uint16_t) 0 x3A)
#define PPSMC_MSG_GetMaxSclkLevel ((uint16_t) 0 x3B)
#define PPSMC_MSG_GetMaxLclkLevel ((uint16_t) 0 x3C)
#define PPSMC_MSG_GetMaxUvdLevel ((uint16_t) 0 x3D)
#define PPSMC_MSG_GetMaxEclkLevel ((uint16_t) 0 x3E)
#define PPSMC_MSG_GetMaxAclkLevel ((uint16_t) 0 x3F)
#define PPSMC_MSG_GetMaxNclkLevel ((uint16_t) 0 x40)
#define PPSMC_MSG_GetMaxPstate ((uint16_t) 0 x41)
#define PPSMC_MSG_DramAddrHiVirtual ((uint16_t) 0 x42)
#define PPSMC_MSG_DramAddrLoVirtual ((uint16_t) 0 x43)
#define PPSMC_MSG_DramAddrHiPhysical ((uint16_t) 0 x44)
#define PPSMC_MSG_DramAddrLoPhysical ((uint16_t) 0 x45)
#define PPSMC_MSG_DramBufferSize ((uint16_t) 0 x46)
#define PPSMC_MSG_SetMmPwrLogDramAddrHi ((uint16_t) 0 x47)
#define PPSMC_MSG_SetMmPwrLogDramAddrLo ((uint16_t) 0 x48)
#define PPSMC_MSG_SetClkTableAddrHi ((uint16_t) 0 x49)
#define PPSMC_MSG_SetClkTableAddrLo ((uint16_t) 0 x4A)
#define PPSMC_MSG_GetConservativePowerLimit ((uint16_t) 0 x4B)
#define PPSMC_MSG_InitJobs ((uint16_t) 0 x252)
#define PPSMC_MSG_ExecuteJob ((uint16_t) 0 x254)
#define PPSMC_MSG_NBDPM_Enable ((uint16_t) 0 x140)
#define PPSMC_MSG_NBDPM_Disable ((uint16_t) 0 x141)
#define PPSMC_MSG_DPM_FPS_Mode ((uint16_t) 0 x15d)
#define PPSMC_MSG_DPM_Activity_Mode ((uint16_t) 0 x15e)
#define PPSMC_MSG_PmStatusLogStart ((uint16_t) 0 x170)
#define PPSMC_MSG_PmStatusLogSample ((uint16_t) 0 x171)
#define PPSMC_MSG_AllowLowSclkInterrupt ((uint16_t) 0 x184)
#define PPSMC_MSG_MmPowerMonitorStart ((uint16_t) 0 x18F)
#define PPSMC_MSG_MmPowerMonitorStop ((uint16_t) 0 x190)
#define PPSMC_MSG_MmPowerMonitorRestart ((uint16_t) 0 x191)
#define PPSMC_MSG_SetClockGateMask ((uint16_t) 0 x260)
#define PPSMC_MSG_SetFpsThresholdLo ((uint16_t) 0 x264)
#define PPSMC_MSG_SetFpsThresholdHi ((uint16_t) 0 x265)
#define PPSMC_MSG_SetLowSclkIntrThreshold ((uint16_t) 0 x266)
#define PPSMC_MSG_ClkTableXferToDram ((uint16_t) 0 x267)
#define PPSMC_MSG_ClkTableXferToSmu ((uint16_t) 0 x268)
#define PPSMC_MSG_GetAverageGraphicsActivity ((uint16_t) 0 x269)
#define PPSMC_MSG_GetAverageGioActivity ((uint16_t) 0 x26A)
#define PPSMC_MSG_SetLoggerBufferSize ((uint16_t) 0 x26B)
#define PPSMC_MSG_SetLoggerAddressHigh ((uint16_t) 0 x26C)
#define PPSMC_MSG_SetLoggerAddressLow ((uint16_t) 0 x26D)
#define PPSMC_MSG_SetWatermarkFrequency ((uint16_t) 0 x26E)
#define PPSMC_MSG_SetDisplaySizePowerParams ((uint16_t) 0 x26F)
/* REMOVE LATER*/
#define PPSMC_MSG_DPM_ForceState ((uint16_t) 0 x104)
/* Feature Enable Masks*/
#define NB_DPM_MASK 0 x00000800
#define VDDGFX_MASK 0 x00800000
#define VCE_DPM_MASK 0 x00400000
#define ACP_DPM_MASK 0 x00040000
#define UVD_DPM_MASK 0 x00010000
#define GFX_CU_PG_MASK 0 x00004000
#define SCLK_DPM_MASK 0 x00080000
#if !defined (SMC_MICROCODE)
#pragma pack (pop)
#endif
#endif
Messung V0.5 in Prozent C=95 H=93 G=93
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-07)
¤
*© Formatika GbR, Deutschland