Added Added a mainboard specific configuration for the Shuttle SH67Hx barebones. Added the SMBIOS system information to the report.

This commit is contained in:
Michael Möller
2011-08-06 17:27:55 +00:00
parent cdc38ff344
commit 0645bdbd6c
6 changed files with 111 additions and 5 deletions

View File

@@ -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
}; };
} }

View File

@@ -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;

View File

@@ -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 {

View File

@@ -83,6 +83,9 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
X58A_UD3R, X58A_UD3R,
Z68X_UD7_B3, Z68X_UD7_B3,
// Shuttle
FH67,
// Unknown // Unknown
Unknown Unknown
} }

View File

@@ -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;

View File

@@ -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));