mirror of
https://github.com/openhardwaremonitor/openhardwaremonitor
synced 2025-09-01 06:45:12 +00:00
Added Added a mainboard specific configuration for the Shuttle SH67Hx barebones. Added the SMBIOS system information to the report.
This commit is contained in:
@@ -69,6 +69,7 @@ namespace OpenHardwareMonitor.Hardware.CPU {
|
|||||||
private const uint MSR_RAPL_POWER_UNIT = 0x606;
|
private const uint MSR_RAPL_POWER_UNIT = 0x606;
|
||||||
private const uint MSR_PKG_ENERY_STATUS = 0x611;
|
private const uint MSR_PKG_ENERY_STATUS = 0x611;
|
||||||
private const uint MSR_PP0_ENERY_STATUS = 0x639;
|
private const uint MSR_PP0_ENERY_STATUS = 0x639;
|
||||||
|
private const uint MSR_PP1_ENERY_STATUS = 0x641;
|
||||||
|
|
||||||
private float energyUnitMultiplier = 0;
|
private float energyUnitMultiplier = 0;
|
||||||
private DateTime lastPackageTime;
|
private DateTime lastPackageTime;
|
||||||
@@ -294,7 +295,8 @@ namespace OpenHardwareMonitor.Hardware.CPU {
|
|||||||
IA32_PACKAGE_THERM_STATUS,
|
IA32_PACKAGE_THERM_STATUS,
|
||||||
MSR_RAPL_POWER_UNIT,
|
MSR_RAPL_POWER_UNIT,
|
||||||
MSR_PKG_ENERY_STATUS,
|
MSR_PKG_ENERY_STATUS,
|
||||||
MSR_PP0_ENERY_STATUS
|
MSR_PP0_ENERY_STATUS,
|
||||||
|
MSR_PP1_ENERY_STATUS
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -87,7 +87,7 @@ namespace OpenHardwareMonitor.Hardware.LPC {
|
|||||||
Ring0.WriteIoPort(addressReg, register);
|
Ring0.WriteIoPort(addressReg, register);
|
||||||
Ring0.WriteIoPort(dataReg, value);
|
Ring0.WriteIoPort(dataReg, value);
|
||||||
return register == Ring0.ReadIoPort(addressReg);
|
return register == Ring0.ReadIoPort(addressReg);
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte? ReadGPIO(int index) {
|
public byte? ReadGPIO(int index) {
|
||||||
if (index >= gpioCount)
|
if (index >= gpioCount)
|
||||||
@@ -128,7 +128,7 @@ namespace OpenHardwareMonitor.Hardware.LPC {
|
|||||||
temperatures = new float?[3];
|
temperatures = new float?[3];
|
||||||
fans = new float?[5];
|
fans = new float?[5];
|
||||||
|
|
||||||
// IT8721F, IT8728F and IT8772E uses a 12mV resultion ADC, all others 16mV
|
// IT8721F, IT8728F and IT8772E use a 12mV resultion ADC, all others 16mV
|
||||||
if (chip == Chip.IT8721F || chip == Chip.IT8728F || chip == Chip.IT8772E)
|
if (chip == Chip.IT8721F || chip == Chip.IT8728F || chip == Chip.IT8772E)
|
||||||
{
|
{
|
||||||
voltageGain = 0.012f;
|
voltageGain = 0.012f;
|
||||||
|
@@ -85,7 +85,7 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
|
|||||||
superIOHardware[i] = new SuperIOHardware(this, superIO[i],
|
superIOHardware[i] = new SuperIOHardware(this, superIO[i],
|
||||||
smbios.Board != null ? smbios.Board.Manufacturer :
|
smbios.Board != null ? smbios.Board.Manufacturer :
|
||||||
Manufacturer.Unknown, smbios.Board != null ? smbios.Board.Model :
|
Manufacturer.Unknown, smbios.Board != null ? smbios.Board.Model :
|
||||||
Model.Unknown, settings);
|
Model.Unknown, settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Name {
|
public string Name {
|
||||||
|
@@ -83,6 +83,9 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
|
|||||||
X58A_UD3R,
|
X58A_UD3R,
|
||||||
Z68X_UD7_B3,
|
Z68X_UD7_B3,
|
||||||
|
|
||||||
|
// Shuttle
|
||||||
|
FH67,
|
||||||
|
|
||||||
// Unknown
|
// Unknown
|
||||||
Unknown
|
Unknown
|
||||||
}
|
}
|
||||||
|
@@ -50,6 +50,7 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
|
|||||||
|
|
||||||
private readonly Version version;
|
private readonly Version version;
|
||||||
private readonly BIOSInformation biosInformation;
|
private readonly BIOSInformation biosInformation;
|
||||||
|
private readonly SystemInformation systemInformation;
|
||||||
private readonly BaseBoardInformation baseBoardInformation;
|
private readonly BaseBoardInformation baseBoardInformation;
|
||||||
|
|
||||||
private static string ReadSysFS(string path) {
|
private static string ReadSysFS(string path) {
|
||||||
@@ -76,7 +77,13 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
|
|||||||
string boardVersion = ReadSysFS("/sys/class/dmi/id/board_version");
|
string boardVersion = ReadSysFS("/sys/class/dmi/id/board_version");
|
||||||
this.baseBoardInformation = new BaseBoardInformation(
|
this.baseBoardInformation = new BaseBoardInformation(
|
||||||
boardVendor, boardName, boardVersion, null);
|
boardVendor, boardName, boardVersion, null);
|
||||||
|
|
||||||
|
string systemVendor = ReadSysFS("/sys/class/dmi/id/sys_vendor");
|
||||||
|
string productName = ReadSysFS("/sys/class/dmi/id/product_name");
|
||||||
|
string productVersion = ReadSysFS("/sys/class/dmi/id/product_version");
|
||||||
|
this.systemInformation = new SystemInformation(systemVendor,
|
||||||
|
productName, productVersion, null, null);
|
||||||
|
|
||||||
string biosVendor = ReadSysFS("/sys/class/dmi/id/bios_vendor");
|
string biosVendor = ReadSysFS("/sys/class/dmi/id/bios_vendor");
|
||||||
string biosVersion = ReadSysFS("/sys/class/dmi/id/bios_version");
|
string biosVersion = ReadSysFS("/sys/class/dmi/id/bios_version");
|
||||||
this.biosInformation = new BIOSInformation(biosVendor, biosVersion);
|
this.biosInformation = new BIOSInformation(biosVendor, biosVersion);
|
||||||
@@ -139,6 +146,10 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
|
|||||||
this.biosInformation = new BIOSInformation(
|
this.biosInformation = new BIOSInformation(
|
||||||
type, handle, data, stringsList.ToArray());
|
type, handle, data, stringsList.ToArray());
|
||||||
structureList.Add(this.biosInformation); break;
|
structureList.Add(this.biosInformation); break;
|
||||||
|
case 0x01:
|
||||||
|
this.systemInformation = new SystemInformation(
|
||||||
|
type, handle, data, stringsList.ToArray());
|
||||||
|
structureList.Add(this.systemInformation); break;
|
||||||
case 0x02: this.baseBoardInformation = new BaseBoardInformation(
|
case 0x02: this.baseBoardInformation = new BaseBoardInformation(
|
||||||
type, handle, data, stringsList.ToArray());
|
type, handle, data, stringsList.ToArray());
|
||||||
structureList.Add(this.baseBoardInformation); break;
|
structureList.Add(this.baseBoardInformation); break;
|
||||||
@@ -166,6 +177,16 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
|
|||||||
r.AppendLine();
|
r.AppendLine();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (System != null) {
|
||||||
|
r.Append("System Manufacturer: ");
|
||||||
|
r.AppendLine(System.ManufacturerName);
|
||||||
|
r.Append("System Name: ");
|
||||||
|
r.AppendLine(System.ProductName);
|
||||||
|
r.Append("System Version: ");
|
||||||
|
r.AppendLine(System.Version);
|
||||||
|
r.AppendLine();
|
||||||
|
}
|
||||||
|
|
||||||
if (Board != null) {
|
if (Board != null) {
|
||||||
r.Append("Mainboard Manufacturer: ");
|
r.Append("Mainboard Manufacturer: ");
|
||||||
r.AppendLine(Board.ManufacturerName);
|
r.AppendLine(Board.ManufacturerName);
|
||||||
@@ -201,6 +222,10 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
|
|||||||
get { return biosInformation; }
|
get { return biosInformation; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SystemInformation System {
|
||||||
|
get { return systemInformation; }
|
||||||
|
}
|
||||||
|
|
||||||
public BaseBoardInformation Board {
|
public BaseBoardInformation Board {
|
||||||
get { return baseBoardInformation; }
|
get { return baseBoardInformation; }
|
||||||
}
|
}
|
||||||
@@ -258,6 +283,48 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
|
|||||||
public string Version { get { return version; } }
|
public string Version { get { return version; } }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class SystemInformation : Structure {
|
||||||
|
|
||||||
|
private readonly string manufacturerName;
|
||||||
|
private readonly string productName;
|
||||||
|
private readonly string version;
|
||||||
|
private readonly string serialNumber;
|
||||||
|
private readonly string family;
|
||||||
|
|
||||||
|
public SystemInformation(string manufacturerName, string productName,
|
||||||
|
string version, string serialNumber, string family)
|
||||||
|
: base (0x01, 0, null, null)
|
||||||
|
{
|
||||||
|
this.manufacturerName = manufacturerName;
|
||||||
|
this.productName = productName;
|
||||||
|
this.version = version;
|
||||||
|
this.serialNumber = serialNumber;
|
||||||
|
this.family = family;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SystemInformation(byte type, ushort handle, byte[] data,
|
||||||
|
string[] strings)
|
||||||
|
: base(type, handle, data, strings)
|
||||||
|
{
|
||||||
|
this.manufacturerName = GetString(0x04);
|
||||||
|
this.productName = GetString(0x05);
|
||||||
|
this.version = GetString(0x06);
|
||||||
|
this.serialNumber = GetString(0x07);
|
||||||
|
this.family = GetString(0x1A);
|
||||||
|
}
|
||||||
|
|
||||||
|
public string ManufacturerName { get { return manufacturerName; } }
|
||||||
|
|
||||||
|
public string ProductName { get { return productName; } }
|
||||||
|
|
||||||
|
public string Version { get { return version; } }
|
||||||
|
|
||||||
|
public string SerialNumber { get { return serialNumber; } }
|
||||||
|
|
||||||
|
public string Family { get { return family; } }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public class BaseBoardInformation : Structure {
|
public class BaseBoardInformation : Structure {
|
||||||
|
|
||||||
private readonly string manufacturerName;
|
private readonly string manufacturerName;
|
||||||
@@ -395,6 +462,8 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
|
|||||||
return Model.X58A_UD3R;
|
return Model.X58A_UD3R;
|
||||||
case "Z68X-UD7-B3":
|
case "Z68X-UD7-B3":
|
||||||
return Model.Z68X_UD7_B3;
|
return Model.Z68X_UD7_B3;
|
||||||
|
case "FH67":
|
||||||
|
return Model.FH67;
|
||||||
case "Base Board Product Name":
|
case "Base Board Product Name":
|
||||||
case "To be filled by O.E.M.":
|
case "To be filled by O.E.M.":
|
||||||
return Model.Unknown;
|
return Model.Unknown;
|
||||||
|
@@ -533,6 +533,38 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case Manufacturer.Shuttle:
|
||||||
|
switch (model) {
|
||||||
|
case Model.FH67: // IT8772E
|
||||||
|
v.Add(new Voltage("CPU VCore", 0));
|
||||||
|
v.Add(new Voltage("DRAM", 1));
|
||||||
|
v.Add(new Voltage("PCH VCCIO", 2));
|
||||||
|
v.Add(new Voltage("CPU VCCIO", 3));
|
||||||
|
v.Add(new Voltage("Graphic Voltage", 4));
|
||||||
|
v.Add(new Voltage("Standby +3.3V", 7, 10, 10));
|
||||||
|
v.Add(new Voltage("VBat", 8, 10, 10));
|
||||||
|
t.Add(new Temperature("System", 0));
|
||||||
|
t.Add(new Temperature("CPU", 1));
|
||||||
|
f.Add(new Fan("Fan #1", 0));
|
||||||
|
f.Add(new Fan("CPU Fan", 1));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
v.Add(new Voltage("Voltage #1", 0, true));
|
||||||
|
v.Add(new Voltage("Voltage #2", 1, true));
|
||||||
|
v.Add(new Voltage("Voltage #3", 2, true));
|
||||||
|
v.Add(new Voltage("Voltage #4", 3, true));
|
||||||
|
v.Add(new Voltage("Voltage #5", 4, true));
|
||||||
|
v.Add(new Voltage("Voltage #6", 5, true));
|
||||||
|
v.Add(new Voltage("Voltage #7", 6, true));
|
||||||
|
v.Add(new Voltage("Standby +3.3V", 7, 10, 10, 0, true));
|
||||||
|
v.Add(new Voltage("VBat", 8, 10, 10));
|
||||||
|
for (int i = 0; i < superIO.Temperatures.Length; i++)
|
||||||
|
t.Add(new Temperature("Temperature #" + (i + 1), i));
|
||||||
|
for (int i = 0; i < superIO.Fans.Length; i++)
|
||||||
|
f.Add(new Fan("Fan #" + (i + 1), i));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
v.Add(new Voltage("Voltage #1", 0, true));
|
v.Add(new Voltage("Voltage #1", 0, true));
|
||||||
v.Add(new Voltage("Voltage #2", 1, true));
|
v.Add(new Voltage("Voltage #2", 1, true));
|
||||||
|
Reference in New Issue
Block a user