Hardware/LPC/LPCGroup.cs
changeset 60 0e62c377c08c
parent 54 f940fe2a7c2b
child 67 bb5696abab23
     1.1 --- a/Hardware/LPC/LPCGroup.cs	Sun Feb 21 21:41:22 2010 +0000
     1.2 +++ b/Hardware/LPC/LPCGroup.cs	Mon Feb 22 09:57:02 2010 +0000
     1.3 @@ -206,17 +206,24 @@
     1.4          if (chip != Chip.Unknown) {
     1.5  
     1.6            Select(logicalDeviceNumber);
     1.7 -          ushort address = ReadWord(BASE_ADDRESS_REGISTER);
     1.8 +          ushort address = ReadWord(BASE_ADDRESS_REGISTER);          
     1.9            Thread.Sleep(1);
    1.10            ushort verify = ReadWord(BASE_ADDRESS_REGISTER);
    1.11 -
    1.12 +          
    1.13            ushort vendorID = 0;
    1.14            if (chip == Chip.F71862 || chip == Chip.F71882 || chip == Chip.F71889)
    1.15              vendorID = ReadWord(FINTEK_VENDOR_ID_REGISTER);
    1.16  
    1.17            WinbondFintekExit();
    1.18  
    1.19 -          if (address != verify || address < 0x100 || (address & 0xF007) != 0)
    1.20 +          if (address != verify)
    1.21 +            return;
    1.22 +
    1.23 +          // some Fintek chips have address register offset 0x05 added already
    1.24 +          if ((address & 0x07) == 0x05)
    1.25 +            address &= 0xFFF8;
    1.26 +
    1.27 +          if (address < 0x100 || (address & 0xF007) != 0)
    1.28              return;
    1.29            
    1.30            switch (chip) {