# HG changeset patch
# User moel.mich
# Date 1272393836 0
# Node ID 0845adc5402e15a22827b0684ebff94c3e09a0ec
# Parent  9620449d26204047b82bf361608393892c591b63
Added support for F71889ED super I/O chips.

diff -r 9620449d2620 -r 0845adc5402e Hardware/LPC/Chip.cs
--- a/Hardware/LPC/Chip.cs	Tue Apr 27 07:31:46 2010 +0000
+++ b/Hardware/LPC/Chip.cs	Tue Apr 27 18:43:56 2010 +0000
@@ -24,7 +24,8 @@
     F71862 = 0x0601, 
     F71869 = 0x0814,
     F71882 = 0x0541,
-    F71889 = 0x0723 
+    F71889ED = 0x0909,
+    F71889F = 0x0723    
   }
 
 }
diff -r 9620449d2620 -r 0845adc5402e Hardware/LPC/F718XX.cs
--- a/Hardware/LPC/F718XX.cs	Tue Apr 27 07:31:46 2010 +0000
+++ b/Hardware/LPC/F718XX.cs	Tue Apr 27 18:43:56 2010 +0000
@@ -64,7 +64,7 @@
       WinRing0.WriteIoPortByte(
         (ushort)(address + ADDRESS_REGISTER_OFFSET), register);
       return WinRing0.ReadIoPortByte((ushort)(address + DATA_REGISTER_OFFSET));
-    }
+    } 
 
     public F718XX(Chip chip, ushort address) : base(chip) {
       this.address = address;
diff -r 9620449d2620 -r 0845adc5402e Hardware/LPC/LPCGroup.cs
--- a/Hardware/LPC/LPCGroup.cs	Tue Apr 27 07:31:46 2010 +0000
+++ b/Hardware/LPC/LPCGroup.cs	Tue Apr 27 18:43:56 2010 +0000
@@ -156,7 +156,7 @@
           case 0x07:
             switch (revision) {
               case 0x23:
-                chip = Chip.F71889;
+                chip = Chip.F71889F;
                 logicalDeviceNumber = FINTEK_HARDWARE_MONITOR_LDN;
                 break;              
             } break;
@@ -167,6 +167,13 @@
                 logicalDeviceNumber = FINTEK_HARDWARE_MONITOR_LDN;
                 break;              
             } break;
+          case 0x09:
+            switch (revision) {
+              case 0x09:
+                chip = Chip.F71889ED;
+                logicalDeviceNumber = FINTEK_HARDWARE_MONITOR_LDN;
+                break;              
+            } break;
           case 0x52:
             switch (revision) {
               case 0x17:
@@ -241,10 +248,7 @@
           Thread.Sleep(1);
           ushort verify = ReadWord(BASE_ADDRESS_REGISTER);
 
-          ushort vendorID = FINTEK_VENDOR_ID;
-          if (chip == Chip.F71858 || chip == Chip.F71862 || 
-            chip == Chip.F71882 || chip == Chip.F71889)
-            vendorID = ReadWord(FINTEK_VENDOR_ID_REGISTER);
+          ushort vendorID = ReadWord(FINTEK_VENDOR_ID_REGISTER);
 
           WinbondFintekExit();
 
@@ -288,9 +292,20 @@
               break;
             case Chip.F71858:
             case Chip.F71862:
+            case Chip.F71869:
             case Chip.F71882:
-            case Chip.F71889: 
-            case Chip.F71869:
+            case Chip.F71889ED:
+            case Chip.F71889F:
+              if (vendorID != FINTEK_VENDOR_ID) {
+                report.Append("Chip ID: 0x");
+                report.AppendLine(chip.ToString("X"));
+                report.Append("Chip revision: 0x");
+                report.AppendLine(revision.ToString("X"));
+                report.Append("Error: Invalid vendor ID 0x");
+                report.AppendLine(vendorID.ToString("X"));
+                report.AppendLine();
+                return;
+              }
               hardware.Add(new F718XX(chip, address));
               break;
             default: break;
diff -r 9620449d2620 -r 0845adc5402e Hardware/LPC/LPCHardware.cs
--- a/Hardware/LPC/LPCHardware.cs	Tue Apr 27 07:31:46 2010 +0000
+++ b/Hardware/LPC/LPCHardware.cs	Tue Apr 27 18:43:56 2010 +0000
@@ -55,7 +55,8 @@
         case Chip.F71862: name = "Fintek F71862"; break;
         case Chip.F71869: name = "Fintek F71869"; break;
         case Chip.F71882: name = "Fintek F71882"; break;
-        case Chip.F71889: name = "Fintek F71889"; break;
+        case Chip.F71889ED: name = "Fintek F71889ED"; break;
+        case Chip.F71889F: name = "Fintek F71889F"; break;
         case Chip.IT8712F: this.name = "ITE IT8712F"; break;
         case Chip.IT8716F: this.name = "ITE IT8716F"; break;
         case Chip.IT8718F: this.name = "ITE IT8718F"; break;
diff -r 9620449d2620 -r 0845adc5402e Hardware/Mainboard/SMBIOS.cs
--- a/Hardware/Mainboard/SMBIOS.cs	Tue Apr 27 07:31:46 2010 +0000
+++ b/Hardware/Mainboard/SMBIOS.cs	Tue Apr 27 18:43:56 2010 +0000
@@ -65,7 +65,7 @@
           raw = (byte[])mo["SMBiosData"];
           break;
         }
-      } catch (NotImplementedException) { } catch (ManagementException) { }
+      } catch { }      
 
       if (raw != null && raw.Length > 0) {
         int offset = 0;
diff -r 9620449d2620 -r 0845adc5402e Properties/AssemblyInfo.cs
--- a/Properties/AssemblyInfo.cs	Tue Apr 27 07:31:46 2010 +0000
+++ b/Properties/AssemblyInfo.cs	Tue Apr 27 18:43:56 2010 +0000
@@ -69,5 +69,5 @@
 // You can specify all the values or you can default the Build and Revision Numbers 
 // by using the '*' as shown below:
 // [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("0.1.31.0")]
-[assembly: AssemblyFileVersion("0.1.31.0")]
+[assembly: AssemblyVersion("0.1.32.0")]
+[assembly: AssemblyFileVersion("0.1.32.0")]