regen smu_v13 with stdint (#13631)

Co-authored-by: nimlgen <138685161+nimlgen@users.noreply.github.com>
This commit is contained in:
Christopher Milan
2025-12-09 09:20:01 -08:00
committed by GitHub
parent 7cd8852f60
commit 9eae9dc3be
2 changed files with 648 additions and 70 deletions

View File

@@ -14,10 +14,10 @@ def __getattr__(nm):
args=["-I/opt/rocm/include", "-x", "c++"], tarball=am_src)
case "sdma_5_0_0": return load("am/sdma_5_0_0", [], [root/"extra/hip_gpu_driver/sdma_registers.h", f"{AMD}/amdgpu/navi10_sdma_pkt_open.h"],
args=["-I/opt/rocm/include", "-x", "c++"], tarball=am_src)
case "sdma_6_0_0": return load("am/sdma_6_0_0", [], [root/"extra/hip_gpu_driver/sdma_registers.h", f"{AMD}//amdgpu/sdma_v6_0_0_pkt_open.h"],
case "sdma_6_0_0": return load("am/sdma_6_0_0", [], [root/"extra/hip_gpu_driver/sdma_registers.h", f"{AMD}/amdgpu/sdma_v6_0_0_pkt_open.h"],
args=["-I/opt/rocm/include", "-x", "c++"], tarball=am_src)
case "smu_v13_0_0": return load("am/smu_v13_0_0",[],[f"{AMD}/pm/swsmu/inc/pmfw_if/{s}.h" for s in ["smu_v13_0_0_ppsmc","smu13_driver_if_v13_0_0"]]
+[root/"extra/amdpci/headers/amdgpu_smu.h"], tarball=am_src)
+[root/"extra/amdpci/headers/amdgpu_smu.h"], args=inc, tarball=am_src)
case "smu_v14_0_2": return load("am/smu_v14_0_2", [], [f"{AMD}/pm/swsmu/inc/pmfw_if/{s}.h" for s in ["smu_v14_0_0_pmfw", "smu_v14_0_2_ppsmc",
"smu14_driver_if_v14_0"]]+[root/"extra/amdpci/headers/amdgpu_smu.h"], args=inc, tarball=am_src)
case _: raise AttributeError(f"no such autogen: {nm}")

View File

