Support Asus ROG MAXIMUS XI FORMULA (#1218)

* Add Asus ROG MAXIMUS XI FORMULA

* Align voltage names

* Update SuperIOHardware.cs

---------

Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
This commit is contained in:
wiruzman
2023-12-31 13:49:19 +01:00
committed by GitHub
co-authored by PhyxionNL
parent 39a930566b
commit f49f3c2550
4 changed files with 53 additions and 1 deletions
@@ -395,6 +395,8 @@ internal class Identification
return Model.ROG_STRIX_Z390_I_GAMING;
case var _ when name.Equals("ROG STRIX Z690-A GAMING WIFI D4", StringComparison.OrdinalIgnoreCase):
return Model.ROG_STRIX_Z690_A_GAMING_WIFI_D4;
case var _ when name.Equals("ROG MAXIMUS XI FORMULA", StringComparison.OrdinalIgnoreCase):
return Model.ROG_MAXIMUS_XI_FORMULA;
case var _ when name.Equals("ROG MAXIMUS X HERO (WI-FI AC)", StringComparison.OrdinalIgnoreCase):
return Model.ROG_MAXIMUS_X_HERO_WIFI_AC;
case var _ when name.Equals("ROG MAXIMUS Z690 FORMULA", StringComparison.OrdinalIgnoreCase):
@@ -174,6 +174,14 @@ public abstract class EmbeddedController : Hardware
ECSensor.TempVrm,
ECSensor.TempChipset,
ECSensor.TempTSensor),
new(Model.ROG_MAXIMUS_XI_FORMULA,
BoardFamily.Intel300,
ECSensor.TempVrm,
ECSensor.TempChipset,
ECSensor.TempWaterIn,
ECSensor.TempWaterOut,
ECSensor.TempTSensor,
ECSensor.FanCPUOpt),
new(Model.ROG_STRIX_Z690_A_GAMING_WIFI_D4,
BoardFamily.Intel600,
ECSensor.TempTSensor,
@@ -277,6 +285,8 @@ public abstract class EmbeddedController : Hardware
{ ECSensor.TempVrm, new EmbeddedControllerSource("VRM", SensorType.Temperature, 0x003e) },
{ ECSensor.TempChipset, new EmbeddedControllerSource("Chipset", SensorType.Temperature, 0x003a) },
{ ECSensor.TempTSensor, new EmbeddedControllerSource("T Sensor", SensorType.Temperature, 0x003d, blank: -40) },
{ ECSensor.TempWaterIn, new EmbeddedControllerSource("Water In", SensorType.Temperature, 0x0100, blank: -40) },
{ ECSensor.TempWaterOut, new EmbeddedControllerSource("Water Out", SensorType.Temperature, 0x0101, blank: -40) },
{ ECSensor.FanCPUOpt, new EmbeddedControllerSource("CPU Optional Fan", SensorType.Fan, 0x00b0, 2) }
}
},
@@ -58,6 +58,7 @@ public enum Model
ROG_STRIX_Z390_F_GAMING,
ROG_STRIX_Z390_I_GAMING,
ROG_STRIX_Z690_A_GAMING_WIFI_D4,
ROG_MAXIMUS_XI_FORMULA,
ROG_MAXIMUS_X_HERO_WIFI_AC,
ROG_MAXIMUS_Z690_FORMULA,
ROG_MAXIMUS_Z690_HERO,
@@ -2823,6 +2823,45 @@ internal sealed class SuperIOHardware : Hardware
break;
case Model.ROG_MAXIMUS_XI_FORMULA: //NC6798D
v.Add(new Voltage("Vcore", 0));
v.Add(new Voltage("+5V", 1, 4, 1));
v.Add(new Voltage("AVSB", 2, 34, 34));
v.Add(new Voltage("+3.3V", 3, 34, 34));
v.Add(new Voltage("+12V", 4, 11, 1));
v.Add(new Voltage("VIN8", 5));
v.Add(new Voltage("CPU Graphics", 6));
v.Add(new Voltage("3VSB", 7, 34, 34));
v.Add(new Voltage("VBat", 8, 34, 34));
v.Add(new Voltage("VTT", 9, 1, 1));
v.Add(new Voltage("DIMM", 10));
v.Add(new Voltage("CPU VCCIO", 11, 1, 1));
v.Add(new Voltage("PCH Core", 12));
v.Add(new Voltage("CPU PLLs", 13));
v.Add(new Voltage("CPU VCCSA", 14));
t.Add(new Temperature("Motherboard", 0));
t.Add(new Temperature("CPU", 1));
t.Add(new Temperature("Motherboard", 2));
t.Add(new Temperature("CPU (Weighted)", 6));
t.Add(new Temperature("CPU (PECI)", 7));
t.Add(new Temperature("CPU", 8));
fanControlNames = new[] { "Chassis Fan 1", "CPU Fan", "Chassis Fan 2", "Chassis Fan 3", "High Amp Fan", "Water Pump+", "AIO Pump" };
System.Diagnostics.Debug.Assert(fanControlNames.Length == superIO.Fans.Length,
$"Expected {fanControlNames.Length} fan register in the SuperIO chip");
System.Diagnostics.Debug.Assert(superIO.Fans.Length == superIO.Controls.Length,
"Expected counts of cans controls and fan speed registers to be equal");
for (int i = 0; i < fanControlNames.Length; i++)
f.Add(new Fan(fanControlNames[i], i));
for (int i = 0; i < fanControlNames.Length; i++)
c.Add(new Control(fanControlNames[i], i));
break;
case Model.ROG_MAXIMUS_X_HERO_WIFI_AC: //NCT6793D
v.Add(new Voltage("Vcore", 0, 2, 2));
v.Add(new Voltage("+5V", 1, 4, 1));
@@ -2918,7 +2957,7 @@ internal sealed class SuperIOHardware : Hardware
v.Add(new Voltage("Voltage #15", 14));
t.Add(new Temperature("CPU Package", 0)); // Matches CPU Package in HWinfo & Armoury Crate.
t.Add(new Temperature("CPU Weighted",
t.Add(new Temperature("CPU (Weighted)",
1)); // Unsure about this one. HWinfo & Armoury Crate doesn't have anything that match my values. Varies from 34 (idle) to 42C (under load). Hwinfo is 31-32C for same.
t.Add(new Temperature("Motherboard", 2)); // Matches MB in HWinfo & Armoury Crate.