Discussion:
AHCI-Mode auslesen?
(zu alt für eine Antwort)
Martin Draheim
2009-06-02 17:39:57 UTC
Permalink
Hallo,

hat jemand einen Tipp für ein Tool, mit dem man möglichst einfach,
übersichtlich und genau (!) herausfinden kann, ob eine SATA-Platte nun im
IDE- oder AHCI-Mode läuft?
--
MfG, Martin
Rainer Wahl
2009-06-02 18:24:56 UTC
Permalink
Post by Martin Draheim
hat jemand einen Tipp für ein Tool, mit dem man möglichst einfach,
übersichtlich und genau (!) herausfinden kann, ob eine SATA-Platte
nun im IDE- oder AHCI-Mode läuft?
Tool? Nein.
Im BIOS einfach nachsehen ist keine Alternative? Weil da sieht man es
normalerweise _ganz genau_.


-=( Rainer )=-
--
Airbrush FAQ: http://www.r-wahl.de/airbrush/faq.php
Baubericht ME-109 RC-Flugmodell:
http://www.r-wahl.de/modellbau/me-109/me-109.php
Martin Draheim
2009-06-02 19:28:40 UTC
Permalink
Post by Rainer Wahl
Post by Martin Draheim
hat jemand einen Tipp für ein Tool, mit dem man möglichst einfach,
übersichtlich und genau (!) herausfinden kann, ob eine SATA-Platte
nun im IDE- oder AHCI-Mode läuft?
Tool? Nein.
Im BIOS einfach nachsehen ist keine Alternative? Weil da sieht man es
normalerweise _ganz genau_.
Das kommt aufs BIOS drauf an....

Nein, ist keine Alternative... klappt nicht aus der Ferne, etc.
--
MfG, Martin
Christian Franke
2009-06-02 21:04:13 UTC
Permalink
Post by Martin Draheim
Post by Rainer Wahl
Post by Martin Draheim
hat jemand einen Tipp für ein Tool, mit dem man möglichst einfach,
übersichtlich und genau (!) herausfinden kann, ob eine SATA-Platte
nun im IDE- oder AHCI-Mode läuft?
Tool? Nein.
Im BIOS einfach nachsehen ist keine Alternative? Weil da sieht man es
normalerweise _ganz genau_.
Das kommt aufs BIOS drauf an....
Nein, ist keine Alternative... klappt nicht aus der Ferne, etc.
IDE oder AHCI ist kein Modus der Platte, sondern des SATA Controllers.
Die Platte selbst merkt davon nichts, bis auf dass SATA Features wie NCQ
nur im AHCI Modus verwendet werden können.

Daher ist der Modus eventuell an der Art des für den Controller
installierten Treibers feststellbar.

Gruß
Christian
Martin Draheim
2009-06-03 05:19:49 UTC
Permalink
Post by Christian Franke
Post by Martin Draheim
Post by Rainer Wahl
Post by Martin Draheim
hat jemand einen Tipp für ein Tool, mit dem man möglichst einfach,
übersichtlich und genau (!) herausfinden kann, ob eine SATA-Platte
nun im IDE- oder AHCI-Mode läuft?
Tool? Nein.
Im BIOS einfach nachsehen ist keine Alternative? Weil da sieht man
es normalerweise _ganz genau_.
Das kommt aufs BIOS drauf an....
Nein, ist keine Alternative... klappt nicht aus der Ferne, etc.
IDE oder AHCI ist kein Modus der Platte, sondern des SATA Controllers.
Hast natürlich recht.
Suche dann eben ein Tool oder eine FUnktion, womit man den Port des
Controllers näher auslesen kann, also ob IDE-comp. oder AHCI verwendet wird.
Post by Christian Franke
Die Platte selbst merkt davon nichts, bis auf dass SATA Features wie
NCQ nur im AHCI Modus verwendet werden können.
Kann man auslesen, ob NCQ aktiv ist? Wennn ja, wäre das ein Merkmal, dass
AHCI aktiv ist. Aber umgekehrt geht das wahrscheinlich wieder nicht, gell?
Post by Christian Franke
Daher ist der Modus eventuell an der Art des für den Controller
installierten Treibers feststellbar.
Hm, wenn ich nun wüsste, wie...
--
MfG, Martin
Arno Welzel
2009-06-03 08:20:35 UTC
Permalink
Post by Martin Draheim
Post by Christian Franke
Daher ist der Modus eventuell an der Art des für den Controller
installierten Treibers feststellbar.
Hm, wenn ich nun wüsste, wie...
Evtl. mit devcon.
--
http://arnowelzel.de
http://de-rec-fahrrad.de
Christian Franke
2009-06-03 19:12:49 UTC
Permalink
Post by Martin Draheim
Post by Christian Franke
Daher ist der Modus eventuell an der Art des für den Controller
installierten Treibers feststellbar.
Hm, wenn ich nun wüsste, wie...
Die Art der Controller lässt sich an den über PCI gelieferten Werte für
Class:Subclass:ProgIntf ermitteln, die mW so aussehen:

01:..... Mass Storage Controller
01:01:XX IDE Controller im Modus XX (T13/1510D Standard)
01:04:.. RAID Controller (herstellerspezifisch)
01:06:00 SATA Controller (herstellerspezifisch)
01:06:01 SATA Controller (AHCI Standard)

Auszulesen unter Linux und GRUB2 mit 'lspci'.

Unter Windows erscheint diese Angabe z.B. im Gerätemanager unter den
Controller 'Eigenschaften' -> 'Details' -> 'Kompatible Kennungen':

Bei einem (im) IDE (Modus befindlichen) Controller steht dort als letzte
Möglichkeit 'CC_0101'. Bei AHCI sollte es folglich 'CC_010601' sein.
Falls RAID im BIOS aktiviert ist 'CC_0104', damit kein generischer
Treiber installiert wird.

Diese Liste findet sich im Registry Key für den Controller:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCI\VEN...\...]
CompatibleIDs

