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) {