mirror of
https://github.com/ole00/afterburner.git
synced 2024-11-22 21:32:09 +00:00
Initial write support for GAL6001/GAL6002
This commit is contained in:
parent
bb8f67fe74
commit
78eb638c98
@ -1168,6 +1168,11 @@ void parsePes(char type) {
|
||||
case GAL16V8:
|
||||
case GAL20V8:
|
||||
erasetime=100;
|
||||
goto more;
|
||||
case GAL6001:
|
||||
case GAL6002:
|
||||
erasetime=50;
|
||||
more:
|
||||
switch(algo) {
|
||||
case 0:
|
||||
vpp = 63; // 15.75V
|
||||
@ -1828,6 +1833,60 @@ static void writeGalFuseMapV10(const unsigned char* cfgArray, char fillUesStart,
|
||||
}
|
||||
}
|
||||
|
||||
// fuse-map writing function for 600x GAL chips
|
||||
static void writeGalFuseMap600(const unsigned char* cfgArray) {
|
||||
unsigned short cfgAddr = galinfo[gal].cfgbase;
|
||||
unsigned char row, bit;
|
||||
unsigned short addr;
|
||||
|
||||
setRow(0);
|
||||
for (row = 0; row < 78; row++)
|
||||
{
|
||||
sendBits(20, 0);
|
||||
for (bit = 0; bit < 11; bit++)
|
||||
sendBit(getFuseBit(7296 + 78 * bit + row));
|
||||
for (bit = 0; bit < 64; bit++)
|
||||
sendBit(getFuseBit(114 * bit + row));
|
||||
sendBit(1);
|
||||
sendAddress(7, row);
|
||||
sendBits(16, 0);
|
||||
setSDIN(0);
|
||||
strobe(progtime);
|
||||
}
|
||||
for (row = 0; row < 64; row++)
|
||||
{
|
||||
for (bit = 0; bit < 20; bit++)
|
||||
sendBit(getFuseBit(78 + 114 * row + bit));
|
||||
sendBits(11, 0);
|
||||
for (bit = 0; bit < 64; bit++)
|
||||
sendBit(bit != row);
|
||||
sendBits(8, 0);
|
||||
for (bit = 0; bit < 16; bit++)
|
||||
sendBit(getFuseBit(98 + 114 * row + bit));
|
||||
setSDIN(0);
|
||||
strobe(progtime);
|
||||
}
|
||||
// UES
|
||||
sendBits(20, 0);
|
||||
addr = galinfo[gal].uesfuse;
|
||||
for (bit = 0; bit < 72; bit++)
|
||||
sendBit(getFuseBit(addr + bit));
|
||||
sendBits(3, 0);
|
||||
sendBit(1);
|
||||
sendAddress(7, galinfo[gal].uesrow);
|
||||
sendBits(16, 0);
|
||||
setSDIN(0);
|
||||
strobe(progtime);
|
||||
// CFG
|
||||
setRow(galinfo[gal].cfgrow);
|
||||
for (bit = 0; bit < galinfo[gal].cfgbits; bit++)
|
||||
{
|
||||
sendBit(getFuseBit(cfgAddr + cfgArray[bit]));
|
||||
}
|
||||
setSDIN(0);
|
||||
strobe(progtime);
|
||||
}
|
||||
|
||||
// main fuse-map writing function
|
||||
static void writeGal()
|
||||
{
|
||||
@ -1851,6 +1910,14 @@ static void writeGal()
|
||||
writeGalFuseMapV8(cfgV8AB);
|
||||
break;
|
||||
|
||||
case GAL6001:
|
||||
writeGalFuseMap600(cfg6001);
|
||||
break;
|
||||
|
||||
case GAL6002:
|
||||
writeGalFuseMap600(cfg6002);
|
||||
break;
|
||||
|
||||
case GAL20XV10:
|
||||
case GAL22V10:
|
||||
case ATF22V10B:
|
||||
|
Loading…
Reference in New Issue
Block a user