Program to Uniflash :) Tu go masz i instrukcję też :) Powodzenia!
UniFlash version 1.33 documentation
-----------------------------------
(C) 2003 Rainbow Software (Ondrej Zary)
Original version by Pascal Van Leeuwen and Galkowski Adam
" Your program just saved the day for me!
I tried to use AWDFLASH.exe to flash my new Shuttle HOT-603 v2.0(AMD640)
with the new 603WWQ07.bin BIOS and it did! The only problem was that the
BIN file wasn't complete.
Evidently this destroyed the boot block too. I tried to restore the old
BIOS to that EEPROM on a HOT-565(430TX) with all the other flash
programs I could get my hands on to no avail. I was able to flash the
HOT-603's EEPROM to 565WIQ0E.bin and it worked just fine on the HOT-565
so I knew the chip it's self was still good. I finally gave up and
ordered a replacement chip this morning. This evening while surfing I
saw a reference to you'r program on http://ping.be and downloaded it.
With the 'Expert' mode I was able to properly flash the Winbond
W29EE011-15 chip on the HOT-565 for the HOT-603. "
- Jack Freeman
0.0 DISCLAIMER
-------------------------
THIS PROGRAM COMMUNICATES WITH THE CHIPSET AND FLASH ROM CHIP AT THE LOWEST
HARDWARE LEVEL. USING THIS PROGRAM MAY BE DANGEROUS TO YOUR COMPUTER'S BIOS.
THIS PROGRAM MAY CONTAIN BUGS AND MOST OF THE SUPPORTED HARDWARE IS UNTESTED.
YOU ARE USING IT AT YOUR OWN RISK:
NOBODY EXCEPT YOU IS RESPONSIBLE FOR ANY DAMAGE THIS PROGRAM MAY CAUSE !!!
0.1 COPYRIGHT and CO.
--------------------------------
This program is public domain. You may do whatever you want with it: copy it,
delete it, rip it, modify it, etc...
If you do something with it, it would be great if you credited us.
1.0 UniFlash? UNIFLASH??? What the HELL is it ??!!!
--------------------------------------------------------------
UniFlash is a flash program, used to write a new BIOS on your FLASH ROM Chip.
What's new there? , you may ask, there are already programs like this on
Internet made by BIG BRANDS like AMI, AWARD or MR. Well... there is only a
little difference: COMPLETE, WORKING SOURCE CODE IN PASCAL IS GIVEN FOR FREE!!
UniFlash is made to be universal - this can be useful when you're hot-flashing
your bios in another motherboard.
Another thing: this flasher is mainly destinated for fearless people and
experienced users. If it's your first adventure with flashing your BIOS, we
recommend you strongly using these brand flashers. You'll have to understand
we are just experienced computer users/programmers and we haven't materially
the possibility to test every routine and chips we haven't. That's the main
reason we release it. We hope people may help us in debugging and testing
routines.
NOTE by PvL: Brand name flashers have a tendency to be unstable (this is
especially true for AWDFLASH, which f*cked up my BIOS twice
so far, leaving me no other choice than to hot-flash) so if
you happen to be the lucky owner of one of the TESTED flash
chips I can really recommend using UNIFLASH instead ...
NOTE by Rainbow:
AWDFLASH IS REALLY BAD. When I was flashing BIOS on Abit SA6R, the verify
failed. I retried flashing about 20 times, then it succeeded. But motherboard
died after reboot. Luckily, after powering down and back up, BootBlock BIOS
worked and I was able to flash the BIOS correctly from there.
2.0 What hardware do I need for UniFlash ?
-----------------------------------------------------
Here's the minimum configuration you need to run UniFlash:
-At least a 386 (The whole thing works in flat real mode)
-RAM at least 2 times bigger than Flash ROM size, but less than 2GB
-MS DOS 4.0 and higher
-Known Flash ROM chip (see section 3.0)
-Supported chipset (see below) - note that all of them are PCI based
or c't Flasher 8-bit ISA card
,----------------------------------------------------------------------------,
| Don't forget to disable " Flash write protect " - either in system BIOS or |
| using a jumper on the motherboard. |
`----------------------------------------------------------------------------'
Here's a list of chipsets suported by Uniflash:
* means tested and functional,
# means tested, but doesn't work the way it should
unmarked chipsets are not tested
,----------------------------------------------------------------------------,
| Mfg | Chipset(s) | Comments |
`---------|----------------------|-------------------------------------------'
Intel |*Triton 430FX | No comments It works in 99% of cases
|*Triton II 430HX | 450 & 430LX/NX not tested
|*Triton II 430VX | 440GX and 440FX untested
|*Triton III 430TX |
|*Mobile 430MX |
| Natoma 440FX |
|*AGPSet 440LX/EX |
| 450KX/GX |
| Mecrucy 430LX |
| Neptune 430NX |
|*AGPSet 440BX/ZX |
| AGPSet 440GX |
|*i810 | i810 tested and works OK, others should too
| i810E |
| i810E2 |
| i815(P/G) |
| i815E(P/G) |
| i815EM |
| i820 |
| i820E |
| i830M(P/G) |
| i840 |
| i845 |
| i845E |
| i845G(E/L/V)/845PE |
| i845MP/MZ |
| i850(E) |
| i852GM/855GM |
| i855PM |
| i860 |
| i875P |
| E7205 |
| E7500 |
| E7501 |
| E7505 |
----------|----------------------|--------------------------------------------
VIA | Appollo Master |
| Apollo VP |
|*Apollo VPX |
|*Apollo VP2 |
| Apollo VP3 |
|*Apollo MVP3 |
| Apollo P6 |
| Apollo MVP4 | VIA chipsets are weird - some work, some
| Apollo Pro | don't.
|*Apollo Pro Plus/133 |
|*Apollo Pro 133A | If you have " Flash Write protect " in BIOS,
| Apollo ProMedia | disable it and it should work.
| Apollo Pro 133Z/PM133|
| Apollo KX133 |
|*Apollo KT133(A) |
| ProSavage KM133(A) |
|*Apollo KT266(A)/KT333|
| Apollo KT400(A) |
| Apollo Pro 266 |
| Apollo Pro 266T | These North Bridges are detected, but
| ProSavage P4M266 | aren't used in any VIA's chipset (??):
| P4X266(A)/P4X333/400 | VT8662, VT8615, VT8361, VT3133
----------|----------------------|--------------------------------------------
AMD |*AMD 640 (same as VIA | Works just fine
| Apollo VP2) |
| AMD 750 | UniFlash supports true AMD chipsets since
|#AMD 760 | version 1.20. Their registers are very
| AMD 760MP | similar to VIA. AMD 760 should work with
| AMD 760MPX | both VIA and AMD (does it really exist?)
| | south bridges.
----------|----------------------|--------------------------------------------
SiS |*85C496+497 | I got the datasheets, but not from SiS.
|#501/5101/5501 |
| 5511 |
| 5571 | To support 12 chipsets, I needed to write
|*5591/5592 | 5 different methods of enabling Flash ROM
| 5596 | write access. (The more code, the more
|*5597/5598/5581/5120 | bugs :-)
| 530 | All SiS South Bridges have the same
| 540 | device ID $0008 (SiS 540 and 630 can have
| 600 | either $0008 or $0018 - it can be
|*620 | configured(!!!) through registers.
|*630 |
| 635 |
| 640 | Boards with the new chipsets (540 and 630
| 645 | and up) have often ITE IT8705F LPC Super IO
| 645DX | (also called SiS 950 sometimes) which
| 648 | allows to use regular Flash ROM on LPC bus.
| 650 | It's tested and works.
| 651 |
| 655 |
| 730 |
| 733 |
|*735 |
| 740 |
| 745 |
| 746 |
| 748 |
| 755 |
----------|----------------------|--------------------------------------------
ALi |*FinALi 486 | FinALi has very weird Flash ROM access but
|*Aladdin | finally it works correctly.
| Aladdin III | & lt; - The 1st ALi Pentium chipset
| Aladdin IV/IV+ | All chipsets with M1533/M1543/M1535 South
|*Aladdin V | Bridge should work.
| Aladdin 7 |
|*Aladdin Pro/Pro II |
| Aladdin Pro III | Aladdin TNT2
| CyberBLADE Aladdin i1|
| Aladdin Pro IV |
|*ALiMAGiK 1 |
| Aladdin Pro 5(T/M) | Unlisted chipsets are not fully detected,
| Aladdin-P4 | but should work if they use M1533/43/35 or
| CyberAladdin-P4 | M1523 South Bridge.
----------|----------------------|--------------------------------------------
SMSC | VictoryBX-66 | i82443BX North Bridge with SMSC SLC90E66
| | South Bridge (UDMA-66 support)
| | Untested.
----------|----------------------|--------------------------------------------
Winbond/ | W83C553F South Bridge| I don't know if this one was ever used.
Symphony | Winbond W83697(H)F | LPC Super I/Os with Flash ROM support
Labs | Winbond W83697SF |
| Winbond W83697UF |
----------|----------------------|--------------------------------------------
ITE | IT8871F/2F and | Don't know where used, untested.
| IT8888F South Bridges| (No known chipset with these SBs)
|*IT8700F/8705F | LPC Super I/Os with Flash ROM support
| IT8710 | (used with SiS 540, SiS 630 and newer)
----------|----------------------|--------------------------------------------
Reliance/| ServerSet III LE | All chipsets with OSB4 South Bridge should
Server | ServerSet III HE | work. Untested.
Works | | I don't have any official info.
----------|----------------------|--------------------------------------------
National/| Vesuvius-LS | Never seen this one.
PicoPower| | Untested
----------|----------------------|--------------------------------------------
National/| Geode GX1 (MediaGX) | Supported with Geode CS5530(A) South Bridge
Cyrix | | (Cyrix CX5530(A))
----------|----------------------|--------------------------------------------
OPTi | Vendetta 82C750 | Not tested
----------|----------------------|--------------------------------------------
HiNT | VXPro-II | Used on some PC Chips boards (like M559)
| | I think that it's Utron UC85C501/502
| | Not tested
----------|----------------------|--------------------------------------------
UMC |*UM8881F+UM8886BF | Don't have any datasheets, tested and works
----------|----------------------|--------------------------------------------
Micron | Copperhead+Coppertail| Has no flash write protection. Untested
----------|----------------------|--------------------------------------------
Contaq/ | hyperCache | CY82C691+CY82C693(U/UB)
Cypress | 386/486 with PCI | CY82C596/597+CY82C599
----------|----------------------|--------------------------------------------
nVidia |*nForce | Tested and works
| nForce2 | nForce2 might not work
------------------------------------------------------------------------------
If your chipset is marked BXCel, VXPro, TXPro or something like that, it's a
relabelled chipset (ALi, SiS or VIA) on a PC Chips board, with the exception
of VXPro-II which is Utron.
The version 1.16d+ includes support for AMI's Flash Interface. It allows you
to flash even if you have an unknown chipset (new AMI WinBIOS is necessary to
use this feature). Starting from version 1.24, you must force using this mode,
if you want to use it by giving the -AMI parameter. This is neccessary because
it often doesn't work and hangs, preventing users from making BIOS backup.
2.1 Tested PCI cards
-------------------------------
* means tested and functional
# means tested, but doesn't work
Cards with no specific support in UniFlash:
* Adaptec 19160/29160N (AIC-7892B chip) - Winbond W29EE512
* Adaptec 39160
# AdvanSys ASB-3940UA
# ATI Rage Magnum AGP
# Matrox Millennium PCI
* SIIG SC-PE4612 IDE controller (HighPoint HPT366) - SST 39SF010
I need datasheets for the cards (chips) that do not work.
Cards with specific support in UniFlash:
3Dfx Banshee
Sundance Technology ST201
STMicroelectronics STE10/100(A)
Winbond W89C840AF
SMSC LAN83C175 EPIC/C
VIA VT6102
VT6105M Rhine III
Realtek RTL8129/30/39
RTL8139 series
RTL8169 series
ADMtek AL981 Comet
AN983(B/BL) Centaur (B)
AN985(B/BL) Centaur (B)
ADM9511 Centaur II
ADM9513 Centaur II
Adaptec AIC-6915
3.0 What flash chips are supported by UniFlash ?
-----------------------------------------------------------
UniFlash supports the following flash chips:
* means tested and functional,
# means tested, but doesn't work the way it should,
unmarked chips are not tested (note that a lot of chips are very similar to
one another though, so if one of them works then the rest should work fine
too)
,----------------------------------------------------------------------------,
| Flash ROM | Size |
`---------------------------------|------------------------------------------'
Alliance Semiconductor |
---------------------- |
AS29F040 | 512KB
AS29F002T | 256KB
AS29F002B | 256KB
AS29F200T | 256KB
AS29F200B | 256KB
AS29LV400T | 512KB
AS29LV400B | 512KB
AS29LV800T | 1024KB
AS29LV800B | 1024KB
----------------------------------|-------------------------------------------
AMD |
--- |
Am28F256 | 32KB
Am28F256A | 32KB
Am28F512 | 64KB
Am28F512A | 64KB
Am28F010 | 128KB
Am28F010A | 128KB
Am28F020 | 256KB
Am28F020A | 256KB
*Am29F010(A/B) | 128KB
*Am29F040(B) | 512KB
Am29F080(B) | 1024KB
Am29F016(B) | 2048KB
Am29F017B | 2048KB
Am29F032B | 4096KB
Am29F100T | 128KB
Am29F100B | 128KB
Am29F200AT/BT | 256KB
Am29F200AB/BB | 256KB
Am29F400AT/BT | 512KB
Am29F400AB/BB | 512KB
Am29F800(B)T | 1024KB
Am29F800(B)B | 1024KB
Am29F160DT | 2048KB
Am29F160DB | 2048KB
*Am29F002(N)(B)T | 256KB
Am29F002(N)(B)B | 256KB
Am29F004BT | 512KB
Am29F004BB | 512KB
Am29LV010B | 128KB
Am29LV040B | 512KB
Am29LV017B | 2048KB
Am29LV033C | 4096KB
Am29LV065D | 8192KB
Am29LV081B | 1024KB
Am29LV001BT | 128KB
Am29LV001BB | 128KB
Am29LV002(B)T | 256KB
Am29LV002(B)B | 256KB
Am29LV004(B)T | 512KB
Am29LV004(B)B | 512KB
Am29LV008(B)T | 1024KB
Am29LV008(B)B | 1024KB
Am29LV200(B)T | 256KB
Am29LV200(B)B | 256KB
Am29LV400(B)T | 512KB
Am29LV400(B)B | 512KB
Am29LV800BT | 1024KB
Am29LV800BB | 1024KB
Am29LV160BT/DT | 2048KB
Am29LV160BB/DB | 2048KB
Am29LV116BT | 2048KB
Am29LV116BB | 2048KB
Am29LV320DT | 4096KB
Am29LV320DB | 4096KB
Am29SL800CT | 1024KB
Am29SL800CB | 1024KB
Am29SL160CT | 2048KB
Am29SL160CB | 2048KB
Am29PL160CB | 2048KB
----------------------------------|-------------------------------------------
AMIC |
---- |
A29010 | 128KB
A29040 | 512KB
A29001(1)T | 128KB
A29001(1)B | 128KB
*A29002(1)T | 256KB
A29002(1)B | 256KB
A29400T | 512KB
A29400B | 512KB
----------------------------------|-------------------------------------------
ASD |
--- |
*AE29F1008 = Winbond W29EE011 | 128KB
*AE29F2008 = Winbond W29C020(C) | 256KB
----------------------------------|-------------------------------------------
Atmel |
----- |
AT29C256 or AT29C257 | 32KB
AT29C512 | 64KB
*AT29C010(A) | 128KB
AT29C020(A) | 256KB
AT29C040A | 512KB
AT29LV256 | 32KB
AT29LV512 | 64KB
AT29xV010(A) series | 128KB
AT29xV020 series | 256KB
AT29xV040A series | 512KB
AT49x512 series | 64KB
AT49x001(N)T series | 128KB
AT49x001(N) series | 128KB
*AT49x002(N)T series | 256KB
AT49x002(N) series | 256KB
AT49x008AT series | 1024KB
AT49x008(A) series | 1024KB
AT49x010 series | 128KB
AT49x020 series | 256KB
AT49x040 series | 512KB
AT49x080 series | 1024KB
AT49x080T series | 1024KB
AT49x4096(A) series | 512KB
AT49x8011T series | 1024KB
AT49x8011 series | 1024KB
AT49x160/161(4)T series | 2048KB
AT49x160/161(4) series | 2048KB
AT49BV320T/321T | 4096KB
AT49BV320/321 | 4096KB
----------------------------------|-------------------------------------------
Bright Microelectronics |
----------------------- |
BM29F040 = Hyundai HY29F040 | 512KB
BM29F400T = Hyundai HY29F400T | 512KB
BM29F400B = Hyundai HY29F400B | 512KB
----------------------------------|-------------------------------------------
Catalyst |
-------- |
CAT28F512 | 64KB
*CAT28F010 | 128KB
CAT28F015T | 192KB
CAT28F015B | 192KB
CAT28F020 | 256KB
*CAT28F001T | 128KB
*CAT28F001B | 128KB
CAT28F002T | 256KB
CAT28F002B | 256KB
CAT28F150T | 192KB
CAT28F150B | 192KB
CAT29F(N)002T | 256KB
CAT29F(N)002B | 256KB
----------------------------------|-------------------------------------------
EON |
--- |
EN29F040 | 512KB
EN29F080 | 1024KB
*EN29F002T | 256KB
EN29F002B | 256KB
EN29F800T | 1024KB
EN29F800B | 1024KB
----------------------------------|-------------------------------------------
Fujitsu |
------- |
MBM29F002TC | 256KB
MBM29F002BC | 256KB
MBM29F200TC | 256KB
MBM29F200BC | 256KB
MBM29F400TC | 512KB
MBM29F400BC | 512KB
MBM29F040C | 512KB
MBM29F033C | 4096KB
MBM29LV160TE | 2048KB
MBM29LV160BE | 2048KB
MBM29PL160TD | 2048KB
MBM29PL160BD | 2048KB
----------------------------------|-------------------------------------------
H.T. |
---- |
*M21561 = Macronix MX28F1000P | 128KB
*M21032T = Macronix MX28F1000P | 128KB
*M20271H = Macronix MX28F1000P | 128KB
----------------------------------|-------------------------------------------
Hyundai |
------- |
HY29F040 | 512KB
HY29F040A | 512KB
HY29F080 | 1024KB
HY29F002T | 256KB
HY29F002B | 256KB
HY29F400T | 512KB
HY29F400B | 512KB
HY29F800T | 1024KB
HY29F800B | 1024KB
HY29LV160T | 2048KB
HY29LV160B | 2048KB
----------------------------------|-------------------------------------------
IMT |
--- |
IM29F001T | 128KB
IM29F001B | 128KB
IM29F002T | 256KB
IM29F002B | 256KB
IM29F004T | 512KB
IM29F004B | 512KB
IM29LV004T | 512KB
IM29LV004B | 512KB
----------------------------------|-------------------------------------------
Intel |
----- |
28F256(A) | 32KB
28F512 | 64KB
*28F010 | 128KB
28F020 | 256KB
*28F001BX/BN-T | 128KB
28F001BX/BN-B | 128KB
28F002-T series | 256KB
28F002-B series | 256KB
#28F004-T series | 512KB
28F004-B series | 512KB
28F008-T series | 1024KB
28F008-B series | 1024KB
28F008SA | 1024KB
28F004Sx series | 512KB
28F008Sx series | 1024KB
28F016Sx series | 2048KB
28F016S5 | 2048KB
28F004B3-T | 512KB
28F004B3-B | 512KB
28F008B3-T | 1024KB
28F008B3-B | 1024KB
28F016B3-T | 2048KB
28F016B3-B | 2048KB
28F320J5 | 4096KB
28F320J3A | 4096KB
28F640J5 | 8192KB
28F640J3A | 8192KB
28F128J3A | 16384KB
*82802AB (Firmware Hub) | 512KB
82802AC (Firmware Hub) | 1024KB
----------------------------------|-------------------------------------------
ISSI |
---- |
IS28F010 | 128KB
IS28F020 | 256KB
----------------------------------|-------------------------------------------
Macronix |
-------- |
*MX28F1000 | 128KB
*MX28F1000P | 128KB
MX28F2000P | 256KB
MX28F2000T | 256KB
MX28F002T | 256KB
MX28F002B | 256KB
MX29F040 | 512KB
MX29F080 | 1024KB
MX29F016 | 2048KB
*MX29F001T | 128KB
*MX29F001B | 128KB
*MX29F002(N)T | 256KB
MX29F002(N)B | 256KB
MX29F022T | 256KB
MX29F022B | 256KB
MX29F004T | 512KB
MX29F004B | 512KB
MX29F100T | 128KB
MX29F100B | 128KB
MX29F200T | 256KB
MX29F200B | 256KB
MX29F400T | 512KB
MX29F400B | 512KB
MX29F800T | 1024KB
MX29F800B | 1024KB
MX29F1610A | 2048KB
MX29F1615 | 2048KB
MX29LV040 | 512KB
MX29LV081 | 128KB
MX29LV004T | 512KB
MX29LV004B | 512KB
MX29LV008T | 1024KB
MX29LV400T | 512KB
MX29LV400B | 512KB
MX29LV800T | 1024KB
MX29LV800B | 1024KB
MX29LV160T | 2048KB
MX29LV160B | 2048KB
MX29L1611 | 2048KB
MX29L1611G | 2048KB
MX29L3211 | 4096KB
----------------------------------|-------------------------------------------
Megawin |
------- |
MM29F040 = AMD Am29F040(B)/5V | 512KB
----------------------------------|-------------------------------------------
Micron |
------ |
MT28F004-T = Intel 28F004-T | 512KB
MT28F004-B = Intel 28F004-B | 512KB
MT28F400-T = Intel 28F400-T | 512KB
MT28F400-B = Intel 28F400-B | 512KB
MT28F008-T = Intel 28F008-T | 1024KB
MT28F008-B = Intel 28F008-B | 1024KB
MT28F800-T = Intel 28F800-T | 1024KB
MT28F800-B = Intel 28F800-B | 1024KB
----------------------------------|-------------------------------------------
Mosel Vitelic |
------------- |
V29C51000T | 64KB
V29C51000B | 64KB
V29C51001T | 128KB
V29C51001B | 128KB
V29C51002T | 256KB
V29C51002B | 256KB
V29C51004T | 512KB
V29C51004B | 512KB
V29C51400T | 512KB
V29C51400B | 512KB
V29LC51000 | 64KB
V29LC51001 | 128KB
V29LC51002 | 256KB
V29C31004T | 512KB
V29C31004B | 512KB
V29C31400T | 512KB
----------------------------------|-------------------------------------------
NexFlash Technologies |
--------------------- |
NX29F010 = AMD Am29F010 | 128KB
NX29F400B = AMD Am29F400B | 512KB
----------------------------------|-------------------------------------------
PMC |
--- |
Pm39LV512R | 64KB
Pm39LV010R | 128KB
Pm29F002T | 256KB
Pm29F002B | 256KB
Pm29F004T or Pm29LV104T | 512KB
Pm29F004B or Pm29LV104B | 512KB
Pm49FL002 | 256KB
Pm49FL004 | 512KB
Pm49FL008 | 1024KB
----------------------------------|-------------------------------------------
SST |
--- |
28EE010/011 | 128KB
29EE512 | 64KB
*29EE010 | 128KB
*29EE020 | 256KB
28x040(A) series | 512KB
29x512 series | 64KB
29x010 series | 128KB
29x020 series | 256KB
29SF512 | 64KB
29SF010 | 128KB
29SF020 | 256KB
29SF040 | 512KB
29VF512 | 64KB
29VF010 | 128KB
29VF020 | 256KB
29VF040 | 512KB
*49LF020 | 256KB
49LF030 | 384KB
49LF040 | 512KB
49LF080 | 1024KB
49LF002(A) (Firmware Hub) | 256KB
49LF003A (Firmware Hub) | 384KB
49LF004 (Firmware Hub) | 512KB
49LF004A (Firmware Hub) | 512KB
49LF008 (Firmware Hub) | 1024KB
49LF008A (Firmware Hub) | 1024KB
39SF512 | 64KB
39SF010(A) | 128KB
*39SF020(A) | 256KB
39SF040 | 512KB
39xF512 series | 64KB
39xF010 series | 128KB
*39xF020 series | 256KB
39xF040 series | 512KB
39xF080 series | 1024KB
39xF016 series | 2048KB
----------------------------------|-------------------------------------------
STMicroelectronics |
------------------ |
M28F256 | 32KB
M28F512 | 64KB
M28F101 | 128KB
M28F102 | 256KB
M28F201 | 256KB
M29F512B | 64KB
M29F010B | 128KB
M29F040(B) | 512KB
M29F080A | 1024KB
M29F016B | 2048KB
M29F002(B)(N)T | 256KB
M29F002(B)B | 256KB
M29F100(B)T | 128KB
M29F100(B)B | 128KB
M29F200(B)T | 256KB
M29F200(B)B | 256KB
M29F400(B)T | 512KB
M29F400(B)B | 512KB
M29F800AT | 1024KB
M29F800AB | 1024KB
M29F160BT | 2048KB
M29F160BB | 2048KB
M29W512B | 64KB
M29W010B | 128KB
M29W022BT | 256KB
M29W022BB | 256KB
M29W040(B) | 512KB
M29W200BT | 256KB
M29W200BB | 256KB
M29W400(B)T | 512KB
M29W400(B)B | 512KB
M29W800(A)T | 1024KB
M29W800(A)B | 1024KB
M29W160BB/DB | 2048KB
M29W004(B)T | 512KB
M29W004(B)B | 512KB
M29W008(A)T | 1024KB
M29W008(A)B | 1024KB
M50FW002 (FWH) | 256KB
M50LPW002 (LPC) | 256KB
M50FW040 (FWH) | 512KB
M50LPW040 (LPC) | 512KB
M50FW080 (FWH) | 1024KB
M50LPW080 (LPC) | 1024KB
----------------------------------|-------------------------------------------
SyncMOS |
------- |
F29C51001T = Mosel V29C51001T | 128KB
F29C51001B = Mosel V29C51001B | 128KB
#F29C51002T = Mosel V29C51002T | 256KB
F29C51002B = Mosel V29C51002B | 256KB
F29C51004T = Mosel V29C51004T | 512KB
F29C51004B = Mosel V29C51004B | 512KB
F29C31004T = Mosel V29C31004T | 512KB
F29C31004B = Mosel V29C31004B | 512KB
F29C31400T = Mosel V29C31400T | 512KB
----------------------------------|-------------------------------------------
Texas Instruments |
----------------- |
TMS29xF040 | 512KB
TMS28F002A-T = Intel 28F002-T | 256KB
TMS28F002A-B = Intel 28F002-B | 256KB
TMS28F200A-T = Intel 28F200-T | 256KB
TMS28F200A-B = Intel 28F200-B | 256KB
TMS28F200BZT = Intel 28F200-T | 256KB
TMS28F200BZB = Intel 28F200-B | 256KB
TMS28F400A-T = Intel 28F400-T | 512KB
TMS28F400A-B = Intel 28F400-B | 512KB
TMS28F400BZT = Intel 28F400-T | 512KB
TMS28F400BZB = Intel 28F400-B | 512KB
TMS28F004A-T = Intel 28F004-T | 512KB
TMS28F004A-B = Intel 28F004-B | 512KB
TMS28F008A-T = Intel 28F008-T | 1024KB
TMS28F008A-B = Intel 28F008-B | 1024KB
TMS28F800A-T = Intel 28F800-T | 1024KB
TMS28F800A-B = Intel 28F800-B | 1024KB
TMS28F010A/B = Intel 28F010 | 128KB
TMS28F020 = Intel 28F020 | 256KB
TMS28F512A = Intel 28F512 | 64KB
TMS29F002RT = AMD Am29F002T | 256KB
TMS29F002RB = AMD Am29F002B | 256KB
TMS29F008T = AMD Am29F800T | 1024KB
TMS29F008B = AMD Am29F800B | 1024KB
TMS29F010 = AMD Am29F010 | 128KB
TMS29F040 = AMD Am29F040 | 512KB
TMS29F400T = AMD Am29F400AT | 512KB
TMS29F400B = AMD Am29F400AB | 512KB
TMS29F800T = AMD Am29F800T | 1024KB
TMS29F800B = AMD Am29F800B | 1024KB
TMS29LF008T = AMD Am29LV008T | 1024KB
TMS29LF008B = AMD Am29LV008B | 1024KB
TMS29LF800T = AMD Am29LV800BT | 1024KB
TMS29LF800B = AMD Am29LV800BB | 1024KB
----------------------------------|-------------------------------------------
Winbond |
------- |
*W29x010/011/012 series | 128KB
*W29C020(C) | 256KB
W29C040 | 512KB
W29EE512 | 64KB
W39F010 | 128KB
W39L512 | 64KB
W39L010 | 128KB
W39L020 | 256KB
W39L040 | 512KB
W39V040FA (Firmware Hub) | 512KB
*W49F002U | 256KB
W49F020 | 256KB
W49V002(A) (LPC) | 256KB
W49V002F(A) (Firmware Hub) | 256KB
------------------------------------------------------------------------------
3.1 Flash ROM pinout and notes
-----------------------------------------
Some 12V Flash ROMs require 12V voltage not only to flash, but also to detect.
If you're trying to flash 12V chip, first check that you have 12V on the VPP
pin in the socket on motherboard. Flash write protect jumper usually removes
12V from this pin.
When some parts of the chip are write protected, 12V on VPP/RESET pin will
usually allow these protected parts to be flashed (unless the chip has N in
the name - e.g. MX29F002NT - this means that RESET pin is not connected).
Be sure that Flash ROM is inserted the correct way in the socket (key on the
chip must match with key on the socket) BEFORE powering up (if you're
hot-flashing, double check chip orientation before inserting it into socket).
Inserting it wrong way will DESTROY the chip - VCC will be swapped with GND
and if there's 12V on the VPP pin, it will be connected to Q3 data pin...
Flash ROM pinout (32-pin DIP):
_____KEY_____
VPP -| \_/ |- VCC VPP = Programming voltage (12V)
A16 -| |- #WE VCC = Operating voltage (5V)
A15 -| |- A17 GND = Ground
A12 -| |- A14 A0..A17 = Address input pins
A7 -| |- A13 Q0..Q7 = Data input/output pins
A6 -| |- A8 #WE = Write enable
A5 -| |- A9 #OE = Output enable
A4 -| |- A11 #CE = Chip enable
A3 -| |- #OE (# means active low signal)
A2 -| |- A10
A1 -| |- #CE Notes:
A0 -| |- Q7 - some chips have RESET instead of VPP
Q0 -| |- Q6 - this is 256KB chip
Q1 -| |- Q5 - 512KB chips have A18 instead of VPP
Q2 -| |- Q4 - 128KB chips have NC instead of A17
GND -|_____________|- Q3 - 64KB chips have NC instead of A17 & A16
4.0 Help! I don't understand the sources !!!
-------------------------------------------------------
If you have problems understanding something mail me (address at the end).
Have a look also on the ADDCHIP.FAQ file. It explains how to add new chips
plus some details.
5.0 ADVANCED submenu
-------------------------------
There's ADVANCED submenu in UniFlash, which contains possibly dangerous
functions. Since v1.33, flashing is done including bootblock by default. This
is less dangerous that flashing a new BIOS and leaving incompatible bootblock
from previous BIOS there. And more, the bootblock is not exactly defined
anywhere - some BIOSes might use bigger bootblock than other, which can cause
problems.
5.1 Making an emergency disk
---------------------------------------
It is always nice to have an emergency disk handy in case something goes
wrong. You see, most flash BIOS's incorporate something called a 'boot block'
and UNIFLASH will not normally overwrite it so it remains intact.
The boot block contains just enough code to boot up your computer with basic
peripheral support to enable you to flash in a working BIOS in case something
went wrong.
To make an emergency disk one would do the following:
-make a DOS (or Win95/Win98, NOT ANY OTHER) system disk using " format a: /S "
-copy uniflash to that disk
-copy a working bios image (preferably a backup that was made while the system
was still a-ok) to the disk
-make an AUTOEXEC.BAT containing:
@UNIFLASH -E & lt; name of BIOS image file & gt;
NOTE: Whatever you do, do *NOT* load HIMEM.SYS. The boot block lacks support
routines that HIMEM.SYS requires, resulting in very nice crashes.
And I know from experience ... !! In general, keep the boot disk as
clean as possible, remove drvspace.bin and dblspace.bin.
Make sure UNIFLASH and the BIOS image are on the disk as the boot block only
supports the floppy drive, you won't be able to access any harddrive !!
When you boot from this emergency disk the working BIOS image will
automatically (without any intervention by you) be flashed into the flash ROM
by UNIFLASH. This is very convenient as the boot block has no support for PCI
or AGP video cards, so you won't be able to SEE anything in the process unless
you replace your PCI videocard with an old ISA one (hint!). If you have
motherboard with i815(E) chipset and you're using onboard video, it will
probably not work in boot block mode (because graphics BIOS is stored in main
Flash ROM chip) - try to put an AGP card in (there are no ISA slots).
UNIFLASH will give you some audible feedback, though:
first short beep: UNIFLASH invoked, reading BIOS image
second short beep: done reading BIOS image, starting to flash
chime sound: done flashing, reset your system
long continuous beep: some error occured, press any key to retry operation
5.2 Command-line parameters
--------------------------------------
UNIFLASH [-H|-?|[-PCIROM [BUS DEV FUN]|-AMI|-BASE xxxxx|CTFLASH [xxx]]
[-E fname][-SAVE fname|-CHIPLIST|-FORCE xxxx][-REPAIR][-LOG][-MONO]
[-CMOSS fname][-CMOSR fname][-CMOSC]][-QUIT][-REBOOT]
-H or -? Shows this help screen
-E fname Flashes fname to Flash ROM with no prompts
-LOG Enables auto-logging to UNIFLASH.LOG
-MONO Use if you have problems with colors on monochrome monitor
-CTFLASH Flash ROM in c't Flasher 8-bit ISA card [xxx=port]
-PCIROM Flash ROM on a PCI card instead of system ROM
[BUS DEV FUN] Manually specify PCI device (decimal numbers)
-AMI Use AMI Flash Interface
-CHIPLIST Show list of supported flash chips with their numbers
-FORCE xxxx Force using routines for chip xxxx (4 hex digits)
-BASE xxxxx Set ROM Base to address xxxxx (at least 5 hex digits)
-REPAIR Repair erased chip ID (Winbond and SST chips)
-SAVE fname Write current bios image to file fname
-CMOSS/R fname Save/restore CMOS settings to/from file fname
-CMOSC Clears CMOS settings
-QUIT Quits (e.g. UNIFLASH -SAVE BACKUP.BIN -QUIT)
-REBOOT Reboot after flashing (use together with -E)
Parameters are executed in the same order as they are entered on the command
line - so you can use e.g. " uniflash -cmoss cmos.bak -cmosc " to save CMOS
settings to file called cmos.bak and then clear the CMOS.
Some parameters can't be used together - e.g. -AMI can't be used with -PCIROM.
-E: Flashes BIOS image from file fname including bootblock without
any user input
-LOG: Enables logging of all important events into file UNIFLASH.LOG. Use this
when you are sending bug reports and attach this file.
-CTFLASH: Selects ROM on c't Flasher 8-bit ISA card. This card supports
Flash ROMs up to 512KB. Port is autodetected or can be specified
manually as optional parameter (hex 200-3FC).
-PCIROM: Selects ROM on a PCI device instead of system ROM. Works only with
some cards. You can optionally specify the device you want to use.
(e.g. -PCIROM 0 3 1 = BUS 0, DEVICE 3, FUNCTION 1)
-AMI: Uses interface supported by some AMI BIOSes instead of detecting the
chipset and writing to chipset registers to disable write protection.
(I haven't seen this working anywhere yet...)
-CHIPLIST: Displays a list of supported chips with their IDs which are needed
for use with -FORCE parameter.
-FORCE: Disable Flash ROM autodetection and set chip type to the one specified
by following ID (4 hex digits) - see -CHIPLIST parameter.
-BASE: Set ROM base address manually and allow running without PCI bus.
Useful for memory-mapped flash programming cards with old systems.
-REPAIR: ID on some Winbond and SST chips can be changed which can cause the
chip not being recognized by any software (including BIOS - AMI BIOS
does not work in that chip, Award BIOS displays Unknown Flash Type).
This option can change the ID on these chips. Because UniFlash does
not know the correct ID, you must specify it using -FORCE parameter.
-SAVE: Save current BIOS to file fname.
-CMOSS: Save current CMOS settings to file fname. CMOS memory size is detected
automatically.
-CMOSR: Restore CMOS settings from file fname. CMOS memory size is detected
automatically.
-CMOSC: Clear CMOS memory.
6.0 How to support UniFlash?
---------------------------------------
If you want to help me in adding support for new chips, in testing the whole
thing or bugfixing, mail me, I'll put your name in credits at the end.
I want your opinions & experiences to make flashing BIOS an easy and safe
operation, where you doesn't need tons of flashers (if you multiply the
number of chipsets by the number of Flash ROM memories available, you'll
understand better what we're talking about).
7.0 Credits
---------------------------------------
Ondrej Zary (Rainbow Software) - Continues to develop this program after the
authors (below) stopped the development. Done all that is new after v1.17b.
Added tons of Flash ROMs and chipsets, fixed a lot of bugs, got datasheets
from ALi.
Pascal van Leeuwen - Made first design, chipset handling routines, a primitive
write function for SST, WINBOND and INTEL, added flat real mode, etc...
Improved SST & Winbond routines, made AMD routines work, added Atmel support,
added lots & lots of flash chips (of which most are currently untested ...)
Added reliability improvements (backup of old BIOS, verify after write)
Tested both Winbond & SST chips, became an expert at hot-flashing ;-)
Galkowski Adam - Initiated the UniFlash project, made modular structure, made
the current design, added functions handling DMI, PnP and bootblock, added
expert mode, made the previous crappy AMD support, wrote this doc, tested SST
routines, had multiple rendez-vous with " Award BootBlock BIOS " ,
advertised, etc...
8.0 How to contact me
--------------------------------
You can contact me (Rainbow Software) by:
web : http://www.uniflash.org - UniFlash ONLY
web : http://rainbow.ht.st
web : http://www.rainbow-software.org
(new versions should be at all the addresses above)
e-mail : rainbow@rainbow-software.org
When sending reports that something doesn't work, always send the log file!
9.0 Revision history
-------------------------------
1.33 -fixed reboot when running on QDI Titanium IB+ board
-no more flashing when file size is not correct
-added support for Winbond LPC Super I/O chips W83697(H)F,
W83697SF and W83697UF
-fixed problems with bootblock erasing on Atmel AT49x001(N)(T) and
AT49x002(N)(T) chips (bootblock can't be erased separately - & gt; chip
erase must be used)
-english-only - other languages are not compiled in the binary
release because the translations are outdated
-flash including bootblock by default, flashing without bootblock
is available from the advanced menu
-Restore backup CMOS data in CMOS menu now works
1.32 -added support for c't flasher 8-bit ISA card, autodetecting port
and memory base, supports Flash ROMs up to 512KB
-register contents in LOG file are now written as hex numbers
1.31 -added support for ALi Aladdin, the ALi's first Pentium chipset
(uses low E and F segments, disabling shadow during read access)
-if the south bridge is not found, the first device with no class
code is assumed to be south bridge (for old chipsets)
-fixed one line more cleared when changing drives in file browser
-modified chipset detection and identifying code to allow easier
implementation of support for new chipsets
-fixed error when opening files with read-only attribute set
-modified i8xx chipset code to support FWHs up to 4MB (32Mbit)
-added SiS 648, 651, 655, 733, 745, 746, 748, 755 chipsets
-added i845E, i845G(E/L/V)/845PE, i845MP/MZ, i852GM/855GM, i855PM,
i875P, E7205, E7501, E7505 chipsets
-added VIA Apollo KT333, KT400(A), Apollo Pro 266T, P4X400
-added ALi Aladdin 7, Aladdin Pro III (TNT2), CyberBLADE Aladdin i1,
Aladdin Pro 5(T/M), Aladdin-P4, CyberAladdin-P4
-modified multi-language code to save some memory by initializing
only the selected language (also reduced EXE file size)
-moved PCI card support into separate unit (PCICARDS.PAS) and added
specific support for these PCI network cards:
STMicroelectronics STE10/100(A), Winbond W89C840AF,
SMSC LAN83C175 EPIC/C, VIA VT6102, VT6105M Rhine III
Realtek RTL8129/30/39, RTL8139 series, RTL8169 series
ADMtek AL981 Comet, AN983,985(B/BL) Centaur (B),
ADM9511,9513 Centaur II, Adaptec AIC-6915
-added support for PMC Pm49FL002/004/008 FWHs/LPCs
1.30 -added timeouts to all program/erase routines so there should never
be any lockups, even if Flash ROM does not respond
-fixed incorrect ROM Base when no Flash ROM detected
-fixed (forced) displayed when chip was forced and then redetected
-graph color during flashing now represents the write status -
green means write OK, red means write failed (timeout/error)
-fixed GenPageProg and AtmelPageProg to avoid extra retries for
chips that do not support error bit - it slowed down flashing and
reduced chip life (nice to see how fast W29EE011 really is)
-added support for i82801DB ICH4
-added a question when flashing without bootblock and there's
bootblock mismatch allowing user to flash including bootblock
(to prevent users from killing the BIOS because of not reading
this manual...)
-removed PnP (ESCD) manipulation (DMI was removed some time ago),
it was very dangerous (no checks if there really is ESCD data -
easy way to kill the BIOS) and useless
-fixed a bug in -BASE parameter (thanks to Krystian Rozycki)
-fixed bug in protect/unprotect code for all FWHs that prevented
flashing from working
-added nVidia nForce support
1.29 -added some Winbond Flash ROMs: W39L512, W39F010, W39L010, W39L020,
W39L040, W39V040FA (FWH) and W49F020
-found old Catalyst datasheets - fixed CAT28F150T, added CAT28F015T
and CAT28F015B
-better PCI ROM flashing, added 3Dfx Banshee support
-added Micron Copperhead+Coppertail chipset detection (has no flash
write protection)
-added Contaq/Cypress hyperCache chipset (CY82C691+CY82C693(U/UB))
and 386/486 chipsets with PCI (CY82C599 required)
-changed i82378ZB SIO and i82379AB SIO.A detection (it has no class
code - now detected by vendor and device ID if 82434LX/NX present)
-fixed CMOS size detection detecting falsely 256b on some boards
-modified code to allow easier implementation of various flash
access methods (external progammers, PCI cards...)
-rewrote ALi FinALi support using these new methods (it was a lot
easier now)
-some cosmetic fixes (misaligned error messages, some german texts)
-fixed flashing on PC Chips M715 board (i440LX) with Award
BootBlock BIOS (GPO used for write protection)
-added VIA VT8235 south bridge support
-added STMicroelectronics M50LPW040, M50FW002 and M50LPW002 chips
-added unprotect for STMicroelectronics LPC and FWH chips
-found a way to unprotect Flash ROM on Abit BX133-RAID (GPO used),
might work on other Abit i440BX based boards too
BUT: Flashing failed with Winbond W49F002U - some cache problems?
1.28 -fixed -SAVE paramter (it was completely broken)
-display Chipset and Flash ROM when only -QUIT parameter specified
-fixed bug causing reset of ITE LPC Super I/Os (resulting in floppy
and COM & LPT ports not working until reboot)
-fixed Macronix chip detection
-fixed Atmel AT29Cxxx detection (again, it really works now)
-fixed Atmel programming routine (chip remained unprotected)
-fixed some SiS chipset support
-fixed Utron 128KB support (again)
-fixed showing SUCCESS when bootblock mismatch and user answered NO
-fixed the detection routine erased vendor and device IDs from some
Winbond and SST chips (detected properly once but then unknown,
BIOS displayed " Unknown Flash Type " message)
-added repair feature to repair the erased IDs (-repair parameter)
-added support for ALi FinALi 486 chipset
-enable/disable menu items after redetect with/without Flash ROM
-verify now shows unchanged areas
-removed $4B and $D5 IDs for Macronix MX28F1000P (they were there
because of the detection bug which is now fixed)
-added logging for north bridge methods
-added support for UMC UM8881F+UM8886BF chipset (no datasheets,
reverse engineering used)
-fixed hang when running under Award BootBlock BIOS with
uninitialized or absent graphics card
-added user friendly filename editing, default file names when
saving a file and file browser when opening a file (press ENTER on
the prompt, TAB to change drive)
-added I/O error checking for all file operations
-added -REBOOT patameter to reboot after flashing using -E
-added -BASE parameter to set ROM base address manually and allow
UniFlash to run without PCI bus
1.27 -added -MONO parameter for monochrome monitors
-enhanced -PCIROM functionality, you can now manually specify
a device by its BUS, DEVICE and FUNCTION numbers (decimal)
-fixed HiNT VXPro-II (Utron UC85C501/502) 128KB Flash ROMs
-added some VIA chipsets: ProSavage KM133(A), P4M266, P4X266(A)/333
-added real VIA VT8233 support
-fixed hang when EMM386.EXE is loaded (display error message now)
-success chime sound also in emergency mode
-fixed Atmel AT29Cxxx detection
-added ITE IT8700F/8705F and IT8710 LPC Super I/O detection with
SiS 540 and SiS 630 chipsets and all newer
-added some SiS chipsets : SiS 635, SiS 640, SiS 645, SiS 645DX,
SiS 650, SiS 730, SiS 735 and SiS 740 - I have no datasheets, but
SiS 735 is tested and works
-clear keyboard buffer before asking for file names and also on exit
-fixed memory de-allocation bug when HIMEM.SYS is loaded
1.26 -added Intel E7500 chipset with 82801CA (ICH3-S) I/O Controller Hub
-added some ALi chipsets: Aladdin III (M1521 and M1523(B)) and
Aladdin IV/IV+ (M1531(B))
-ALi FINALi 486 chipset (M1489) is not supported because it doesn't
map Flash ROM below 4GB
-added AMD 760MPX chipset with AMD-768 South Bridge
-added OPTi Vendetta 82C750 chipset (removed the old disabled code)
-added HiNT VXPro-II chipset (I think that it's Utron UC85C501/502,
because this one matches it and has programmable Mfg. & Device IDs)
-added -QUIT parameter - quits when processed, all comands after
will be ignored (useful use: " UNIFLASH -SAVE BACKUP.BIN -QUIT " )
-added German language support (by Gerald Bottcher)
-PCI-to-ISA posted write buffer is disabled on ALi chipsets during
flashing to fix problems with some Flash ROMs (e.g. EON)
-added unprotect for SST49LF002A/003A/004A/008A FWHs
1.25 -fixed crash in Windows on some machines - display error message
(thanks to Alejando Pelaez)
-pressing ESC in -chiplist will quit
-CMOS size in log
-added -CMOSS (Save CMOS), -CMOSR (Restore CMOS) and -CMOSC (Clear
CMOS) options (they work also in Windows)
-added support for 256b CMOS
-fixed CMOS support to save/restore/clear also bytes 15 and 16
-added ServerWorks ServerSet III LE and HE chipsets with Reliance
NB6536 & NB6635 North Bridges (without any info from ServerWorks)
-added National Semiconductor PicoPower Vesuvius-LS chipset
-added National Semiconductor Geode GX1 CPU with North Bridge
(Cyrix MediaGX) and CS5530(A) South Bridge (Cyrix CX5530(A))
1.24 -added support for some ALi chipsets: Aladdin Pro IV and ALiMAGiK 1
-fixed 256KB and 512KB support for ALi chipsets
-added VIA Apollo VP3 with VT82C596 South Bridge
-implemented Redetect Flash ROM function
-AMI Flash Interface is no longer automatically enabled to prevent
hangs. You must use " -ami " parameter to activate it.
-added two more IDs for Macronix MX28F1000P - $4B and $D5
-simplified detection routine - removed support for multiple Flash
ROMs and removed all 16-bit wide ROMs, cleaned up the code
-pressing Q in -chiplist will quit (like MORE.COM)
-fixed Macronix MX29F002(N)T slow erase bug
-added Reliance/ServerWorks OSB4 South Bridge
1.23 -added Italian language support (by Enrico Antongiovanni)
-added timeout to GenPageProgB and GenPageProgW (to prevent hangs
with boot block protection enabled on Winbond Flash ROMs)
-added auto-logging feature (-LOG parameter)
-added support for Intel 830MP and 845 chipsets
-new keyboard handler doesn't use BIOS - this allows UniFlash to
work correctly under Award BootBlock BIOS (tested)
-added simple help on the bottom of screen in menu
-added new program/erase routines for Winbond Sectored Flash ROMs
(may fix Winbond W29F002U?)
-tried to fix but still not fixed SiS 501/5101/5501 support
-some VIA reverse engineering (reserved registers seems to be used)
but new VIA/AMD chipsets still not working (if you have " Flash
Write Protect " option in BIOS, your chipset will work when you
disable it)
1.22 -added error messages: running under Windows, PCI bus not found
-fixed Flash ROM write protect enable/disable - fixed possible
chipset register corruption
-added new delay routine based on Time Stamp Counter (TSC), it's
used on all CPUs that supports TSC (Pentium+), old CPUs use the
old routine. This fixed all problems with slow performance on
fast computers
-modified waiting times for Page Write Flash ROMs (most of Atmel,
SST and Winbond Flash ROMs) to prevent lock-ups
-fixed i430MX South Bridge detection (thanks to Josh Little but he
paid hard for that - his notebook doesn't work anymore because
Intel 28F004-T support doesn't work)
-fixed a _VERY_ NASTY BUG in Bulk Erase/Need Blanking chip support
this one was there probably from the beginning of UniFlash and
actually caused the same byte to be flashed to entire chip...
This fixed almost all Bulk Erase/Need Blanking chips.
-Nils Emil P. Larsen tested these Bulk Erase/Need Blanking chips,
they're working CAT28F010, MX28F1000P, Intel 28F010 and also H.T.
M21561 (which is actually MX28F1000P)
-added support for Intel 860 chipset (Xeon) and ALi Aladdin V
-added support for 1MB Flash ROMs with VIA VT82C596(A|B) and
VT82C686(A) South Bridges
-doesn't exit when no Flash ROM detected in PCI Option ROM mode
-chiplist now pauses after each screen (no need for external more
program) but not when stdout is redirected
-fixed memory corruption when using -chiplist (thanks to Marusceac
Claudiu Florin)
-beep after successful flashing
-heavy menu modifications, removed expert and debug modes - they're
not needed anymore, add Home,PgUp/End,PgDown keys
-removed BIOS info (I haven't seen it working anywhere)
-added some Intel chips: 28F008-T series and 28F008-B series
-added STMicroelectronics Flash ROMs: M28F256, M28F512, M28F101,
M28F102, M28F201, M29F512B, M29F010B, M29F040(B), M29F080A,
M29F016B, M29F002(B)(N)T, M29F002(B)B, M29F100(B)T, M29F100(B)B,
M29F200(B)T, M29F200(B)B, M29F400(B)T, M29F400(B)B, M29F800AT,
M29F800AB, M29F160BT, M29F160BB, M29W512B, M29W010B, M29W022BT,
M29W022BB, M29W040(B), M29W200BT, M29W200BB, M29W400(B)T,
M29W400(B)B, M29W800(A)T, M29W800(A)B, M29W160BB/DB, M29W004(B)T,
M29W004(B)B, M29W008(A)T, M29W008(A)B, M50FW040 (FWH),
M50FW080 (FWH) and M50LPW080 (LPC)
-added Texas Instruments Flash ROMs: TMS28F210, TMS29xF040 and
info about the others into docs
-added Fujitsu Flash ROMs: MBM29F002TC, MBM29F002BC, MBM29F200TC,
MBM29F200BC, MBM29F400TC, MBM29F400BC, MBM29F040C, MBM29F033C,
MBM29LV160TE, MBM29LV160BE, MBM29PL160TD and MBM29PL160BD
-modified Mosel support for SyncMOS chips F29C31004B and F29C31400T
-fixed a bit PCI Option ROM enabling (for AGP cards), but flashing
still does not work (looks like writes to ROM are ignored - like
write protection, the Flash ROM is not responding to commands)
-simplified the detection routine (note: new one is still not done)
1.21 -added support for SiS chipsets: 85C496+497, 85C501/5101/5501,
5511, 5571,5591/5592, 5596, 5597/5598/5581/5120, 530, 540, 600,
620 and 630 (all untested). It's unbelievable, but they are using
5 (!) different methods to enable Flash ROM write and what's more,
all their south bridges have the same device ID - $0008 (SiS 540
and 630 can have either $0008 or $0018).
-added support for SMSC VictoryBX-66 chipset
-added support for Winbond/Symphony Labs W83C553F South Bridge
-added support for ITE South Bridges IT8871F/2F and IT8888F
-fixed Flash ROM detection - Device IDs can have even parity
-changed sector structure array - can now hold more sectors (upto
5*65535), 128b to 8MB each (see addchip.faq)
-added support for Alliance Semiconductor Flash ROMs: AS29F040,
AS29F002T, AS29F002B, AS29LV400T, AS29LV400B, AS29F200T,
AS29F200B, AS29LV800T and AS29LV800B
-added some AMD Flash ROMs: Am29LV001BT, Am29LV001BB, Am29LV010B,
Am29F004BT, Am29F004BB, Am29LV040B, Am29LV081B, Am29LV008(B)T,
Am29LV008(B)B, Am29LV800BT, Am29LV800BB, Am29SL800CT, Am29SL800CB,
Am29F016(B), Am29F017B, Am29LV017B, Am29LV116BT, Am29LV116BB,
Am29F160DT, Am29F160DB, Am29LV160BT/DT, Am29LV160BB/DB,
Am29SL160CT, Am29SL160CB, Am29PL160CB, Am29F032B, Am29LV033C,
Am29LV320DT, Am29LV320DB, Am29LV065D
-added some Atmel Flash ROMs: AT29LV512, AT49x512, AT49x010,
AT49x001(N)T, AT49x001(N), AT49x002(N)T, AT49x002(N),
AT49x2048(A), AT49x4096(A), AT49x008AT, AT49x8192(A)T,
AT49x8192(A), AT49x8011T, AT49x8011, AT49x160/161(4)T,
AT49x160/161(4), AT49BV320T/321T, AT49BV320/321
-added some Catalyst Flash ROMs: CAT28F010, CAT28F020, CAT28F102,
CAT28F512
-added EON Flash ROMs: EN29F040, EN29F080, EN29F800T, EN29F800B,
EN29F002T, EN29F002B
-added Hyundai Flash ROMs: HY29F002T, HY29F002B, HY29F040,
HY29F040A, HY29F080, HY29F400T, HY29F400B, HY29F800T, HY29F800B,
HY29LV160T, HY29LV160B
-added IMT Flash ROMs: IM29F001T, IM29F001B, IM29F002T, IM29F002B,
IM29F004T, IM29F004B, IM29LV004T, IM29LV004B
-added some Intel chips: 28F256A, 28F512, 28F004Sx, 28F008Sx,
28F008SA, 28F016Sx, 28F016S5/SA, 28F320J3A, 28F320J5, 28F640J3A,
28F640J5, 28F128J3A
-added ISSI (Integrated Silicon Solution) Flash ROMs: IS28F010 and
IS28F020
-removed Macronix MX28F1000PC and MX28F1000PPC (not existing)
-added some Macronix chips: MX28F2000P, MX28F2000T, MX29F100T,
MX29F100B, MX28F002T, MX28F002B, MX29F001T, MX29F001B,
MX29F002(N)T, MX29F002(N)B, MX29F022T, MX29F022B, MX29F200T,
MX29F200B, MX29F004T, MX29F004B, MX29F400T, MX29F400B, MX29LV004T,
MX29LV004B, MX29LV400T, MX29LV400B, MX29F040, MX29LV040, MX29F080,
MX29LV081, MX29F800T, MX29F800B, MX29LV008T, MX29LV800T,
MX29LV800B, MX29F016, MX29L1611, MX29L1611G, MX29F1610A,
MX29LV160T, MX29LV160B, MX29F1615, MX29L3211
-added Mosel Vitelic Flash ROMs:
V29C51000T, V29C51000B, V29C51001T, V29C51001B, V29C51002T,
V29C51002B, V29C51004T, V29C51004B, V29C51400T, V29C51400B,
V29C31004T, V29C31004B, V29LC51000, V29LC51001, V29LC51002
-added PMC Flash ROMs: Pm39LV512R, Pm39LV010R, Pm29F002T,
Pm29F002B, Pm29F004T/5V or Pm29LV104T, Pm29F004B or Pm29LV104B
-added some SST Flash ROMs: 29SF512, 29VF512, 29SF010, 29VF010,
29SF020, 29VF020, 29SF040, 29VF040, 39SF512, 39xF512, 39S010(A),
39xF010, 39SF020(A), 39xF020, 39SF040, 39xF040, 39xF080, 39xF016,
39xF200A, 39xF400A, 39xF800A, 39xF160, 49LF002(A), 49LF003A,
49LF004, 49LF004A, 49LF008, 49LF008A, 49LF020, 49LF030, 49LF040,
49LF080
-added some Winbond Flash ROMs: W29C040, W49F002U, W49V002(A),
W49V002F(A), W29F102 or W49F102, W49L102, W49F201, W49L201
-some code size optimizations
1.20 -added support for these AMIC chips: A29001(1)T, A29001(1)B,
A29010, A29002(1)T, A29002(1)B, A29400T, A29400B and A29040
They're all sectored and use AMD commands.
(For Matt Choudoir's broken ABIT KT7A with AMIC A29002T)
A29002(1)T tested and works correctly, others are untested.
-added support for newer VIA chipsets (all untested)
Apollo MVP4, Apollo Pro, Apollo Pro Plus/133/133A,
Apollo ProMedia, Apollo Pro 133Z/PM133, Apollo KX133,
Apollo KT133(A), Apollo KT266, Apollo Pro 266.
North Bridges: VT8501, VT82C691/693(A)/694X, VT82C693(A), VT8601,
VT8605, VT8371, VT8363(A), VT8366, VT8633
South Bridges: VT82C686(A), VT8231, VT8233 (last two may or may
not work because I don't have datasheets).
Plus some north bridges that aren't used anywhere (but are in
VIA's INF file) - VT8653, VT8662, VT8615, VT8361, VT3133.
-added support for AMD 750, 760 and 760MP chipsets (751,761 and
762 north bridges, 756 and 766 south bridges). Registers are
almost same as VIA. Untested.
1.19 -added support for Intel 8xx chipsets (Hub Architecture):
i810, 810E, 810E2, 815, 815E(P), 815EM, 820, 820E, 840, 850
with these I/O controller hubs:
82801AA(ICH), 82801AB(ICH0), 82801BA(ICH2), 82801BAM(ICH2-M)
(they're all not tested)
-fixed ALi chipset detection
-M1543 now support 512KB ROMs, but only some revisions of this chip
can really support them (and according to ALi, there is no
software way to detect that)
1.18 -I (Rainbow Software) am continuing the development of this program
after it was abandoned for two years
-added support for i440BX/ZX and i440GX chipsets
-added support for ALi M1543 south bridge and ALi M1621 north
bridge (ALi Aladdin Pro II chipset)
-added some info about ASD chips into this DOC
-added support for Intel 82802AB(4Mb)/AC(8Mb)Firmware Hubs
-added support for Atmel AT49F002(N)T chip
1.17b -fixed a bug in the -FORCE option, should work now
-still having trouble correctly detecting flash chips, we can use
all the input we can get on which chips are and aren't correctly
identified by UNIFLASH !
1.17 -pre-1.20 release because of some important fixes, still working
on some things we promised for 1.20, though
-fixed flashing problems with Macronix & AMD chips
-Integrated English & French version into one executable to avoid
having to keep 2 versions synchronized
-Cleaned up chipset detection
-known bugs: chip detection still not 100% accurate
(we're working on it, this will be fixed in v1.20)
1.16d -Added AMI Flash Interface support
-Added the " Additional BIOS Info " option
-Added the Macronix MXIC 28F1000PPC/12V chip
(not officially released by Adam's request)
1.16c -Made the detection routine more accurate
1.16b -Removed some (debugging?) code that messed up detection
1.16 -Fixed a stupid bug in the chip detection part, which made it
impossible to identify Atmel chips, for example.
-Tried to add TI chips and after long hours of work and of
downloading datasheets figured out that TI chips are just
" remarked " AMD & Intel chips (the same Mfg & Id numbers), so TI
chips will be recognised as AMD or Intel ones.
-Made the source code clearer. Wrote a FAQ explaining how to add
your own chips.
-Added the Intel 28F010/12V and 28F020/12V chips
-Translation of the whole thing to french. The english 1.16 version
equals french 1.00FRENCH version
1.15 -Fixed problems with AMD flash chips
-Added VIA 82C570 chipset support
-Tested Intel 28F001BX-T/28F001BN-T support
TO DO before final release of V1.15: fix extended memory detection,
does not work ok on a friends' system ...
1.14 -Added Macronix support
-Added SST 28EE011 flash chip
-Added AMD Am28F010, Am28F010A, Am28F020, Am28F020A, Am28F256
Am28F256A, Am28F512 and Am28F512A flash chips
-Removed valid PCI ROM check so it is possible to flash a ROM on a
PCI card that does not (yet) contain a valid ROM
-Added some safety stuff:
-cache disabled during flashing (having the cache enabled seems to
be a problem with some Cyrix chips (or chip/chipset combo's ?))
-interrupts now fully disabled during actual communication with
the flash chip for increased reliability
-added multiple flash chips/single ROM image support (experimental)
1.13 -Added Catalyst support
-Added OPTi chipset support (for 82C750 'Vendetta')
-Added Intel 28F400/28F004 flash chips
-Completely rewrote PCI option ROM support (still experimental)
1.12 -Fixed problem ID-ing Intel chips (oops)
-Made first attempt at supporting PCI option ROMS (experimental)
1.11 -Added Atmel support
1.1 -Fixed memory allocation bug with sectored (Intel,AMD) flash ROM
chips
-Added VIA chipset support
1.0 -First public release
9.1 KNOWN BUGS
-------------------------
- Intel 28F004-T doesn't work
- PCI Option ROM Flashing (-pcirom parameter) doesn't work on many cards
- 256KB BIOSes don't work on some i430VX/HX boards (AWDFLASH works!)
- Winbond W49F002U doesn't work - looks like write protected (sometimes???)
- Some VIA and AMD chipsets don't work - maybe because of non-standard flash
write protection on some boards.
- Garbage on screen instead of flashing - on Asus P5A board with Aladdin V
and 256K Flash ROM, but it works OK on Micronics C200 (same chipset and
128K Flash ROM). On PC Partner VIB8x4DS board with VIA Apollo VPX, UniFlash
flashes the SyncMOS F29C51002T chip OK but then hangs with garbage on
screen. This problem appears to be associated with SyncMOS Flash ROMs only.
- Many Abit boards do not work - looks like undocumented write protection
9.2 What's missing
-----------------------------
- Boot Block on Winbond W29C020 can be flashed even if the Boot Block
protection is enabled on the chip - AMIFLASH v8.15.02 can do it but
UniFlash can't (I don't know how to do it)
- Support for ServerWorks, UMC, new VIA and new SiS chipsets because
datasheets are unavailable (these companies are simply ignoring e-mails)
I can't do much with only " unofficial " info.
- Support for some exotic Flash ROMs like Intel 82802AA 2mbit Firmware Hub or
Bright BM29FS040 (no datasheets available)
10.0 Compatibility tests
----------------------------------
Here is a list of tested & working motherboards/Flash ROM chip combinations.
Manufacturer | Model + revision | Chipset | Flash ROM chip used
---------------------------------------------------------------------------
ASUSTeK | T2P4 rev 2 & 3.10 | Intel 430HX | SST 29EE010/5V
Expertboard | 8661 | Intel 430VX | Winbond W29EE011/5V
Soyo | 5TA2 | Intel 430FX | SST 29EE010/5V
Shuttle | Hot-569 | Intel 430TX | Atmel AT29C010A/5V
Shuttle | Hot-565 | Intel 430TX | Winbond W29EE011/5V
Shuttle | Hot-603 | AMD 640 | Winbond W29EE011/5V
ASUSTeK | P2B rev 1.10 | Intel 440BX | Winbond W29EE011/5V
PC Chips | M726 v3.4A | Aladdin Pro 2 | ASD AE29F1008/5V
Abit | BX6 rev. 2 | Intel 440BX | AMIC A29002T/5V
MicroStar MSI | MS-5120 ver 1 | Intel 430FX | Winbond W29EE011/5V
Abit | BE6-R2 | Intel 440BX | Winbond W29C020/5V
DFI | P2-XLX | Intel 440LX | Winbond W29EE011/5V
FIC | PT-2006 | Intel 430VX | Intel 28F001/12V
PC Chips | M726 v3.4A | Aladdin Pro 2 | Winbond W29C020/5V
Abit | BX6-R2 | Intel 440BX | Winbond W29EE011/5V
Abit | BX6-R2 | Intel 440BX | Winbond W29C020(C)/5V
Abit | BX6-R2 | Intel 440BX | SST 29EE010/5V
Abit | BX6-R2 | Intel 440BX | CAT28F010/12V
Abit | BX6-R2 | Intel 440BX | Macronix MX28F1000P/12V
Abit | BX6-R2 | Intel 440BX | Intel 28F010/12V
AOpen | AP5C/P | Intel 430FX | SST29EE010/5V
Gigabyte | GA586SG | SiS 5591+5595 | Atmel AT29C010A/5V
Chaintech | 5IFM0 | Intel 430HX | Macronix MX29F001B/5V
ASUSTeK | P2B rev 1.10 | Intel 440BX | Atmel AT49F002T/5V
Micronics | C200 | Aladdin V | SST 29EE010/5V
MicroStar MSI | MS-5120 ver 1 | Intel 430FX | SST 29EE010/5V
MicroStar MSI | MS-5120 ver 1 | Intel 430FX | Macronix MX28F1000P/12V
MicroStar MSI | MS-5120 ver 1 | Intel 430FX | H.T. M21032T/12V
PC Chips | M726 v3.4A | Aladdin Pro 2 | Macronix MX29F002(N)T/5V
PC Chips | M726 v3.4A | Aladdin Pro 2 | EON EN29F002NT/5V
Mercury/Kobian| KOB 694X FSX r1.0 | ApolloPro 133A| SST 39VF020/3V (PLCC32)
QDI | LegendX | Intel 440LX | Winbond W29C020(C)/5V
PC Chips | M741LMRT | SiS 620+5595 | SST 29EE010/5V
PC Partner | VIB8x4DS | Apollo VPX | SyncMOS F29C51002T/5V
Soyo | 5EMA+ v1.1 | Apollo MVP3 | Macronix MX29F001T/5V
LuckyStar | K7VAT+ | Apollo KT133 | Winbond W29EE011/5V
LuckyStar | K7VAT+ | Apollo KT133 | Winbond W29C020(C)/5V
LuckyStar | K7VAT+ | Apollo KT133 | SST 39SF020(A)/5V
Chaintech | 7AIA5 | Apollo KT133A | Winbond W49F002U/5V
PC Chips | M571 | SiS 5598 | Winbond W29EE011/5V
PC Partner | P5VB3+ Rev. B | Apollo MVP3 | AMD Am29F010A/5V
Mercury/Kobian| KOB 630E FSFx r1.1| SiS630+IT8705F| EON EN29F002T/5V
ECS | K7S5A | SiS735+IT8705F| Winbond W49F002U/5V
PowerTech | MB532 v1.0 | Intel 430FX | SST 29EE010/5V
Matsonic | MS6260S rev.1.6A | Aladdin V | ASD AE29F1008/5V
PC Partner | TXB820DS | Intel 430TX | Atmel AT29C010A/5V
PC Chips | M570 v1.3 | SiS 5591+5595 | Atmel AT29C010A/5V
Gemlight/DTK | GMB-P57IPS-V1 | Intel 430TX | Winbond W29EE011/5V
PC Chips | M918 V1.2A | FinALi 486 | H.T. M21032T/12V
PC Chips | M918 V1.2A | FinALi 486 | Macronix MX28F1000P/12V
PC Chips | M918 V1.2A | FinALi 486 | Winbond W29EE011/5V
PC Chips | M918 V1.2A | FinALi 486 | Atmel AT29C010A/5V
GVC/BCM | FR500 | SiS 5598 | AMD Am29F002(N)(B)T/5V
Asus | A7V266-E | Apollo KT266A | SST 49LF020/3V
PC Chips | M537DMA | Apollo VPX | H.T. M20271H/12V
QDI | BrillianX 1 | Intel 440BX | SST 29EE020/5V
ECS(?) | TD-4IP-UMC-AIO | UM8881F+8886BF| Winbond W29EE011/5V
PC Chips | M919 V3.4B/F | UM8881F+8886BF| Macronix MX28F1000P/12V
PC Chips | M919 V3.4B/F | UM8881F+8886BF| Winbond W29EE011/5V
PC Chips | M715 V1.2A | Intel 440LX | ASD AE29F1008/5V
Zida | 4DPS | SiS 85C496+497| SST 29EE010/5V
PC Chips | M571LMR v5.0 | SiS 5598 | Macronix MX29F001T/5V
Iwill | P55A2 v1.0 | Intel 430FX | Intel 28F001BX/BN-T/12V
Asus | P2B-F | Intel 440BX | Winbond W29C020(C)/5V
QDI | WinneX 2 P6I810/W2| Intel 810 | Intel 82802AB/3.3V
Asus | P5A Rev 1.04 | ALi Aladdin V | SST 39SF020(A)/5V
AOpen | AP43 | SiS 85C496+497| SST 29EE010/5V
FIC | PT-2006 v2.2 | Intel 430VX | Winbond W29C020(C)/5V
FIC | PT-2006 v2.2 | Intel 430VX | H.T. M38705/12V
MicroStar MSI | MS-5120 ver 1 | Intel 430FX | Macronix MX28F1000/12V
PC Chips | Unknown Socket 4 | ALi Aladdin | ASD AE29F1008/5V
PC Chips | Unknown Socket 4 | ALi Aladdin | Macronix MX28F1000/12V
c't Flasher | 8-bit ISA card | | AMD Am29F040B/5V
c't Flasher | 8-bit ISA card | | Catalyst CAT28F010/12V
c't Flasher | 8-bit ISA card | | Intel 28F001BX/BN-T/12V
QDI | Titanium IB+ 1.0 | Intel 430TX | SST 29EE010/5V
QDI | KinetiZ 7B 1.0 | Apollo KT133 | SST 39SF020(A)/5V
QDI | Advance 3 1.0 | Apollo MVP3 | SST 29EE020/5V
QDI | BrillianX 9 2.0 | Intel 440BX | Winbond W29C020(C)/5V
11.0 Beta testing stuff
----------------------------------
We would like to extend our thanx to the following people who've been
very helpful with beta testing this program.
NOTE: YOU can be on this list too! All you have to do is send
information on a system where UNIFLASH doesn't work and help with
getting it to work on that system.
Please help us in making UNIFLASH the universal and reliable tool we had
in mind when we started this project. Thanx in advance!
The heroes gallery (random order)
---------------------------------
Enrico Antongiovanni
Wim Bervoets
Michael L. Croswell
Polyvios Simopoulos
Matthias David Siebler
Matt Choudoir
Nils Emil P. Larsen (really big thanks)
Josh Little
Tom Wiener
Dennis Schulz (BIG thanks - provided 5 chips and wanted only
one of them back!)
Miha Ovcak
Alejando Pelaez
RusH
David Russell
Highlander
Kuzvesov
Spec
Ernst Ahlers (c't Flasher author)
12.0 Biz support
---------------------------
We would like to thank the following people at the various flash ROM
and chipset manufacturers for their support (in random order):
Scotts Chen at Macronix International Co., Ltd.
Darlene Browne at Acer Laboratories, Inc., (USA), Administrator
Niel Smith, Application Engineering Manager, ALI USA
Henry Ho at Macronix International Co., Ltd.
Michael Solinas at Silicon Storage Technology, Inc. (SST), USA
Phillip Chang at Megawin Technology Co., Ltd.
Christopher Emerson and David Chu at Cypress Semiconductor Corp.
Thanks goes to Intel - all datasheets are freely available on their web page
upon release of new hardware. Guess why are Intel chipset the most compatible.
The companies in the list below should take this as an example of developer
support.
I would like NOT to THANK TO following COMPANIES for providing NO SUPPORT
for independent developers and NOT REPLYING TO E-MAILS:
Silicon Integrated Systems (SiS)
United Microelectronics Corporation (UMC)
ServerWorks
NVIDIA Corporation
I finally got some real e-mail from VIA, but only bad news:
" At this time, datasheets are only available to manufacturers under non
disclosure agreement who have a genuine application they are developing. This
policy is currently under review but at this time I cannot provide the
datasheets to you. "
============================== END OF DOCUMENT ===============================
PROCEDURE FOR RECOVERING A CORRUPT BIOS CHIP
By David Oakley
Amptron International Inc.
(Revised May 24, 2001)
INTRODUCTION TO BOOTBLOCK BIOS
Most BIOS code used today is called ‘BOOT BLOCK’ BIOS. A BOOT BLOCK type BIOS is
different from previous BIOS types in that it is divided into two distinct sections. The first section
of the BIOS is the BOOT BLOCK (hence the name). The BOOT BLOCK uses the first 24k of the
ROM and contains information necessary to initialize only critical system devices such as the
processor, memory and some ISA video cards as well as the floppy drive. The BIOS BOOT
BLOCK is a write protected area and cannot be over written by a BIOS flash utility without using a
special command line switch.
The second section is the SYSTEM BLOCK. The SYSTEM BLOCK is 232k in size and contains
the information necessary to initialize all other system devices such as the video system, input
devices, storage devices, COM ports and peripherals and performs the Power On Self Test. The
SYSTEM BLOCK constitutes the bulk of the ROM.
The illustration above depicts a standard 2Mb (256k) BIOS chip. Older BIOS chips may be only
1Mb (128k). The 1Mb BIOS chips are not BOOT BLOCK BIOS and therefore cannot be
recovered in the same way. If you have a 1Mb BIOS chip and your BIOS is corrupt then you will
need to reprogram the chip using the ‘Hot-Swapping’ method, or an EEPROM programmer.
UPDATING (FLASHING) YOUR BIOS
The process of updating your BIOS is called flashing. Because the type of ROM chip used is a
Flash EEPROM. To update your BIOS you use a utility called a BIOS Flash utility. When you
flash your BIOS the flash utility performs the following steps.
•
•
•
•
•
•
•
•
E
? nters Protected Mode by loading the DOS 4G Protected Mode drivers
Identifies the flash part (the BIOS chip)
?
Identifies the flash part size and programming voltage
?
Identifies the motherboard chipset
?
V
? erifies the BIOS checksums (make sure that the BIOS file is correct)
E
? rases the BIOS SYSTEM BLOCK (write over the data with all 0’s)
R
? ewrites the SYSTEM BLOCK with the new BIOS file
L
?oads CMOS defaults and reboots the computer
UPDATING (FLASHING) YOUR BIOS (Cont.)
If an error occurs within the first five steps of the flash process then an error message will be
displayed and the flash process will be aborted. Unfortunately if an error occurs after the flash
utility has erased the SYSTEM BLOCK then the computer will be disabled. The system power
will come on, but the system will not startup as it normally does and you may or may not see
anything on the screen. If your system has an AWARD BIOS you may see an error message on
the screen that says.
AWARD BootBlock BIOS v1.0
CMOS Checksum Error
At this point the system will attempt to boot from a floppy disk. You will be able to boot from a
bootable floppy, but without the BIOS SYSTEM BLOCK you can’t do much else.
METHODS OF RECOVERING A CORRUPT BIOS CHIP
There are four options available if your BIOS has become corrupt:
1)
2)
3)
4)
Use the BootBlock function of the BIOS to reprogram the BIOS ROM.
Use a method called ‘Hot-Swapping’ to reprogram the BIOS ROM.
Remove the BIOS ROM and manually reprogram it on an EEPROM programmer.
Purchase a replacement BIOS from the motherboard manufacturer.
This paper was written to aid you in reprogramming your BIOS using either of the first two
methods. If you are not comfortable or able to recover your BIOS using either of these methods
then it would be best to purchase a replacement BIOS chip from the motherboard’s manufacturer.
DIFFERENT BIOS DISTRIBUTIONS
There are two primary BIOS distributions used today they are AWARD, written by AWARD
Software and AMI, which is written by American Megatrends International. The methods used to
recovery your BIOS is different for each BIOS distribution, so it is crucial that your know which
BIOS distribution you have.
To determine which BIOS distribution you have you can either read the sticker that has been
placed on top of your BIOS chip, consult the user’s manual, or contact the motherboard
manufacturer. I will elaborate on each of these methods below.
IDENTIFYING YOUR MOTHERBOARDS BIOS DISTRIBUTION
The quickest way to identify which BIOS distribution your motherboard uses when you cannot
boot the computer is to read the manufacturers sticker on the BIOS chip itself, however not all
manufacturers label their BIOS chips. To do this you must first locate the BIOS chip on the
motherboard.
Currently there are two popular BIOS chip package types in use; 32-pin DIP (Dual In-line
Package) and 28-pin PLCC (Plastic Leaded Chip Carrier). The most common is the 32-pin DIP
type so this is what you should look for first. The DIP package type chip is a rectangular black
IDENTIFYING YOUR MOTHERBOARDS BIOS DISTRIBUTION (Cont.)
silicon chip with a row 16-pins along each of the longer sides of the chip. The PLCC chips are
smaller square chips that are closely fitted into a plastic socket on the motherboard. The PLCC
type chips have a total of 28 pins, which are inline on all sides of the chip and one of the corner of
the chip is at a 45° angle.
The illustration below is a larger than normal diagram of what each chip looks like.
( This illustration is not to scale )
The motherboard manufacturer usually places a sticker on top of the BIOS chip, which specifies
the BIOS distribution. The sticker will either say AWARD! or AMI.
Another easy way to identify your BIOS is by checking the user’s manual. The manual does not
generally mention the type of BIOS you have, but in most cases it will include screen shots
(pictures) of the BIOS Setup Utility, which shows the BIOS name at the top. In your manual there
should be a section that discusses how to setup your BIOS. Read the BIOS setup section and
pay close attention to the illustrations. The following is an example of information taken from a
screen shot in a motherboard user’s manual.
AMIBIOS SIMPLE SETUP UTILITY – VERSION 1.20
©1998 American Megatrends, Inc. All Rights Reserved
This motherboard obviously uses AMI BIOS.
The third and final way to identify your BIOS is to call the motherboard manufacturer and ask.
This is often a pretty simple approach, but it is not uncommon for motherboards of the same
model to use different BIOS distributions.
RECOVERING A CORRUPT AMI BOOTBLOCK BIOS
With motherboards that use BOOT BLOCK BIOS it is possible to recover a corrupted BIOS by
reprogramming it from a floppy diskette as long as the BOOT BLOCK section of the BIOS
remains unmodified. When a system with an AMI BIOS has a corrupt BIOS the system will
appear to start, but nothing will appear on the screen, the floppy drive light will come on and the
system will access the floppy drive repeatedly.
AMI has integrated a recovery routine into the BOOT BLOCK of the BIOS, which in the event the
BIOS becomes corrupt can be used to restore it. The routine is called when the SYSTEM BLOCK
of the BIOS is empty. The restore routine will access the floppy drive searching for a BIOS ROM
file named AMIBOOT.ROM, (this is why the floppy drive light comes on and the drive spins.) If the
RECOVERING A CORRUPT AMI BOOTBLOCK BIOS (Cont.)
file is found it is then loaded into the SYSTEM BLOCK of the BIOS to replace the missing
information.
NOTE: Make sure that the PC speaker inside your computer is working before you proceed.
When the BIOS has been restored your system will beep four times to let you know.
To restore an AMI BootBlock BIOS follow these steps:
1) Format a good working 1.44MB floppy diskette.
2) Copy a working BIOS ROM file for your motherboard onto the floppy disk. BIOS ROM
files can usually be downloaded from the motherboard manufacturer’s web site. If you
cannot locate a BIOS ROM file for your motherboard then call the motherboard
manufacturer for technical support.
3) Rename the BIOS ROM file ‘AMIBOOT.ROM’
4) Turn the system on and insert the disk into drive A:
5) After about 3 ~ 4 minutes the system will beep four times. Remove the disk from the
drive. The computer will then restart.
At this point your BIOS should be restored and the system should startup normally. If your system
does not startup normally then try using a different BIOS ROM file for your motherboard and read
the TROUBLESHOOTING PROBLEMS section below.
RECOVERING A CORRUPT AWARD BOOTBLOCK BIOS
With AWARD BIOS the process is similar but still a bit different. To recover an AWARD BIOS you
will need to create a floppy diskette with a working BIOS file in .BIN format, an AWARD flash
utility and an AUTOEXEC.BAT file. AWARD BIOS will not automatically restore the BIOS
information to the SYSTEM BLOCK for this reason you will need to add the commands necessary
to flash the BIOS to the AUTOEXEC.BAT file. The system will run the AUTOEXE.BAT file at
startup, which will in turn flash the BIOS. This is fairly easy. Here are the steps you need to take.
1) Create a bootable floppy disk. If you use Windows 95, 98 or DOS, this can be done by
going to the DOS prompt and typing the command. (Be sure to insert a disk first)
FORMAT A: /S
The /S switch specifies that the system files should be copied to the diskette to make it
bootable. If you are using Windows ME, Windows NT or Windows 2000 then you can not
use the /S switch with the FORMAT command. If you are unable to create a bootable
diskette because of the operating system you are using then you may download a
bootable diskette image from the BootDisk.com web site at (http://www.bootdisk.com)
2) Copy a working BIOS ROM (.BIN) file for your motherboard and an AWARD flash utility
to the floppy disk. You can usually download these files from the motherboard
manufacturer. If you need help finding these files call the motherboard manufacturer for
technical support.
3) Use a text editor or the ‘edit’ command at the DOS prompt to create a text file named
‘AUTOEXEC.BAT’ and save it on the floppy disk. Make sure that the file name is
AUTOEXEC and that the extension is .BAT (nothing else). If you create this file from
RECOVERING A CORRUPT AWARD BOOTBLOCK BIOS (Cont.)
4) within Windows using a program such as NOTEPAD, you may need to change the file
extension from .TXT to .BAT
5) With the text editor add the following commands to the AUTOEXEC.BAT file on the
floppy disk and then save the changes.
@ECHO OFF
@AWDFLASH BIOSFILE.BIN /py
NOTE: The ‘/py’ switch will cause the flash utility to automatically reprogram the BIOS
without any user intervention. Be sure to change the ‘AWDFLASH’ to the name
of the flash utility that you are using and change the ‘BIOSFILE.BIN’ to the name
of the BIOS ROM file you are using.
If you are not sure what the command line switch to automatically flash your
BIOS is, type the name of the flash utility with the ‘/?’ switch after it at a DOS
prompt and a list of the available switches will be displayed.
6) Insert the diskette you created into the floppy drive A: on the system that you need to
restore the BIOS on. Turn on the system. The computer should startup, read the floppy
disk, run the commands in the AUTOEXEC.BAT file and restore the BIOS.
At this point if everything went well then the BIOS should have been restored and the
computer should restart normally. If your system still did not restart normally then go to
the TROUBLESHOOTING PROBLEMS section below.
‘HOT-SWAPPING’ A BIOS CHIP
‘Hot-Swapping’ refers to removing a BIOS chip from the motherboard while the system power is
on and the system is in an idle state. Hot-Swapping a BIOS chip is VERY dangerous to both the
system and the person attempting to remove the chip. This method of BIOS recovery should only
be performed by experienced technician as a last option. Hot-Swapping will work on any type of
BIOS chip as long as both computers use the same type of chip.
WARNING: If done improperly this method of BIOS recovery could cause severe damage to the
motherboard and BIOS as well as severe injury to the person attempting to remove
the chip.
Hot-Swapping requires you to have two computers with the same BIOS distribution and type. The
way it works is, while the second (working computer) is on the BIOS chip is removed and the
BIOS chip from the first (non-working) board is inserted in its place. The BIOS flash utility is then
run on the second computer and the BIOS chip is updated with the BIOS file for the first
computer. In essence you are reprogramming the bad BIOS chip on a different motherboard and
then putting the chip back into the non-working motherboard. The procedure is below.
1) Start the second (working computer) and go to a DOS prompt. Make sure that no
programs are running in the background.
2) While the computer is on carefully remove the BIOS chip from the motherboard and set it
aside. Be sure to note the orientation of the chip so that you can later inset it back in to
the motherboard exactly as it was.
3) Insert the BIOS chip from the first (non-working) computer in to the BIOS socket on the
second (working computer’s) motherboard.
‘HOT-SWAPPING’ A BIOS CHIP (Cont.)
4) At the DOS prompt run the BIOS flash utility and update the BIOS chip with the correct
BIOS file for the first computer. If you get a warning message that the chipset and BIOS
does not match continue anyway. If the flash utility will not allow you to continue and it is
an AMI flash utility then re-run the flash utility using the ‘/X’ switch to enter the utilities
graphical interface and manually reprogram the BIOS from there.
5) Once the BIOS chip has been reprogrammed successfully carefully remove the BIOS
chip from the second computer and put it back into the first computer. Be sure to pay
close attention to the orientation of the chip so that you insert it correctly. Plugging in the
chip backwards will immediately damage both the chip and the motherboard.
6) Start the first computer. If all went well the first system should now be working again. If
not see the TROUBLESHOOTING PROBLEMS section below.
TROUBLESHOOTING PROBLEMS
PROBLEM: After following all of the directions the system will still not start normally. When the
system is powered on all it will do is try to access the floppy drive.
This would seem to indicate that the BIOS reprogramming was not successful or that
the BIOS ROM file was either damaged or not the correct one. Try the procedure
again using a different BIOS ROM file for your motherboard. Make sure that the BIOS
ROM file is for your exact motherboard model and revision.
PROBLEM: When the computer restarts the message ‘CMOS Checksum Bad’ and ‘Press F1 to
Enter Setup’ is displayed.
This is not necessarily a problem. This message is displayed when there are no
CMOS settings saved. This simply means that you need to set your system settings
(such as CPU speed, etc) Press whatever key you are prompted to and set the
CMOS settings accordingly.
PROBLEM: While trying to recover a AWARD BIOS the system starts to read from the floppy disk
and then stops and nothing else happens. When the system is rebooted it still has
the same problem.
This most likely indicates that there is something wrong with the boot disk. Double
check that the disk is bootable, contains the AUTOEXEC.BAT file, the BIOS flash
utility and the BIOS ROM (.BIN) file. If all of the files are present and the disk is
bootable then double check the AUTOEXEC.BAT file. Make sure that the name is
correct and that all of the commands are correct.
If you can see on the screen what the system is doing then try typing the commands
in the AUTOEXEC.BAT file manually to see if there is an error message that is
displayed. If everything checks out then try using a different BIOS ROM (.BIN) file. If
the problem persists use a different flash utility.
If you have any questions of comments regarding this procedure please e-mail me, my email
address is: davido@amptronusa.com
Good luck!
UniFlash version 1.33 documentation
-----------------------------------
(C) 2003 Rainbow Software (Ondrej Zary)
Original version by Pascal Van Leeuwen and Galkowski Adam
" Your program just saved the day for me!
I tried to use AWDFLASH.exe to flash my new Shuttle HOT-603 v2.0(AMD640)
with the new 603WWQ07.bin BIOS and it did! The only problem was that the
BIN file wasn't complete.
Evidently this destroyed the boot block too. I tried to restore the old
BIOS to that EEPROM on a HOT-565(430TX) with all the other flash
programs I could get my hands on to no avail. I was able to flash the
HOT-603's EEPROM to 565WIQ0E.bin and it worked just fine on the HOT-565
so I knew the chip it's self was still good. I finally gave up and
ordered a replacement chip this morning. This evening while surfing I
saw a reference to you'r program on http://ping.be and downloaded it.
With the 'Expert' mode I was able to properly flash the Winbond
W29EE011-15 chip on the HOT-565 for the HOT-603. "
- Jack Freeman
0.0 DISCLAIMER
-------------------------
THIS PROGRAM COMMUNICATES WITH THE CHIPSET AND FLASH ROM CHIP AT THE LOWEST
HARDWARE LEVEL. USING THIS PROGRAM MAY BE DANGEROUS TO YOUR COMPUTER'S BIOS.
THIS PROGRAM MAY CONTAIN BUGS AND MOST OF THE SUPPORTED HARDWARE IS UNTESTED.
YOU ARE USING IT AT YOUR OWN RISK:
NOBODY EXCEPT YOU IS RESPONSIBLE FOR ANY DAMAGE THIS PROGRAM MAY CAUSE !!!
0.1 COPYRIGHT and CO.
--------------------------------
This program is public domain. You may do whatever you want with it: copy it,
delete it, rip it, modify it, etc...
If you do something with it, it would be great if you credited us.
1.0 UniFlash? UNIFLASH??? What the HELL is it ??!!!
--------------------------------------------------------------
UniFlash is a flash program, used to write a new BIOS on your FLASH ROM Chip.
What's new there? , you may ask, there are already programs like this on
Internet made by BIG BRANDS like AMI, AWARD or MR. Well... there is only a
little difference: COMPLETE, WORKING SOURCE CODE IN PASCAL IS GIVEN FOR FREE!!
UniFlash is made to be universal - this can be useful when you're hot-flashing
your bios in another motherboard.
Another thing: this flasher is mainly destinated for fearless people and
experienced users. If it's your first adventure with flashing your BIOS, we
recommend you strongly using these brand flashers. You'll have to understand
we are just experienced computer users/programmers and we haven't materially
the possibility to test every routine and chips we haven't. That's the main
reason we release it. We hope people may help us in debugging and testing
routines.
NOTE by PvL: Brand name flashers have a tendency to be unstable (this is
especially true for AWDFLASH, which f*cked up my BIOS twice
so far, leaving me no other choice than to hot-flash) so if
you happen to be the lucky owner of one of the TESTED flash
chips I can really recommend using UNIFLASH instead ...
NOTE by Rainbow:
AWDFLASH IS REALLY BAD. When I was flashing BIOS on Abit SA6R, the verify
failed. I retried flashing about 20 times, then it succeeded. But motherboard
died after reboot. Luckily, after powering down and back up, BootBlock BIOS
worked and I was able to flash the BIOS correctly from there.
2.0 What hardware do I need for UniFlash ?
-----------------------------------------------------
Here's the minimum configuration you need to run UniFlash:
-At least a 386 (The whole thing works in flat real mode)
-RAM at least 2 times bigger than Flash ROM size, but less than 2GB
-MS DOS 4.0 and higher
-Known Flash ROM chip (see section 3.0)
-Supported chipset (see below) - note that all of them are PCI based
or c't Flasher 8-bit ISA card
,----------------------------------------------------------------------------,
| Don't forget to disable " Flash write protect " - either in system BIOS or |
| using a jumper on the motherboard. |
`----------------------------------------------------------------------------'
Here's a list of chipsets suported by Uniflash:
* means tested and functional,
# means tested, but doesn't work the way it should
unmarked chipsets are not tested
,----------------------------------------------------------------------------,
| Mfg | Chipset(s) | Comments |
`---------|----------------------|-------------------------------------------'
Intel |*Triton 430FX | No comments It works in 99% of cases
|*Triton II 430HX | 450 & 430LX/NX not tested
|*Triton II 430VX | 440GX and 440FX untested
|*Triton III 430TX |
|*Mobile 430MX |
| Natoma 440FX |
|*AGPSet 440LX/EX |
| 450KX/GX |
| Mecrucy 430LX |
| Neptune 430NX |
|*AGPSet 440BX/ZX |
| AGPSet 440GX |
|*i810 | i810 tested and works OK, others should too
| i810E |
| i810E2 |
| i815(P/G) |
| i815E(P/G) |
| i815EM |
| i820 |
| i820E |
| i830M(P/G) |
| i840 |
| i845 |
| i845E |
| i845G(E/L/V)/845PE |
| i845MP/MZ |
| i850(E) |
| i852GM/855GM |
| i855PM |
| i860 |
| i875P |
| E7205 |
| E7500 |
| E7501 |
| E7505 |
----------|----------------------|--------------------------------------------
VIA | Appollo Master |
| Apollo VP |
|*Apollo VPX |
|*Apollo VP2 |
| Apollo VP3 |
|*Apollo MVP3 |
| Apollo P6 |
| Apollo MVP4 | VIA chipsets are weird - some work, some
| Apollo Pro | don't.
|*Apollo Pro Plus/133 |
|*Apollo Pro 133A | If you have " Flash Write protect " in BIOS,
| Apollo ProMedia | disable it and it should work.
| Apollo Pro 133Z/PM133|
| Apollo KX133 |
|*Apollo KT133(A) |
| ProSavage KM133(A) |
|*Apollo KT266(A)/KT333|
| Apollo KT400(A) |
| Apollo Pro 266 |
| Apollo Pro 266T | These North Bridges are detected, but
| ProSavage P4M266 | aren't used in any VIA's chipset (??):
| P4X266(A)/P4X333/400 | VT8662, VT8615, VT8361, VT3133
----------|----------------------|--------------------------------------------
AMD |*AMD 640 (same as VIA | Works just fine
| Apollo VP2) |
| AMD 750 | UniFlash supports true AMD chipsets since
|#AMD 760 | version 1.20. Their registers are very
| AMD 760MP | similar to VIA. AMD 760 should work with
| AMD 760MPX | both VIA and AMD (does it really exist?)
| | south bridges.
----------|----------------------|--------------------------------------------
SiS |*85C496+497 | I got the datasheets, but not from SiS.
|#501/5101/5501 |
| 5511 |
| 5571 | To support 12 chipsets, I needed to write
|*5591/5592 | 5 different methods of enabling Flash ROM
| 5596 | write access. (The more code, the more
|*5597/5598/5581/5120 | bugs :-)
| 530 | All SiS South Bridges have the same
| 540 | device ID $0008 (SiS 540 and 630 can have
| 600 | either $0008 or $0018 - it can be
|*620 | configured(!!!) through registers.
|*630 |
| 635 |
| 640 | Boards with the new chipsets (540 and 630
| 645 | and up) have often ITE IT8705F LPC Super IO
| 645DX | (also called SiS 950 sometimes) which
| 648 | allows to use regular Flash ROM on LPC bus.
| 650 | It's tested and works.
| 651 |
| 655 |
| 730 |
| 733 |
|*735 |
| 740 |
| 745 |
| 746 |
| 748 |
| 755 |
----------|----------------------|--------------------------------------------
ALi |*FinALi 486 | FinALi has very weird Flash ROM access but
|*Aladdin | finally it works correctly.
| Aladdin III | & lt; - The 1st ALi Pentium chipset
| Aladdin IV/IV+ | All chipsets with M1533/M1543/M1535 South
|*Aladdin V | Bridge should work.
| Aladdin 7 |
|*Aladdin Pro/Pro II |
| Aladdin Pro III | Aladdin TNT2
| CyberBLADE Aladdin i1|
| Aladdin Pro IV |
|*ALiMAGiK 1 |
| Aladdin Pro 5(T/M) | Unlisted chipsets are not fully detected,
| Aladdin-P4 | but should work if they use M1533/43/35 or
| CyberAladdin-P4 | M1523 South Bridge.
----------|----------------------|--------------------------------------------
SMSC | VictoryBX-66 | i82443BX North Bridge with SMSC SLC90E66
| | South Bridge (UDMA-66 support)
| | Untested.
----------|----------------------|--------------------------------------------
Winbond/ | W83C553F South Bridge| I don't know if this one was ever used.
Symphony | Winbond W83697(H)F | LPC Super I/Os with Flash ROM support
Labs | Winbond W83697SF |
| Winbond W83697UF |
----------|----------------------|--------------------------------------------
ITE | IT8871F/2F and | Don't know where used, untested.
| IT8888F South Bridges| (No known chipset with these SBs)
|*IT8700F/8705F | LPC Super I/Os with Flash ROM support
| IT8710 | (used with SiS 540, SiS 630 and newer)
----------|----------------------|--------------------------------------------
Reliance/| ServerSet III LE | All chipsets with OSB4 South Bridge should
Server | ServerSet III HE | work. Untested.
Works | | I don't have any official info.
----------|----------------------|--------------------------------------------
National/| Vesuvius-LS | Never seen this one.
PicoPower| | Untested
----------|----------------------|--------------------------------------------
National/| Geode GX1 (MediaGX) | Supported with Geode CS5530(A) South Bridge
Cyrix | | (Cyrix CX5530(A))
----------|----------------------|--------------------------------------------
OPTi | Vendetta 82C750 | Not tested
----------|----------------------|--------------------------------------------
HiNT | VXPro-II | Used on some PC Chips boards (like M559)
| | I think that it's Utron UC85C501/502
| | Not tested
----------|----------------------|--------------------------------------------
UMC |*UM8881F+UM8886BF | Don't have any datasheets, tested and works
----------|----------------------|--------------------------------------------
Micron | Copperhead+Coppertail| Has no flash write protection. Untested
----------|----------------------|--------------------------------------------
Contaq/ | hyperCache | CY82C691+CY82C693(U/UB)
Cypress | 386/486 with PCI | CY82C596/597+CY82C599
----------|----------------------|--------------------------------------------
nVidia |*nForce | Tested and works
| nForce2 | nForce2 might not work
------------------------------------------------------------------------------
If your chipset is marked BXCel, VXPro, TXPro or something like that, it's a
relabelled chipset (ALi, SiS or VIA) on a PC Chips board, with the exception
of VXPro-II which is Utron.
The version 1.16d+ includes support for AMI's Flash Interface. It allows you
to flash even if you have an unknown chipset (new AMI WinBIOS is necessary to
use this feature). Starting from version 1.24, you must force using this mode,
if you want to use it by giving the -AMI parameter. This is neccessary because
it often doesn't work and hangs, preventing users from making BIOS backup.
2.1 Tested PCI cards
-------------------------------
* means tested and functional
# means tested, but doesn't work
Cards with no specific support in UniFlash:
* Adaptec 19160/29160N (AIC-7892B chip) - Winbond W29EE512
* Adaptec 39160
# AdvanSys ASB-3940UA
# ATI Rage Magnum AGP
# Matrox Millennium PCI
* SIIG SC-PE4612 IDE controller (HighPoint HPT366) - SST 39SF010
I need datasheets for the cards (chips) that do not work.
Cards with specific support in UniFlash:
3Dfx Banshee
Sundance Technology ST201
STMicroelectronics STE10/100(A)
Winbond W89C840AF
SMSC LAN83C175 EPIC/C
VIA VT6102
VT6105M Rhine III
Realtek RTL8129/30/39
RTL8139 series
RTL8169 series
ADMtek AL981 Comet
AN983(B/BL) Centaur (B)
AN985(B/BL) Centaur (B)
ADM9511 Centaur II
ADM9513 Centaur II
Adaptec AIC-6915
3.0 What flash chips are supported by UniFlash ?
-----------------------------------------------------------
UniFlash supports the following flash chips:
* means tested and functional,
# means tested, but doesn't work the way it should,
unmarked chips are not tested (note that a lot of chips are very similar to
one another though, so if one of them works then the rest should work fine
too)
,----------------------------------------------------------------------------,
| Flash ROM | Size |
`---------------------------------|------------------------------------------'
Alliance Semiconductor |
---------------------- |
AS29F040 | 512KB
AS29F002T | 256KB
AS29F002B | 256KB
AS29F200T | 256KB
AS29F200B | 256KB
AS29LV400T | 512KB
AS29LV400B | 512KB
AS29LV800T | 1024KB
AS29LV800B | 1024KB
----------------------------------|-------------------------------------------
AMD |
--- |
Am28F256 | 32KB
Am28F256A | 32KB
Am28F512 | 64KB
Am28F512A | 64KB
Am28F010 | 128KB
Am28F010A | 128KB
Am28F020 | 256KB
Am28F020A | 256KB
*Am29F010(A/B) | 128KB
*Am29F040(B) | 512KB
Am29F080(B) | 1024KB
Am29F016(B) | 2048KB
Am29F017B | 2048KB
Am29F032B | 4096KB
Am29F100T | 128KB
Am29F100B | 128KB
Am29F200AT/BT | 256KB
Am29F200AB/BB | 256KB
Am29F400AT/BT | 512KB
Am29F400AB/BB | 512KB
Am29F800(B)T | 1024KB
Am29F800(B)B | 1024KB
Am29F160DT | 2048KB
Am29F160DB | 2048KB
*Am29F002(N)(B)T | 256KB
Am29F002(N)(B)B | 256KB
Am29F004BT | 512KB
Am29F004BB | 512KB
Am29LV010B | 128KB
Am29LV040B | 512KB
Am29LV017B | 2048KB
Am29LV033C | 4096KB
Am29LV065D | 8192KB
Am29LV081B | 1024KB
Am29LV001BT | 128KB
Am29LV001BB | 128KB
Am29LV002(B)T | 256KB
Am29LV002(B)B | 256KB
Am29LV004(B)T | 512KB
Am29LV004(B)B | 512KB
Am29LV008(B)T | 1024KB
Am29LV008(B)B | 1024KB
Am29LV200(B)T | 256KB
Am29LV200(B)B | 256KB
Am29LV400(B)T | 512KB
Am29LV400(B)B | 512KB
Am29LV800BT | 1024KB
Am29LV800BB | 1024KB
Am29LV160BT/DT | 2048KB
Am29LV160BB/DB | 2048KB
Am29LV116BT | 2048KB
Am29LV116BB | 2048KB
Am29LV320DT | 4096KB
Am29LV320DB | 4096KB
Am29SL800CT | 1024KB
Am29SL800CB | 1024KB
Am29SL160CT | 2048KB
Am29SL160CB | 2048KB
Am29PL160CB | 2048KB
----------------------------------|-------------------------------------------
AMIC |
---- |
A29010 | 128KB
A29040 | 512KB
A29001(1)T | 128KB
A29001(1)B | 128KB
*A29002(1)T | 256KB
A29002(1)B | 256KB
A29400T | 512KB
A29400B | 512KB
----------------------------------|-------------------------------------------
ASD |
--- |
*AE29F1008 = Winbond W29EE011 | 128KB
*AE29F2008 = Winbond W29C020(C) | 256KB
----------------------------------|-------------------------------------------
Atmel |
----- |
AT29C256 or AT29C257 | 32KB
AT29C512 | 64KB
*AT29C010(A) | 128KB
AT29C020(A) | 256KB
AT29C040A | 512KB
AT29LV256 | 32KB
AT29LV512 | 64KB
AT29xV010(A) series | 128KB
AT29xV020 series | 256KB
AT29xV040A series | 512KB
AT49x512 series | 64KB
AT49x001(N)T series | 128KB
AT49x001(N) series | 128KB
*AT49x002(N)T series | 256KB
AT49x002(N) series | 256KB
AT49x008AT series | 1024KB
AT49x008(A) series | 1024KB
AT49x010 series | 128KB
AT49x020 series | 256KB
AT49x040 series | 512KB
AT49x080 series | 1024KB
AT49x080T series | 1024KB
AT49x4096(A) series | 512KB
AT49x8011T series | 1024KB
AT49x8011 series | 1024KB
AT49x160/161(4)T series | 2048KB
AT49x160/161(4) series | 2048KB
AT49BV320T/321T | 4096KB
AT49BV320/321 | 4096KB
----------------------------------|-------------------------------------------
Bright Microelectronics |
----------------------- |
BM29F040 = Hyundai HY29F040 | 512KB
BM29F400T = Hyundai HY29F400T | 512KB
BM29F400B = Hyundai HY29F400B | 512KB
----------------------------------|-------------------------------------------
Catalyst |
-------- |
CAT28F512 | 64KB
*CAT28F010 | 128KB
CAT28F015T | 192KB
CAT28F015B | 192KB
CAT28F020 | 256KB
*CAT28F001T | 128KB
*CAT28F001B | 128KB
CAT28F002T | 256KB
CAT28F002B | 256KB
CAT28F150T | 192KB
CAT28F150B | 192KB
CAT29F(N)002T | 256KB
CAT29F(N)002B | 256KB
----------------------------------|-------------------------------------------
EON |
--- |
EN29F040 | 512KB
EN29F080 | 1024KB
*EN29F002T | 256KB
EN29F002B | 256KB
EN29F800T | 1024KB
EN29F800B | 1024KB
----------------------------------|-------------------------------------------
Fujitsu |
------- |
MBM29F002TC | 256KB
MBM29F002BC | 256KB
MBM29F200TC | 256KB
MBM29F200BC | 256KB
MBM29F400TC | 512KB
MBM29F400BC | 512KB
MBM29F040C | 512KB
MBM29F033C | 4096KB
MBM29LV160TE | 2048KB
MBM29LV160BE | 2048KB
MBM29PL160TD | 2048KB
MBM29PL160BD | 2048KB
----------------------------------|-------------------------------------------
H.T. |
---- |
*M21561 = Macronix MX28F1000P | 128KB
*M21032T = Macronix MX28F1000P | 128KB
*M20271H = Macronix MX28F1000P | 128KB
----------------------------------|-------------------------------------------
Hyundai |
------- |
HY29F040 | 512KB
HY29F040A | 512KB
HY29F080 | 1024KB
HY29F002T | 256KB
HY29F002B | 256KB
HY29F400T | 512KB
HY29F400B | 512KB
HY29F800T | 1024KB
HY29F800B | 1024KB
HY29LV160T | 2048KB
HY29LV160B | 2048KB
----------------------------------|-------------------------------------------
IMT |
--- |
IM29F001T | 128KB
IM29F001B | 128KB
IM29F002T | 256KB
IM29F002B | 256KB
IM29F004T | 512KB
IM29F004B | 512KB
IM29LV004T | 512KB
IM29LV004B | 512KB
----------------------------------|-------------------------------------------
Intel |
----- |
28F256(A) | 32KB
28F512 | 64KB
*28F010 | 128KB
28F020 | 256KB
*28F001BX/BN-T | 128KB
28F001BX/BN-B | 128KB
28F002-T series | 256KB
28F002-B series | 256KB
#28F004-T series | 512KB
28F004-B series | 512KB
28F008-T series | 1024KB
28F008-B series | 1024KB
28F008SA | 1024KB
28F004Sx series | 512KB
28F008Sx series | 1024KB
28F016Sx series | 2048KB
28F016S5 | 2048KB
28F004B3-T | 512KB
28F004B3-B | 512KB
28F008B3-T | 1024KB
28F008B3-B | 1024KB
28F016B3-T | 2048KB
28F016B3-B | 2048KB
28F320J5 | 4096KB
28F320J3A | 4096KB
28F640J5 | 8192KB
28F640J3A | 8192KB
28F128J3A | 16384KB
*82802AB (Firmware Hub) | 512KB
82802AC (Firmware Hub) | 1024KB
----------------------------------|-------------------------------------------
ISSI |
---- |
IS28F010 | 128KB
IS28F020 | 256KB
----------------------------------|-------------------------------------------
Macronix |
-------- |
*MX28F1000 | 128KB
*MX28F1000P | 128KB
MX28F2000P | 256KB
MX28F2000T | 256KB
MX28F002T | 256KB
MX28F002B | 256KB
MX29F040 | 512KB
MX29F080 | 1024KB
MX29F016 | 2048KB
*MX29F001T | 128KB
*MX29F001B | 128KB
*MX29F002(N)T | 256KB
MX29F002(N)B | 256KB
MX29F022T | 256KB
MX29F022B | 256KB
MX29F004T | 512KB
MX29F004B | 512KB
MX29F100T | 128KB
MX29F100B | 128KB
MX29F200T | 256KB
MX29F200B | 256KB
MX29F400T | 512KB
MX29F400B | 512KB
MX29F800T | 1024KB
MX29F800B | 1024KB
MX29F1610A | 2048KB
MX29F1615 | 2048KB
MX29LV040 | 512KB
MX29LV081 | 128KB
MX29LV004T | 512KB
MX29LV004B | 512KB
MX29LV008T | 1024KB
MX29LV400T | 512KB
MX29LV400B | 512KB
MX29LV800T | 1024KB
MX29LV800B | 1024KB
MX29LV160T | 2048KB
MX29LV160B | 2048KB
MX29L1611 | 2048KB
MX29L1611G | 2048KB
MX29L3211 | 4096KB
----------------------------------|-------------------------------------------
Megawin |
------- |
MM29F040 = AMD Am29F040(B)/5V | 512KB
----------------------------------|-------------------------------------------
Micron |
------ |
MT28F004-T = Intel 28F004-T | 512KB
MT28F004-B = Intel 28F004-B | 512KB
MT28F400-T = Intel 28F400-T | 512KB
MT28F400-B = Intel 28F400-B | 512KB
MT28F008-T = Intel 28F008-T | 1024KB
MT28F008-B = Intel 28F008-B | 1024KB
MT28F800-T = Intel 28F800-T | 1024KB
MT28F800-B = Intel 28F800-B | 1024KB
----------------------------------|-------------------------------------------
Mosel Vitelic |
------------- |
V29C51000T | 64KB
V29C51000B | 64KB
V29C51001T | 128KB
V29C51001B | 128KB
V29C51002T | 256KB
V29C51002B | 256KB
V29C51004T | 512KB
V29C51004B | 512KB
V29C51400T | 512KB
V29C51400B | 512KB
V29LC51000 | 64KB
V29LC51001 | 128KB
V29LC51002 | 256KB
V29C31004T | 512KB
V29C31004B | 512KB
V29C31400T | 512KB
----------------------------------|-------------------------------------------
NexFlash Technologies |
--------------------- |
NX29F010 = AMD Am29F010 | 128KB
NX29F400B = AMD Am29F400B | 512KB
----------------------------------|-------------------------------------------
PMC |
--- |
Pm39LV512R | 64KB
Pm39LV010R | 128KB
Pm29F002T | 256KB
Pm29F002B | 256KB
Pm29F004T or Pm29LV104T | 512KB
Pm29F004B or Pm29LV104B | 512KB
Pm49FL002 | 256KB
Pm49FL004 | 512KB
Pm49FL008 | 1024KB
----------------------------------|-------------------------------------------
SST |
--- |
28EE010/011 | 128KB
29EE512 | 64KB
*29EE010 | 128KB
*29EE020 | 256KB
28x040(A) series | 512KB
29x512 series | 64KB
29x010 series | 128KB
29x020 series | 256KB
29SF512 | 64KB
29SF010 | 128KB
29SF020 | 256KB
29SF040 | 512KB
29VF512 | 64KB
29VF010 | 128KB
29VF020 | 256KB
29VF040 | 512KB
*49LF020 | 256KB
49LF030 | 384KB
49LF040 | 512KB
49LF080 | 1024KB
49LF002(A) (Firmware Hub) | 256KB
49LF003A (Firmware Hub) | 384KB
49LF004 (Firmware Hub) | 512KB
49LF004A (Firmware Hub) | 512KB
49LF008 (Firmware Hub) | 1024KB
49LF008A (Firmware Hub) | 1024KB
39SF512 | 64KB
39SF010(A) | 128KB
*39SF020(A) | 256KB
39SF040 | 512KB
39xF512 series | 64KB
39xF010 series | 128KB
*39xF020 series | 256KB
39xF040 series | 512KB
39xF080 series | 1024KB
39xF016 series | 2048KB
----------------------------------|-------------------------------------------
STMicroelectronics |
------------------ |
M28F256 | 32KB
M28F512 | 64KB
M28F101 | 128KB
M28F102 | 256KB
M28F201 | 256KB
M29F512B | 64KB
M29F010B | 128KB
M29F040(B) | 512KB
M29F080A | 1024KB
M29F016B | 2048KB
M29F002(B)(N)T | 256KB
M29F002(B)B | 256KB
M29F100(B)T | 128KB
M29F100(B)B | 128KB
M29F200(B)T | 256KB
M29F200(B)B | 256KB
M29F400(B)T | 512KB
M29F400(B)B | 512KB
M29F800AT | 1024KB
M29F800AB | 1024KB
M29F160BT | 2048KB
M29F160BB | 2048KB
M29W512B | 64KB
M29W010B | 128KB
M29W022BT | 256KB
M29W022BB | 256KB
M29W040(B) | 512KB
M29W200BT | 256KB
M29W200BB | 256KB
M29W400(B)T | 512KB
M29W400(B)B | 512KB
M29W800(A)T | 1024KB
M29W800(A)B | 1024KB
M29W160BB/DB | 2048KB
M29W004(B)T | 512KB
M29W004(B)B | 512KB
M29W008(A)T | 1024KB
M29W008(A)B | 1024KB
M50FW002 (FWH) | 256KB
M50LPW002 (LPC) | 256KB
M50FW040 (FWH) | 512KB
M50LPW040 (LPC) | 512KB
M50FW080 (FWH) | 1024KB
M50LPW080 (LPC) | 1024KB
----------------------------------|-------------------------------------------
SyncMOS |
------- |
F29C51001T = Mosel V29C51001T | 128KB
F29C51001B = Mosel V29C51001B | 128KB
#F29C51002T = Mosel V29C51002T | 256KB
F29C51002B = Mosel V29C51002B | 256KB
F29C51004T = Mosel V29C51004T | 512KB
F29C51004B = Mosel V29C51004B | 512KB
F29C31004T = Mosel V29C31004T | 512KB
F29C31004B = Mosel V29C31004B | 512KB
F29C31400T = Mosel V29C31400T | 512KB
----------------------------------|-------------------------------------------
Texas Instruments |
----------------- |
TMS29xF040 | 512KB
TMS28F002A-T = Intel 28F002-T | 256KB
TMS28F002A-B = Intel 28F002-B | 256KB
TMS28F200A-T = Intel 28F200-T | 256KB
TMS28F200A-B = Intel 28F200-B | 256KB
TMS28F200BZT = Intel 28F200-T | 256KB
TMS28F200BZB = Intel 28F200-B | 256KB
TMS28F400A-T = Intel 28F400-T | 512KB
TMS28F400A-B = Intel 28F400-B | 512KB
TMS28F400BZT = Intel 28F400-T | 512KB
TMS28F400BZB = Intel 28F400-B | 512KB
TMS28F004A-T = Intel 28F004-T | 512KB
TMS28F004A-B = Intel 28F004-B | 512KB
TMS28F008A-T = Intel 28F008-T | 1024KB
TMS28F008A-B = Intel 28F008-B | 1024KB
TMS28F800A-T = Intel 28F800-T | 1024KB
TMS28F800A-B = Intel 28F800-B | 1024KB
TMS28F010A/B = Intel 28F010 | 128KB
TMS28F020 = Intel 28F020 | 256KB
TMS28F512A = Intel 28F512 | 64KB
TMS29F002RT = AMD Am29F002T | 256KB
TMS29F002RB = AMD Am29F002B | 256KB
TMS29F008T = AMD Am29F800T | 1024KB
TMS29F008B = AMD Am29F800B | 1024KB
TMS29F010 = AMD Am29F010 | 128KB
TMS29F040 = AMD Am29F040 | 512KB
TMS29F400T = AMD Am29F400AT | 512KB
TMS29F400B = AMD Am29F400AB | 512KB
TMS29F800T = AMD Am29F800T | 1024KB
TMS29F800B = AMD Am29F800B | 1024KB
TMS29LF008T = AMD Am29LV008T | 1024KB
TMS29LF008B = AMD Am29LV008B | 1024KB
TMS29LF800T = AMD Am29LV800BT | 1024KB
TMS29LF800B = AMD Am29LV800BB | 1024KB
----------------------------------|-------------------------------------------
Winbond |
------- |
*W29x010/011/012 series | 128KB
*W29C020(C) | 256KB
W29C040 | 512KB
W29EE512 | 64KB
W39F010 | 128KB
W39L512 | 64KB
W39L010 | 128KB
W39L020 | 256KB
W39L040 | 512KB
W39V040FA (Firmware Hub) | 512KB
*W49F002U | 256KB
W49F020 | 256KB
W49V002(A) (LPC) | 256KB
W49V002F(A) (Firmware Hub) | 256KB
------------------------------------------------------------------------------
3.1 Flash ROM pinout and notes
-----------------------------------------
Some 12V Flash ROMs require 12V voltage not only to flash, but also to detect.
If you're trying to flash 12V chip, first check that you have 12V on the VPP
pin in the socket on motherboard. Flash write protect jumper usually removes
12V from this pin.
When some parts of the chip are write protected, 12V on VPP/RESET pin will
usually allow these protected parts to be flashed (unless the chip has N in
the name - e.g. MX29F002NT - this means that RESET pin is not connected).
Be sure that Flash ROM is inserted the correct way in the socket (key on the
chip must match with key on the socket) BEFORE powering up (if you're
hot-flashing, double check chip orientation before inserting it into socket).
Inserting it wrong way will DESTROY the chip - VCC will be swapped with GND
and if there's 12V on the VPP pin, it will be connected to Q3 data pin...
Flash ROM pinout (32-pin DIP):
_____KEY_____
VPP -| \_/ |- VCC VPP = Programming voltage (12V)
A16 -| |- #WE VCC = Operating voltage (5V)
A15 -| |- A17 GND = Ground
A12 -| |- A14 A0..A17 = Address input pins
A7 -| |- A13 Q0..Q7 = Data input/output pins
A6 -| |- A8 #WE = Write enable
A5 -| |- A9 #OE = Output enable
A4 -| |- A11 #CE = Chip enable
A3 -| |- #OE (# means active low signal)
A2 -| |- A10
A1 -| |- #CE Notes:
A0 -| |- Q7 - some chips have RESET instead of VPP
Q0 -| |- Q6 - this is 256KB chip
Q1 -| |- Q5 - 512KB chips have A18 instead of VPP
Q2 -| |- Q4 - 128KB chips have NC instead of A17
GND -|_____________|- Q3 - 64KB chips have NC instead of A17 & A16
4.0 Help! I don't understand the sources !!!
-------------------------------------------------------
If you have problems understanding something mail me (address at the end).
Have a look also on the ADDCHIP.FAQ file. It explains how to add new chips
plus some details.
5.0 ADVANCED submenu
-------------------------------
There's ADVANCED submenu in UniFlash, which contains possibly dangerous
functions. Since v1.33, flashing is done including bootblock by default. This
is less dangerous that flashing a new BIOS and leaving incompatible bootblock
from previous BIOS there. And more, the bootblock is not exactly defined
anywhere - some BIOSes might use bigger bootblock than other, which can cause
problems.
5.1 Making an emergency disk
---------------------------------------
It is always nice to have an emergency disk handy in case something goes
wrong. You see, most flash BIOS's incorporate something called a 'boot block'
and UNIFLASH will not normally overwrite it so it remains intact.
The boot block contains just enough code to boot up your computer with basic
peripheral support to enable you to flash in a working BIOS in case something
went wrong.
To make an emergency disk one would do the following:
-make a DOS (or Win95/Win98, NOT ANY OTHER) system disk using " format a: /S "
-copy uniflash to that disk
-copy a working bios image (preferably a backup that was made while the system
was still a-ok) to the disk
-make an AUTOEXEC.BAT containing:
@UNIFLASH -E & lt; name of BIOS image file & gt;
NOTE: Whatever you do, do *NOT* load HIMEM.SYS. The boot block lacks support
routines that HIMEM.SYS requires, resulting in very nice crashes.
And I know from experience ... !! In general, keep the boot disk as
clean as possible, remove drvspace.bin and dblspace.bin.
Make sure UNIFLASH and the BIOS image are on the disk as the boot block only
supports the floppy drive, you won't be able to access any harddrive !!
When you boot from this emergency disk the working BIOS image will
automatically (without any intervention by you) be flashed into the flash ROM
by UNIFLASH. This is very convenient as the boot block has no support for PCI
or AGP video cards, so you won't be able to SEE anything in the process unless
you replace your PCI videocard with an old ISA one (hint!). If you have
motherboard with i815(E) chipset and you're using onboard video, it will
probably not work in boot block mode (because graphics BIOS is stored in main
Flash ROM chip) - try to put an AGP card in (there are no ISA slots).
UNIFLASH will give you some audible feedback, though:
first short beep: UNIFLASH invoked, reading BIOS image
second short beep: done reading BIOS image, starting to flash
chime sound: done flashing, reset your system
long continuous beep: some error occured, press any key to retry operation
5.2 Command-line parameters
--------------------------------------
UNIFLASH [-H|-?|[-PCIROM [BUS DEV FUN]|-AMI|-BASE xxxxx|CTFLASH [xxx]]
[-E fname][-SAVE fname|-CHIPLIST|-FORCE xxxx][-REPAIR][-LOG][-MONO]
[-CMOSS fname][-CMOSR fname][-CMOSC]][-QUIT][-REBOOT]
-H or -? Shows this help screen
-E fname Flashes fname to Flash ROM with no prompts
-LOG Enables auto-logging to UNIFLASH.LOG
-MONO Use if you have problems with colors on monochrome monitor
-CTFLASH Flash ROM in c't Flasher 8-bit ISA card [xxx=port]
-PCIROM Flash ROM on a PCI card instead of system ROM
[BUS DEV FUN] Manually specify PCI device (decimal numbers)
-AMI Use AMI Flash Interface
-CHIPLIST Show list of supported flash chips with their numbers
-FORCE xxxx Force using routines for chip xxxx (4 hex digits)
-BASE xxxxx Set ROM Base to address xxxxx (at least 5 hex digits)
-REPAIR Repair erased chip ID (Winbond and SST chips)
-SAVE fname Write current bios image to file fname
-CMOSS/R fname Save/restore CMOS settings to/from file fname
-CMOSC Clears CMOS settings
-QUIT Quits (e.g. UNIFLASH -SAVE BACKUP.BIN -QUIT)
-REBOOT Reboot after flashing (use together with -E)
Parameters are executed in the same order as they are entered on the command
line - so you can use e.g. " uniflash -cmoss cmos.bak -cmosc " to save CMOS
settings to file called cmos.bak and then clear the CMOS.
Some parameters can't be used together - e.g. -AMI can't be used with -PCIROM.
-E: Flashes BIOS image from file fname including bootblock without
any user input
-LOG: Enables logging of all important events into file UNIFLASH.LOG. Use this
when you are sending bug reports and attach this file.
-CTFLASH: Selects ROM on c't Flasher 8-bit ISA card. This card supports
Flash ROMs up to 512KB. Port is autodetected or can be specified
manually as optional parameter (hex 200-3FC).
-PCIROM: Selects ROM on a PCI device instead of system ROM. Works only with
some cards. You can optionally specify the device you want to use.
(e.g. -PCIROM 0 3 1 = BUS 0, DEVICE 3, FUNCTION 1)
-AMI: Uses interface supported by some AMI BIOSes instead of detecting the
chipset and writing to chipset registers to disable write protection.
(I haven't seen this working anywhere yet...)
-CHIPLIST: Displays a list of supported chips with their IDs which are needed
for use with -FORCE parameter.
-FORCE: Disable Flash ROM autodetection and set chip type to the one specified
by following ID (4 hex digits) - see -CHIPLIST parameter.
-BASE: Set ROM base address manually and allow running without PCI bus.
Useful for memory-mapped flash programming cards with old systems.
-REPAIR: ID on some Winbond and SST chips can be changed which can cause the
chip not being recognized by any software (including BIOS - AMI BIOS
does not work in that chip, Award BIOS displays Unknown Flash Type).
This option can change the ID on these chips. Because UniFlash does
not know the correct ID, you must specify it using -FORCE parameter.
-SAVE: Save current BIOS to file fname.
-CMOSS: Save current CMOS settings to file fname. CMOS memory size is detected
automatically.
-CMOSR: Restore CMOS settings from file fname. CMOS memory size is detected
automatically.
-CMOSC: Clear CMOS memory.
6.0 How to support UniFlash?
---------------------------------------
If you want to help me in adding support for new chips, in testing the whole
thing or bugfixing, mail me, I'll put your name in credits at the end.
I want your opinions & experiences to make flashing BIOS an easy and safe
operation, where you doesn't need tons of flashers (if you multiply the
number of chipsets by the number of Flash ROM memories available, you'll
understand better what we're talking about).
7.0 Credits
---------------------------------------
Ondrej Zary (Rainbow Software) - Continues to develop this program after the
authors (below) stopped the development. Done all that is new after v1.17b.
Added tons of Flash ROMs and chipsets, fixed a lot of bugs, got datasheets
from ALi.
Pascal van Leeuwen - Made first design, chipset handling routines, a primitive
write function for SST, WINBOND and INTEL, added flat real mode, etc...
Improved SST & Winbond routines, made AMD routines work, added Atmel support,
added lots & lots of flash chips (of which most are currently untested ...)
Added reliability improvements (backup of old BIOS, verify after write)
Tested both Winbond & SST chips, became an expert at hot-flashing ;-)
Galkowski Adam - Initiated the UniFlash project, made modular structure, made
the current design, added functions handling DMI, PnP and bootblock, added
expert mode, made the previous crappy AMD support, wrote this doc, tested SST
routines, had multiple rendez-vous with " Award BootBlock BIOS " ,
advertised, etc...
8.0 How to contact me
--------------------------------
You can contact me (Rainbow Software) by:
web : http://www.uniflash.org - UniFlash ONLY
web : http://rainbow.ht.st
web : http://www.rainbow-software.org
(new versions should be at all the addresses above)
e-mail : rainbow@rainbow-software.org
When sending reports that something doesn't work, always send the log file!
9.0 Revision history
-------------------------------
1.33 -fixed reboot when running on QDI Titanium IB+ board
-no more flashing when file size is not correct
-added support for Winbond LPC Super I/O chips W83697(H)F,
W83697SF and W83697UF
-fixed problems with bootblock erasing on Atmel AT49x001(N)(T) and
AT49x002(N)(T) chips (bootblock can't be erased separately - & gt; chip
erase must be used)
-english-only - other languages are not compiled in the binary
release because the translations are outdated
-flash including bootblock by default, flashing without bootblock
is available from the advanced menu
-Restore backup CMOS data in CMOS menu now works
1.32 -added support for c't flasher 8-bit ISA card, autodetecting port
and memory base, supports Flash ROMs up to 512KB
-register contents in LOG file are now written as hex numbers
1.31 -added support for ALi Aladdin, the ALi's first Pentium chipset
(uses low E and F segments, disabling shadow during read access)
-if the south bridge is not found, the first device with no class
code is assumed to be south bridge (for old chipsets)
-fixed one line more cleared when changing drives in file browser
-modified chipset detection and identifying code to allow easier
implementation of support for new chipsets
-fixed error when opening files with read-only attribute set
-modified i8xx chipset code to support FWHs up to 4MB (32Mbit)
-added SiS 648, 651, 655, 733, 745, 746, 748, 755 chipsets
-added i845E, i845G(E/L/V)/845PE, i845MP/MZ, i852GM/855GM, i855PM,
i875P, E7205, E7501, E7505 chipsets
-added VIA Apollo KT333, KT400(A), Apollo Pro 266T, P4X400
-added ALi Aladdin 7, Aladdin Pro III (TNT2), CyberBLADE Aladdin i1,
Aladdin Pro 5(T/M), Aladdin-P4, CyberAladdin-P4
-modified multi-language code to save some memory by initializing
only the selected language (also reduced EXE file size)
-moved PCI card support into separate unit (PCICARDS.PAS) and added
specific support for these PCI network cards:
STMicroelectronics STE10/100(A), Winbond W89C840AF,
SMSC LAN83C175 EPIC/C, VIA VT6102, VT6105M Rhine III
Realtek RTL8129/30/39, RTL8139 series, RTL8169 series
ADMtek AL981 Comet, AN983,985(B/BL) Centaur (B),
ADM9511,9513 Centaur II, Adaptec AIC-6915
-added support for PMC Pm49FL002/004/008 FWHs/LPCs
1.30 -added timeouts to all program/erase routines so there should never
be any lockups, even if Flash ROM does not respond
-fixed incorrect ROM Base when no Flash ROM detected
-fixed (forced) displayed when chip was forced and then redetected
-graph color during flashing now represents the write status -
green means write OK, red means write failed (timeout/error)
-fixed GenPageProg and AtmelPageProg to avoid extra retries for
chips that do not support error bit - it slowed down flashing and
reduced chip life (nice to see how fast W29EE011 really is)
-added support for i82801DB ICH4
-added a question when flashing without bootblock and there's
bootblock mismatch allowing user to flash including bootblock
(to prevent users from killing the BIOS because of not reading
this manual...)
-removed PnP (ESCD) manipulation (DMI was removed some time ago),
it was very dangerous (no checks if there really is ESCD data -
easy way to kill the BIOS) and useless
-fixed a bug in -BASE parameter (thanks to Krystian Rozycki)
-fixed bug in protect/unprotect code for all FWHs that prevented
flashing from working
-added nVidia nForce support
1.29 -added some Winbond Flash ROMs: W39L512, W39F010, W39L010, W39L020,
W39L040, W39V040FA (FWH) and W49F020
-found old Catalyst datasheets - fixed CAT28F150T, added CAT28F015T
and CAT28F015B
-better PCI ROM flashing, added 3Dfx Banshee support
-added Micron Copperhead+Coppertail chipset detection (has no flash
write protection)
-added Contaq/Cypress hyperCache chipset (CY82C691+CY82C693(U/UB))
and 386/486 chipsets with PCI (CY82C599 required)
-changed i82378ZB SIO and i82379AB SIO.A detection (it has no class
code - now detected by vendor and device ID if 82434LX/NX present)
-fixed CMOS size detection detecting falsely 256b on some boards
-modified code to allow easier implementation of various flash
access methods (external progammers, PCI cards...)
-rewrote ALi FinALi support using these new methods (it was a lot
easier now)
-some cosmetic fixes (misaligned error messages, some german texts)
-fixed flashing on PC Chips M715 board (i440LX) with Award
BootBlock BIOS (GPO used for write protection)
-added VIA VT8235 south bridge support
-added STMicroelectronics M50LPW040, M50FW002 and M50LPW002 chips
-added unprotect for STMicroelectronics LPC and FWH chips
-found a way to unprotect Flash ROM on Abit BX133-RAID (GPO used),
might work on other Abit i440BX based boards too
BUT: Flashing failed with Winbond W49F002U - some cache problems?
1.28 -fixed -SAVE paramter (it was completely broken)
-display Chipset and Flash ROM when only -QUIT parameter specified
-fixed bug causing reset of ITE LPC Super I/Os (resulting in floppy
and COM & LPT ports not working until reboot)
-fixed Macronix chip detection
-fixed Atmel AT29Cxxx detection (again, it really works now)
-fixed Atmel programming routine (chip remained unprotected)
-fixed some SiS chipset support
-fixed Utron 128KB support (again)
-fixed showing SUCCESS when bootblock mismatch and user answered NO
-fixed the detection routine erased vendor and device IDs from some
Winbond and SST chips (detected properly once but then unknown,
BIOS displayed " Unknown Flash Type " message)
-added repair feature to repair the erased IDs (-repair parameter)
-added support for ALi FinALi 486 chipset
-enable/disable menu items after redetect with/without Flash ROM
-verify now shows unchanged areas
-removed $4B and $D5 IDs for Macronix MX28F1000P (they were there
because of the detection bug which is now fixed)
-added logging for north bridge methods
-added support for UMC UM8881F+UM8886BF chipset (no datasheets,
reverse engineering used)
-fixed hang when running under Award BootBlock BIOS with
uninitialized or absent graphics card
-added user friendly filename editing, default file names when
saving a file and file browser when opening a file (press ENTER on
the prompt, TAB to change drive)
-added I/O error checking for all file operations
-added -REBOOT patameter to reboot after flashing using -E
-added -BASE parameter to set ROM base address manually and allow
UniFlash to run without PCI bus
1.27 -added -MONO parameter for monochrome monitors
-enhanced -PCIROM functionality, you can now manually specify
a device by its BUS, DEVICE and FUNCTION numbers (decimal)
-fixed HiNT VXPro-II (Utron UC85C501/502) 128KB Flash ROMs
-added some VIA chipsets: ProSavage KM133(A), P4M266, P4X266(A)/333
-added real VIA VT8233 support
-fixed hang when EMM386.EXE is loaded (display error message now)
-success chime sound also in emergency mode
-fixed Atmel AT29Cxxx detection
-added ITE IT8700F/8705F and IT8710 LPC Super I/O detection with
SiS 540 and SiS 630 chipsets and all newer
-added some SiS chipsets : SiS 635, SiS 640, SiS 645, SiS 645DX,
SiS 650, SiS 730, SiS 735 and SiS 740 - I have no datasheets, but
SiS 735 is tested and works
-clear keyboard buffer before asking for file names and also on exit
-fixed memory de-allocation bug when HIMEM.SYS is loaded
1.26 -added Intel E7500 chipset with 82801CA (ICH3-S) I/O Controller Hub
-added some ALi chipsets: Aladdin III (M1521 and M1523(B)) and
Aladdin IV/IV+ (M1531(B))
-ALi FINALi 486 chipset (M1489) is not supported because it doesn't
map Flash ROM below 4GB
-added AMD 760MPX chipset with AMD-768 South Bridge
-added OPTi Vendetta 82C750 chipset (removed the old disabled code)
-added HiNT VXPro-II chipset (I think that it's Utron UC85C501/502,
because this one matches it and has programmable Mfg. & Device IDs)
-added -QUIT parameter - quits when processed, all comands after
will be ignored (useful use: " UNIFLASH -SAVE BACKUP.BIN -QUIT " )
-added German language support (by Gerald Bottcher)
-PCI-to-ISA posted write buffer is disabled on ALi chipsets during
flashing to fix problems with some Flash ROMs (e.g. EON)
-added unprotect for SST49LF002A/003A/004A/008A FWHs
1.25 -fixed crash in Windows on some machines - display error message
(thanks to Alejando Pelaez)
-pressing ESC in -chiplist will quit
-CMOS size in log
-added -CMOSS (Save CMOS), -CMOSR (Restore CMOS) and -CMOSC (Clear
CMOS) options (they work also in Windows)
-added support for 256b CMOS
-fixed CMOS support to save/restore/clear also bytes 15 and 16
-added ServerWorks ServerSet III LE and HE chipsets with Reliance
NB6536 & NB6635 North Bridges (without any info from ServerWorks)
-added National Semiconductor PicoPower Vesuvius-LS chipset
-added National Semiconductor Geode GX1 CPU with North Bridge
(Cyrix MediaGX) and CS5530(A) South Bridge (Cyrix CX5530(A))
1.24 -added support for some ALi chipsets: Aladdin Pro IV and ALiMAGiK 1
-fixed 256KB and 512KB support for ALi chipsets
-added VIA Apollo VP3 with VT82C596 South Bridge
-implemented Redetect Flash ROM function
-AMI Flash Interface is no longer automatically enabled to prevent
hangs. You must use " -ami " parameter to activate it.
-added two more IDs for Macronix MX28F1000P - $4B and $D5
-simplified detection routine - removed support for multiple Flash
ROMs and removed all 16-bit wide ROMs, cleaned up the code
-pressing Q in -chiplist will quit (like MORE.COM)
-fixed Macronix MX29F002(N)T slow erase bug
-added Reliance/ServerWorks OSB4 South Bridge
1.23 -added Italian language support (by Enrico Antongiovanni)
-added timeout to GenPageProgB and GenPageProgW (to prevent hangs
with boot block protection enabled on Winbond Flash ROMs)
-added auto-logging feature (-LOG parameter)
-added support for Intel 830MP and 845 chipsets
-new keyboard handler doesn't use BIOS - this allows UniFlash to
work correctly under Award BootBlock BIOS (tested)
-added simple help on the bottom of screen in menu
-added new program/erase routines for Winbond Sectored Flash ROMs
(may fix Winbond W29F002U?)
-tried to fix but still not fixed SiS 501/5101/5501 support
-some VIA reverse engineering (reserved registers seems to be used)
but new VIA/AMD chipsets still not working (if you have " Flash
Write Protect " option in BIOS, your chipset will work when you
disable it)
1.22 -added error messages: running under Windows, PCI bus not found
-fixed Flash ROM write protect enable/disable - fixed possible
chipset register corruption
-added new delay routine based on Time Stamp Counter (TSC), it's
used on all CPUs that supports TSC (Pentium+), old CPUs use the
old routine. This fixed all problems with slow performance on
fast computers
-modified waiting times for Page Write Flash ROMs (most of Atmel,
SST and Winbond Flash ROMs) to prevent lock-ups
-fixed i430MX South Bridge detection (thanks to Josh Little but he
paid hard for that - his notebook doesn't work anymore because
Intel 28F004-T support doesn't work)
-fixed a _VERY_ NASTY BUG in Bulk Erase/Need Blanking chip support
this one was there probably from the beginning of UniFlash and
actually caused the same byte to be flashed to entire chip...
This fixed almost all Bulk Erase/Need Blanking chips.
-Nils Emil P. Larsen tested these Bulk Erase/Need Blanking chips,
they're working CAT28F010, MX28F1000P, Intel 28F010 and also H.T.
M21561 (which is actually MX28F1000P)
-added support for Intel 860 chipset (Xeon) and ALi Aladdin V
-added support for 1MB Flash ROMs with VIA VT82C596(A|B) and
VT82C686(A) South Bridges
-doesn't exit when no Flash ROM detected in PCI Option ROM mode
-chiplist now pauses after each screen (no need for external more
program) but not when stdout is redirected
-fixed memory corruption when using -chiplist (thanks to Marusceac
Claudiu Florin)
-beep after successful flashing
-heavy menu modifications, removed expert and debug modes - they're
not needed anymore, add Home,PgUp/End,PgDown keys
-removed BIOS info (I haven't seen it working anywhere)
-added some Intel chips: 28F008-T series and 28F008-B series
-added STMicroelectronics Flash ROMs: M28F256, M28F512, M28F101,
M28F102, M28F201, M29F512B, M29F010B, M29F040(B), M29F080A,
M29F016B, M29F002(B)(N)T, M29F002(B)B, M29F100(B)T, M29F100(B)B,
M29F200(B)T, M29F200(B)B, M29F400(B)T, M29F400(B)B, M29F800AT,
M29F800AB, M29F160BT, M29F160BB, M29W512B, M29W010B, M29W022BT,
M29W022BB, M29W040(B), M29W200BT, M29W200BB, M29W400(B)T,
M29W400(B)B, M29W800(A)T, M29W800(A)B, M29W160BB/DB, M29W004(B)T,
M29W004(B)B, M29W008(A)T, M29W008(A)B, M50FW040 (FWH),
M50FW080 (FWH) and M50LPW080 (LPC)
-added Texas Instruments Flash ROMs: TMS28F210, TMS29xF040 and
info about the others into docs
-added Fujitsu Flash ROMs: MBM29F002TC, MBM29F002BC, MBM29F200TC,
MBM29F200BC, MBM29F400TC, MBM29F400BC, MBM29F040C, MBM29F033C,
MBM29LV160TE, MBM29LV160BE, MBM29PL160TD and MBM29PL160BD
-modified Mosel support for SyncMOS chips F29C31004B and F29C31400T
-fixed a bit PCI Option ROM enabling (for AGP cards), but flashing
still does not work (looks like writes to ROM are ignored - like
write protection, the Flash ROM is not responding to commands)
-simplified the detection routine (note: new one is still not done)
1.21 -added support for SiS chipsets: 85C496+497, 85C501/5101/5501,
5511, 5571,5591/5592, 5596, 5597/5598/5581/5120, 530, 540, 600,
620 and 630 (all untested). It's unbelievable, but they are using
5 (!) different methods to enable Flash ROM write and what's more,
all their south bridges have the same device ID - $0008 (SiS 540
and 630 can have either $0008 or $0018).
-added support for SMSC VictoryBX-66 chipset
-added support for Winbond/Symphony Labs W83C553F South Bridge
-added support for ITE South Bridges IT8871F/2F and IT8888F
-fixed Flash ROM detection - Device IDs can have even parity
-changed sector structure array - can now hold more sectors (upto
5*65535), 128b to 8MB each (see addchip.faq)
-added support for Alliance Semiconductor Flash ROMs: AS29F040,
AS29F002T, AS29F002B, AS29LV400T, AS29LV400B, AS29F200T,
AS29F200B, AS29LV800T and AS29LV800B
-added some AMD Flash ROMs: Am29LV001BT, Am29LV001BB, Am29LV010B,
Am29F004BT, Am29F004BB, Am29LV040B, Am29LV081B, Am29LV008(B)T,
Am29LV008(B)B, Am29LV800BT, Am29LV800BB, Am29SL800CT, Am29SL800CB,
Am29F016(B), Am29F017B, Am29LV017B, Am29LV116BT, Am29LV116BB,
Am29F160DT, Am29F160DB, Am29LV160BT/DT, Am29LV160BB/DB,
Am29SL160CT, Am29SL160CB, Am29PL160CB, Am29F032B, Am29LV033C,
Am29LV320DT, Am29LV320DB, Am29LV065D
-added some Atmel Flash ROMs: AT29LV512, AT49x512, AT49x010,
AT49x001(N)T, AT49x001(N), AT49x002(N)T, AT49x002(N),
AT49x2048(A), AT49x4096(A), AT49x008AT, AT49x8192(A)T,
AT49x8192(A), AT49x8011T, AT49x8011, AT49x160/161(4)T,
AT49x160/161(4), AT49BV320T/321T, AT49BV320/321
-added some Catalyst Flash ROMs: CAT28F010, CAT28F020, CAT28F102,
CAT28F512
-added EON Flash ROMs: EN29F040, EN29F080, EN29F800T, EN29F800B,
EN29F002T, EN29F002B
-added Hyundai Flash ROMs: HY29F002T, HY29F002B, HY29F040,
HY29F040A, HY29F080, HY29F400T, HY29F400B, HY29F800T, HY29F800B,
HY29LV160T, HY29LV160B
-added IMT Flash ROMs: IM29F001T, IM29F001B, IM29F002T, IM29F002B,
IM29F004T, IM29F004B, IM29LV004T, IM29LV004B
-added some Intel chips: 28F256A, 28F512, 28F004Sx, 28F008Sx,
28F008SA, 28F016Sx, 28F016S5/SA, 28F320J3A, 28F320J5, 28F640J3A,
28F640J5, 28F128J3A
-added ISSI (Integrated Silicon Solution) Flash ROMs: IS28F010 and
IS28F020
-removed Macronix MX28F1000PC and MX28F1000PPC (not existing)
-added some Macronix chips: MX28F2000P, MX28F2000T, MX29F100T,
MX29F100B, MX28F002T, MX28F002B, MX29F001T, MX29F001B,
MX29F002(N)T, MX29F002(N)B, MX29F022T, MX29F022B, MX29F200T,
MX29F200B, MX29F004T, MX29F004B, MX29F400T, MX29F400B, MX29LV004T,
MX29LV004B, MX29LV400T, MX29LV400B, MX29F040, MX29LV040, MX29F080,
MX29LV081, MX29F800T, MX29F800B, MX29LV008T, MX29LV800T,
MX29LV800B, MX29F016, MX29L1611, MX29L1611G, MX29F1610A,
MX29LV160T, MX29LV160B, MX29F1615, MX29L3211
-added Mosel Vitelic Flash ROMs:
V29C51000T, V29C51000B, V29C51001T, V29C51001B, V29C51002T,
V29C51002B, V29C51004T, V29C51004B, V29C51400T, V29C51400B,
V29C31004T, V29C31004B, V29LC51000, V29LC51001, V29LC51002
-added PMC Flash ROMs: Pm39LV512R, Pm39LV010R, Pm29F002T,
Pm29F002B, Pm29F004T/5V or Pm29LV104T, Pm29F004B or Pm29LV104B
-added some SST Flash ROMs: 29SF512, 29VF512, 29SF010, 29VF010,
29SF020, 29VF020, 29SF040, 29VF040, 39SF512, 39xF512, 39S010(A),
39xF010, 39SF020(A), 39xF020, 39SF040, 39xF040, 39xF080, 39xF016,
39xF200A, 39xF400A, 39xF800A, 39xF160, 49LF002(A), 49LF003A,
49LF004, 49LF004A, 49LF008, 49LF008A, 49LF020, 49LF030, 49LF040,
49LF080
-added some Winbond Flash ROMs: W29C040, W49F002U, W49V002(A),
W49V002F(A), W29F102 or W49F102, W49L102, W49F201, W49L201
-some code size optimizations
1.20 -added support for these AMIC chips: A29001(1)T, A29001(1)B,
A29010, A29002(1)T, A29002(1)B, A29400T, A29400B and A29040
They're all sectored and use AMD commands.
(For Matt Choudoir's broken ABIT KT7A with AMIC A29002T)
A29002(1)T tested and works correctly, others are untested.
-added support for newer VIA chipsets (all untested)
Apollo MVP4, Apollo Pro, Apollo Pro Plus/133/133A,
Apollo ProMedia, Apollo Pro 133Z/PM133, Apollo KX133,
Apollo KT133(A), Apollo KT266, Apollo Pro 266.
North Bridges: VT8501, VT82C691/693(A)/694X, VT82C693(A), VT8601,
VT8605, VT8371, VT8363(A), VT8366, VT8633
South Bridges: VT82C686(A), VT8231, VT8233 (last two may or may
not work because I don't have datasheets).
Plus some north bridges that aren't used anywhere (but are in
VIA's INF file) - VT8653, VT8662, VT8615, VT8361, VT3133.
-added support for AMD 750, 760 and 760MP chipsets (751,761 and
762 north bridges, 756 and 766 south bridges). Registers are
almost same as VIA. Untested.
1.19 -added support for Intel 8xx chipsets (Hub Architecture):
i810, 810E, 810E2, 815, 815E(P), 815EM, 820, 820E, 840, 850
with these I/O controller hubs:
82801AA(ICH), 82801AB(ICH0), 82801BA(ICH2), 82801BAM(ICH2-M)
(they're all not tested)
-fixed ALi chipset detection
-M1543 now support 512KB ROMs, but only some revisions of this chip
can really support them (and according to ALi, there is no
software way to detect that)
1.18 -I (Rainbow Software) am continuing the development of this program
after it was abandoned for two years
-added support for i440BX/ZX and i440GX chipsets
-added support for ALi M1543 south bridge and ALi M1621 north
bridge (ALi Aladdin Pro II chipset)
-added some info about ASD chips into this DOC
-added support for Intel 82802AB(4Mb)/AC(8Mb)Firmware Hubs
-added support for Atmel AT49F002(N)T chip
1.17b -fixed a bug in the -FORCE option, should work now
-still having trouble correctly detecting flash chips, we can use
all the input we can get on which chips are and aren't correctly
identified by UNIFLASH !
1.17 -pre-1.20 release because of some important fixes, still working
on some things we promised for 1.20, though
-fixed flashing problems with Macronix & AMD chips
-Integrated English & French version into one executable to avoid
having to keep 2 versions synchronized
-Cleaned up chipset detection
-known bugs: chip detection still not 100% accurate
(we're working on it, this will be fixed in v1.20)
1.16d -Added AMI Flash Interface support
-Added the " Additional BIOS Info " option
-Added the Macronix MXIC 28F1000PPC/12V chip
(not officially released by Adam's request)
1.16c -Made the detection routine more accurate
1.16b -Removed some (debugging?) code that messed up detection
1.16 -Fixed a stupid bug in the chip detection part, which made it
impossible to identify Atmel chips, for example.
-Tried to add TI chips and after long hours of work and of
downloading datasheets figured out that TI chips are just
" remarked " AMD & Intel chips (the same Mfg & Id numbers), so TI
chips will be recognised as AMD or Intel ones.
-Made the source code clearer. Wrote a FAQ explaining how to add
your own chips.
-Added the Intel 28F010/12V and 28F020/12V chips
-Translation of the whole thing to french. The english 1.16 version
equals french 1.00FRENCH version
1.15 -Fixed problems with AMD flash chips
-Added VIA 82C570 chipset support
-Tested Intel 28F001BX-T/28F001BN-T support
TO DO before final release of V1.15: fix extended memory detection,
does not work ok on a friends' system ...
1.14 -Added Macronix support
-Added SST 28EE011 flash chip
-Added AMD Am28F010, Am28F010A, Am28F020, Am28F020A, Am28F256
Am28F256A, Am28F512 and Am28F512A flash chips
-Removed valid PCI ROM check so it is possible to flash a ROM on a
PCI card that does not (yet) contain a valid ROM
-Added some safety stuff:
-cache disabled during flashing (having the cache enabled seems to
be a problem with some Cyrix chips (or chip/chipset combo's ?))
-interrupts now fully disabled during actual communication with
the flash chip for increased reliability
-added multiple flash chips/single ROM image support (experimental)
1.13 -Added Catalyst support
-Added OPTi chipset support (for 82C750 'Vendetta')
-Added Intel 28F400/28F004 flash chips
-Completely rewrote PCI option ROM support (still experimental)
1.12 -Fixed problem ID-ing Intel chips (oops)
-Made first attempt at supporting PCI option ROMS (experimental)
1.11 -Added Atmel support
1.1 -Fixed memory allocation bug with sectored (Intel,AMD) flash ROM
chips
-Added VIA chipset support
1.0 -First public release
9.1 KNOWN BUGS
-------------------------
- Intel 28F004-T doesn't work
- PCI Option ROM Flashing (-pcirom parameter) doesn't work on many cards
- 256KB BIOSes don't work on some i430VX/HX boards (AWDFLASH works!)
- Winbond W49F002U doesn't work - looks like write protected (sometimes???)
- Some VIA and AMD chipsets don't work - maybe because of non-standard flash
write protection on some boards.
- Garbage on screen instead of flashing - on Asus P5A board with Aladdin V
and 256K Flash ROM, but it works OK on Micronics C200 (same chipset and
128K Flash ROM). On PC Partner VIB8x4DS board with VIA Apollo VPX, UniFlash
flashes the SyncMOS F29C51002T chip OK but then hangs with garbage on
screen. This problem appears to be associated with SyncMOS Flash ROMs only.
- Many Abit boards do not work - looks like undocumented write protection
9.2 What's missing
-----------------------------
- Boot Block on Winbond W29C020 can be flashed even if the Boot Block
protection is enabled on the chip - AMIFLASH v8.15.02 can do it but
UniFlash can't (I don't know how to do it)
- Support for ServerWorks, UMC, new VIA and new SiS chipsets because
datasheets are unavailable (these companies are simply ignoring e-mails)
I can't do much with only " unofficial " info.
- Support for some exotic Flash ROMs like Intel 82802AA 2mbit Firmware Hub or
Bright BM29FS040 (no datasheets available)
10.0 Compatibility tests
----------------------------------
Here is a list of tested & working motherboards/Flash ROM chip combinations.
Manufacturer | Model + revision | Chipset | Flash ROM chip used
---------------------------------------------------------------------------
ASUSTeK | T2P4 rev 2 & 3.10 | Intel 430HX | SST 29EE010/5V
Expertboard | 8661 | Intel 430VX | Winbond W29EE011/5V
Soyo | 5TA2 | Intel 430FX | SST 29EE010/5V
Shuttle | Hot-569 | Intel 430TX | Atmel AT29C010A/5V
Shuttle | Hot-565 | Intel 430TX | Winbond W29EE011/5V
Shuttle | Hot-603 | AMD 640 | Winbond W29EE011/5V
ASUSTeK | P2B rev 1.10 | Intel 440BX | Winbond W29EE011/5V
PC Chips | M726 v3.4A | Aladdin Pro 2 | ASD AE29F1008/5V
Abit | BX6 rev. 2 | Intel 440BX | AMIC A29002T/5V
MicroStar MSI | MS-5120 ver 1 | Intel 430FX | Winbond W29EE011/5V
Abit | BE6-R2 | Intel 440BX | Winbond W29C020/5V
DFI | P2-XLX | Intel 440LX | Winbond W29EE011/5V
FIC | PT-2006 | Intel 430VX | Intel 28F001/12V
PC Chips | M726 v3.4A | Aladdin Pro 2 | Winbond W29C020/5V
Abit | BX6-R2 | Intel 440BX | Winbond W29EE011/5V
Abit | BX6-R2 | Intel 440BX | Winbond W29C020(C)/5V
Abit | BX6-R2 | Intel 440BX | SST 29EE010/5V
Abit | BX6-R2 | Intel 440BX | CAT28F010/12V
Abit | BX6-R2 | Intel 440BX | Macronix MX28F1000P/12V
Abit | BX6-R2 | Intel 440BX | Intel 28F010/12V
AOpen | AP5C/P | Intel 430FX | SST29EE010/5V
Gigabyte | GA586SG | SiS 5591+5595 | Atmel AT29C010A/5V
Chaintech | 5IFM0 | Intel 430HX | Macronix MX29F001B/5V
ASUSTeK | P2B rev 1.10 | Intel 440BX | Atmel AT49F002T/5V
Micronics | C200 | Aladdin V | SST 29EE010/5V
MicroStar MSI | MS-5120 ver 1 | Intel 430FX | SST 29EE010/5V
MicroStar MSI | MS-5120 ver 1 | Intel 430FX | Macronix MX28F1000P/12V
MicroStar MSI | MS-5120 ver 1 | Intel 430FX | H.T. M21032T/12V
PC Chips | M726 v3.4A | Aladdin Pro 2 | Macronix MX29F002(N)T/5V
PC Chips | M726 v3.4A | Aladdin Pro 2 | EON EN29F002NT/5V
Mercury/Kobian| KOB 694X FSX r1.0 | ApolloPro 133A| SST 39VF020/3V (PLCC32)
QDI | LegendX | Intel 440LX | Winbond W29C020(C)/5V
PC Chips | M741LMRT | SiS 620+5595 | SST 29EE010/5V
PC Partner | VIB8x4DS | Apollo VPX | SyncMOS F29C51002T/5V
Soyo | 5EMA+ v1.1 | Apollo MVP3 | Macronix MX29F001T/5V
LuckyStar | K7VAT+ | Apollo KT133 | Winbond W29EE011/5V
LuckyStar | K7VAT+ | Apollo KT133 | Winbond W29C020(C)/5V
LuckyStar | K7VAT+ | Apollo KT133 | SST 39SF020(A)/5V
Chaintech | 7AIA5 | Apollo KT133A | Winbond W49F002U/5V
PC Chips | M571 | SiS 5598 | Winbond W29EE011/5V
PC Partner | P5VB3+ Rev. B | Apollo MVP3 | AMD Am29F010A/5V
Mercury/Kobian| KOB 630E FSFx r1.1| SiS630+IT8705F| EON EN29F002T/5V
ECS | K7S5A | SiS735+IT8705F| Winbond W49F002U/5V
PowerTech | MB532 v1.0 | Intel 430FX | SST 29EE010/5V
Matsonic | MS6260S rev.1.6A | Aladdin V | ASD AE29F1008/5V
PC Partner | TXB820DS | Intel 430TX | Atmel AT29C010A/5V
PC Chips | M570 v1.3 | SiS 5591+5595 | Atmel AT29C010A/5V
Gemlight/DTK | GMB-P57IPS-V1 | Intel 430TX | Winbond W29EE011/5V
PC Chips | M918 V1.2A | FinALi 486 | H.T. M21032T/12V
PC Chips | M918 V1.2A | FinALi 486 | Macronix MX28F1000P/12V
PC Chips | M918 V1.2A | FinALi 486 | Winbond W29EE011/5V
PC Chips | M918 V1.2A | FinALi 486 | Atmel AT29C010A/5V
GVC/BCM | FR500 | SiS 5598 | AMD Am29F002(N)(B)T/5V
Asus | A7V266-E | Apollo KT266A | SST 49LF020/3V
PC Chips | M537DMA | Apollo VPX | H.T. M20271H/12V
QDI | BrillianX 1 | Intel 440BX | SST 29EE020/5V
ECS(?) | TD-4IP-UMC-AIO | UM8881F+8886BF| Winbond W29EE011/5V
PC Chips | M919 V3.4B/F | UM8881F+8886BF| Macronix MX28F1000P/12V
PC Chips | M919 V3.4B/F | UM8881F+8886BF| Winbond W29EE011/5V
PC Chips | M715 V1.2A | Intel 440LX | ASD AE29F1008/5V
Zida | 4DPS | SiS 85C496+497| SST 29EE010/5V
PC Chips | M571LMR v5.0 | SiS 5598 | Macronix MX29F001T/5V
Iwill | P55A2 v1.0 | Intel 430FX | Intel 28F001BX/BN-T/12V
Asus | P2B-F | Intel 440BX | Winbond W29C020(C)/5V
QDI | WinneX 2 P6I810/W2| Intel 810 | Intel 82802AB/3.3V
Asus | P5A Rev 1.04 | ALi Aladdin V | SST 39SF020(A)/5V
AOpen | AP43 | SiS 85C496+497| SST 29EE010/5V
FIC | PT-2006 v2.2 | Intel 430VX | Winbond W29C020(C)/5V
FIC | PT-2006 v2.2 | Intel 430VX | H.T. M38705/12V
MicroStar MSI | MS-5120 ver 1 | Intel 430FX | Macronix MX28F1000/12V
PC Chips | Unknown Socket 4 | ALi Aladdin | ASD AE29F1008/5V
PC Chips | Unknown Socket 4 | ALi Aladdin | Macronix MX28F1000/12V
c't Flasher | 8-bit ISA card | | AMD Am29F040B/5V
c't Flasher | 8-bit ISA card | | Catalyst CAT28F010/12V
c't Flasher | 8-bit ISA card | | Intel 28F001BX/BN-T/12V
QDI | Titanium IB+ 1.0 | Intel 430TX | SST 29EE010/5V
QDI | KinetiZ 7B 1.0 | Apollo KT133 | SST 39SF020(A)/5V
QDI | Advance 3 1.0 | Apollo MVP3 | SST 29EE020/5V
QDI | BrillianX 9 2.0 | Intel 440BX | Winbond W29C020(C)/5V
11.0 Beta testing stuff
----------------------------------
We would like to extend our thanx to the following people who've been
very helpful with beta testing this program.
NOTE: YOU can be on this list too! All you have to do is send
information on a system where UNIFLASH doesn't work and help with
getting it to work on that system.
Please help us in making UNIFLASH the universal and reliable tool we had
in mind when we started this project. Thanx in advance!
The heroes gallery (random order)
---------------------------------
Enrico Antongiovanni
Wim Bervoets
Michael L. Croswell
Polyvios Simopoulos
Matthias David Siebler
Matt Choudoir
Nils Emil P. Larsen (really big thanks)
Josh Little
Tom Wiener
Dennis Schulz (BIG thanks - provided 5 chips and wanted only
one of them back!)
Miha Ovcak
Alejando Pelaez
RusH
David Russell
Highlander
Kuzvesov
Spec
Ernst Ahlers (c't Flasher author)
12.0 Biz support
---------------------------
We would like to thank the following people at the various flash ROM
and chipset manufacturers for their support (in random order):
Scotts Chen at Macronix International Co., Ltd.
Darlene Browne at Acer Laboratories, Inc., (USA), Administrator
Niel Smith, Application Engineering Manager, ALI USA
Henry Ho at Macronix International Co., Ltd.
Michael Solinas at Silicon Storage Technology, Inc. (SST), USA
Phillip Chang at Megawin Technology Co., Ltd.
Christopher Emerson and David Chu at Cypress Semiconductor Corp.
Thanks goes to Intel - all datasheets are freely available on their web page
upon release of new hardware. Guess why are Intel chipset the most compatible.
The companies in the list below should take this as an example of developer
support.
I would like NOT to THANK TO following COMPANIES for providing NO SUPPORT
for independent developers and NOT REPLYING TO E-MAILS:
Silicon Integrated Systems (SiS)
United Microelectronics Corporation (UMC)
ServerWorks
NVIDIA Corporation
I finally got some real e-mail from VIA, but only bad news:
" At this time, datasheets are only available to manufacturers under non
disclosure agreement who have a genuine application they are developing. This
policy is currently under review but at this time I cannot provide the
datasheets to you. "
============================== END OF DOCUMENT ===============================
What flash chips are supported by UniFlash 1.33?
-----------------------------------------------------------
UniFlash supports the following flash chips:
* means tested and functional,
# means tested, but doesn't work the way it should,
unmarked chips are not tested (note that a lot of chips are very similar to
one another though, so if one of them works then the rest should work fine
too)
,----------------------------------------------------------------------------,
| Flash ROM | Size |
`---------------------------------|------------------------------------------'
Alliance Semiconductor |
---------------------- |
AS29F040 | 512KB
AS29F002T | 256KB
AS29F002B | 256KB
AS29F200T | 256KB
AS29F200B | 256KB
AS29LV400T | 512KB
AS29LV400B | 512KB
AS29LV800T | 1024KB
AS29LV800B | 1024KB
----------------------------------|-------------------------------------------
AMD |
--- |
Am28F256 | 32KB
Am28F256A | 32KB
Am28F512 | 64KB
Am28F512A | 64KB
Am28F010 | 128KB
Am28F010A | 128KB
Am28F020 | 256KB
Am28F020A | 256KB
*Am29F010(A/B) | 128KB
*Am29F040(B) | 512KB
Am29F080(B) | 1024KB
Am29F016(B) | 2048KB
Am29F017B | 2048KB
Am29F032B | 4096KB
Am29F100T | 128KB
Am29F100B | 128KB
Am29F200AT/BT | 256KB
Am29F200AB/BB | 256KB
Am29F400AT/BT | 512KB
Am29F400AB/BB | 512KB
Am29F800(B)T | 1024KB
Am29F800(B)B | 1024KB
Am29F160DT | 2048KB
Am29F160DB | 2048KB
*Am29F002(N)(B)T | 256KB
Am29F002(N)(B)B | 256KB
Am29F004BT | 512KB
Am29F004BB | 512KB
Am29LV010B | 128KB
Am29LV040B | 512KB
Am29LV017B | 2048KB
Am29LV033C | 4096KB
Am29LV065D | 8192KB
Am29LV081B | 1024KB
Am29LV001BT | 128KB
Am29LV001BB | 128KB
Am29LV002(B)T | 256KB
Am29LV002(B)B | 256KB
Am29LV004(B)T | 512KB
Am29LV004(B)B | 512KB
Am29LV008(B)T | 1024KB
Am29LV008(B)B | 1024KB
Am29LV200(B)T | 256KB
Am29LV200(B)B | 256KB
Am29LV400(B)T | 512KB
Am29LV400(B)B | 512KB
Am29LV800BT | 1024KB
Am29LV800BB | 1024KB
Am29LV160BT/DT | 2048KB
Am29LV160BB/DB | 2048KB
Am29LV116BT | 2048KB
Am29LV116BB | 2048KB
Am29LV320DT | 4096KB
Am29LV320DB | 4096KB
Am29SL800CT | 1024KB
Am29SL800CB | 1024KB
Am29SL160CT | 2048KB
Am29SL160CB | 2048KB
Am29PL160CB | 2048KB
----------------------------------|-------------------------------------------
AMIC |
---- |
A29010 | 128KB
A29040 | 512KB
A29001(1)T | 128KB
A29001(1)B | 128KB
*A29002(1)T | 256KB
A29002(1)B | 256KB
A29400T | 512KB
A29400B | 512KB
----------------------------------|-------------------------------------------
ASD |
--- |
*AE29F1008 = Winbond W29EE011 | 128KB
*AE29F2008 = Winbond W29C020(C) | 256KB
----------------------------------|-------------------------------------------
Atmel |
----- |
AT29C256 or AT29C257 | 32KB
AT29C512 | 64KB
*AT29C010(A) | 128KB
AT29C020(A) | 256KB
AT29C040A | 512KB
AT29LV256 | 32KB
AT29LV512 | 64KB
AT29xV010(A) series | 128KB
AT29xV020 series | 256KB
AT29xV040A series | 512KB
AT49x512 series | 64KB
AT49x001(N)T series | 128KB
AT49x001(N) series | 128KB
*AT49x002(N)T series | 256KB
AT49x002(N) series | 256KB
AT49x008AT series | 1024KB
AT49x008(A) series | 1024KB
AT49x010 series | 128KB
AT49x020 series | 256KB
AT49x040 series | 512KB
AT49x080 series | 1024KB
AT49x080T series | 1024KB
AT49x4096(A) series | 512KB
AT49x8011T series | 1024KB
AT49x8011 series | 1024KB
AT49x160/161(4)T series | 2048KB
AT49x160/161(4) series | 2048KB
AT49BV320T/321T | 4096KB
AT49BV320/321 | 4096KB
----------------------------------|-------------------------------------------
Bright Microelectronics |
----------------------- |
BM29F040 = Hyundai HY29F040 | 512KB
BM29F400T = Hyundai HY29F400T | 512KB
BM29F400B = Hyundai HY29F400B | 512KB
----------------------------------|-------------------------------------------
Catalyst |
-------- |
CAT28F512 | 64KB
*CAT28F010 | 128KB
CAT28F015T | 192KB
CAT28F015B | 192KB
CAT28F020 | 256KB
*CAT28F001T | 128KB
*CAT28F001B | 128KB
CAT28F002T | 256KB
CAT28F002B | 256KB
CAT28F150T | 192KB
CAT28F150B | 192KB
CAT29F(N)002T | 256KB
CAT29F(N)002B | 256KB
----------------------------------|-------------------------------------------
EON |
--- |
EN29F040 | 512KB
EN29F080 | 1024KB
*EN29F002T | 256KB
EN29F002B | 256KB
EN29F800T | 1024KB
EN29F800B | 1024KB
----------------------------------|-------------------------------------------
Fujitsu |
------- |
MBM29F002TC | 256KB
MBM29F002BC | 256KB
MBM29F200TC | 256KB
MBM29F200BC | 256KB
MBM29F400TC | 512KB
MBM29F400BC | 512KB
MBM29F040C | 512KB
MBM29F033C | 4096KB
MBM29LV160TE | 2048KB
MBM29LV160BE | 2048KB
MBM29PL160TD | 2048KB
MBM29PL160BD | 2048KB
----------------------------------|-------------------------------------------
H.T. |
---- |
*M21561 = Macronix MX28F1000P | 128KB
*M21032T = Macronix MX28F1000P | 128KB
*M20271H = Macronix MX28F1000P | 128KB
----------------------------------|-------------------------------------------
Hyundai |
------- |
HY29F040 | 512KB
HY29F040A | 512KB
HY29F080 | 1024KB
HY29F002T | 256KB
HY29F002B | 256KB
HY29F400T | 512KB
HY29F400B | 512KB
HY29F800T | 1024KB
HY29F800B | 1024KB
HY29LV160T | 2048KB
HY29LV160B | 2048KB
----------------------------------|-------------------------------------------
IMT |
--- |
IM29F001T | 128KB
IM29F001B | 128KB
IM29F002T | 256KB
IM29F002B | 256KB
IM29F004T | 512KB
IM29F004B | 512KB
IM29LV004T | 512KB
IM29LV004B | 512KB
----------------------------------|-------------------------------------------
Intel |
----- |
28F256(A) | 32KB
28F512 | 64KB
*28F010 | 128KB
28F020 | 256KB
*28F001BX/BN-T | 128KB
28F001BX/BN-B | 128KB
28F002-T series | 256KB
28F002-B series | 256KB
#28F004-T series | 512KB
28F004-B series | 512KB
28F008-T series | 1024KB
28F008-B series | 1024KB
28F008SA | 1024KB
28F004Sx series | 512KB
28F008Sx series | 1024KB
28F016Sx series | 2048KB
28F016S5 | 2048KB
28F004B3-T | 512KB
28F004B3-B | 512KB
28F008B3-T | 1024KB
28F008B3-B | 1024KB
28F016B3-T | 2048KB
28F016B3-B | 2048KB
28F320J5 | 4096KB
28F320J3A | 4096KB
28F640J5 | 8192KB
28F640J3A | 8192KB
28F128J3A | 16384KB
*82802AB (Firmware Hub) | 512KB
82802AC (Firmware Hub) | 1024KB
----------------------------------|-------------------------------------------
ISSI |
---- |
IS28F010 | 128KB
IS28F020 | 256KB
----------------------------------|-------------------------------------------
Macronix |
-------- |
*MX28F1000 | 128KB
*MX28F1000P | 128KB
MX28F2000P | 256KB
MX28F2000T | 256KB
MX28F002T | 256KB
MX28F002B | 256KB
MX29F040 | 512KB
MX29F080 | 1024KB
MX29F016 | 2048KB
*MX29F001T | 128KB
*MX29F001B | 128KB
*MX29F002(N)T | 256KB
MX29F002(N)B | 256KB
MX29F022T | 256KB
MX29F022B | 256KB
MX29F004T | 512KB
MX29F004B | 512KB
MX29F100T | 128KB
MX29F100B | 128KB
MX29F200T | 256KB
MX29F200B | 256KB
MX29F400T | 512KB
MX29F400B | 512KB
MX29F800T | 1024KB
MX29F800B | 1024KB
MX29F1610A | 2048KB
MX29F1615 | 2048KB
MX29LV040 | 512KB
MX29LV081 | 128KB
MX29LV004T | 512KB
MX29LV004B | 512KB
MX29LV008T | 1024KB
MX29LV400T | 512KB
MX29LV400B | 512KB
MX29LV800T | 1024KB
MX29LV800B | 1024KB
MX29LV160T | 2048KB
MX29LV160B | 2048KB
MX29L1611 | 2048KB
MX29L1611G | 2048KB
MX29L3211 | 4096KB
----------------------------------|-------------------------------------------
Megawin |
------- |
MM29F040 = AMD Am29F040(B)/5V | 512KB
----------------------------------|-------------------------------------------
Micron |
------ |
MT28F004-T = Intel 28F004-T | 512KB
MT28F004-B = Intel 28F004-B | 512KB
MT28F400-T = Intel 28F400-T | 512KB
MT28F400-B = Intel 28F400-B | 512KB
MT28F008-T = Intel 28F008-T | 1024KB
MT28F008-B = Intel 28F008-B | 1024KB
MT28F800-T = Intel 28F800-T | 1024KB
MT28F800-B = Intel 28F800-B | 1024KB
----------------------------------|-------------------------------------------
Mosel Vitelic |
------------- |
V29C51000T | 64KB
V29C51000B | 64KB
V29C51001T | 128KB
V29C51001B | 128KB
V29C51002T | 256KB
V29C51002B | 256KB
V29C51004T | 512KB
V29C51004B | 512KB
V29C51400T | 512KB
V29C51400B | 512KB
V29LC51000 | 64KB
V29LC51001 | 128KB
V29LC51002 | 256KB
V29C31004T | 512KB
V29C31004B | 512KB
V29C31400T | 512KB
----------------------------------|-------------------------------------------
NexFlash Technologies |
--------------------- |
NX29F010 = AMD Am29F010 | 128KB
NX29F400B = AMD Am29F400B | 512KB
----------------------------------|-------------------------------------------
PMC |
--- |
Pm39LV512R | 64KB
Pm39LV010R | 128KB
Pm29F002T | 256KB
Pm29F002B | 256KB
Pm29F004T or Pm29LV104T | 512KB
Pm29F004B or Pm29LV104B | 512KB
Pm49FL002 | 256KB
Pm49FL004 | 512KB
Pm49FL008 | 1024KB
----------------------------------|-------------------------------------------
SST |
--- |
28EE010/011 | 128KB
29EE512 | 64KB
*29EE010 | 128KB
*29EE020 | 256KB
28x040(A) series | 512KB
29x512 series | 64KB
29x010 series | 128KB
29x020 series | 256KB
29SF512 | 64KB
29SF010 | 128KB
29SF020 | 256KB
29SF040 | 512KB
29VF512 | 64KB
29VF010 | 128KB
29VF020 | 256KB
29VF040 | 512KB
*49LF020 | 256KB
49LF030 | 384KB
49LF040 | 512KB
49LF080 | 1024KB
49LF002(A) (Firmware Hub) | 256KB
49LF003A (Firmware Hub) | 384KB
49LF004 (Firmware Hub) | 512KB
49LF004A (Firmware Hub) | 512KB
49LF008 (Firmware Hub) | 1024KB
49LF008A (Firmware Hub) | 1024KB
39SF512 | 64KB
39SF010(A) | 128KB
*39SF020(A) | 256KB
39SF040 | 512KB
39xF512 series | 64KB
39xF010 series | 128KB
*39xF020 series | 256KB
39xF040 series | 512KB
39xF080 series | 1024KB
39xF016 series | 2048KB
----------------------------------|-------------------------------------------
STMicroelectronics |
------------------ |
M28F256 | 32KB
M28F512 | 64KB
M28F101 | 128KB
M28F102 | 256KB
M28F201 | 256KB
M29F512B | 64KB
M29F010B | 128KB
M29F040(B) | 512KB
M29F080A | 1024KB
M29F016B | 2048KB
M29F002(B)(N)T | 256KB
M29F002(B)B | 256KB
M29F100(B)T | 128KB
M29F100(B)B | 128KB
M29F200(B)T | 256KB
M29F200(B)B | 256KB
M29F400(B)T | 512KB
M29F400(B)B | 512KB
M29F800AT | 1024KB
M29F800AB | 1024KB
M29F160BT | 2048KB
M29F160BB | 2048KB
M29W512B | 64KB
M29W010B | 128KB
M29W022BT | 256KB
M29W022BB | 256KB
M29W040(B) | 512KB
M29W200BT | 256KB
M29W200BB | 256KB
M29W400(B)T | 512KB
M29W400(B)B | 512KB
M29W800(A)T | 1024KB
M29W800(A)B | 1024KB
M29W160BB/DB | 2048KB
M29W004(B)T | 512KB
M29W004(B)B | 512KB
M29W008(A)T | 1024KB
M29W008(A)B | 1024KB
M50FW002 (FWH) | 256KB
M50LPW002 (LPC) | 256KB
M50FW040 (FWH) | 512KB
M50LPW040 (LPC) | 512KB
M50FW080 (FWH) | 1024KB
M50LPW080 (LPC) | 1024KB
----------------------------------|-------------------------------------------
SyncMOS |
------- |
F29C51001T = Mosel V29C51001T | 128KB
F29C51001B = Mosel V29C51001B | 128KB
#F29C51002T = Mosel V29C51002T | 256KB
F29C51002B = Mosel V29C51002B | 256KB
F29C51004T = Mosel V29C51004T | 512KB
F29C51004B = Mosel V29C51004B | 512KB
F29C31004T = Mosel V29C31004T | 512KB
F29C31004B = Mosel V29C31004B | 512KB
F29C31400T = Mosel V29C31400T | 512KB
----------------------------------|-------------------------------------------
Texas Instruments |
----------------- |
TMS29xF040 | 512KB
TMS28F002A-T = Intel 28F002-T | 256KB
TMS28F002A-B = Intel 28F002-B | 256KB
TMS28F200A-T = Intel 28F200-T | 256KB
TMS28F200A-B = Intel 28F200-B | 256KB
TMS28F200BZT = Intel 28F200-T | 256KB
TMS28F200BZB = Intel 28F200-B | 256KB
TMS28F400A-T = Intel 28F400-T | 512KB
TMS28F400A-B = Intel 28F400-B | 512KB
TMS28F400BZT = Intel 28F400-T | 512KB
TMS28F400BZB = Intel 28F400-B | 512KB
TMS28F004A-T = Intel 28F004-T | 512KB
TMS28F004A-B = Intel 28F004-B | 512KB
TMS28F008A-T = Intel 28F008-T | 1024KB
TMS28F008A-B = Intel 28F008-B | 1024KB
TMS28F800A-T = Intel 28F800-T | 1024KB
TMS28F800A-B = Intel 28F800-B | 1024KB
TMS28F010A/B = Intel 28F010 | 128KB
TMS28F020 = Intel 28F020 | 256KB
TMS28F512A = Intel 28F512 | 64KB
TMS29F002RT = AMD Am29F002T | 256KB
TMS29F002RB = AMD Am29F002B | 256KB
TMS29F008T = AMD Am29F800T | 1024KB
TMS29F008B = AMD Am29F800B | 1024KB
TMS29F010 = AMD Am29F010 | 128KB
TMS29F040 = AMD Am29F040 | 512KB
TMS29F400T = AMD Am29F400AT | 512KB
TMS29F400B = AMD Am29F400AB | 512KB
TMS29F800T = AMD Am29F800T | 1024KB
TMS29F800B = AMD Am29F800B | 1024KB
TMS29LF008T = AMD Am29LV008T | 1024KB
TMS29LF008B = AMD Am29LV008B | 1024KB
TMS29LF800T = AMD Am29LV800BT | 1024KB
TMS29LF800B = AMD Am29LV800BB | 1024KB
----------------------------------|-------------------------------------------
Winbond |
------- |
*W29x010/011/012 series | 128KB
*W29C020(C) | 256KB
W29C040 | 512KB
W29EE512 | 64KB
W39F010 | 128KB
W39L512 | 64KB
W39L010 | 128KB
W39L020 | 256KB
W39L040 | 512KB
W39V040FA (Firmware Hub) | 512KB
*W49F002U | 256KB
W49F020 | 256KB
W49V002(A) (LPC) | 256KB
W49V002F(A) (Firmware Hub) | 256KB
------------------------------------------------------------------------------