Die aktuelle Seite wurde 23791 mal besucht.
Besucher heute: 10
Zugriffe auf alle Seiten: 8723319
Server-Zeit: 21:31 21.11.2024
|
Wie man ein PC FlashBIOS flasht... :)
06.08.2000
Normalerweise benutzt man zum Updaten eines PC BIOS ein Flash-Programm wie AwardFlash (awdflash.exe).
Dieses kleine Programm greift direkt auf das FlashROM zu, welches das BIOS des Computers enthält.
Vor ein paar Wochen wollte mein Bruder seinen PC von einem älteren PII-233 auf eine Celeron333-CPU umrüsten.
Nun, was können wir von "kompatiblen" Computern erwarten: es funktionierte nicht... nach einem Blick auf die Homepage des Herstellers wußten wir, das das BIOS ziemlich alt war und eine neuere Version auch die Celeron CPU unterstützen sollte.
Nach dem Download des Updates und des Flash-Programms schlug der Versuch des BIOS-Updates fehl. Das Programm gab an, daß die 128kB Update-Datei zu klein sei - kein Wunder: hatte doch der Computer ein 256kB FlashROM eingebaut...
Der Support meinte, daß es funktionieren sollte; sie sandten uns ein anderes Flash-Programm, was jedoch ebenfalls nicht funktionierte...
Nun, was sollten wir nun tun? Ein neues Board mit diesen >500MHz CPUs kaufen, die keiner wirklich benötigt - und das alte Zeug auf den Müll werfen? Nein. Da mußte es eine andere Lösung geben: Ich würde das Flash per Hand brennen! :)
|
Hier ist ein Bild des Original-FlashROMs (ein Atmel 29C020). Ich habe das Datenblatt für diesen Chip heruntergeladen und entschieden, nicht dieses Chip zu programmieren, weil er einen recht ungewöhnlichen Programmieralgorithmus besitzt. Ich wollte außerdem ein wirklich (funktionierendes) Backup.
|
Meine Lieblings-FlashROMs kommen von AMD - sie sind schön handhabbar, weil sie einen schönen Programmieralgorithmus verwenden. Und der größte Vorteil: ich hatte ein paar solcher Chips bereits hier... ;)
Weil ich nur 29F040-Chips in einem PLCC-Gehäuse hatte, mußte ich einen kleinen Adaptersockel zum 32-poligen DIL-Gehäuse des originalen FlashROMs anfertigen.
Dieses Bild zeigt das Resultat meiner Arbeit - einen PLCC-Sockel mit fliegender Vero-Wire-Verdrahtung, angelötet an einen DIL-Sockel. Nun, nicht gerade die schönste Lösung (keine Platine...), aber für einen einzelnen Chip meiner Meinung nach die beste Lösung.
|
|
Nun fragen Sie sich sicherlich: "Wie will er den Chip programmieren?". Eine gute Frage - da ich kein professionelles Programmiergerät besitze (diese sind recht teuer) erledigte ich es auf meine Weise.
Ich verwendete einen kleinen und sehr sehr alten Mikrocontroller (8052AH-BASIC) von Intel (ja, Intel-Müll, ich weiß...), welcher einen vollständigen BASIC-Interpreter in seinem ROM enthält. Er ist sehr langsam aber bietet genug IOs, um einen FlashROM daran anzuschließen. Da er nun 64kB-Adreßraum besitzt, hatte ich ein paar weitere Adreßleitungen hinzuzufügen, indem ich ein paar seiner anderen IOs verwendete. Die Programmiersoftware schrieb ich bereits einige Zeit zuvor und funktioniert wirklich gut.
Das Mikrocontrollerboard wurde über eine serielle Verbindung mit meinem Amiga 3000 verbunden, auf dem ich Term4.8 für den Terminalzugriff verwendete. Der Datenupload wurde gesteuert von meiner Programmiersoftware auf dem Mikrocontroller und einem kleinen ARexx-Skript, welches Term mit Daten versorgte, welche es an das Board zu senden hatte.
|
Hier können Sie das erwähnte Mikrocontrollerboard mit dem verbundenem FlashROM sehen. Sieht verrückt aus? - Nun, das ist normal! ;)
|
Vielleicht wollen Sie nun wissen, welche Daten ich in den Flash programmiert habe - die Datei ist 128kB und der Chip 256kB groß...
Nun... ich fügte die ersten 128kB des alten Chip-Inhalts mit dem BIOS-Update zusammen. Das Ergebnis ist eine 256kB-Datei - Ich wußte nicht, ob es funktionieren würde, aber es war einen Versuch wert... :)
Nachdem der Chip programmiert war, steckte ich das Ding in den PC meines Bruders.
Es funktionierte! :) - Nun funktioniert alles und er kann seine neue Celeron-CPU verwenden...
Hier ist ein Bild, wie das ganze aussieht:
|
|