diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs
index e91321e..5a77094 100644
--- a/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs
+++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs
@@ -357,6 +357,8 @@ namespace LibreHardwareMonitor.Hardware.Motherboard
return Model.B560M_AORUS_PRO_AX;
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 Z690 EXTREME GLACIAL", StringComparison.OrdinalIgnoreCase):
+ return Model.ROG_MAXIMUS_Z690_EXTREME_GLACIAL;
case var _ when name.Equals("B660GTN", StringComparison.OrdinalIgnoreCase):
return Model.B660GTN;
case var _ when name.Equals("Base Board Product Name", StringComparison.OrdinalIgnoreCase):
diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/EC/EmbeddedController.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/EC/EmbeddedController.cs
index 97ee316..e614bb7 100644
--- a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/EC/EmbeddedController.cs
+++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/EC/EmbeddedController.cs
@@ -43,6 +43,8 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.Lpc.EC
TempWaterIn,
/// "Water_Out" temperature sensor reading [℃]
TempWaterOut,
+ /// Water block temperature sensor reading [℃]
+ TempWaterBlockIn,
Max
};
@@ -131,6 +133,10 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.Lpc.EC
{
{ ECSensor.TempTSensor, new EmbeddedControllerSource("T Sensor", SensorType.Temperature, 0x003d, blank: -40) },
{ ECSensor.TempVrm, new EmbeddedControllerSource("VRM", SensorType.Temperature, 0x003e) },
+ { ECSensor.TempWaterIn, new EmbeddedControllerSource("Water In", SensorType.Temperature, 0x0100, blank: -40) },
+ { ECSensor.TempWaterOut, new EmbeddedControllerSource("Water Out", SensorType.Temperature, 0x0101, blank: -40) },
+ { ECSensor.TempWaterBlockIn, new EmbeddedControllerSource("Water Block In", SensorType.Temperature, 0x0102, blank: -40) },
+ { ECSensor.FanWaterFlow, new EmbeddedControllerSource("Water Flow", SensorType.Flow, 0x00be, 2, factor: 1.0f / 42f * 60f) }, // todo: need validation for this calculation
}
},
};
@@ -199,6 +205,9 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.Lpc.EC
new(Model.ROG_STRIX_Z690_A_GAMING_WIFI_D4, BoardFamily.Intel600,
ECSensor.TempTSensor, ECSensor.TempVrm
),
+ new(Model.ROG_MAXIMUS_Z690_EXTREME_GLACIAL, BoardFamily.Intel600,
+ ECSensor.TempVrm, ECSensor.TempWaterIn, ECSensor.TempWaterOut, ECSensor.TempWaterBlockIn, ECSensor.FanWaterFlow
+ ),
new(Model.Z170_A, BoardFamily.Intel100,
ECSensor.TempTSensor, ECSensor.TempChipset, ECSensor.FanWaterPump,
ECSensor.CurrCPU, ECSensor.VoltageCPU
diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs
index 90e1b72..4c66037 100644
--- a/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs
+++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs
@@ -50,6 +50,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard
ROG_STRIX_B550_F_GAMING_WIFI,
ROG_STRIX_B550_I_GAMING,
ROG_STRIX_Z690_A_GAMING_WIFI_D4,
+ ROG_MAXIMUS_Z690_EXTREME_GLACIAL,
M2N_SLI_Deluxe,
M4A79XTD_EVO,
P5W_DH_Deluxe,
diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs
index 1c9ccf5..0bba82b 100644
--- a/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs
+++ b/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs
@@ -2696,6 +2696,62 @@ namespace LibreHardwareMonitor.Hardware.Motherboard
break;
}
+ case Model.ROG_MAXIMUS_Z690_EXTREME_GLACIAL: //NCT6798D
+ {
+ 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("3VCC", 3, 34, 34));
+ v.Add(new Voltage("+12V", 4, 11, 1));
+ v.Add(new Voltage("IVR Atom L2 Cluster #1", 5));
+ v.Add(new Voltage("Voltage #7", 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("Voltage #11", 10));
+ v.Add(new Voltage("IVR Atom L2 Cluster #0", 11, 1, 1));
+ v.Add(new Voltage("PCH", 12));
+ v.Add(new Voltage("Voltage #14", 13));
+ v.Add(new Voltage("Voltage #15", 14));
+
+ t.Add(new Temperature("Temperature #1", 0));
+ t.Add(new Temperature("CPU", 1));
+ t.Add(new Temperature("Motherboard", 2));
+ //t.Add(new Temperature("Temperature 03", 3));
+ t.Add(new Temperature("Temperature #4", 4));
+ t.Add(new Temperature("Temperature #5", 5));
+ t.Add(new Temperature("Temperature #6", 6));
+ t.Add(new Temperature("Temperature #7", 7));
+ //t.Add(new Temperature("Temperature 08", 8));
+ //t.Add(new Temperature("Temperature 09", 9));
+ //t.Add(new Temperature("Temperature 10", 10));
+ //t.Add(new Temperature("Temperature 11", 11));
+ t.Add(new Temperature("PCH", 12));
+ //t.Add(new Temperature("Temperature 13", 13));
+ //t.Add(new Temperature("Temperature 14", 14));
+ //t.Add(new Temperature("Temperature 15", 15));
+ //t.Add(new Temperature("Temperature 16", 16));
+ //t.Add(new Temperature("Temperature 17", 17));
+ //t.Add(new Temperature("Temperature 18", 18));
+ //t.Add(new Temperature("Temperature 19", 19));
+ //t.Add(new Temperature("Temperature 20", 20));
+ t.Add(new Temperature("Temperature #9", 21));
+
+ string[] fanControlNames = {"Chassis Fan 1", "CPU Fan", "Radiator Fan 1",
+ "Radiator Fan 2", "Chassis Fan 2", "Water Pump 1", "Water Pump 2"};
+ System.Diagnostics.Debug.Assert(fanControlNames.Length == superIO.Fans.Length,
+ string.Format("Expected {0} fan register in the SuperIO chip", fanControlNames.Length));
+ System.Diagnostics.Debug.Assert(superIO.Fans.Length == superIO.Controls.Length,
+ "Expected counts of fan 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 Ctrl(fanControlNames[i], i));
+
+ break;
+ }
case Model.ROG_STRIX_B550_I_GAMING: //NCT6798D
{
v.Add(new Voltage("Vcore", 0, 10, 10));