Skip to content

Commit 011aea9

Browse files
committed
Foundational support for all MSI B840/B850, X870(E), and Z890 Motherboards
Add support for MSI MAG B850 Tomahawk Wifi (non-max) using NCT6687DR Controller Handle MSI NCT6687DR SIO Controller declaration more elegantly This is a more powerful yet elegant way of handling MSI motherboards with the MSI flavored Nuvoton NCT6687D (aka NCT6687D-R). While it still requires that support be manually added for each motherboard so it be properly identified, this reduces the amount of work to add support and also reduces the amount of clutter in LpcIO.cs. Add support for MSI MEG X870E ACE MAX Foundational support for ALL MSI B840/B850, X870(E), and Z890 Motherboards! Assigns all MSI B840, B850, X870, X870E and Z890 motherboards the NCT6687D-R SIO Controller Remove MSI B850 GAMING PLUS WIFI6E NCT6687D handling Used more stringent comparison criteria for MSI 800 series NCT6687DR identification
1 parent 1770383 commit 011aea9

4 files changed

Lines changed: 34 additions & 88 deletions

File tree

OpenHardwareMonitorLib/Hardware/Motherboard/Identification.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -731,6 +731,8 @@ public static Model GetModel(string name)
731731
return Model.X870E_CARBON_WIFI;
732732
case var _ when name.Equals("MPG X870E EDGE TI WIFI (MS-7E59)", StringComparison.OrdinalIgnoreCase):
733733
return Model.X870E_EDGE_TI_WIFI;
734+
case var _ when name.Equals("MEG X870E ACE MAX (MS-7E85)", StringComparison.OrdinalIgnoreCase):
735+
return Model.X870E_ACE_MAX;
734736
case var _ when name.Equals("MEG Z790 GODLIKE MAX (MS-7D85)", StringComparison.OrdinalIgnoreCase):
735737
return Model.Z790_GODLIKE_MAX;
736738
case var _ when name.Equals("MEG Z890 ACE (MS-7E22)", StringComparison.OrdinalIgnoreCase):

OpenHardwareMonitorLib/Hardware/Motherboard/Lpc/LpcIO.cs

