Intel-Chipsatz-Bug: Port-Erkennung
Mit ein bisschen Hexadezimalzahlen-Jonglage bekommt man selbst heraus, ob Laufwerke an den vom Chipsatz-Bug betroffenen SATA-Ports hängen.
Intel hat rund 8 Millionen fehlerhafte Chipsätze für Sandy-Bridge-CPUs [1] ausgeliefert. Unser Skript zur Chipsatz-Erkennung [2] liefert bislang nur die Information, ob in einem Rechner einer der vom aktuellen Intel-Bug [3] potenziell betroffenen Chipsätze aus der Serie 6 steckt. Benutzer, deren Laufwerke aber ohnehin nur an den beiden SATA-6G-Ports (Port 0 und 1) hängen – was etwa in vielen Notebooks der Fall sein dürfte – brauchen keine Angst vor Ausfällen zu haben. Probleme drohen nur an den vier SATA-II-Ports (Port 2 bis 5). Leider verrät das Betriebssystem nicht ohne Weiteres und in jeder Betriebsart des Controllers, welches Laufwerk an welchem Port hängt.
Der Windows-Gerätemanager oder auch die WMI-Schnittstelle zeigen nicht zuverlässig, welches Laufwerk genau an welchem Port hängt. Intels Rapid Storage Manager, der zum "Rapid Storage Technology"-(RST-)Treiber gehört, kann das allerdings. Auf einem H67-Mainboard funktioniert nach unseren Erfahrungen die Version 10.1.0.1008 [4], obwohl Intel die Serie-6-Chipsätze dabei nicht erwähnt. Der RST-Treiber lässt sich aber nicht immer installieren, wenn der SATA-Controller im IDE-Modus arbeitet.
Der Mainboard-Hersteller Gigabyte hat nun ein Windows-Tool veröffentlicht [5], das anzeigt, an welchem SATA-Port Laufwerke angeschlossen sind.
Wer aber nicht vor ein paar Hexadezimalzahlen zurückschreckt, sondern beispielsweise den Windows- (oder Linux-)Taschenrechner (im Hexadezimal- oder Programmier-Modus) zückt und bereit ist, ein paar Byte abzuzählen, kann das selbst herausfinden. Denn auf höfliche Nachfrage mit einem Programm wie dem Linux-Bordwerkzeug "lspci" verrät der SATA-Controller über seine PCI Configuration Register an welchen seiner Ports Laufwerke hängen. Für Windows gibt es Software-Pendants zu lspci wie RW Everything [6], das zumindest in unseren Tests gut funktioniert hat.
Intel beschreibt im Chipsatzdatenblatt [7] ab Seite 551 die Bedeutung der einzelnen Register und deren Adressen. Das "Port Control and Status Register (PCS)" am Adress-Offset 92h und 93h enthält Bit-Felder, die zeigen, welche SATA-Ports gerade in Benutzung sind. Bit 8 und 9 stehen für die Ports 0 und 1, die bei den meisten Mainboards den fehlerlosen SATA-6G-Ports entsprechen. Ist jedoch mindestens eines der Bits 10, 11, 12 oder 13 gesetzt, hängt an den vom Bug betroffenen SATA-(II-)Ports 2, 3, 4 oder 5 ein Laufwerk.
Soweit die Theorie. In der Praxis muss man aber erst einmal herausbekommen, unter welcher PCI-ID der SATA-Host-Controller gerade segelt. Diese beginnt immer mit der Herstellerkennung ("8086" für Intel) gefolgt von einem Doppelpunkt. Danach – also bei der PCI Device ID – scheiden sich bei den Serie-6-Chipsätzen die Wege von Desktop-PCs und Notebooks sowie die der Betriebsmodi AHCI, IDE und RAID. Je nach Einstellung im BIOS(-Setup) meldet sich der SATA-Controller also mit unterschiedlichen PCI Device IDs; die in der Tabelle stehenden kommen in Frage, mehr dazu verrät mal wieder das Intel-Datenblatt sowie das Specification Update:
Vendor-ID | Device-ID | Betriebsart |
8086 | 1C00 | Desktop: Non-AHCI and Non-RAID Mode (Ports 0-3) |
8086 | 1C02 | Desktop: AHCI (Ports 0-5) |
8086 | 2822¹ | Desktop RAID 0/1/5/10 (Ports 0-5) |
8086 | 1C04 | Desktop RAID 0/1/5/10 (Ports 0-5) |
8086 | 1C01 | Mobile: Non-AHCI and Non-RAID Mode (Ports 0-3) |
8086 | 1C03 | Mobile: AHCI (Ports 0-5) |
8086 | 282A¹ | Mobile: RAID 0/1/5/10 (Ports 0-5) |
8086 | 1C05h | Mobile: RAID 0/1/5/10 (Ports 0-5) |
¹Kompatibilitätsmodus (AIE-Bit=0) |
Sowohl lspci als auch die Windows-Tools geben aber auch aus, welche PCI- und PCI-Express-Komponenten (Devices) in Ihrem Computer aktiv sind. Der Linux-Befehl lautet "lspci -nn".
lspci kann man in einem zweiten Schritt auch benutzen, um die Register eines Gerätes (hier 8086:1c02, also ein Desktop-Controller im AHCI-Modus) auszulesen:
lspci -d 8086:1c02 -xxxx
Die gesuchte Information steckt in der Zeile, die mit 90: beginnt. Nun muss man nur noch die beiden gesuchten Hexadezimalwerte (hier "3a" und "ba") analysieren. Dabei hilft zum Beispiel der Taschenrechner im Hex-Modus. Bei diesem System sind die Bits 9 sowie 11 bis 13 gesetzt, sprich die SATA-Ports 1, 3, 4 und 5 in Benutzung. Das System könnte also potenziell von dem Bug betroffen sein. (bbe [8])
URL dieses Artikels:
https://www.heise.de/-1183534
Links in diesem Artikel:
[1] https://www.heise.de/news/Intel-Hardware-Fehler-in-neuen-Mainboard-Chipsaetzen-Update-1181172.html
[2] https://www.heise.de/news/Intel-Bug-Chipsatz-Erkennung-2-Update-1182613.html
[3] https://www.heise.de/news/Intel-Bug-Reaktionen-von-Acer-Asus-Dell-Foxconn-Gigabyte-und-MSI-Update-1182218.html
[4] http://downloadcenter.intel.com/Detail_Desc.aspx?ProdId=2101&DwnldID=19607
[5] http://mbforum.gigabyte.de/index.php?page=Thread&threadID=3307
[6] http://jacky5488.myweb.hinet.net/download.html
[7] http://www.intel.com/Assets/PDF/datasheet/324645.pdf
[8] mailto:bbe@ct.de
Copyright © 2011 Heise Medien