Freitag, 8. August 2014

BIOS über SPI flashen "Via Artigo A2000"

Hallo lieber Leser

Heute hatte ich eine ein Erfolgserlebnis.

Vor 2 Jahren hatte ich über WindowsXP ein BIOS-Update vorgenommen. Dabei ist mir ein Fehler unterlaufen und nach einem Reboot ging nichts mehr, ausser der Prozessorkühler.
Ich habe das komplette Barebone-system an den Lieferanten zurück geschickt. Nach einiger Zeit kam es zurück mit dem Vermerk, dass alles in bester Ordnung sei... Ich schloss alles Notwendige an und stellte fest, dass alles so war wie vor dem Versand. Meine Schlussfolgerung daraus, "Der Lieferant ist unfähig.." .  Darauf habe ich es beim Hersteller selbst versucht und erfahren, dass sie nur Lieferungen von den autorisierten Händlern annehmen.

So dachte ich,  "Mach dich schlau und forsche nach! Google ist dein Freund!"
Schon bald stellte ich fest, es gab schon diverse ähnliche Fälle.
Bisher hatte ich aber keine Zeit und nun habe ich mich anfang Woche daran gemacht.

Und zwar so:
  1. BIOS-Chip am Mainboard lokalisieren
  2. Chiptyp ablesen und Chipinformationen besorgen
  3. Bei http://www.biosflash.com nachfragen
    -Hier kannst du schon erfolgreich sein. Für mich hatte er jedoch keine Lösung.
  4. Schauen ob eine SPI-Schnittstelle auf dem Mainboard vorhanden ist.
    - super bei mir hats sowas
  5. Mainboard-Dokumentation herunterladen und die PIN-Definitionen des SPI-Pinheaders in Erfahrung bringen.
  6. Ev. mit Ohmmeter prüfen ob die Angaben der Mainboarddoku mit dem BIOS-Chiplayout aus der Chipdoku übereinstimmt.
  7. Einen PC finden mit Parallel-Port (LPT1) (Das ist nicht leicht ausser man hat noch irgendwo ne alte Kiste rumstehen)
  8. Stabile Spannungsquelle suchen, welche die Speisespannung des Chips ermöglicht
    Bei mir 3.3V
  9. Kabel löten:
    Ich habe ein altes Druckerkabel zerschnitten und, mangels Stecker für die Pins auf dem Mainboard, die Enden richtig an den Mainboard-Pins angelötet. Das ist unterschiedlich von Hersteller zu Hersteller.
    • LPT Pin 7, 8, 9, 10, 18
      JSPI Pin 3, 4, 6,  5,   2     Pin1 mit +3.3V und Pin2 mit GND verbunden
    • Zu beachten gilt LPT to SPI
       7  = CS#
       8  = SCK (CLK)
       9  = MoSi
      10 = MiSo
      18 = GND
    9 + 10 sind die eigentlichen Datenkanäle und in ihrer Richtung fix definiert.
    MoSi = Master out, Slave in
    MiSo = Master in, Slave out
      In unserem Fall ist der Bios-Chip der Slave.
  10. überall wird vorgeschlagen mit Dos zu arbeiten. Ich hatte auf dem alten PC noch WinXP drauf und habe darauf mit Erfolg mit dem DOS-Fenster (Eingabeaufforderung) gearbeitet.
  11. Downloaden und entpacken des Programms "spipgm".
    Achtung es gibt mind. 3 verschiedene Versionen. Ich hatte Erfolg mit spipgmW.  Es gibt noch das spipgm2 und spipgm. Hier biete ich die 3 von mir gefundenen Versionen ohne Gewähr zum Download.
  12. Software in möglichst niedrigen Ordner entpacken. Ich habe die SW in "C:\spipgm\" entpackt.
  13. Mit den Dos-Komandos in der Eingabeaufforderung in den Ordner navigieren.
  14. spipgmw   [enter]
  15. Parallelkabel einstecken und Stromquelle starten
  16. spipgmw /i    [enter]
    jetzt sollte da  in der 2. Zeile nach "type" etwas anderes als ffffffh stehen. Wenn ffffffh steht, alle Schritte von 1-16 nochmals durchgehen und ev. ein anderes spipgm probieren, Datenpins tauschen, usw.
  17. Zur Sicherheit
    spipgmw /d altesbios.bin [enter] (oder je nach BIOS-Datei auch eine andere Endung)
  18. spipgmw /u  [enter] 
  19. spipgmw /e  [enter]  (löscht den Chip)
  20. spipgmw /u  [enter] 
  21. spipgmw /s biosdatei.bin  (wobei die "biosdatei.bin" deine vorher downgeloadete version deines Mainboardes ist und sich somit auch anders nennen kann)
  22. Warten bis das Program fertig geschrieben hat.
  23. Alles was du zur Programmierung benutzt hast vom Mainboard entfernen, alle notwendigen Geräte für den Betrieb anschliessen. (Power supply, Bildschirm, Keyboard) und einen Start wagen. Wenn das BIOS korrekt startet, kann man den PC ausschalten und nun komplett zusammenbauen. Jetzt sollte alles ordnungsgemäss funktionieren.
  • Mein bearbeitetes System war ein VIA Artigo A2000 mit dem Mainboard N701.
  • Das BIOS war ein AWARD BIOS
  • Mein BIOS Chip war ein 25P40VP (das war kaum lesbar, ev. hatte es noch ein M vorangestellt) SPI 4/8 Mbit flash memory


Mein Dank geht an MylesGray.com
und www.aetherwide.comfccps.cz; mondotech.blogspot.com
und Wikipedia; Google

Bilder

Auf dem Bild sind die Datenkanäle noch vertausch, also falsch angeschlossen.
Ist: 5 zu 9 und 6 zu 10; Soll: 6 zu 9 und 5 zu 10