You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_7.h
+79-38Lines changed: 79 additions & 38 deletions
Original file line number
Diff line number
Diff line change
@@ -25,10 +25,10 @@
25
25
26
26
// *** IMPORTANT ***
27
27
// PMFW TEAM: Always increment the interface version on any change to this file
28
-
#defineSMU13_DRIVER_IF_VERSION0x2C
28
+
#defineSMU13_DRIVER_IF_VERSION0x35
29
29
30
30
//Increment this version if SkuTable_t or BoardTable_t change
31
-
#definePPTABLE_VERSION0x20
31
+
#definePPTABLE_VERSION0x27
32
32
33
33
#defineNUM_GFXCLK_DPM_LEVELS 16
34
34
#defineNUM_SOCCLK_DPM_LEVELS 8
@@ -96,7 +96,7 @@
96
96
#defineFEATURE_MEM_TEMP_READ_BIT 47
97
97
#defineFEATURE_ATHUB_MMHUB_PG_BIT 48
98
98
#defineFEATURE_SOC_PCC_BIT 49
99
-
#defineFEATURE_SPARE_50_BIT 50
99
+
#defineFEATURE_EDC_PWRBRK_BIT 50
100
100
#defineFEATURE_SPARE_51_BIT 51
101
101
#defineFEATURE_SPARE_52_BIT 52
102
102
#defineFEATURE_SPARE_53_BIT 53
@@ -282,15 +282,15 @@ typedef enum {
282
282
} I2cControllerPort_e;
283
283
284
284
typedefenum {
285
-
I2C_CONTROLLER_NAME_VR_GFX=0,
286
-
I2C_CONTROLLER_NAME_VR_SOC,
287
-
I2C_CONTROLLER_NAME_VR_VMEMP,
288
-
I2C_CONTROLLER_NAME_VR_VDDIO,
289
-
I2C_CONTROLLER_NAME_LIQUID0,
290
-
I2C_CONTROLLER_NAME_LIQUID1,
291
-
I2C_CONTROLLER_NAME_PLX,
292
-
I2C_CONTROLLER_NAME_OTHER,
293
-
I2C_CONTROLLER_NAME_COUNT,
285
+
I2C_CONTROLLER_NAME_VR_GFX=0,
286
+
I2C_CONTROLLER_NAME_VR_SOC,
287
+
I2C_CONTROLLER_NAME_VR_VMEMP,
288
+
I2C_CONTROLLER_NAME_VR_VDDIO,
289
+
I2C_CONTROLLER_NAME_LIQUID0,
290
+
I2C_CONTROLLER_NAME_LIQUID1,
291
+
I2C_CONTROLLER_NAME_PLX,
292
+
I2C_CONTROLLER_NAME_FAN_INTAKE,
293
+
I2C_CONTROLLER_NAME_COUNT,
294
294
} I2cControllerName_e;
295
295
296
296
typedefenum {
@@ -302,15 +302,17 @@ typedef enum {
302
302
I2C_CONTROLLER_THROTTLER_LIQUID0,
303
303
I2C_CONTROLLER_THROTTLER_LIQUID1,
304
304
I2C_CONTROLLER_THROTTLER_PLX,
305
+
I2C_CONTROLLER_THROTTLER_FAN_INTAKE,
305
306
I2C_CONTROLLER_THROTTLER_INA3221,
306
307
I2C_CONTROLLER_THROTTLER_COUNT,
307
308
} I2cControllerThrottler_e;
308
309
309
310
typedefenum {
310
311
I2C_CONTROLLER_PROTOCOL_VR_XPDE132G5,
311
312
I2C_CONTROLLER_PROTOCOL_VR_IR35217,
312
-
I2C_CONTROLLER_PROTOCOL_TMP_TMP102A,
313
+
I2C_CONTROLLER_PROTOCOL_TMP_MAX31875,
313
314
I2C_CONTROLLER_PROTOCOL_INA3221,
315
+
I2C_CONTROLLER_PROTOCOL_TMP_MAX6604,
314
316
I2C_CONTROLLER_PROTOCOL_COUNT,
315
317
} I2cControllerProtocol_e;
316
318
@@ -690,13 +692,21 @@ typedef struct {
690
692
#definePP_OD_FEATURE_UCLK_BIT 8
691
693
#definePP_OD_FEATURE_ZERO_FAN_BIT 9
692
694
#definePP_OD_FEATURE_TEMPERATURE_BIT 10
695
+
#definePP_OD_FEATURE_POWER_FEATURE_CTRL_BIT 11
696
+
#definePP_OD_FEATURE_ASIC_TDC_BIT 12
697
+
#definePP_OD_FEATURE_COUNT 13
693
698
694
699
typedefenum {
695
700
PP_OD_POWER_FEATURE_ALWAYS_ENABLED,
696
701
PP_OD_POWER_FEATURE_DISABLED_WHILE_GAMING,
697
702
PP_OD_POWER_FEATURE_ALWAYS_DISABLED,
698
703
} PP_OD_POWER_FEATURE_e;
699
704
705
+
typedefenum {
706
+
FAN_MODE_AUTO=0,
707
+
FAN_MODE_MANUAL_LINEAR,
708
+
} FanMode_e;
709
+
700
710
typedefstruct {
701
711
uint32_tFeatureCtrlMask;
702
712
@@ -708,8 +718,8 @@ typedef struct {
708
718
uint8_tRuntimePwrSavingFeaturesCtrl;
709
719
710
720
//Frequency changes
711
-
int16_tGfxclkFmin; // MHz
712
-
int16_tGfxclkFmax; // MHz
721
+
int16_tGfxclkFmin; // MHz
722
+
int16_tGfxclkFmax; // MHz
713
723
uint16_tUclkFmin; // MHz
714
724
uint16_tUclkFmax; // MHz
715
725
@@ -730,7 +740,12 @@ typedef struct {
730
740
uint8_tMaxOpTemp;
731
741
uint8_tPadding[4];
732
742
733
-
uint32_tSpare[12];
743
+
uint16_tGfxVoltageFullCtrlMode;
744
+
uint16_tGfxclkFullCtrlMode;
745
+
uint16_tUclkFullCtrlMode;
746
+
int16_tAsicTdc;
747
+
748
+
uint32_tSpare[10];
734
749
uint32_tMmHubPadding[8]; // SMU internal use. Adding here instead of external as a workaround
735
750
} OverDriveTable_t;
736
751
@@ -748,8 +763,8 @@ typedef struct {
748
763
uint8_tIdlePwrSavingFeaturesCtrl;
749
764
uint8_tRuntimePwrSavingFeaturesCtrl;
750
765
751
-
uint16_tGfxclkFmin; // MHz
752
-
uint16_tGfxclkFmax; // MHz
766
+
int16_tGfxclkFmin; // MHz
767
+
int16_tGfxclkFmax; // MHz
753
768
uint16_tUclkFmin; // MHz
754
769
uint16_tUclkFmax; // MHz
755
770
@@ -769,7 +784,12 @@ typedef struct {
769
784
uint8_tMaxOpTemp;
770
785
uint8_tPadding[4];
771
786
772
-
uint32_tSpare[12];
787
+
uint16_tGfxVoltageFullCtrlMode;
788
+
uint16_tGfxclkFullCtrlMode;
789
+
uint16_tUclkFullCtrlMode;
790
+
int16_tAsicTdc;
791
+
792
+
uint32_tSpare[10];
773
793
774
794
} OverDriveLimits_t;
775
795
@@ -903,7 +923,8 @@ typedef struct {
903
923
uint16_tFanStartTempMin;
904
924
uint16_tFanStartTempMax;
905
925
906
-
uint32_tSpare[12];
926
+
uint16_tPowerMinPpt0[POWER_SOURCE_COUNT];
927
+
uint32_tSpare[11];
907
928
908
929
} MsgLimits_t;
909
930
@@ -1086,11 +1107,13 @@ typedef struct {
1086
1107
uint32_tGfxoffSpare[15];
1087
1108
1088
1109
// GFX GPO
1089
-
floatDfllBtcMasterScalerM;
1110
+
uint32_tDfllBtcMasterScalerM;
1090
1111
int32_tDfllBtcMasterScalerB;
1091
-
floatDfllBtcSlaveScalerM;
1112
+
uint32_tDfllBtcSlaveScalerM;
1092
1113
int32_tDfllBtcSlaveScalerB;
1093
-
uint32_tGfxGpoSpare[12];
1114
+
uint32_tDfllPccAsWaitCtrl; //GDFLL_AS_WAIT_CTRL_PCC register value to be passed to RLC msg
1115
+
uint32_tDfllPccAsStepCtrl; //GDFLL_AS_STEP_CTRL_PCC register value to be passed to RLC msg
1116
+
uint32_tGfxGpoSpare[10];
1094
1117
1095
1118
// GFX DCS
1096
1119
@@ -1106,7 +1129,10 @@ typedef struct {
1106
1129
uint16_tDcsTimeout; //This is the amount of time SMU FW waits for RLC to put GFX into GFXOFF before reverting to the fallback mechanism of throttling GFXCLK to Fmin.
1107
1130
1108
1131
1109
-
uint32_tDcsSpare[16];
1132
+
uint32_tDcsSpare[14];
1133
+
1134
+
// UCLK section
1135
+
uint16_tShadowFreqTableUclk[NUM_UCLK_DPM_LEVELS]; // In MHz
1110
1136
1111
1137
// UCLK section
1112
1138
uint8_tUseStrobeModeOptimizations; //Set to indicate that FW should use strobe mode optimizations
@@ -1163,13 +1189,14 @@ typedef struct {
1163
1189
uint16_tIntakeTempHighIntakeAcousticLimit;
1164
1190
uint16_tIntakeTempAcouticLimitReleaseRate;
1165
1191
1166
-
uint16_tFanStalledTempLimitOffset;
1192
+
int16_tFanAbnormalTempLimitOffset;
1167
1193
uint16_tFanStalledTriggerRpm;
1168
-
uint16_tFanAbnormalTriggerRpm;
1169
-
uint16_tFanPadding;
1170
-
1171
-
uint32_tFanSpare[14];
1194
+
uint16_tFanAbnormalTriggerRpmCoeff;
1195
+
uint16_tFanAbnormalDetectionEnable;
1172
1196
1197
+
uint8_tFanIntakeSensorSupport;
1198
+
uint8_tFanIntakePadding[3];
1199
+
uint32_tFanSpare[13];
1173
1200
// SECTION: VDD_GFX AVFS
1174
1201
1175
1202
uint8_tOverrideGfxAvfsFuses;
@@ -1193,7 +1220,6 @@ typedef struct {
1193
1220
uint32_tdGbV_dT_vmin;
1194
1221
uint32_tdGbV_dT_vmax;
1195
1222
1196
-
//Unused: PMFW-9370
1197
1223
uint32_tV2F_vmin_range_low;
1198
1224
uint32_tV2F_vmin_range_high;
1199
1225
uint32_tV2F_vmax_range_low;
@@ -1238,8 +1264,21 @@ typedef struct {
1238
1264
// SECTION: Advanced Options
1239
1265
uint32_tDebugOverrides;
1240
1266
1267
+
// Section: Total Board Power idle vs active coefficients
0 commit comments