Gruß
Christian
Martin Schoenbeck
2009-06-04 11:32:44 UTC
Permalink
Hallo Martin,
Post by Martin Draheim
Hast natürlich recht.
Suche dann eben ein Tool oder eine FUnktion, womit man den Port des
Controllers näher auslesen kann, also ob IDE-comp. oder AHCI verwendet wird.
Ein ziemlich sicheres Kennzeichen sind die vom Treiber verwendeten Ports.
Wenn Du die feststellen kannst. Und es ein x86-PC ist. AHCI verwendet
memory-mapped Ports, konventionelle IDE-Ports verwenden Ports im
I/O-Adressraum.

Gruß Martin
--
Bitte nicht an der E-Mail-Adresse fummeln, die paßt so.
Martin Draheim
2009-06-05 05:05:26 UTC
Permalink
Post by Martin Schoenbeck
Post by Martin Draheim
Hast natürlich recht.
Suche dann eben ein Tool oder eine FUnktion, womit man den Port des
Controllers näher auslesen kann, also ob IDE-comp. oder AHCI
verwendet wird.
Ein ziemlich sicheres Kennzeichen sind die vom Treiber verwendeten
Ports. Wenn Du die feststellen kannst. Und es ein x86-PC ist. AHCI
verwendet memory-mapped Ports, konventionelle IDE-Ports verwenden
Ports im I/O-Adressraum.
Damit bin ich absolut überfordert ;-)
--
MfG, Martin
Martin Schoenbeck
2009-06-05 20:05:31 UTC
Permalink
Hallo Martin,
Post by Martin Draheim
Post by Martin Schoenbeck
Post by Martin Draheim
Hast natürlich recht.
Suche dann eben ein Tool oder eine FUnktion, womit man den Port des
Controllers näher auslesen kann, also ob IDE-comp. oder AHCI verwendet wird.
Ein ziemlich sicheres Kennzeichen sind die vom Treiber verwendeten
Ports. Wenn Du die feststellen kannst. Und es ein x86-PC ist. AHCI
verwendet memory-mapped Ports, konventionelle IDE-Ports verwenden
Ports im I/O-Adressraum.
Damit bin ich absolut überfordert ;-)
Unter welchem BS willst Du denn überhaupt wissen, wie der Controller
betrieben wird?

Gruß Martin
--
Bitte nicht an der E-Mail-Adresse fummeln, die paßt so.
Martin Draheim
2009-06-06 03:47:24 UTC
Permalink
Post by Martin Schoenbeck
Post by Martin Draheim
Post by Martin Schoenbeck
Post by Martin Draheim
Hast natürlich recht.
Suche dann eben ein Tool oder eine FUnktion, womit man den Port des
Controllers näher auslesen kann, also ob IDE-comp. oder AHCI verwendet wird.
Ein ziemlich sicheres Kennzeichen sind die vom Treiber verwendeten
Ports. Wenn Du die feststellen kannst. Und es ein x86-PC ist. AHCI
verwendet memory-mapped Ports, konventionelle IDE-Ports verwenden
Ports im I/O-Adressraum.
Damit bin ich absolut überfordert ;-)
Unter welchem BS willst Du denn überhaupt wissen, wie der Controller
betrieben wird?
Ups..... Wichtig wäre es für Windows XP (Home oder Prof egal) mit SP3,
schöner wäre natürlich was, was etwas flexibler wäre (Vista, Win 2000 /
2003, jeweils alle SPs)
--
MfG, Martin
Christian Franke
2009-06-06 11:40:57 UTC
Permalink
Post by Martin Draheim
Post by Martin Schoenbeck
Unter welchem BS willst Du denn überhaupt wissen, wie der Controller
betrieben wird?
Ups..... Wichtig wäre es für Windows XP (Home oder Prof egal) mit SP3,
schöner wäre natürlich was, was etwas flexibler wäre (Vista, Win 2000 /
2003, jeweils alle SPs)
Was spricht dann gegen den Vorschlag , die PCI Angaben für
'Class:Subclass:ProgInf' auszuwerten? Geht mit Bordmitteln (siehe mein
Parallelposting) oder über externe Tools (z.B. http://www.pcitree.de/).
Ob es vielleicht auch über WMI geht, weiss ich nicht.

Gruß
Christian
Martin Schoenbeck
2009-06-06 11:49:05 UTC
Permalink
Hallo Martin,
Post by Martin Draheim
Ups..... Wichtig wäre es für Windows XP (Home oder Prof egal) mit SP3,
schöner wäre natürlich was, was etwas flexibler wäre (Vista, Win 2000 /
2003, jeweils alle SPs)
Das dürfte bei allen gleich sein. Allerdings klappt die von mir
vorgeschlagene Methode womöglich nicht, weil z.B. der Treiber von Intel
sowohl den Speicherbereich als auch den I/O-Bereich reserviert. Von daher
ist der Speicherbereich in den Ressourcen im Gerätemanager nur ein Hinweis,
daß der Treiber AHCI könnte, aber nicht, ob er es auch benutzt. Kann aber
sein, daß das nur beim Intel-Treiber so ist, denn WIMRE kann man, wenn man
den installiert hat, den Modus auch ohne Treiberneuinstallation ändern.

Gruß Martin
--
Bitte nicht an der E-Mail-Adresse fummeln, die paßt so.
Shinji Ikari
2009-06-03 06:30:37 UTC
Permalink
Guten Tag
Post by Martin Draheim
Post by Rainer Wahl
Im BIOS einfach nachsehen ist keine Alternative? Weil da sieht man es
normalerweise _ganz genau_.
Das kommt aufs BIOS drauf an....
Nein, ist keine Alternative... klappt nicht aus der Ferne, etc.
Klappt sehr wohl aus der Ferne. Alles nur eine Frage des Aufwands:
www.lindy.com LINDY No. 39415 IP Access KVM Switch Classic
Damit soll man auch den Bootvorgang (BIOS) steuern koennen. 8))
Martin Schoenbeck
2009-06-04 11:50:26 UTC
Permalink
Hallo Martin,
Post by Martin Draheim
Das kommt aufs BIOS drauf an....
Nein, ist keine Alternative... klappt nicht aus der Ferne, etc.
Vor allem sagt es fast nie etwas aus. Wenn da AHCI ausgewählt ist, wird in
den meisten Fällen dennoch im Kompatibiltätsmodus gestartet und solange
kein Treiber explizit auf AHCI umstellt, bleibt das auch so.