Lines changed: 10 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -392,51 +392,17 @@ private bool DetectWinbondFintek(LpcPort port, Motherboard motherboard)
392392
switch (revision)
393393
{
394394
case 0x92:
395-
switch (motherboard.Model)
395+
// MSI AM5/LGA1851 800 Series Motherboard Compatibility (Nuvoton NCT6687DR)
396+
if (motherboard.Manufacturer == Manufacturer.MSI && (motherboard.SMBios.Board.ProductName.IndexOf("B840", StringComparison.OrdinalIgnoreCase) >= 0 ||
397+
motherboard.SMBios.Board.ProductName.IndexOf("B850", StringComparison.OrdinalIgnoreCase) >= 0 ||
398+
motherboard.SMBios.Board.ProductName.IndexOf("X870", StringComparison.OrdinalIgnoreCase) >= 0 ||
399+
motherboard.SMBios.Board.ProductName.IndexOf("Z890", StringComparison.OrdinalIgnoreCase) >= 0))
396400
{
397-
case Model.B840P_PRO_WIFI:
398-
case Model.B840M_GAMING_PLUS_WIFI6E:
399-
case Model.B850_GAMING_PLUS_WIFI:
400-
case Model.B850_GAMING_PLUS_WIFI_PZ:
401-
case Model.B850M_GAMING_PLUS_WIFI:
402-
case Model.B850M_GAMING_PLUS_WIFI6E:
403-
case Model.B850P_PRO_WIFI:
404-
case Model.B850MA_PRO_WIFI:
405-
case Model.B850MA_PRO_WIFI_PZ:
406-
case Model.B850MP_PRO_WIFI:
407-
case Model.B850M_MORTAR:
408-
case Model.B850M_MORTAR_WIFI:
409-
case Model.B850_TOMAHAWK_WIFI:
410-
case Model.B850_TOMAHAWK_MAX_WIFI:
411-
case Model.B850_EDGE_TI_WIFI:
412-
case Model.B850I_EDGE_TI_WIFI:
413-
case Model.B850MPOWER:
414-
case Model.B850S_PRO_WIFI6E:
415-
case Model.X870_GAMING_PLUS_WIFI:
416-
case Model.X870E_GAMING_PLUS_WIFI:
417-
case Model.X870_TOMAHAWK_WIFI:
418-
case Model.X870P_PRO_WIFI:
419-
case Model.X870EP_PRO_WIFI:
420-
case Model.X870E_TOMAHAWK_WIFI:
421-
case Model.X870E_TOMAHAWK_MAX_WIFI_PZ:
422-
case Model.X870E_CARBON_WIFI:
423-
case Model.X870E_EDGE_TI_WIFI:
424-
case Model.X870E_GODLIKE:
425-
case Model.Z890_ACE:
426-
case Model.Z890_CARBON_WIFI:
427-
case Model.Z890_GAMING_PLUS_WIFI:
428-
case Model.Z890_TOMAHAWK_WIFI:
429-
case Model.Z890_UNIFY_X:
430-
case Model.Z890_EDGE_TI_WIFI:
431-
case Model.Z890I_EDGE_TI_WIFI:
432-
case Model.Z890P_PRO_WIFI:
433-
case Model.Z890A_PRO_WIFI:
434-
case Model.Z890S_PRO_WIFI:
435-
chip = Chip.NCT6687DR; // MSI AM5/LGA1851 Compatibility
436-
break;
437-
default:
438-
chip = Chip.NCT6687D;
439-
break;
401+
chip = Chip.NCT6687DR;
402+
}
403+
else
404+
{
405+
chip = Chip.NCT6687D;
440406
}
441407

442408
logicalDeviceNumber = WINBOND_NUVOTON_HARDWARE_MONITOR_LDN;

OpenHardwareMonitorLib/Hardware/Motherboard/Model.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@ public enum Model
175175
X870EP_PRO_WIFI,
176176
X870E_CARBON_WIFI,
177177
X870E_EDGE_TI_WIFI,
178+
X870E_ACE_MAX,
178179
Z790_GODLIKE_MAX,
179180
Z890_ACE,
180181
Z890_TOMAHAWK_WIFI,

OpenHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs

Lines changed: 21 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -579,50 +579,6 @@ private static void GetBoardSpecificConfiguration
579579

580580
break;
581581

582-
case Manufacturer.MSI when model == Model.B850_GAMING_PLUS_WIFI6E: // NCT6687D
583-
v.Add(new Voltage("+12V", 0));
584-
v.Add(new Voltage("+5V", 1));
585-
v.Add(new Voltage("Vcore", 2));
586-
v.Add(new Voltage("Voltage #1", 3));
587-
v.Add(new Voltage("DIMM", 4));
588-
v.Add(new Voltage("CPU I/O", 5));
589-
v.Add(new Voltage("CPU System Agent", 6));
590-
v.Add(new Voltage("Voltage #2", 7));
591-
v.Add(new Voltage("AVCC3", 8));
592-
v.Add(new Voltage("CPU Termination", 9));
593-
v.Add(new Voltage("VRef", 10));
594-
v.Add(new Voltage("VSB", 11));
595-
v.Add(new Voltage("AVSB", 12));
596-
v.Add(new Voltage("CMOS Battery", 13));
597-
598-
t.Add(new Temperature("CPU", 0));
599-
t.Add(new Temperature("System", 1));
600-
t.Add(new Temperature("VRM MOS", 2));
601-
t.Add(new Temperature("PCH", 3));
602-
t.Add(new Temperature("CPU Socket", 4));
603-
t.Add(new Temperature("PCIe x1", 5));
604-
t.Add(new Temperature("M2 #1", 6));
605-
606-
f.Add(new Fan("CPU Fan", 0));
607-
f.Add(new Fan("Pump Fan", 1));
608-
f.Add(new Fan("System Fan #1", 15));
609-
f.Add(new Fan("System Fan #2", 14));
610-
f.Add(new Fan("System Fan #3", 13));
611-
f.Add(new Fan("System Fan #4", 12));
612-
f.Add(new Fan("System Fan #5", 11));
613-
f.Add(new Fan("System Fan #6", 10));
614-
615-
c.Add(new Control("CPU Fan", 0));
616-
c.Add(new Control("Pump Fan", 1));
617-
c.Add(new Control("System Fan #1", 2));
618-
c.Add(new Control("System Fan #2", 3));
619-
c.Add(new Control("System Fan #3", 4));
620-
c.Add(new Control("System Fan #4", 5));
621-
c.Add(new Control("System Fan #5", 6));
622-
c.Add(new Control("System Fan #6", 7));
623-
624-
break;
625-
626582
default:
627583
v.Add(new Voltage("+12V", 0));
628584
v.Add(new Voltage("+5V", 1));
@@ -724,6 +680,27 @@ private static void GetBoardSpecificConfiguration
724680

725681
break;
726682

683+
case Model.X870E_ACE_MAX:
684+
v.Add(new Voltage("+12V", 0));
685+
v.Add(new Voltage("+5V", 1));
686+
v.Add(new Voltage("CPU Northbridge/SoC", 2));
687+
v.Add(new Voltage("DIMM", 3, 1, 1));
688+
v.Add(new Voltage("Vcore", 4, -1, 2));
689+
v.Add(new Voltage("Chipset", 5));
690+
v.Add(new Voltage("CPU System Agent", 6));
691+
//v.Add(new Voltage("Unknown_4", 7)); //"Voltage #2"
692+
v.Add(new Voltage("+3.3V", 8));
693+
v.Add(new Voltage("VREF", 9));
694+
v.Add(new Voltage("+1.8V", 10));
695+
v.Add(new Voltage("+3V Standby", 11));
696+
v.Add(new Voltage("AVSB", 12));
697+
v.Add(new Voltage("CMOS Battery", 13));
698+
699+
t.Add(new Temperature("Chipset #2", 5));
700+
t.Add(new Temperature("Thermistor Sensor", 6));
701+
702+
break;
703+
727704
case Model.X870E_CARBON_WIFI:
728705
case Model.X870E_GODLIKE:
729706
f.Add(new Fan("System Fan #7", 9));

0 commit comments

Comments
 (0)