ThinkPad BIOS

Das BIOS (Basic Input Output System) ist eine Software die in einem EEPROM (Electrically Erasable Programmable Read-Only Memory) auf dem Mainboard gespeichert ist und die als erstes startet, wenn man den Rechner anschaltet. Diese Software ist das Bindeglied zwischen Hardware und einem Betriebssystem und ermöglicht es dem Betriebssystem über standardisierte Schnittstellen die Hardware zu nutzen.

Wenn man ein BIOS Update durchführt, dann wird nie der gesamte BIOS Chip neu beschrieben, sondern nur bestimmte Teile. Ergibt sich die Notwendigkeit den gesamten BIOS Chip neu zu beschreiben (z.B. weil ein BIOS Update unterbrochen wurde oder wenn der Chip defekt ist) dann kann man das nur mit einem EEPROM Programmiergerät. Früher musste dazu der BIOS Chip ausgelötet und in eine passende Fassung gesteckt werden. Heute besitzen die meisten Chips ein SPI (Serial Peripheral Interface), so dass man den Chip über einen Clip mit dem Programmiergerät verbindet und nicht mehr löten muss. Das Programmiergerät muss natürlich das entsprechende SPI-Protokoll unterstützen (z.B. TL866II Plus oder CH314A). Die Spannunsversorgung erfolgt in der Regel über das Programmiergerät, das Mainboard muss also stromlos sein.

In den meisten Thinkpads kommt ein Chip der Firma Winbond zum Einsatz: W25Q128FV in einer SOIC8 Fassung. In einigen p- und W-Modellen werden anstatt eines Chips zwei kleinere eingesetzt.

Eine Anmerkung zu den Clips: der Clip sollte so auf den Chip aufgesetzt werden, dass er von alleine hält. Wenn der Clip andauernd abrutscht, dann hilft es, einen winzigen Lötpunkt auf den oberen Rand der IC-Beinchen zu setzen. Gute Programmiergeräte prüfen als erstes, ob der Clip richtig verbunden ist, denn häufig gelingt dies nicht beim ersten Versuch! Lesevorgänge sollte man aus Sicherheitsgründen immer mehrere machen und die Dateien binär vergleichen (Windows: fc /b Datei-A.bin Datei-B.bin). Erst wenn mindestens zwei Dateien keine Differenz zeigen, sind sie mit hoher Wahrscheinlichkeit fehlerlos! Schreibvorgänge sollte man immer durch einen anschliessenden Lesevorgang verifizieren!

In manchen Fällen kann es passieren, dass man mit dem Testclip über das SPI keine Daten auslesen bzw. schreiben kann oder dass es zu reproduzierbaren Fehlern kommt. In solchen Fällen muss man dann wieder zum Lötkolben greifen. Die einfachste und schonenste Methode ist es, zwei Lötkolben zu benutzen. Zuerst werden die Anschlüsse auf den beiden Seiten des Chips reichlich mit normalen, bleihaltigen Lot benetzt, dann setzt man beide Lötkolben mit der Breitseite der Spitze an und der BIOS Chip sollte sich in wenigen Sekunden mit den Lötkolben zur Seite schieben lassen. Einlöten ist natürlich einfacher. Das Flußmittel nicht vergessen!

Das BIOS enthält nicht nur Code- sondern auch Datensegmente. Das erste Datensegment beschreibt der BIOS Hersteller mit OEM spezifischen Daten. Das zweite Datensegment beschreibt der OEM mit Modellspezifischen Daten. Das dritte Datensegment beschreibt die Intel Management Engine (https://www.heise.de/select/ct/2018/6/1520827829694087) mit dynamischen Daten während des Betriebs. Sollte es in diesem dritten Datensegment zu Inkonsistenzen kommen, so startet das ThinkPad nicht mehr. Das ein ThinkPad nicht startet, deutet also nicht zwingend auf einen HW-Defekt hin! Was man in so einem Fall machen kann, steht hier: https://www.win-raid.com/t1658f39-Guide-Clean-Dumped-Intel-Engine-CS-ME-CS-TXE-Regions-with-Data-Initialization.html

Es gibt Werkzeuge mit denen man ein BIOS in seine Bestandteile zerlegen und diese untersuchen kann: https://github.com/LongSoft/UEFITool

Hier sind einige einführende Beiträge:
http://x86asm.net/articles/uefi-programming-first-steps/
https://mjg59.dreamwidth.org/18773.html

In allen neueren ThinkPads (seit den 40-Modellen) werden Passwörter NICHT im BIOS gespeichert!

 

Edmund Mergl
e.mergl@bawue.de
Erstellung: 15. Dezember 2019
letzte Änderung: 25. Dezember 2019