Gruß Martin
--
Bitte nicht an der E-Mail-Adresse fummeln, die paßt so.
Rainer Wahl
2009-06-04 13:39:30 UTC
Permalink
Post by Martin Schoenbeck
Vor allem sagt es fast nie etwas aus. Wenn da AHCI ausgewählt ist,
wird in den meisten Fällen dennoch im Kompatibiltätsmodus
gestartet und solange kein Treiber explizit auf AHCI umstellt,
bleibt das auch so.
Du meinst, die Einstellung im BIOS ist mehr ein Wunsch als ein
"Befehl"? Du sagst "den meisten Fällen". Ich frage mich gerade, was
dann z.B. hier "schief" läuft. Stelle ich hier im BIOS auf AHCI um, ist
Schicht im Schacht und XP bootet nicht mehr (logisch, weil ohne
AHCI Treiber). XP frisch installiert landet ebenso auf der Nase während
des installierens. Erst mit AHCI Treiber untergeschoben klappt es. Oder
im BIOS explizit auf IDE oder Enhanced stellen. Dann geht es auch ohne
AHCI Treiber (wieder logischerweise).


-=( Rainer )=-
--
Airbrush FAQ: http://www.r-wahl.de/airbrush/faq.php
Baubericht ME-109 RC-Flugmodell:
http://www.r-wahl.de/modellbau/me-109/me-109.php
Martin Schoenbeck
2009-06-04 15:21:40 UTC
Permalink
Hallo Rainer,
Post by Rainer Wahl
Du meinst, die Einstellung im BIOS ist mehr ein Wunsch als ein
"Befehl"? Du sagst "den meisten Fällen". Ich frage mich gerade, was
dann z.B. hier "schief" läuft. Stelle ich hier im BIOS auf AHCI um, ist
Schicht im Schacht und XP bootet nicht mehr (logisch, weil ohne
AHCI Treiber).
Dann hast Du vielleicht tatsächlich ein BIOS, das bereits in den AHCI-Modus
schaltet. Für XP reicht (WIMRE) allerdings auch, daß sich der Controller
mit einer anderen Kennung meldet, obwohl er noch im Kompatibilitätsmodus
läuft und eigentlich wie ein konventioneller IDE-Controller benutzt werden
könnte. Allerdings hätte ich auch nicht 'in den meisten Fällen' schreiben
sollen, dafür fehlt mir schlicht die Datenbasis.

Gruß Martin
--
Bitte nicht an der E-Mail-Adresse fummeln, die paßt so.
Arno Welzel
2009-06-04 15:46:37 UTC
Permalink
Post by Martin Schoenbeck
Post by Rainer Wahl
Du meinst, die Einstellung im BIOS ist mehr ein Wunsch als ein
"Befehl"? Du sagst "den meisten Fällen". Ich frage mich gerade, was
dann z.B. hier "schief" läuft. Stelle ich hier im BIOS auf AHCI um, ist
Schicht im Schacht und XP bootet nicht mehr (logisch, weil ohne
AHCI Treiber).
Dann hast Du vielleicht tatsächlich ein BIOS, das bereits in den AHCI-Modus
schaltet. Für XP reicht (WIMRE) allerdings auch, daß sich der Controller
mit einer anderen Kennung meldet, obwohl er noch im Kompatibilitätsmodus
läuft und eigentlich wie ein konventioneller IDE-Controller benutzt werden
könnte. Allerdings hätte ich auch nicht 'in den meisten Fällen' schreiben
sollen, dafür fehlt mir schlicht die Datenbasis.
Scheint aber eher die Ausnahme zu sein, dass ein BIOS im AHCI-Modus den
Controller nicht anfasst.

Sowohl bei meinem privaten PC (Asus P5Q) als auch bei mindestens drei
weiteren PCs, die ich den Händen hatte, bewirkt AHCI im BIOS, dass der
Controller unter Windows nicht mehr mit IDE-Treibern läuft.