@@ -77,8 +77,18 @@ I2C_CONTROLLER_PROTOCOL_INA3221 = I2cControllerProtocol_e.define('I2C_CONTROLLER
I2C_CONTROLLER_PROTOCOL_TMP_MAX6604 = I2cControllerProtocol_e.define('I2C_CONTROLLER_PROTOCOL_TMP_MAX6604', 4)
I2C_CONTROLLER_PROTOCOL_COUNT = I2cControllerProtocol_e.define('I2C_CONTROLLER_PROTOCOL_COUNT', 5)
class _anonstruct0(Struct): pass
I2cControllerConfig_t = _anonstruct0
class I2cControllerConfig_t(Struct): pass
uint8_t = ctypes.c_ubyte
I2cControllerConfig_t._fields_ = [
('Enabled', uint8_t),
('Speed', uint8_t),
('SlaveAddress', uint8_t),
('ControllerPort', uint8_t),
('ControllerName', uint8_t),
('ThermalThrotter', uint8_t),
('I2cProtocol', uint8_t),
('PaddingConfig', uint8_t),
]
I2cPort_e = CEnum(ctypes.c_uint32)
I2C_PORT_SVD_SCL = I2cPort_e.define('I2C_PORT_SVD_SCL', 0)
I2C_PORT_GPIO = I2cPort_e.define('I2C_PORT_GPIO', 1)
@@ -97,16 +107,40 @@ I2C_CMD_READ = I2cCmdType_e.define('I2C_CMD_READ', 0)
I2C_CMD_WRITE = I2cCmdType_e.define('I2C_CMD_WRITE', 1)
I2C_CMD_COUNT = I2cCmdType_e.define('I2C_CMD_COUNT', 2)
class _anonstruct1(Struct): pass
SwI2cCmd_t = _anonstruct1
class _anonstruct2(Struct): pass
SwI2cRequest_t = _anonstruct2
class _anonstruct3(Struct): pass
SwI2cRequestExternal_t = _anonstruct3
class _anonstruct4(Struct): pass
EccInfo_t = _anonstruct4
class _anonstruct5(Struct): pass
EccInfoTable_t = _anonstruct5
class SwI2cCmd_t(Struct): pass
SwI2cCmd_t._fields_ = [
('ReadWriteData', uint8_t),
('CmdConfig', uint8_t),
]
class SwI2cRequest_t(Struct): pass
SwI2cRequest_t._fields_ = [
('I2CcontrollerPort', uint8_t),
('I2CSpeed', uint8_t),
('SlaveAddress', uint8_t),
('NumCmds', uint8_t),
('SwI2cCmds', (SwI2cCmd_t * 24)),
]
class SwI2cRequestExternal_t(Struct): pass
uint32_t = ctypes.c_uint32
SwI2cRequestExternal_t._fields_ = [
('SwI2cRequest', SwI2cRequest_t),
('Spare', (uint32_t * 8)),
('MmHubPadding', (uint32_t * 8)),
]
class EccInfo_t(Struct): pass
uint64_t = ctypes.c_uint64
uint16_t = ctypes.c_uint16
EccInfo_t._fields_ = [
('mca_umc_status', uint64_t),
('mca_umc_addr', uint64_t),
('ce_count_lo_chip', uint16_t),
('ce_count_hi_chip', uint16_t),
('eccPadding', uint32_t),
]
class EccInfoTable_t(Struct): pass
EccInfoTable_t._fields_ = [
('EccInfo', (EccInfo_t * 24)),
]
D3HOTSequence_e = CEnum(ctypes.c_uint32)
BACO_SEQUENCE = D3HOTSequence_e.define('BACO_SEQUENCE', 0)
MSR_SEQUENCE = D3HOTSequence_e.define('MSR_SEQUENCE', 1)
@@ -122,12 +156,23 @@ PowerGatingSettings_e = CEnum(ctypes.c_uint32)
PG_POWER_DOWN = PowerGatingSettings_e.define('PG_POWER_DOWN', 0)
PG_POWER_UP = PowerGatingSettings_e.define('PG_POWER_UP', 1)
class _anonstruct6(Struct): pass
QuadraticInt_t = _anonstruct6
class _anonstruct7(Struct): pass
LinearInt_t = _anonstruct7
class _anonstruct8(Struct): pass
DroopInt_t = _anonstruct8
class QuadraticInt_t(Struct): pass
QuadraticInt_t._fields_ = [
('a', uint32_t),
('b', uint32_t),
('c', uint32_t),
]
class LinearInt_t(Struct): pass
LinearInt_t._fields_ = [
('m', uint32_t),
('b', uint32_t),
]
class DroopInt_t(Struct): pass
DroopInt_t._fields_ = [
('a', uint32_t),
('b', uint32_t),
('c', uint32_t),
]
DCS_ARCH_e = CEnum(ctypes.c_uint32)
DCS_ARCH_DISABLED = DCS_ARCH_e.define('DCS_ARCH_DISABLED', 0)
DCS_ARCH_FADCS = DCS_ARCH_e.define('DCS_ARCH_FADCS', 1)
@@ -186,8 +231,19 @@ PWR_CONFIG_TGP = PwrConfig_e.define('PWR_CONFIG_TGP', 1)
PWR_CONFIG_TCP_ESTIMATED = PwrConfig_e.define('PWR_CONFIG_TCP_ESTIMATED', 2)
PWR_CONFIG_TCP_MEASURED = PwrConfig_e.define('PWR_CONFIG_TCP_MEASURED', 3)
class _anonstruct9(Struct): pass
DpmDescriptor_t = _anonstruct9
class DpmDescriptor_t(Struct): pass
DpmDescriptor_t._fields_ = [
('Padding', uint8_t),
('SnapToDiscrete', uint8_t),
('NumDiscreteLevels', uint8_t),
('CalculateFopt', uint8_t),
('ConversionToAvfsClk', LinearInt_t),
('Padding3', (uint32_t * 3)),
('Padding4', uint16_t),
('FoptimalDc', uint16_t),
('FoptimalAc', uint16_t),
('Padding2', uint16_t),
]
PPT_THROTTLER_e = CEnum(ctypes.c_uint32)
PPT_THROTTLER_PPT0 = PPT_THROTTLER_e.define('PPT_THROTTLER_PPT0', 0)
PPT_THROTTLER_PPT1 = PPT_THROTTLER_e.define('PPT_THROTTLER_PPT1', 1)
@@ -332,18 +388,70 @@ PP_GRTAVFS_FW_SEP_FUSE_FREQUENCY_TO_COUNT_SCALER_3 = PP_GRTAVFS_FW_SEP_FUSE_e.de
PP_GRTAVFS_FW_SEP_FUSE_FREQUENCY_TO_COUNT_SCALER_4 = PP_GRTAVFS_FW_SEP_FUSE_e.define('PP_GRTAVFS_FW_SEP_FUSE_FREQUENCY_TO_COUNT_SCALER_4', 18)
PP_GRTAVFS_FW_SEP_FUSE_COUNT = PP_GRTAVFS_FW_SEP_FUSE_e.define('PP_GRTAVFS_FW_SEP_FUSE_COUNT', 19)
class _anonstruct10(Struct): pass
SviTelemetryScale_t = _anonstruct10
class SviTelemetryScale_t(Struct): pass
int8_t = ctypes.c_byte
SviTelemetryScale_t._fields_ = [
('Offset', int8_t),
('Padding', uint8_t),
('MaxCurrent', uint16_t),
]
FanMode_e = CEnum(ctypes.c_uint32)
FAN_MODE_AUTO = FanMode_e.define('FAN_MODE_AUTO', 0)
FAN_MODE_MANUAL_LINEAR = FanMode_e.define('FAN_MODE_MANUAL_LINEAR', 1)
class _anonstruct11(Struct): pass
OverDriveTable_t = _anonstruct11
class _anonstruct12(Struct): pass
OverDriveTableExternal_t = _anonstruct12
class _anonstruct13(Struct): pass
OverDriveLimits_t = _anonstruct13
class OverDriveTable_t(Struct): pass
int16_t = ctypes.c_int16
OverDriveTable_t._fields_ = [
('FeatureCtrlMask', uint32_t),
('VoltageOffsetPerZoneBoundary', (int16_t * 6)),
('Reserved', uint32_t),
('GfxclkFmin', int16_t),
('GfxclkFmax', int16_t),
('UclkFmin', uint16_t),
('UclkFmax', uint16_t),
('Ppt', int16_t),
('Tdc', int16_t),
('FanLinearPwmPoints', (uint8_t * 6)),
('FanLinearTempPoints', (uint8_t * 6)),
('FanMinimumPwm', uint16_t),
('AcousticTargetRpmThreshold', uint16_t),
('AcousticLimitRpmThreshold', uint16_t),
('FanTargetTemperature', uint16_t),
('FanZeroRpmEnable', uint8_t),
('FanZeroRpmStopTemp', uint8_t),
('FanMode', uint8_t),
('MaxOpTemp', uint8_t),
('Spare', (uint32_t * 13)),
('MmHubPadding', (uint32_t * 8)),
]
class OverDriveTableExternal_t(Struct): pass
OverDriveTableExternal_t._fields_ = [
('OverDriveTable', OverDriveTable_t),
]
class OverDriveLimits_t(Struct): pass
OverDriveLimits_t._fields_ = [
('FeatureCtrlMask', uint32_t),
('VoltageOffsetPerZoneBoundary', int16_t),
('Reserved1', uint16_t),
('Reserved2', uint16_t),
('GfxclkFmin', int16_t),
('GfxclkFmax', int16_t),
('UclkFmin', uint16_t),
('UclkFmax', uint16_t),
('Ppt', int16_t),
('Tdc', int16_t),
('FanLinearPwmPoints', uint8_t),
('FanLinearTempPoints', uint8_t),
('FanMinimumPwm', uint16_t),
('AcousticTargetRpmThreshold', uint16_t),
('AcousticLimitRpmThreshold', uint16_t),
('FanTargetTemperature', uint16_t),
('FanZeroRpmEnable', uint8_t),
('FanZeroRpmStopTemp', uint8_t),
('FanMode', uint8_t),
('MaxOpTemp', uint8_t),
('Spare', (uint32_t * 13)),
]
BOARD_GPIO_TYPE_e = CEnum(ctypes.c_uint32)
BOARD_GPIO_SMUIO_0 = BOARD_GPIO_TYPE_e.define('BOARD_GPIO_SMUIO_0', 0)
BOARD_GPIO_SMUIO_1 = BOARD_GPIO_TYPE_e.define('BOARD_GPIO_SMUIO_1', 1)
@@ -390,52 +498,522 @@ BOARD_GPIO_DC_GENLK_VSYNC = BOARD_GPIO_TYPE_e.define('BOARD_GPIO_DC_GENLK_VSYNC'
BOARD_GPIO_DC_SWAPLOCK_A = BOARD_GPIO_TYPE_e.define('BOARD_GPIO_DC_SWAPLOCK_A', 42)
BOARD_GPIO_DC_SWAPLOCK_B = BOARD_GPIO_TYPE_e.define('BOARD_GPIO_DC_SWAPLOCK_B', 43)
class _anonstruct14(Struct): pass
BootValues_t = _anonstruct14
class _anonstruct15(Struct): pass
MsgLimits_t = _anonstruct15
class _anonstruct16(Struct): pass
DriverReportedClocks_t = _anonstruct16
class _anonstruct17(Struct): pass
AvfsDcBtcParams_t = _anonstruct17
class _anonstruct18(Struct): pass
AvfsFuseOverride_t = _anonstruct18
class _anonstruct19(Struct): pass
SkuTable_t = _anonstruct19
class _anonstruct20(Struct): pass
BoardTable_t = _anonstruct20
class _anonstruct21(Struct): pass
PPTable_t = _anonstruct21
class _anonstruct22(Struct): pass
DriverSmuConfig_t = _anonstruct22
class _anonstruct23(Struct): pass
DriverSmuConfigExternal_t = _anonstruct23
class _anonstruct24(Struct): pass
DriverInfoTable_t = _anonstruct24
class _anonstruct25(Struct): pass
SmuMetrics_t = _anonstruct25
class _anonstruct26(Struct): pass
SmuMetricsExternal_t = _anonstruct26
class _anonstruct27(Struct): pass
WatermarkRowGeneric_t = _anonstruct27
class BootValues_t(Struct): pass
BootValues_t._fields_ = [
('InitGfxclk_bypass', uint16_t),
('InitSocclk', uint16_t),
('InitMp0clk', uint16_t),
('InitMpioclk', uint16_t),
('InitSmnclk', uint16_t),
('InitUcpclk', uint16_t),
('InitCsrclk', uint16_t),
('InitDprefclk', uint16_t),
('InitDcfclk', uint16_t),
('InitDtbclk', uint16_t),
('InitDclk', uint16_t),
('InitVclk', uint16_t),
('InitUsbdfsclk', uint16_t),
('InitMp1clk', uint16_t),
('InitLclk', uint16_t),
('InitBaco400clk_bypass', uint16_t),
('InitBaco1200clk_bypass', uint16_t),
('InitBaco700clk_bypass', uint16_t),
('InitFclk', uint16_t),
('InitGfxclk_clkb', uint16_t),
('InitUclkDPMState', uint8_t),
('Padding', (uint8_t * 3)),
('InitVcoFreqPll0', uint32_t),
('InitVcoFreqPll1', uint32_t),
('InitVcoFreqPll2', uint32_t),
('InitVcoFreqPll3', uint32_t),
('InitVcoFreqPll4', uint32_t),
('InitVcoFreqPll5', uint32_t),
('InitVcoFreqPll6', uint32_t),
('InitGfx', uint16_t),
('InitSoc', uint16_t),
('InitU', uint16_t),
('Padding2', uint16_t),
('Spare', (uint32_t * 8)),
]
class MsgLimits_t(Struct): pass
MsgLimits_t._fields_ = [
('Power', ((uint16_t * 2) * 4)),
('Tdc', (uint16_t * 3)),
('Temperature', (uint16_t * 13)),
('PwmLimitMin', uint8_t),
('PwmLimitMax', uint8_t),
('FanTargetTemperature', uint8_t),
('Spare1', (uint8_t * 1)),
('AcousticTargetRpmThresholdMin', uint16_t),
('AcousticTargetRpmThresholdMax', uint16_t),
('AcousticLimitRpmThresholdMin', uint16_t),
('AcousticLimitRpmThresholdMax', uint16_t),
('PccLimitMin', uint16_t),
('PccLimitMax', uint16_t),
('FanStopTempMin', uint16_t),
('FanStopTempMax', uint16_t),
('FanStartTempMin', uint16_t),
('FanStartTempMax', uint16_t),
('PowerMinPpt0', (uint16_t * 2)),
('Spare', (uint32_t * 11)),
]
class DriverReportedClocks_t(Struct): pass
DriverReportedClocks_t._fields_ = [
('BaseClockAc', uint16_t),
('GameClockAc', uint16_t),
('BoostClockAc', uint16_t),
('BaseClockDc', uint16_t),
('GameClockDc', uint16_t),
('BoostClockDc', uint16_t),
('Reserved', (uint32_t * 4)),
]
class AvfsDcBtcParams_t(Struct): pass
AvfsDcBtcParams_t._fields_ = [
('DcBtcEnabled', uint8_t),
('Padding', (uint8_t * 3)),
('DcTol', uint16_t),
('DcBtcGb', uint16_t),
('DcBtcMin', uint16_t),
('DcBtcMax', uint16_t),
('DcBtcGbScalar', LinearInt_t),
]
class AvfsFuseOverride_t(Struct): pass
AvfsFuseOverride_t._fields_ = [
('AvfsTemp', (uint16_t * 2)),
('VftFMin', uint16_t),
('VInversion', uint16_t),
('qVft', (QuadraticInt_t * 2)),
('qAvfsGb', QuadraticInt_t),
('qAvfsGb2', QuadraticInt_t),
]
class SkuTable_t(Struct): pass
int32_t = ctypes.c_int32
SkuTable_t._fields_ = [
('Version', uint32_t),
('FeaturesToRun', (uint32_t * 2)),
('TotalPowerConfig', uint8_t),
('CustomerVariant', uint8_t),
('MemoryTemperatureTypeMask', uint8_t),
('SmartShiftVersion', uint8_t),
('SocketPowerLimitAc', (uint16_t * 4)),
('SocketPowerLimitDc', (uint16_t * 4)),
('SocketPowerLimitSmartShift2', uint16_t),
('EnableLegacyPptLimit', uint8_t),
('UseInputTelemetry', uint8_t),
('SmartShiftMinReportedPptinDcs', uint8_t),
('PaddingPpt', (uint8_t * 1)),
('VrTdcLimit', (uint16_t * 3)),
('PlatformTdcLimit', (uint16_t * 3)),
('TemperatureLimit', (uint16_t * 13)),
('HwCtfTempLimit', uint16_t),
('PaddingInfra', uint16_t),
('FitControllerFailureRateLimit', uint32_t),
('FitControllerGfxDutyCycle', uint32_t),
('FitControllerSocDutyCycle', uint32_t),
('FitControllerSocOffset', uint32_t),
('GfxApccPlusResidencyLimit', uint32_t),
('ThrottlerControlMask', uint32_t),
('FwDStateMask', uint32_t),
('UlvVoltageOffset', (uint16_t * 2)),
('UlvVoltageOffsetU', uint16_t),
('DeepUlvVoltageOffsetSoc', uint16_t),
('DefaultMaxVoltage', (uint16_t * 2)),
('BoostMaxVoltage', (uint16_t * 2)),
('VminTempHystersis', (int16_t * 2)),
('VminTempThreshold', (int16_t * 2)),
('Vmin_Hot_T0', (uint16_t * 2)),
('Vmin_Cold_T0', (uint16_t * 2)),
('Vmin_Hot_Eol', (uint16_t * 2)),
('Vmin_Cold_Eol', (uint16_t * 2)),
('Vmin_Aging_Offset', (uint16_t * 2)),
('Spare_Vmin_Plat_Offset_Hot', (uint16_t * 2)),
('Spare_Vmin_Plat_Offset_Cold', (uint16_t * 2)),
('VcBtcFixedVminAgingOffset', (uint16_t * 2)),
('VcBtcVmin2PsmDegrationGb', (uint16_t * 2)),
('VcBtcPsmA', (uint32_t * 2)),
('VcBtcPsmB', (uint32_t * 2)),
('VcBtcVminA', (uint32_t * 2)),
('VcBtcVminB', (uint32_t * 2)),
('PerPartVminEnabled', (uint8_t * 2)),
('VcBtcEnabled', (uint8_t * 2)),
('SocketPowerLimitAcTau', (uint16_t * 4)),
('SocketPowerLimitDcTau', (uint16_t * 4)),
('Vmin_droop', QuadraticInt_t),
('SpareVmin', (uint32_t * 9)),
('DpmDescriptor', (DpmDescriptor_t * 13)),
('FreqTableGfx', (uint16_t * 16)),
('FreqTableVclk', (uint16_t * 8)),
('FreqTableDclk', (uint16_t * 8)),
('FreqTableSocclk', (uint16_t * 8)),
('FreqTableUclk', (uint16_t * 4)),
('FreqTableDispclk', (uint16_t * 8)),
('FreqTableDppClk', (uint16_t * 8)),
('FreqTableDprefclk', (uint16_t * 8)),
('FreqTableDcfclk', (uint16_t * 8)),
('FreqTableDtbclk', (uint16_t * 8)),
('FreqTableFclk', (uint16_t * 8)),
('DcModeMaxFreq', (uint32_t * 13)),
('Mp0clkFreq', (uint16_t * 2)),
('Mp0DpmVoltage', (uint16_t * 2)),
('GfxclkSpare', (uint8_t * 2)),
('GfxclkFreqCap', uint16_t),
('GfxclkFgfxoffEntry', uint16_t),
('GfxclkFgfxoffExitImu', uint16_t),
('GfxclkFgfxoffExitRlc', uint16_t),
('GfxclkThrottleClock', uint16_t),
('EnableGfxPowerStagesGpio', uint8_t),
('GfxIdlePadding', uint8_t),
('SmsRepairWRCKClkDivEn', uint8_t),
('SmsRepairWRCKClkDivVal', uint8_t),
('GfxOffEntryEarlyMGCGEn', uint8_t),
('GfxOffEntryForceCGCGEn', uint8_t),
('GfxOffEntryForceCGCGDelayEn', uint8_t),
('GfxOffEntryForceCGCGDelayVal', uint8_t),
('GfxclkFreqGfxUlv', uint16_t),
('GfxIdlePadding2', (uint8_t * 2)),
('GfxOffEntryHysteresis', uint32_t),
('GfxoffSpare', (uint32_t * 15)),
('DfllBtcMasterScalerM', uint32_t),
('DfllBtcMasterScalerB', int32_t),
('DfllBtcSlaveScalerM', uint32_t),
('DfllBtcSlaveScalerB', int32_t),
('DfllPccAsWaitCtrl', uint32_t),
('DfllPccAsStepCtrl', uint32_t),
('DfllL2FrequencyBoostM', uint32_t),
('DfllL2FrequencyBoostB', uint32_t),
('GfxGpoSpare', (uint32_t * 8)),
('DcsGfxOffVoltage', uint16_t),
('PaddingDcs', uint16_t),
('DcsMinGfxOffTime', uint16_t),
('DcsMaxGfxOffTime', uint16_t),
('DcsMinCreditAccum', uint32_t),
('DcsExitHysteresis', uint16_t),
('DcsTimeout', uint16_t),
('FoptEnabled', uint8_t),
('DcsSpare2', (uint8_t * 3)),
('DcsFoptM', uint32_t),
('DcsFoptB', uint32_t),
('DcsSpare', (uint32_t * 11)),
('ShadowFreqTableUclk', (uint16_t * 4)),
('UseStrobeModeOptimizations', uint8_t),
('PaddingMem', (uint8_t * 3)),
('UclkDpmPstates', (uint8_t * 4)),
('FreqTableUclkDiv', (uint8_t * 4)),
('MemVmempVoltage', (uint16_t * 4)),
('MemVddioVoltage', (uint16_t * 4)),
('FclkDpmUPstates', (uint8_t * 8)),
('FclkDpmVddU', (uint16_t * 8)),
('FclkDpmUSpeed', (uint16_t * 8)),
('FclkDpmDisallowPstateFreq', uint16_t),
('PaddingFclk', uint16_t),
('PcieGenSpeed', (uint8_t * 3)),
('PcieLaneCount', (uint8_t * 3)),
('LclkFreq', (uint16_t * 3)),
('FanStopTemp', (uint16_t * 13)),
('FanStartTemp', (uint16_t * 13)),
('FanGain', (uint16_t * 13)),
('FanGainPadding', uint16_t),
('FanPwmMin', uint16_t),
('AcousticTargetRpmThreshold', uint16_t),
('AcousticLimitRpmThreshold', uint16_t),
('FanMaximumRpm', uint16_t),
('MGpuAcousticLimitRpmThreshold', uint16_t),
('FanTargetGfxclk', uint16_t),
('TempInputSelectMask', uint32_t),
('FanZeroRpmEnable', uint8_t),
('FanTachEdgePerRev', uint8_t),
('FanTargetTemperature', (uint16_t * 13)),
('FuzzyFan_ErrorSetDelta', int16_t),
('FuzzyFan_ErrorRateSetDelta', int16_t),
('FuzzyFan_PwmSetDelta', int16_t),
('FuzzyFan_Reserved', uint16_t),
('FwCtfLimit', (uint16_t * 13)),
('IntakeTempEnableRPM', uint16_t),
('IntakeTempOffsetTemp', int16_t),
('IntakeTempReleaseTemp', uint16_t),
('IntakeTempHighIntakeAcousticLimit', uint16_t),
('IntakeTempAcouticLimitReleaseRate', uint16_t),
('FanAbnormalTempLimitOffset', int16_t),
('FanStalledTriggerRpm', uint16_t),
('FanAbnormalTriggerRpmCoeff', uint16_t),
('FanAbnormalDetectionEnable', uint16_t),
('FanIntakeSensorSupport', uint8_t),
('FanIntakePadding', (uint8_t * 3)),
('FanSpare', (uint32_t * 13)),
('OverrideGfxAvfsFuses', uint8_t),
('GfxAvfsPadding', (uint8_t * 3)),
('L2HwRtAvfsFuses', (uint32_t * 32)),
('SeHwRtAvfsFuses', (uint32_t * 32)),
('CommonRtAvfs', (uint32_t * 13)),
('L2FwRtAvfsFuses', (uint32_t * 19)),
('SeFwRtAvfsFuses', (uint32_t * 19)),
('Droop_PWL_F', (uint32_t * 5)),
('Droop_PWL_a', (uint32_t * 5)),
('Droop_PWL_b', (uint32_t * 5)),
('Droop_PWL_c', (uint32_t * 5)),
('Static_PWL_Offset', (uint32_t * 5)),
('dGbV_dT_vmin', uint32_t),
('dGbV_dT_vmax', uint32_t),
('V2F_vmin_range_low', uint32_t),
('V2F_vmin_range_high', uint32_t),
('V2F_vmax_range_low', uint32_t),
('V2F_vmax_range_high', uint32_t),
('DcBtcGfxParams', AvfsDcBtcParams_t),
('GfxAvfsSpare', (uint32_t * 32)),
('OverrideSocAvfsFuses', uint8_t),
('MinSocAvfsRevision', uint8_t),
('SocAvfsPadding', (uint8_t * 2)),
('SocAvfsFuseOverride', (AvfsFuseOverride_t * 3)),
('dBtcGbSoc', (DroopInt_t * 3)),
('qAgingGb', (LinearInt_t * 3)),
('qStaticVoltageOffset', (QuadraticInt_t * 3)),
('DcBtcSocParams', (AvfsDcBtcParams_t * 3)),
('SocAvfsSpare', (uint32_t * 32)),
('BootValues', BootValues_t),
('DriverReportedClocks', DriverReportedClocks_t),
('MsgLimits', MsgLimits_t),
('OverDriveLimitsMin', OverDriveLimits_t),
('OverDriveLimitsBasicMax', OverDriveLimits_t),
('reserved', (uint32_t * 22)),
('DebugOverrides', uint32_t),
('TotalBoardPowerSupport', uint8_t),
('TotalBoardPowerPadding', (uint8_t * 3)),
('TotalIdleBoardPowerM', int16_t),
('TotalIdleBoardPowerB', int16_t),
('TotalBoardPowerM', int16_t),
('TotalBoardPowerB', int16_t),
('qFeffCoeffGameClock', (QuadraticInt_t * 2)),
('qFeffCoeffBaseClock', (QuadraticInt_t * 2)),
('qFeffCoeffBoostClock', (QuadraticInt_t * 2)),
('TemperatureLimit_Hynix', uint16_t),
('TemperatureLimit_Micron', uint16_t),
('TemperatureFwCtfLimit_Hynix', uint16_t),
('TemperatureFwCtfLimit_Micron', uint16_t),
('Spare', (uint32_t * 41)),
('MmHubPadding', (uint32_t * 8)),
]
class BoardTable_t(Struct): pass
BoardTable_t._fields_ = [
('Version', uint32_t),
('I2cControllers', (I2cControllerConfig_t * 8)),
('VddGfxVrMapping', uint8_t),
('VddSocVrMapping', uint8_t),
('VddMem0VrMapping', uint8_t),
('VddMem1VrMapping', uint8_t),
('GfxUlvPhaseSheddingMask', uint8_t),
('SocUlvPhaseSheddingMask', uint8_t),
('VmempUlvPhaseSheddingMask', uint8_t),
('VddioUlvPhaseSheddingMask', uint8_t),
('SlaveAddrMapping', (uint8_t * 5)),
('VrPsiSupport', (uint8_t * 5)),
('PaddingPsi', (uint8_t * 5)),
('EnablePsi6', (uint8_t * 5)),
('SviTelemetryScale', (SviTelemetryScale_t * 5)),
('VoltageTelemetryRatio', (uint32_t * 5)),
('DownSlewRateVr', (uint8_t * 5)),
('LedOffGpio', uint8_t),
('FanOffGpio', uint8_t),
('GfxVrPowerStageOffGpio', uint8_t),
('AcDcGpio', uint8_t),
('AcDcPolarity', uint8_t),
('VR0HotGpio', uint8_t),
('VR0HotPolarity', uint8_t),
('GthrGpio', uint8_t),
('GthrPolarity', uint8_t),
('LedPin0', uint8_t),
('LedPin1', uint8_t),
('LedPin2', uint8_t),
('LedEnableMask', uint8_t),
('LedPcie', uint8_t),
('LedError', uint8_t),
('UclkTrainingModeSpreadPercent', uint8_t),
('UclkSpreadPadding', uint8_t),
('UclkSpreadFreq', uint16_t),
('UclkSpreadPercent', (uint8_t * 16)),
('GfxclkSpreadEnable', uint8_t),
('FclkSpreadPercent', uint8_t),
('FclkSpreadFreq', uint16_t),
('DramWidth', uint8_t),
('PaddingMem1', (uint8_t * 7)),
('HsrEnabled', uint8_t),
('VddqOffEnabled', uint8_t),
('PaddingUmcFlags', (uint8_t * 2)),
('PostVoltageSetBacoDelay', uint32_t),
('BacoEntryDelay', uint32_t),
('FuseWritePowerMuxPresent', uint8_t),
('FuseWritePadding', (uint8_t * 3)),
('BoardSpare', (uint32_t * 63)),
('MmHubPadding', (uint32_t * 8)),
]
class PPTable_t(Struct): pass
PPTable_t._packed_ = True
PPTable_t._fields_ = [
('SkuTable', SkuTable_t),
('BoardTable', BoardTable_t),
]
class DriverSmuConfig_t(Struct): pass
DriverSmuConfig_t._fields_ = [
('GfxclkAverageLpfTau', uint16_t),
('FclkAverageLpfTau', uint16_t),
('UclkAverageLpfTau', uint16_t),
('GfxActivityLpfTau', uint16_t),
('UclkActivityLpfTau', uint16_t),
('SocketPowerLpfTau', uint16_t),
('VcnClkAverageLpfTau', uint16_t),
('VcnUsageAverageLpfTau', uint16_t),
]
class DriverSmuConfigExternal_t(Struct): pass
DriverSmuConfigExternal_t._fields_ = [
('DriverSmuConfig', DriverSmuConfig_t),
('Spare', (uint32_t * 8)),
('MmHubPadding', (uint32_t * 8)),
]
class DriverInfoTable_t(Struct): pass
DriverInfoTable_t._fields_ = [
('FreqTableGfx', (uint16_t * 16)),
('FreqTableVclk', (uint16_t * 8)),
('FreqTableDclk', (uint16_t * 8)),
('FreqTableSocclk', (uint16_t * 8)),
('FreqTableUclk', (uint16_t * 4)),
('FreqTableDispclk', (uint16_t * 8)),
('FreqTableDppClk', (uint16_t * 8)),
('FreqTableDprefclk', (uint16_t * 8)),
('FreqTableDcfclk', (uint16_t * 8)),
('FreqTableDtbclk', (uint16_t * 8)),
('FreqTableFclk', (uint16_t * 8)),
('DcModeMaxFreq', (uint16_t * 13)),
('Padding', uint16_t),
('Spare', (uint32_t * 32)),
('MmHubPadding', (uint32_t * 8)),
]
class SmuMetrics_t(Struct): pass
SmuMetrics_t._fields_ = [
('CurrClock', (uint32_t * 13)),
('AverageGfxclkFrequencyTarget', uint16_t),
('AverageGfxclkFrequencyPreDs', uint16_t),
('AverageGfxclkFrequencyPostDs', uint16_t),
('AverageFclkFrequencyPreDs', uint16_t),
('AverageFclkFrequencyPostDs', uint16_t),
('AverageMemclkFrequencyPreDs', uint16_t),
('AverageMemclkFrequencyPostDs', uint16_t),
('AverageVclk0Frequency', uint16_t),
('AverageDclk0Frequency', uint16_t),
('AverageVclk1Frequency', uint16_t),
('AverageDclk1Frequency', uint16_t),
('PCIeBusy', uint16_t),
('dGPU_W_MAX', uint16_t),
('padding', uint16_t),
('MetricsCounter', uint32_t),
('AvgVoltage', (uint16_t * 5)),
('AvgCurrent', (uint16_t * 5)),
('AverageGfxActivity', uint16_t),
('AverageUclkActivity', uint16_t),
('Vcn0ActivityPercentage', uint16_t),
('Vcn1ActivityPercentage', uint16_t),
('EnergyAccumulator', uint32_t),
('AverageSocketPower', uint16_t),
('AverageTotalBoardPower', uint16_t),
('AvgTemperature', (uint16_t * 13)),
('AvgTemperatureFanIntake', uint16_t),
('PcieRate', uint8_t),
('PcieWidth', uint8_t),
('AvgFanPwm', uint8_t),
('Padding', (uint8_t * 1)),
('AvgFanRpm', uint16_t),
('ThrottlingPercentage', (uint8_t * 22)),
('VmaxThrottlingPercentage', uint8_t),
('Padding1', (uint8_t * 3)),
('D3HotEntryCountPerMode', (uint32_t * 4)),
('D3HotExitCountPerMode', (uint32_t * 4)),
('ArmMsgReceivedCountPerMode', (uint32_t * 4)),
('ApuSTAPMSmartShiftLimit', uint16_t),
('ApuSTAPMLimit', uint16_t),
('AvgApuSocketPower', uint16_t),
('AverageUclkActivity_MAX', uint16_t),
('PublicSerialNumberLower', uint32_t),
('PublicSerialNumberUpper', uint32_t),
]
class SmuMetricsExternal_t(Struct): pass
SmuMetricsExternal_t._fields_ = [
('SmuMetrics', SmuMetrics_t),
('Spare', (uint32_t * 29)),
('MmHubPadding', (uint32_t * 8)),
]
class WatermarkRowGeneric_t(Struct): pass
WatermarkRowGeneric_t._fields_ = [
('WmSetting', uint8_t),
('Flags', uint8_t),
('Padding', (uint8_t * 2)),
]
WATERMARKS_FLAGS_e = CEnum(ctypes.c_uint32)
WATERMARKS_CLOCK_RANGE = WATERMARKS_FLAGS_e.define('WATERMARKS_CLOCK_RANGE', 0)
WATERMARKS_DUMMY_PSTATE = WATERMARKS_FLAGS_e.define('WATERMARKS_DUMMY_PSTATE', 1)
WATERMARKS_MALL = WATERMARKS_FLAGS_e.define('WATERMARKS_MALL', 2)
WATERMARKS_COUNT = WATERMARKS_FLAGS_e.define('WATERMARKS_COUNT', 3)
class _anonstruct28(Struct): pass
Watermarks_t = _anonstruct28
class _anonstruct29(Struct): pass
WatermarksExternal_t = _anonstruct29
class _anonstruct30(Struct): pass
AvfsDebugTable_t = _anonstruct30
class _anonstruct31(Struct): pass
AvfsDebugTableExternal_t = _anonstruct31
class _anonstruct32(Struct): pass
DpmActivityMonitorCoeffInt_t = _anonstruct32
class _anonstruct33(Struct): pass
DpmActivityMonitorCoeffIntExternal_t = _anonstruct33
class Watermarks_t(Struct): pass
Watermarks_t._fields_ = [
('WatermarkRow', (WatermarkRowGeneric_t * 4)),
]
class WatermarksExternal_t(Struct): pass
WatermarksExternal_t._fields_ = [
('Watermarks', Watermarks_t),
('Spare', (uint32_t * 16)),
('MmHubPadding', (uint32_t * 8)),
]
class AvfsDebugTable_t(Struct): pass
AvfsDebugTable_t._fields_ = [
('avgPsmCount', (uint16_t * 214)),
('minPsmCount', (uint16_t * 214)),
('avgPsmVoltage', (ctypes.c_float * 214)),
('minPsmVoltage', (ctypes.c_float * 214)),
]
class AvfsDebugTableExternal_t(Struct): pass
AvfsDebugTableExternal_t._fields_ = [
('AvfsDebugTable', AvfsDebugTable_t),
('MmHubPadding', (uint32_t * 8)),
]
class DpmActivityMonitorCoeffInt_t(Struct): pass
DpmActivityMonitorCoeffInt_t._fields_ = [
('Gfx_ActiveHystLimit', uint8_t),
('Gfx_IdleHystLimit', uint8_t),
('Gfx_FPS', uint8_t),
('Gfx_MinActiveFreqType', uint8_t),
('Gfx_BoosterFreqType', uint8_t),
('PaddingGfx', uint8_t),
('Gfx_MinActiveFreq', uint16_t),
('Gfx_BoosterFreq', uint16_t),
('Gfx_PD_Data_time_constant', uint16_t),
('Gfx_PD_Data_limit_a', uint32_t),
('Gfx_PD_Data_limit_b', uint32_t),
('Gfx_PD_Data_limit_c', uint32_t),
('Gfx_PD_Data_error_coeff', uint32_t),
('Gfx_PD_Data_error_rate_coeff', uint32_t),
('Fclk_ActiveHystLimit', uint8_t),
('Fclk_IdleHystLimit', uint8_t),
('Fclk_FPS', uint8_t),
('Fclk_MinActiveFreqType', uint8_t),
('Fclk_BoosterFreqType', uint8_t),
('PaddingFclk', uint8_t),
('Fclk_MinActiveFreq', uint16_t),
('Fclk_BoosterFreq', uint16_t),
('Fclk_PD_Data_time_constant', uint16_t),
('Fclk_PD_Data_limit_a', uint32_t),
('Fclk_PD_Data_limit_b', uint32_t),
('Fclk_PD_Data_limit_c', uint32_t),
('Fclk_PD_Data_error_coeff', uint32_t),
('Fclk_PD_Data_error_rate_coeff', uint32_t),
('Mem_UpThreshold_Limit', (uint32_t * 4)),
('Mem_UpHystLimit', (uint8_t * 4)),
('Mem_DownHystLimit', (uint8_t * 4)),
('Mem_Fps', uint16_t),
('padding', (uint8_t * 2)),
]
class DpmActivityMonitorCoeffIntExternal_t(Struct): pass
DpmActivityMonitorCoeffIntExternal_t._fields_ = [
('DpmActivityMonitorCoeffInt', DpmActivityMonitorCoeffInt_t),
('MmHubPadding', (uint32_t * 8)),
]
class struct_smu_hw_power_state(Struct): pass
struct_smu_hw_power_state._fields_ = [
('magic', ctypes.c_uint32),