Added Added a mainboard specific configuration for the Shuttle SH67Hx barebones. Added the SMBIOS system information to the report.
authormoel.mich
Sat, 06 Aug 2011 17:27:55 +0000
changeset 320df3493f75225
parent 319 35cda448fc5f
child 321 1da7448c8e10
Added Added a mainboard specific configuration for the Shuttle SH67Hx barebones. Added the SMBIOS system information to the report.
Hardware/CPU/IntelCPU.cs
Hardware/LPC/IT87XX.cs
Hardware/Mainboard/Mainboard.cs
Hardware/Mainboard/Model.cs
Hardware/Mainboard/SMBIOS.cs
Hardware/Mainboard/SuperIOHardware.cs
     1.1 --- a/Hardware/CPU/IntelCPU.cs	Tue Aug 02 21:05:17 2011 +0000
     1.2 +++ b/Hardware/CPU/IntelCPU.cs	Sat Aug 06 17:27:55 2011 +0000
     1.3 @@ -69,6 +69,7 @@
     1.4      private const uint MSR_RAPL_POWER_UNIT = 0x606;
     1.5      private const uint MSR_PKG_ENERY_STATUS = 0x611;
     1.6      private const uint MSR_PP0_ENERY_STATUS = 0x639;
     1.7 +    private const uint MSR_PP1_ENERY_STATUS = 0x641;
     1.8  
     1.9      private float energyUnitMultiplier = 0;
    1.10      private DateTime lastPackageTime;
    1.11 @@ -294,7 +295,8 @@
    1.12          IA32_PACKAGE_THERM_STATUS,
    1.13          MSR_RAPL_POWER_UNIT,
    1.14          MSR_PKG_ENERY_STATUS,
    1.15 -        MSR_PP0_ENERY_STATUS
    1.16 +        MSR_PP0_ENERY_STATUS,
    1.17 +        MSR_PP1_ENERY_STATUS
    1.18        };
    1.19      }
    1.20  
     2.1 --- a/Hardware/LPC/IT87XX.cs	Tue Aug 02 21:05:17 2011 +0000
     2.2 +++ b/Hardware/LPC/IT87XX.cs	Sat Aug 06 17:27:55 2011 +0000
     2.3 @@ -87,7 +87,7 @@
     2.4        Ring0.WriteIoPort(addressReg, register);
     2.5        Ring0.WriteIoPort(dataReg, value);
     2.6        return register == Ring0.ReadIoPort(addressReg); 
     2.7 -    } 
     2.8 +    }
     2.9  
    2.10      public byte? ReadGPIO(int index) {
    2.11        if (index >= gpioCount)
    2.12 @@ -128,7 +128,7 @@
    2.13        temperatures = new float?[3];
    2.14        fans = new float?[5];
    2.15  
    2.16 -      // IT8721F, IT8728F and IT8772E uses a 12mV resultion ADC, all others 16mV
    2.17 +      // IT8721F, IT8728F and IT8772E use a 12mV resultion ADC, all others 16mV
    2.18        if (chip == Chip.IT8721F || chip == Chip.IT8728F || chip == Chip.IT8772E) 
    2.19        {
    2.20          voltageGain = 0.012f;
     3.1 --- a/Hardware/Mainboard/Mainboard.cs	Tue Aug 02 21:05:17 2011 +0000
     3.2 +++ b/Hardware/Mainboard/Mainboard.cs	Sat Aug 06 17:27:55 2011 +0000
     3.3 @@ -85,7 +85,7 @@
     3.4          superIOHardware[i] = new SuperIOHardware(this, superIO[i], 
     3.5            smbios.Board != null ? smbios.Board.Manufacturer : 
     3.6            Manufacturer.Unknown, smbios.Board != null ? smbios.Board.Model :
     3.7 -          Model.Unknown, settings);      
     3.8 +          Model.Unknown, settings);
     3.9      }
    3.10  
    3.11      public string Name {
     4.1 --- a/Hardware/Mainboard/Model.cs	Tue Aug 02 21:05:17 2011 +0000
     4.2 +++ b/Hardware/Mainboard/Model.cs	Sat Aug 06 17:27:55 2011 +0000
     4.3 @@ -83,6 +83,9 @@
     4.4      X58A_UD3R,
     4.5      Z68X_UD7_B3,
     4.6  
     4.7 +    // Shuttle
     4.8 +    FH67,
     4.9 +
    4.10      // Unknown
    4.11      Unknown    
    4.12    }
     5.1 --- a/Hardware/Mainboard/SMBIOS.cs	Tue Aug 02 21:05:17 2011 +0000
     5.2 +++ b/Hardware/Mainboard/SMBIOS.cs	Sat Aug 06 17:27:55 2011 +0000
     5.3 @@ -50,6 +50,7 @@
     5.4  
     5.5      private readonly Version version;
     5.6      private readonly BIOSInformation biosInformation;
     5.7 +    private readonly SystemInformation systemInformation;
     5.8      private readonly BaseBoardInformation baseBoardInformation;
     5.9  
    5.10      private static string ReadSysFS(string path) {
    5.11 @@ -76,7 +77,13 @@
    5.12          string boardVersion = ReadSysFS("/sys/class/dmi/id/board_version");        
    5.13          this.baseBoardInformation = new BaseBoardInformation(
    5.14            boardVendor, boardName, boardVersion, null);
    5.15 -        
    5.16 +
    5.17 +        string systemVendor = ReadSysFS("/sys/class/dmi/id/sys_vendor");
    5.18 +        string productName = ReadSysFS("/sys/class/dmi/id/product_name");
    5.19 +        string productVersion = ReadSysFS("/sys/class/dmi/id/product_version");    
    5.20 +        this.systemInformation = new SystemInformation(systemVendor, 
    5.21 +          productName, productVersion, null, null);
    5.22 +
    5.23          string biosVendor = ReadSysFS("/sys/class/dmi/id/bios_vendor");
    5.24          string biosVersion = ReadSysFS("/sys/class/dmi/id/bios_version");
    5.25          this.biosInformation = new BIOSInformation(biosVendor, biosVersion);
    5.26 @@ -139,6 +146,10 @@
    5.27                  this.biosInformation = new BIOSInformation(
    5.28                    type, handle, data, stringsList.ToArray());
    5.29                  structureList.Add(this.biosInformation); break;
    5.30 +              case 0x01:
    5.31 +                this.systemInformation = new SystemInformation(
    5.32 +                  type, handle, data, stringsList.ToArray());
    5.33 +                structureList.Add(this.systemInformation); break;
    5.34                case 0x02: this.baseBoardInformation = new BaseBoardInformation(
    5.35                    type, handle, data, stringsList.ToArray());
    5.36                  structureList.Add(this.baseBoardInformation); break;
    5.37 @@ -166,6 +177,16 @@
    5.38          r.AppendLine();
    5.39        }
    5.40  
    5.41 +      if (System != null) {
    5.42 +        r.Append("System Manufacturer: ");
    5.43 +        r.AppendLine(System.ManufacturerName);
    5.44 +        r.Append("System Name: ");
    5.45 +        r.AppendLine(System.ProductName);
    5.46 +        r.Append("System Version: ");
    5.47 +        r.AppendLine(System.Version);
    5.48 +        r.AppendLine();
    5.49 +      }
    5.50 +
    5.51        if (Board != null) {
    5.52          r.Append("Mainboard Manufacturer: ");
    5.53          r.AppendLine(Board.ManufacturerName);
    5.54 @@ -201,6 +222,10 @@
    5.55        get { return biosInformation; }
    5.56      }
    5.57  
    5.58 +    public SystemInformation System {
    5.59 +      get { return systemInformation; }
    5.60 +    }
    5.61 +
    5.62      public BaseBoardInformation Board {
    5.63        get { return baseBoardInformation; }
    5.64      }
    5.65 @@ -258,6 +283,48 @@
    5.66        public string Version { get { return version; } }
    5.67      }
    5.68  
    5.69 +    public class SystemInformation : Structure {
    5.70 +
    5.71 +      private readonly string manufacturerName;
    5.72 +      private readonly string productName;
    5.73 +      private readonly string version;
    5.74 +      private readonly string serialNumber;
    5.75 +      private readonly string family;
    5.76 +
    5.77 +      public SystemInformation(string manufacturerName, string productName, 
    5.78 +        string version, string serialNumber, string family) 
    5.79 +        : base (0x01, 0, null, null) 
    5.80 +      {
    5.81 +        this.manufacturerName = manufacturerName;
    5.82 +        this.productName = productName;
    5.83 +        this.version = version;
    5.84 +        this.serialNumber = serialNumber;
    5.85 +        this.family = family;
    5.86 +      }
    5.87 +
    5.88 +      public SystemInformation(byte type, ushort handle, byte[] data,
    5.89 +        string[] strings)
    5.90 +        : base(type, handle, data, strings) 
    5.91 +      {
    5.92 +        this.manufacturerName = GetString(0x04);
    5.93 +        this.productName = GetString(0x05);
    5.94 +        this.version = GetString(0x06);
    5.95 +        this.serialNumber = GetString(0x07);
    5.96 +        this.family = GetString(0x1A);
    5.97 +      }
    5.98 +
    5.99 +      public string ManufacturerName { get { return manufacturerName; } }
   5.100 +
   5.101 +      public string ProductName { get { return productName; } }
   5.102 +
   5.103 +      public string Version { get { return version; } }
   5.104 +
   5.105 +      public string SerialNumber { get { return serialNumber; } }
   5.106 +
   5.107 +      public string Family { get { return family; } }
   5.108 +
   5.109 +    }
   5.110 +
   5.111      public class BaseBoardInformation : Structure {
   5.112  
   5.113        private readonly string manufacturerName;
   5.114 @@ -395,6 +462,8 @@
   5.115              return Model.X58A_UD3R;
   5.116            case "Z68X-UD7-B3":
   5.117              return Model.Z68X_UD7_B3;
   5.118 +          case "FH67":
   5.119 +            return Model.FH67;
   5.120            case "Base Board Product Name":
   5.121            case "To be filled by O.E.M.":
   5.122              return Model.Unknown;
     6.1 --- a/Hardware/Mainboard/SuperIOHardware.cs	Tue Aug 02 21:05:17 2011 +0000
     6.2 +++ b/Hardware/Mainboard/SuperIOHardware.cs	Sat Aug 06 17:27:55 2011 +0000
     6.3 @@ -533,6 +533,38 @@
     6.4                    break;
     6.5                }
     6.6                break;
     6.7 +            case Manufacturer.Shuttle:
     6.8 +              switch (model) {
     6.9 +                case Model.FH67: // IT8772E 
    6.10 +                  v.Add(new Voltage("CPU VCore", 0));
    6.11 +                  v.Add(new Voltage("DRAM", 1));
    6.12 +                  v.Add(new Voltage("PCH VCCIO", 2));
    6.13 +                  v.Add(new Voltage("CPU VCCIO", 3));
    6.14 +                  v.Add(new Voltage("Graphic Voltage", 4));
    6.15 +                  v.Add(new Voltage("Standby +3.3V", 7, 10, 10));
    6.16 +                  v.Add(new Voltage("VBat", 8, 10, 10));
    6.17 +                  t.Add(new Temperature("System", 0));
    6.18 +                  t.Add(new Temperature("CPU", 1));                  
    6.19 +                  f.Add(new Fan("Fan #1", 0));
    6.20 +                  f.Add(new Fan("CPU Fan", 1));
    6.21 +                  break;
    6.22 +                default:
    6.23 +                  v.Add(new Voltage("Voltage #1", 0, true));
    6.24 +                  v.Add(new Voltage("Voltage #2", 1, true));
    6.25 +                  v.Add(new Voltage("Voltage #3", 2, true));
    6.26 +                  v.Add(new Voltage("Voltage #4", 3, true));
    6.27 +                  v.Add(new Voltage("Voltage #5", 4, true));
    6.28 +                  v.Add(new Voltage("Voltage #6", 5, true));
    6.29 +                  v.Add(new Voltage("Voltage #7", 6, true));
    6.30 +                  v.Add(new Voltage("Standby +3.3V", 7, 10, 10, 0, true));
    6.31 +                  v.Add(new Voltage("VBat", 8, 10, 10));
    6.32 +                  for (int i = 0; i < superIO.Temperatures.Length; i++)
    6.33 +                    t.Add(new Temperature("Temperature #" + (i + 1), i));
    6.34 +                  for (int i = 0; i < superIO.Fans.Length; i++)
    6.35 +                    f.Add(new Fan("Fan #" + (i + 1), i));
    6.36 +                  break;
    6.37 +              }
    6.38 +              break;
    6.39              default:
    6.40                v.Add(new Voltage("Voltage #1", 0, true));
    6.41                v.Add(new Voltage("Voltage #2", 1, true));