Es ist auch auffällig, dass es etliche Anleitungen im Netz gibt, wie man
die AHCI-Treiber manuell in ein bereits laufenden Windows XP
reinbekommt, weil durch die Umstellung im BIOS eben kein Booten mehr
ohne Treiber möglich ist - man aber *vor* der Umstellung auch so seine
Probleme mit der Installation der Treiber hat, weil Windows XP ja kein
Gerät sieht, für dass es die Treiber installieren könnte.
--
http://arnowelzel.de
http://de-rec-fahrrad.de
Martin Schoenbeck
2009-06-05 19:47:42 UTC
Permalink
Hallo Arno,
Post by Arno Welzel
Post by Martin Schoenbeck
Post by Rainer Wahl
Du meinst, die Einstellung im BIOS ist mehr ein Wunsch als ein
"Befehl"? Du sagst "den meisten Fällen". Ich frage mich gerade, was
dann z.B. hier "schief" läuft. Stelle ich hier im BIOS auf AHCI um, ist
Schicht im Schacht und XP bootet nicht mehr (logisch, weil ohne
AHCI Treiber).
Dann hast Du vielleicht tatsächlich ein BIOS, das bereits in den AHCI-Modus
schaltet. Für XP reicht (WIMRE) allerdings auch, daß sich der Controller
mit einer anderen Kennung meldet, obwohl er noch im Kompatibilitätsmodus
läuft und eigentlich wie ein konventioneller IDE-Controller benutzt werden
könnte. Allerdings hätte ich auch nicht 'in den meisten Fällen' schreiben
sollen, dafür fehlt mir schlicht die Datenbasis.
Scheint aber eher die Ausnahme zu sein, dass ein BIOS im AHCI-Modus den
Controller nicht anfasst.
Daß das anders konfiguriert wird, ist klar. Das heißt aber nicht, daß der
Controller nicht im Kompatibilitätsmodus läuft.
Post by Arno Welzel
Sowohl bei meinem privaten PC (Asus P5Q) als auch bei mindestens drei
weiteren PCs, die ich den Händen hatte, bewirkt AHCI im BIOS, dass der
Controller unter Windows nicht mehr mit IDE-Treibern läuft.
Was aber (WIMRE) nur daran liegt, daß Windows es gar nicht erst versucht,
aber nicht daran, daß es technisch nicht ginge. Betriebssysteme, die nicht
die PCI-Kennung abfragen, sondern auf andere Weise feststellen, ob da ein
IDE-Controller ist, laufen durchaus. Ohne AHCI.
Post by Arno Welzel
Es ist auch auffällig, dass es etliche Anleitungen im Netz gibt, wie man
die AHCI-Treiber manuell in ein bereits laufenden Windows XP
reinbekommt, weil durch die Umstellung im BIOS eben kein Booten mehr
ohne Treiber möglich ist - man aber *vor* der Umstellung auch so seine
Probleme mit der Installation der Treiber hat, weil Windows XP ja kein
Gerät sieht, für dass es die Treiber installieren könnte.
Je nun, das ist ein Problem von Windows, hat aber nichts damit zu tun, wie
sich der Controller verhält. Einen vernünftigen Grund, warum sich der
IDE-Treiber nicht auch für im Kompatibilitätsmodus laufende Controller mit
AHCI-Fähigkeiten zuständig fühlt, gibt es nicht.

Gruß Martin
--
Bitte nicht an der E-Mail-Adresse fummeln, die paßt so.
Christian Franke
2009-06-05 21:24:17 UTC
Permalink
Post by Martin Schoenbeck
Was aber (WIMRE) nur daran liegt, daß Windows es gar nicht erst versucht,
aber nicht daran, daß es technisch nicht ginge. Betriebssysteme, die nicht
die PCI-Kennung abfragen, sondern auf andere Weise feststellen, ob da ein
IDE-Controller ist, laufen durchaus. Ohne AHCI.
Das bedeutet, dass ein solches Betriebsystem auf Ports+Interrupts
zugreift, deren Existenz über die PCI Register überhaupt nicht gemeldet
werden. Das ist (mW) nicht PCI-konform.

Würde auch bedeutet, dass der Treiber die möglichen Portadressen und
Interruptnummern kennt. Das geht im Falle eines IDE Controllers nur,
wenn dieser wiederum im 'Compatibility Mode' (siehe Parallelposting) ist.

Gruß
Christian
Martin Schoenbeck
2009-06-06 12:20:58 UTC
Permalink
Hallo Christian,
Post by Christian Franke
Das bedeutet, dass ein solches Betriebsystem auf Ports+Interrupts
zugreift, deren Existenz über die PCI Register überhaupt nicht gemeldet
werden. Das ist (mW) nicht PCI-konform.
Gibt's eine Vorschrift, daß Systeme, die das nicht tun, heute nicht mehr
benutzt werden dürfen? Oder anders: gibt's eine Vorschrift, PCI-konforme
Systeme einzusetzen?
Post by Christian Franke
Würde auch bedeutet, dass der Treiber die möglichen Portadressen und
Interruptnummern kennt. Das geht im Falle eines IDE Controllers nur,
wenn dieser wiederum im 'Compatibility Mode' (siehe Parallelposting) ist.
Das ist falsch. Man kann sich die z.B. über den INT 13 besorgen.

Gruß Martin
--
Bitte nicht an der E-Mail-Adresse fummeln, die paßt so.
Christian Franke
2009-06-06 13:30:03 UTC
Permalink
Post by Martin Schoenbeck
Post by Christian Franke
Das bedeutet, dass ein solches Betriebsystem auf Ports+Interrupts
zugreift, deren Existenz über die PCI Register überhaupt nicht gemeldet
werden. Das ist (mW) nicht PCI-konform.
Gibt's eine Vorschrift, daß Systeme, die das nicht tun, heute nicht mehr
benutzt werden dürfen? Oder anders: gibt's eine Vorschrift, PCI-konforme
Systeme einzusetzen?
Nicht dass ich wüsste. Aber von welchem PC-Betriebssystem, dass PCI noch
nicht kennt, redest du hier?
Post by Martin Schoenbeck
Post by Christian Franke
Würde auch bedeutet, dass der Treiber die möglichen Portadressen und
Interruptnummern kennt. Das geht im Falle eines IDE Controllers nur,
wenn dieser wiederum im 'Compatibility Mode' (siehe Parallelposting) ist.
Das ist falsch. Man kann sich die z.B. über den INT 13 besorgen.
Falls du 'Get Device Parameters' (AH=48h) aus EDD-3 (T13/1572D) meinst,
so wäre die dafür natürlich brauchbar.

Allerdings funktioniert das nach meiner Erfahrung in der Praxis oft nicht.

Im Rahmen der Entwicklung des ata.mod für GRUB2 hatte ich diese Funktion
bei einigen Boards mal überprüft. Die 'DPTE' oder 'Interface Path' Daten
fehlen oft (was erlaubt ist) oder enthalten falsche Werte. Einige BIOS
Versionen liefern konstante Werte, die nur für die Default-Einstellungen
des BIOS korrekt sind.

