# HG changeset patch # User moel.mich # Date 1312651675 0 # Node ID df3493f7522503f5459e992db58579a41c5224e5 # Parent 35cda448fc5fd7da82bf1591074e8cee956007e9 Added Added a mainboard specific configuration for the Shuttle SH67Hx barebones. Added the SMBIOS system information to the report. diff -r 35cda448fc5f -r df3493f75225 Hardware/CPU/IntelCPU.cs --- a/Hardware/CPU/IntelCPU.cs Tue Aug 02 21:05:17 2011 +0000 +++ b/Hardware/CPU/IntelCPU.cs Sat Aug 06 17:27:55 2011 +0000 @@ -69,6 +69,7 @@ private const uint MSR_RAPL_POWER_UNIT = 0x606; private const uint MSR_PKG_ENERY_STATUS = 0x611; private const uint MSR_PP0_ENERY_STATUS = 0x639; + private const uint MSR_PP1_ENERY_STATUS = 0x641; private float energyUnitMultiplier = 0; private DateTime lastPackageTime; @@ -294,7 +295,8 @@ IA32_PACKAGE_THERM_STATUS, MSR_RAPL_POWER_UNIT, MSR_PKG_ENERY_STATUS, - MSR_PP0_ENERY_STATUS + MSR_PP0_ENERY_STATUS, + MSR_PP1_ENERY_STATUS }; } diff -r 35cda448fc5f -r df3493f75225 Hardware/LPC/IT87XX.cs --- a/Hardware/LPC/IT87XX.cs Tue Aug 02 21:05:17 2011 +0000 +++ b/Hardware/LPC/IT87XX.cs Sat Aug 06 17:27:55 2011 +0000 @@ -87,7 +87,7 @@ Ring0.WriteIoPort(addressReg, register); Ring0.WriteIoPort(dataReg, value); return register == Ring0.ReadIoPort(addressReg); - } + } public byte? ReadGPIO(int index) { if (index >= gpioCount) @@ -128,7 +128,7 @@ temperatures = new float?[3]; 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) { voltageGain = 0.012f; diff -r 35cda448fc5f -r df3493f75225 Hardware/Mainboard/Mainboard.cs --- a/Hardware/Mainboard/Mainboard.cs Tue Aug 02 21:05:17 2011 +0000 +++ b/Hardware/Mainboard/Mainboard.cs Sat Aug 06 17:27:55 2011 +0000 @@ -85,7 +85,7 @@ superIOHardware[i] = new SuperIOHardware(this, superIO[i], smbios.Board != null ? smbios.Board.Manufacturer : Manufacturer.Unknown, smbios.Board != null ? smbios.Board.Model : - Model.Unknown, settings); + Model.Unknown, settings); } public string Name { diff -r 35cda448fc5f -r df3493f75225 Hardware/Mainboard/Model.cs --- a/Hardware/Mainboard/Model.cs Tue Aug 02 21:05:17 2011 +0000 +++ b/Hardware/Mainboard/Model.cs Sat Aug 06 17:27:55 2011 +0000 @@ -83,6 +83,9 @@ X58A_UD3R, Z68X_UD7_B3, + // Shuttle + FH67, + // Unknown Unknown } diff -r 35cda448fc5f -r df3493f75225 Hardware/Mainboard/SMBIOS.cs --- a/Hardware/Mainboard/SMBIOS.cs Tue Aug 02 21:05:17 2011 +0000 +++ b/Hardware/Mainboard/SMBIOS.cs Sat Aug 06 17:27:55 2011 +0000 @@ -50,6 +50,7 @@ private readonly Version version; private readonly BIOSInformation biosInformation; + private readonly SystemInformation systemInformation; private readonly BaseBoardInformation baseBoardInformation; private static string ReadSysFS(string path) { @@ -76,7 +77,13 @@ string boardVersion = ReadSysFS("/sys/class/dmi/id/board_version"); this.baseBoardInformation = new BaseBoardInformation( 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 biosVersion = ReadSysFS("/sys/class/dmi/id/bios_version"); this.biosInformation = new BIOSInformation(biosVendor, biosVersion); @@ -139,6 +146,10 @@ this.biosInformation = new BIOSInformation( type, handle, data, stringsList.ToArray()); 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( type, handle, data, stringsList.ToArray()); structureList.Add(this.baseBoardInformation); break; @@ -166,6 +177,16 @@ 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) { r.Append("Mainboard Manufacturer: "); r.AppendLine(Board.ManufacturerName); @@ -201,6 +222,10 @@ get { return biosInformation; } } + public SystemInformation System { + get { return systemInformation; } + } + public BaseBoardInformation Board { get { return baseBoardInformation; } } @@ -258,6 +283,48 @@ 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 { private readonly string manufacturerName; @@ -395,6 +462,8 @@ return Model.X58A_UD3R; case "Z68X-UD7-B3": return Model.Z68X_UD7_B3; + case "FH67": + return Model.FH67; case "Base Board Product Name": case "To be filled by O.E.M.": return Model.Unknown; diff -r 35cda448fc5f -r df3493f75225 Hardware/Mainboard/SuperIOHardware.cs --- a/Hardware/Mainboard/SuperIOHardware.cs Tue Aug 02 21:05:17 2011 +0000 +++ b/Hardware/Mainboard/SuperIOHardware.cs Sat Aug 06 17:27:55 2011 +0000 @@ -533,6 +533,38 @@ 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: v.Add(new Voltage("Voltage #1", 0, true)); v.Add(new Voltage("Voltage #2", 1, true));