diff --git a/app/Fans.cs b/app/Fans.cs index 91b7251c..caf1bb5a 100644 --- a/app/Fans.cs +++ b/app/Fans.cs @@ -927,7 +927,7 @@ namespace GHelper { panelSlow.Visible = modeA; - if (RyzenControl.IsSupportedPower()) + if (RyzenControl.IsAMD()) { labelLeftTotal.Text = "SPL (CPU sustained)"; labelLeftSlow.Text = "sPPT (CPU 2 min boost)"; diff --git a/app/Mode/ModeControl.cs b/app/Mode/ModeControl.cs index cb23e0b7..96aea0dd 100644 --- a/app/Mode/ModeControl.cs +++ b/app/Mode/ModeControl.cs @@ -270,9 +270,6 @@ namespace GHelper.Mode var stapmResult = SendCommand.set_stapm_limit((uint)limit_total * 1000); if (init) Logger.WriteLine($"STAPM: {limit_total} {stapmResult}"); - var stapmResult2 = SendCommand.set_stapm2_limit((uint)limit_total * 1000); - if (init) Logger.WriteLine($"STAPM2: {limit_total} {stapmResult2}"); - var slowResult = SendCommand.set_slow_limit((uint)limit_slow * 1000); if (init) Logger.WriteLine($"SLOW: {limit_slow} {slowResult}"); diff --git a/app/Ryzen/RyzenControl.cs b/app/Ryzen/RyzenControl.cs index f0f09947..bcedbee0 100644 --- a/app/Ryzen/RyzenControl.cs +++ b/app/Ryzen/RyzenControl.cs @@ -40,7 +40,8 @@ namespace Ryzen //PHEONIX - 9 //RAPHAEL/DRAGON RANGE - 10 //MENDOCINO - 11 - //HAWKPOINT/STRIXPOINT - 12 + //HAWKPOINT - 12 + //STRIXPOINT - 13 public static void Init() { @@ -129,7 +130,7 @@ namespace Ryzen if (CPUModel.Contains("Family " + Convert.ToString(26)) && CPUModel.Contains("Model " + Convert.ToString(36))) { - FAMID = 12; //STRIXPOINT + FAMID = 13; //STRIXPOINT } Logger.WriteLine($"CPU: {FAMID} - {CPUName} - {CPUModel}"); @@ -143,11 +144,6 @@ namespace Ryzen return CPUName.Contains("AMD") || CPUName.Contains("Ryzen") || CPUName.Contains("Athlon") || CPUName.Contains("Radeon") || CPUName.Contains("AMD Custom APU 0405"); } - public static bool IsSupportedPower() - { - return IsAMD() && FAMID < 12; - } - public static bool IsSupportedUV() { if (CPUName.Length == 0) Init(); @@ -248,6 +244,16 @@ namespace Ryzen Smu.PSMU_ADDR_RSP = 0x3B10a80; Smu.PSMU_ADDR_ARG = 0x3B10a88; } + else if (FAMID == 13) + { + Smu.MP1_ADDR_MSG = 0x3B10928; + Smu.MP1_ADDR_RSP = 0x3B10978; + Smu.MP1_ADDR_ARG = 0x3B10998; + + Smu.PSMU_ADDR_MSG = 0x3B10a20; + Smu.PSMU_ADDR_RSP = 0x3B10a80; + Smu.PSMU_ADDR_ARG = 0x3B10a88; + } else if (FAMID == 4 || FAMID == 6) { Smu.MP1_ADDR_MSG = 0x3B10530; diff --git a/app/Ryzen/SendCommand.cs b/app/Ryzen/SendCommand.cs index 56b595ef..98a5bf0c 100644 --- a/app/Ryzen/SendCommand.cs +++ b/app/Ryzen/SendCommand.cs @@ -21,7 +21,8 @@ namespace Ryzen //PHEONIX - 9 //RAPHAEL/DRAGON RANGE - 10 //MENDOCINO - 11 - //HAWKPOINT/STRIXPOINT - 12 + //HAWKPOINT - 12 + //STRIXPOINT - 13 public static Smu RyzenAccess = new Smu(false); public static int FAMID = RyzenControl.FAMID; @@ -49,7 +50,8 @@ namespace Ryzen case 9: case 11: case 12: - RyzenAccess.SendMp1(0x14, ref Args); + case 13: + result = RyzenAccess.SendMp1(0x14, ref Args); result = RyzenAccess.SendPsmu(0x31, ref Args); break; default: @@ -61,32 +63,6 @@ namespace Ryzen } - //STAMP2 Limit - public static Smu.Status? set_stapm2_limit(uint value) - { - RyzenAccess.Initialize(); - uint[] Args = new uint[6]; - Args[0] = value; - Smu.Status? result = null; - - switch (FAMID) - { - case 3: - case 5: - case 7: - case 8: - case 9: - case 11: - case 12: - result = RyzenAccess.SendPsmu(0x31, ref Args); - break; - default: - break; - } - RyzenAccess.Deinitialize(); - return result; - } - //Fast Limit public static Smu.Status? set_fast_limit(uint value) { @@ -109,7 +85,9 @@ namespace Ryzen case 9: case 11: case 12: + case 13: result = RyzenAccess.SendMp1(0x15, ref Args); + result = RyzenAccess.SendPsmu(0x32, ref Args); break; default: break; @@ -140,7 +118,10 @@ namespace Ryzen case 9: case 11: case 12: + case 13: result = RyzenAccess.SendMp1(0x16, ref Args); + result = RyzenAccess.SendPsmu(0x33, ref Args); + result = RyzenAccess.SendPsmu(0x34, ref Args); break; default: break; @@ -176,11 +157,12 @@ namespace Ryzen case 9: case 11: case 12: + case 13: result = RyzenAccess.SendMp1(0x19, ref Args); break; case 4: case 6: - RyzenAccess.SendMp1(0x23, ref Args); + result = RyzenAccess.SendMp1(0x23, ref Args); result = RyzenAccess.SendPsmu(0x56, ref Args); break; case 10: @@ -194,37 +176,6 @@ namespace Ryzen return result; } - //Skin Temp limit - public static Smu.Status? set_apu_skin_temp_limit(uint value) - { - RyzenAccess.Initialize(); - uint[] Args = new uint[6]; - Args[0] = value; - - Smu.Status? result = null; - - switch (FAMID) - { - case 5: - case 8: - case 9: - case 11: - case 12: - result = RyzenAccess.SendMp1(0x33, ref Args); - break; - case 3: - case 7: - result = RyzenAccess.SendMp1(0x38, ref Args); - break; - default: - break; - } - - RyzenAccess.Deinitialize(); - - return result; - } - //Set All Core Curve Optimiser public static Smu.Status? set_coall(int value) { @@ -241,12 +192,12 @@ namespace Ryzen { case 3: case 7: - RyzenAccess.SendMp1(0x55, ref Args); + result = RyzenAccess.SendMp1(0x55, ref Args); result = RyzenAccess.SendPsmu(0xB1, ref Args); break; case 4: case 6: - RyzenAccess.SendMp1(0x36, ref Args); + result = RyzenAccess.SendMp1(0x36, ref Args); result = RyzenAccess.SendPsmu(0xB, ref Args); break; case 5: @@ -254,6 +205,7 @@ namespace Ryzen case 9: case 11: case 12: + case 13: result = RyzenAccess.SendPsmu(0x5D, ref Args); break; case 10: @@ -285,7 +237,7 @@ namespace Ryzen { case 3: case 7: - RyzenAccess.SendMp1(0x64, ref Args); + result = RyzenAccess.SendMp1(0x64, ref Args); result = RyzenAccess.SendPsmu(0x57, ref Args); break; case 5: @@ -293,6 +245,7 @@ namespace Ryzen case 9: case 11: case 12: + case 13: result = RyzenAccess.SendPsmu(0xb7, ref Args); break; default: