From 6968062d7126ce90e5a1f6541e0f455502d87865 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=B6ller?= Date: Mon, 28 Jun 2010 20:39:49 +0000 Subject: [PATCH] Added the ITE chip version to the report. --- Hardware/LPC/IT87XX.cs | 5 ++++- Hardware/LPC/LPCIO.cs | 9 ++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Hardware/LPC/IT87XX.cs b/Hardware/LPC/IT87XX.cs index 6cab687..c0a3f88 100644 --- a/Hardware/LPC/IT87XX.cs +++ b/Hardware/LPC/IT87XX.cs @@ -45,6 +45,7 @@ namespace OpenHardwareMonitor.Hardware.LPC { private ushort address; private Chip chip; + private byte version; private readonly ushort addressReg; private readonly ushort dataReg; @@ -78,10 +79,11 @@ namespace OpenHardwareMonitor.Hardware.LPC { return value; } - public IT87XX(Chip chip, ushort address) { + public IT87XX(Chip chip, ushort address, byte version) { this.address = address; this.chip = chip; + this.version = version; this.addressReg = (ushort)(address + ADDRESS_REGISTER_OFFSET); this.dataReg = (ushort)(address + DATA_REGISTER_OFFSET); @@ -113,6 +115,7 @@ namespace OpenHardwareMonitor.Hardware.LPC { r.AppendLine("LPC " + this.GetType().Name); r.AppendLine(); r.Append("Chip ID: 0x"); r.AppendLine(chip.ToString("X")); + r.Append("Chip Version: 0x"); r.AppendLine(version.ToString("X")); r.Append("Base Address: 0x"); r.AppendLine(address.ToString("X4")); r.AppendLine(); r.AppendLine("Environment Controller Registers"); diff --git a/Hardware/LPC/LPCIO.cs b/Hardware/LPC/LPCIO.cs index 4660eb0..874ce49 100644 --- a/Hardware/LPC/LPCIO.cs +++ b/Hardware/LPC/LPCIO.cs @@ -78,7 +78,8 @@ namespace OpenHardwareMonitor.Hardware.LPC { } // ITE - private const byte IT87_ENVIRONMENT_CONTROLLER_LDN = 0x04; + private const byte IT87_ENVIRONMENT_CONTROLLER_LDN = 0x04; + private const byte IT87_CHIP_VERSION_REGISTER = 0x22; private void IT87Enter() { WinRing0.WriteIoPortByte(registerPort, 0x87); @@ -332,12 +333,14 @@ namespace OpenHardwareMonitor.Hardware.LPC { report.AppendLine(chipID.ToString("X")); report.AppendLine(); } - } else { + } else { Select(IT87_ENVIRONMENT_CONTROLLER_LDN); ushort address = ReadWord(BASE_ADDRESS_REGISTER); Thread.Sleep(1); ushort verify = ReadWord(BASE_ADDRESS_REGISTER); + byte version = (byte)(ReadByte(IT87_CHIP_VERSION_REGISTER) & 0x0F); + IT87Exit(); if (address != verify || address < 0x100 || (address & 0xF007) != 0) { @@ -349,7 +352,7 @@ namespace OpenHardwareMonitor.Hardware.LPC { return; } - superIOs.Add(new IT87XX(chip, address)); + superIOs.Add(new IT87XX(chip, address, version)); return; }