Gruß
Christian
Rupert Haselbeck
2009-06-05 21:22:51 UTC
Permalink
Post by Martin Schoenbeck
Was aber (WIMRE) nur daran liegt, daß Windows es gar nicht erst
versucht, aber nicht daran, daß es technisch nicht ginge.
Betriebssysteme, die nicht die PCI-Kennung abfragen, sondern auf
andere Weise feststellen, ob da ein IDE-Controller ist, laufen
durchaus. Ohne AHCI.
Welches läuft denn beispielsweise?

MfG
Rupert
Martin Schoenbeck
2009-06-06 12:18:56 UTC
Permalink
Hallo Rupert,
Post by Rupert Haselbeck
Post by Martin Schoenbeck
Was aber (WIMRE) nur daran liegt, daß Windows es gar nicht erst
versucht, aber nicht daran, daß es technisch nicht ginge.
Betriebssysteme, die nicht die PCI-Kennung abfragen, sondern auf
andere Weise feststellen, ob da ein IDE-Controller ist, laufen
durchaus. Ohne AHCI.
Welches läuft denn beispielsweise?
L3. Generell welche, die sich die Portadressen nicht über die
PCI-Funktionen holen (z.B. weil's die bei der Entwicklung noch nicht gab),
sondern z.B. über den INT 13.

Gruß Martin
--
Bitte nicht an der E-Mail-Adresse fummeln, die paßt so.
Mario 'BitKoenig' Holbe
2009-06-04 15:20:33 UTC
Permalink
Post by Martin Schoenbeck
Post by Martin Draheim
Das kommt aufs BIOS drauf an....
Vor allem sagt es fast nie etwas aus. Wenn da AHCI ausgewählt ist, wird in
den meisten Fällen dennoch im Kompatibiltätsmodus gestartet und solange
Kann ich so zumindest fuer Intel ICH nicht bestaetigen, wie andere
Hersteller das regeln weiss ich nicht. Ich kann mir aber nicht
vorstellen, wie das so wie von Dir beschrieben funktionieren sollte.
Im Kompatibilitaetsmodus muss der SATA Controller aussehen und sich
anfuehlen wie ein IDE Controller. Im AHCI Modus muss er halt AHCI
sprechen.
Entsprechend geben sich zumindest die ICH im IDE-Modus als voellig
anderes Geraet (andere PCI ID) aus als im AHCI Modus (und im RAID Modus
haben sie nochmal ne andere ID). Ich weiss nicht, ob man das ueberhaupt
anders regeln koennte, also ob das IDE- und das AHCI-Command-Set
ausreichend ueberschneidungsfrei sind.
Dass irgendwelche proprietaeren Controller da eine eigene Suppe kochen
und bspw. per Kommando umgeschaltet werden koennen, kann ich mir
vorstellen, die sprechen dann aber sicher nicht AHCI.


regards
Mario
--
Computer Science is no more about computers than astronomy is about
telescopes. -- E. W. Dijkstra
Joseph Terner
2009-06-05 00:49:21 UTC
Permalink
Post by Mario 'BitKoenig' Holbe
Post by Martin Schoenbeck
Post by Martin Draheim
Das kommt aufs BIOS drauf an....
Vor allem sagt es fast nie etwas aus. Wenn da AHCI ausgewählt ist, wird in
den meisten Fällen dennoch im Kompatibiltätsmodus gestartet und solange
Kann ich so zumindest fuer Intel ICH nicht bestaetigen, wie andere
Hersteller das regeln weiss ich nicht. Ich kann mir aber nicht
vorstellen, wie das so wie von Dir beschrieben funktionieren sollte.
Im Kompatibilitaetsmodus muss der SATA Controller aussehen und sich
anfuehlen wie ein IDE Controller. Im AHCI Modus muss er halt AHCI
sprechen.
Entsprechend geben sich zumindest die ICH im IDE-Modus als voellig
anderes Geraet (andere PCI ID) aus als im AHCI Modus (und im RAID Modus
haben sie nochmal ne andere ID). Ich weiss nicht, ob man das ueberhaupt
anders regeln koennte, also ob das IDE- und das AHCI-Command-Set
ausreichend ueberschneidungsfrei sind.
Dass irgendwelche proprietaeren Controller da eine eigene Suppe kochen
und bspw. per Kommando umgeschaltet werden koennen, kann ich mir
vorstellen, die sprechen dann aber sicher nicht AHCI.
Auch bei aktiviertem IDE-Modus lassen sich SATA2-Controller immer per
AHCI ansprechen (Beispiel JMicron, AMD/ATI SB6x0/SB7x0), auch wenn die
Windows-Treiber das in der Regel dann nicht tun.

Das proprietäre Interface von SATA1-Controllern verschwindet in der
Regel ebensowenig, wenn IDE aktiviert ist (Beispiele ULi, VIA).

JMicron, ULi und VIA kommen sogar ohne Wechsel der PCI-Kennung (nebst
der dadurch verursachten Scherereien) aus.

Kann gut sein, daß Intel da aus der Reihe tanzt, wäre nicht das
erstemal.

ciao, Joseph
Mario 'BitKoenig' Holbe
2009-06-08 09:25:25 UTC
Permalink
Post by Joseph Terner
Auch bei aktiviertem IDE-Modus lassen sich SATA2-Controller immer per
AHCI ansprechen (Beispiel JMicron, AMD/ATI SB6x0/SB7x0), auch wenn die
Windows-Treiber das in der Regel dann nicht tun.
Und wie verhindern die dann, dass sie doppelt angesprochen werden? I.e.
wie verhindert man, dass zwei Treiber aktiv sind, die mit dem ihnen
jeweils gelaeufigen Interface reden und dem OS zwei verschiedene Geraete
mit zwei verschiedenen Disk-Sets vorgaukeln?
z.B. AHCI und IDE-Generic


regards
Mario
--
We know that communication is a problem, but the company is not going to
discuss it with the employees.
-- Switching supervisor, AT&T Long Lines Division
Joseph Terner
2009-06-08 10:01:51 UTC
Permalink
Post by Mario 'BitKoenig' Holbe
Post by Joseph Terner
Auch bei aktiviertem IDE-Modus lassen sich SATA2-Controller immer per
AHCI ansprechen (Beispiel JMicron, AMD/ATI SB6x0/SB7x0), auch wenn die
Windows-Treiber das in der Regel dann nicht tun.
Und wie verhindern die dann, dass sie doppelt angesprochen werden?
Indem nur ein Gerät existiert, das beide Protokolle beherrscht.
Post by Mario 'BitKoenig' Holbe
I.e.
wie verhindert man, dass zwei Treiber aktiv sind, die mit dem ihnen
jeweils gelaeufigen Interface reden und dem OS zwei verschiedene Geraete
mit zwei verschiedenen Disk-Sets vorgaukeln?
z.B. AHCI und IDE-Generic
Das braucht man nicht verhindern, da auf _einem_ Gerät immer nur _ein_
Treiber gleichzeitig aktiv sein kann.

Unter Windows wird der zuständige Treiber über die Registry dem Gerät
zugeordnet und hat es dann exklusiv für sich. Atapi.sys hat dann dort
nichts mehr zu melden.

ciao, Joseph
Christian Franke
2009-06-10 15:45:27 UTC
Permalink
Post by Joseph Terner
Post by Mario 'BitKoenig' Holbe
I.e.
wie verhindert man, dass zwei Treiber aktiv sind, die mit dem ihnen
jeweils gelaeufigen Interface reden und dem OS zwei verschiedene Geraete
mit zwei verschiedenen Disk-Sets vorgaukeln?
z.B. AHCI und IDE-Generic
Das braucht man nicht verhindern, da auf _einem_ Gerät immer nur _ein_
Treiber gleichzeitig aktiv sein kann.
Unter Windows wird der zuständige Treiber über die Registry dem Gerät
zugeordnet und hat es dann exklusiv für sich. Atapi.sys hat dann dort
nichts mehr zu melden.
Ausschlaggebend sind die über PCI gemeldeten Controller, Geräteklassen
(IDE=01:01:XX, AHCI=01:06:01) und Hardwareadressen. Anhand von Einträgen
in der Registry erfolgt die Zuordnung des Treibers (oder des "?" für
unbekannte Hardware).

Ist noch kein Registryeintrag vorhanden, so wird nach jedem Booten die
"neue Hardware gefunden" Mimik gestartet (Oder: während des Bootens
kommt der gefürchtete Stop Code für "Boot Device not found" ...).

Ist in der Registry ein Treiber eingetragen, aber der zugehörige
Controller wird nicht über PCI gemeldet, so ist der Registryeintrag
wirkungslos (und im Gerätemanager standardmässig ausgeblendet).

Es kann natürlich sein, dass beim Umschalten zwischen IDE und AHCI am
Controller selbst nichts passiert, sondern das BIOS nur die PCI
Kennungen umstellt. Das ist OK, solange jeweils nur eine der beiden
Hardware-Varianten über PCI publiziert wird. Die andere Hardware ist
dann 'virtuell' deaktiviert, auch wenn sie physisch noch vorhanden ist.

Es ist also durchaus möglich, dass über die Registry Treiber für beide
(IDE und AHCI) Modi desselben Controllers konfiguriert sind.

Gruß
Christian

Martin Schoenbeck
2009-06-05 20:00:55 UTC
Permalink
Hallo Mario,
Post by Mario 'BitKoenig' Holbe
Post by Martin Schoenbeck
Post by Martin Draheim
Das kommt aufs BIOS drauf an....
Vor allem sagt es fast nie etwas aus. Wenn da AHCI ausgewählt ist, wird in
den meisten Fällen dennoch im Kompatibiltätsmodus gestartet und solange
Kann ich so zumindest fuer Intel ICH nicht bestaetigen, wie andere
Hersteller das regeln weiss ich nicht.
Nun, da Intel die AHCI-Spezifikation selbst mitgestrickt hat, halte ich es
im Gegenteil für unwahrscheinlich, daß sie da andere Wege wählen, als den
dort vorgesehen. Außer meinem Notebook hatte ich bisher nur AHCI mit
AMD-Prozessoren in den Fingern, von daher kann ich das nicht sicher sagen.
Post by Mario 'BitKoenig' Holbe
Ich kann mir aber nicht
vorstellen, wie das so wie von Dir beschrieben funktionieren sollte.
Im Kompatibilitaetsmodus muss der SATA Controller aussehen und sich
anfuehlen wie ein IDE Controller. Im AHCI Modus muss er halt AHCI
sprechen.
So sieht die AHCI-Spezifikation das vor. Je nachdem, wie das entsprechende
Bit gesetzt ist, spricht man über die AHCI-Methoden oder über die alten
Register mit dem Controller.
Post by Mario 'BitKoenig' Holbe
Entsprechend geben sich zumindest die ICH im IDE-Modus als voellig
anderes Geraet (andere PCI ID) aus als im AHCI Modus (und im RAID Modus
haben sie nochmal ne andere ID). Ich weiss nicht, ob man das ueberhaupt
anders regeln koennte, also ob das IDE- und das AHCI-Command-Set
ausreichend ueberschneidungsfrei sind.
Die Command-Sets sind im wesentlichen identisch. AHCI kennt eben ein paar
mehr und umgekehrt wird man den PIO-Mode wohl eher nicht mehr verwenden
wollen.
Post by Mario 'BitKoenig' Holbe
Dass irgendwelche proprietaeren Controller da eine eigene Suppe kochen
und bspw. per Kommando umgeschaltet werden koennen, kann ich mir
vorstellen, die sprechen dann aber sicher nicht AHCI.
Man kann sich eine Menge vorstellen. Interessanter sind aber doch Fakten.

Gruß Martin
--
Bitte nicht an der E-Mail-Adresse fummeln, die paßt so.
Christian Franke
2009-06-04 21:45:14 UTC
Permalink
Post by Martin Schoenbeck
Vor allem sagt es fast nie etwas aus. Wenn da AHCI ausgewählt ist, wird in
den meisten Fällen dennoch im Kompatibiltätsmodus gestartet und solange
kein Treiber explizit auf AHCI umstellt, bleibt das auch so.
Mit dem Begriff '' sollte man vorsichtig sein, da damit zweierlei
gemeint sein kann:

Auch ein nicht-AHCI IDE Controller kann selbst nochmal einen
Kompatibilitätsmodus haben. Dann verhält sich der Controller wie ein
richtig klassischer (also vor der Einführung von PCI) Controller mit
festen I/O Ports (0x1f0, 0x170) und Interrupts (15, 14).

Der 'ATA/ATAPI Host Adapters Standard' (T13/1510D) unterscheidet dazu
zwischen 'Compatibility Mode' und 'Native PCI Mode'. Nur in letzterem
Modus ist die Konfiguration variabel und steht in den PCI BAR Registern.
Beide Modi verwenden PCI Class Kennung 01:01:PI, den Modus erkennt man
an Bits 0 und 2 im PI Byte.

Einige ältere Boards bieten daher im BIOS folgende Einstellmöglichkeiten:
- Compatibility Mode (ggf. mehrere: 4xPATA oder 2xPATA+2xSATA)
- IDE Mode (entspricht 'Native PCI Mode')
- AHCI Mode

Gruß
Christian
Martin Schoenbeck
2009-06-05 20:04:34 UTC
Permalink
Hallo Christian,
Post by Christian Franke
Post by Martin Schoenbeck
Vor allem sagt es fast nie etwas aus. Wenn da AHCI ausgewählt ist, wird in
den meisten Fällen dennoch im Kompatibiltätsmodus gestartet und solange
kein Treiber explizit auf AHCI umstellt, bleibt das auch so.
Mit dem Begriff '' sollte man vorsichtig sein, da damit zweierlei
mit welchem Begriff?
Post by Christian Franke
Auch ein nicht-AHCI IDE Controller kann selbst nochmal einen
Egal, welchen Begriff Du meintest, aber bei AHCI-Controller kann eigentlich
kein nicht-AHCI-Controller gemeint sein.

Gruß Martin
--
Bitte nicht an der E-Mail-Adresse fummeln, die paßt so.
Christian Franke
2009-06-05 20:18:17 UTC
Permalink
Post by Martin Schoenbeck
Post by Christian Franke
Post by Martin Schoenbeck
Vor allem sagt es fast nie etwas aus. Wenn da AHCI ausgewählt ist, wird in
den meisten Fällen dennoch im Kompatibiltätsmodus gestartet und solange
kein Treiber explizit auf AHCI umstellt, bleibt das auch so.
Mit dem Begriff '' sollte man vorsichtig sein, da damit zweierlei
mit welchem Begriff?
Das sollte 'Kompatibiltätsmodus' stehen, sorry.
Post by Martin Schoenbeck
Post by Christian Franke
Auch ein nicht-AHCI IDE Controller kann selbst nochmal einen
Egal, welchen Begriff Du meintest, aber bei AHCI-Controller kann eigentlich
kein nicht-AHCI-Controller gemeint sein.
Mit 'Kompatibilitätsmodus' kann der
- 'Compatibility Mode' eines (nicht AHCI) IDE Controllers, oder
- der IDE Modus eines AHCI Controllers gemeint sein.

Gruß
Christian
Martin Schoenbeck
2009-06-05 21:28:17 UTC
Permalink
Hallo Christian,
Post by Christian Franke
Post by Martin Schoenbeck
Post by Christian Franke
Post by Martin Schoenbeck
Vor allem sagt es fast nie etwas aus. Wenn da AHCI ausgewählt ist, wird in
den meisten Fällen dennoch im Kompatibiltätsmodus gestartet und solange
kein Treiber explizit auf AHCI umstellt, bleibt das auch so.
Mit dem Begriff '' sollte man vorsichtig sein, da damit zweierlei
mit welchem Begriff?
Das sollte 'Kompatibiltätsmodus' stehen, sorry.
Post by Martin Schoenbeck
Post by Christian Franke
Auch ein nicht-AHCI IDE Controller kann selbst nochmal einen
Egal, welchen Begriff Du meintest, aber bei AHCI-Controller kann eigentlich
kein nicht-AHCI-Controller gemeint sein.
Mit 'Kompatibilitätsmodus' kann der
- 'Compatibility Mode' eines (nicht AHCI) IDE Controllers, oder
- der IDE Modus eines AHCI Controllers gemeint sein.
Nein, das geht bei einem AHCI-Controller nicht. Die Option ein
Nicht-AHCI-Controller zu sein, hat ein AHCI-Controller nicht, weil er dann
kein AHCI-Controller ist. Insbesondere, wenn im BIOS AHCI als Modus
eingestellt ist, ist die Wahrscheinlichkeit dann doch extrem gering, daß es
sich hier um einen Nicht-AHCI-Controller auch nur theoretisch handeln
könnte.

Isso. Ehrlich.

Gruß Martin
--
Bitte nicht an der E-Mail-Adresse fummeln, die paßt so.
Christian Franke
2009-06-05 22:00:44 UTC
Permalink
Post by Martin Schoenbeck
Post by Christian Franke
Mit 'Kompatibilitätsmodus' kann der
- 'Compatibility Mode' eines (nicht AHCI) IDE Controllers, oder
- der IDE Modus eines AHCI Controllers gemeint sein.
Nein, das geht bei einem AHCI-Controller nicht. Die Option ein
Nicht-AHCI-Controller zu sein, hat ein AHCI-Controller nicht, weil er dann
kein AHCI-Controller ist. Insbesondere, wenn im BIOS AHCI als Modus
eingestellt ist, ist die Wahrscheinlichkeit dann doch extrem gering, daß es
sich hier um einen Nicht-AHCI-Controller auch nur theoretisch handeln
könnte.
OK, 'nicht AHCI' war missverständlich, streiche es einfach oder ersetze
es durch 'nicht AHCI Controller oder AHCI fähiger Controller im IDE Mode'

Es gibt, wie gesagt, Boards mit 3 Einstellungen im BIOS:
- Compatibility Mode
- IDE Mode
- AHCI Mode

Gruß
Christian
Martin Draheim
2009-06-06 03:49:13 UTC
Permalink
Post by Christian Franke
Post by Martin Schoenbeck
Post by Christian Franke
Mit 'Kompatibilitätsmodus' kann der
- 'Compatibility Mode' eines (nicht AHCI) IDE Controllers, oder
- der IDE Modus eines AHCI Controllers gemeint sein.
Nein, das geht bei einem AHCI-Controller nicht. Die Option ein
Nicht-AHCI-Controller zu sein, hat ein AHCI-Controller nicht, weil
er dann kein AHCI-Controller ist. Insbesondere, wenn im BIOS AHCI
als Modus eingestellt ist, ist die Wahrscheinlichkeit dann doch
extrem gering, daß es sich hier um einen Nicht-AHCI-Controller auch
nur theoretisch handeln könnte.
OK, 'nicht AHCI' war missverständlich, streiche es einfach oder
ersetze es durch 'nicht AHCI Controller oder AHCI fähiger Controller
im IDE Mode'
- Compatibility Mode
- IDE Mode
- AHCI Mode
Ist mir trotz vieler Boards nie untergekommen. (Eher leider weniger, sodass
man gar nichts wählen konnte... speziell bei Mobos mit NVidia-Chipsätzen).

Hast du ein Beispielboard zur Hand?
--
MfG, Martin
Christian Franke
2009-06-06 12:40:27 UTC
Permalink
Post by Martin Draheim
Post by Christian Franke
- Compatibility Mode
- IDE Mode
- AHCI Mode
Ist mir trotz vieler Boards nie untergekommen. (Eher leider weniger,
sodass man gar nichts wählen konnte... speziell bei Mobos mit
NVidia-Chipsätzen).
Hast du ein Beispielboard zur Hand?
Einen Typbezeichnung weiß ich nicht mehr, es war zumindest bei einem
(Asus ?) Board mit Intel Chipsatz aus den Anfangszeiten von AHCI der
Fall. Die Bezeichnungen im BIOS waren nur anders als oben angeben.

WIMRE konnte man etwa folgendes einstellen:
[IDE Standard Mode - 4xPATA]
[IDE Standard Mode - 2xPATA, 2xSATA]
[IDE Enhanced Mode]
[AHCI Mode]

Bei Boards ohne eine solche 'Standard/Enhanced' Auswahl im BIOS werden
die PATA Kanäle oft einfach fest auf 'Standard' (= 'Compatibility') Mode
konfiguriert (Bsp: nForce4 Boards wie Asus A8N).

In diesem Modus wird im Prinzip die Port- und Interrupt-Belegung eines
uralten ST-506 Controllers von WD nachgebildet. Stammt noch aus der Zeit
der MFM und RLL Platten, vor der I)ntegration der D)rive E)lectronics in
die Platte. Als man sich noch mit nervigen Platten Typ-Nummern in den
BIOS Einstellungen herumschlagen musste :-)

Gruß
Christian
Martin Schoenbeck
2009-06-06 12:05:06 UTC
Permalink
Hallo Christian,
Post by Christian Franke
Post by Martin Schoenbeck
Post by Christian Franke
Mit 'Kompatibilitätsmodus' kann der
- 'Compatibility Mode' eines (nicht AHCI) IDE Controllers, oder
- der IDE Modus eines AHCI Controllers gemeint sein.
Nein, das geht bei einem AHCI-Controller nicht. Die Option ein
Nicht-AHCI-Controller zu sein, hat ein AHCI-Controller nicht, weil er dann
kein AHCI-Controller ist. Insbesondere, wenn im BIOS AHCI als Modus
eingestellt ist, ist die Wahrscheinlichkeit dann doch extrem gering, daß es
sich hier um einen Nicht-AHCI-Controller auch nur theoretisch handeln
könnte.
OK, 'nicht AHCI' war missverständlich, streiche es einfach oder ersetze
es durch 'nicht AHCI Controller oder AHCI fähiger Controller im IDE Mode'
Sorry, aber irgendwie drehen wir uns im Kreis. Bei einem nicht AHCI-fähigen
Controller wird man im BIOS, wenn es nicht von Vollidioten programmiert
wurde, nicht AHCI einstellen können. Und bei einem AHCI-fähigen Controller
wird der bei der Einstellung AHCI im BIOS kein Modus geschaltet werden, in
dem der Controller keinen AHCI darstellt.
Post by Christian Franke
- Compatibility Mode
- IDE Mode
- AHCI Mode
Gerne auch anders beschriftet. Richtig. Und? Worauf willst Du eigentlich
hinaus? Ich redete nur von der Einstellung AHCI, über andere Einstellungen
habe ich keine Aussage gemacht. Und da gibt es BIOSs, die dann dennoch
nicht den AHCI-Modus eingeschaltet haben. Oder ganz konkret im Register GHC
(Global HBA Control) das Bit AHCI-Enable nicht gesetzt haben.

Falls Du mir nur sagen wolltest, daß ich Kompatibilitätsmodus nur für den
Modus verwenden soll, für den einzelne BIOS-Hersteller ihn verwenden, dann
solltest Du das sagen. Denn _daß_ ich ihn so nicht verwendet habe, ist
schon aus dem ersten Posting in diesem Subthread eindeutig ersichtlich. Und
insofern konnte an der Stelle eben nicht zweierlei gemeint sein.

Gruß Martin
--
Bitte nicht an der E-Mail-Adresse fummeln, die paßt so.
Loading...