| Zeile 134: | Zeile 134: | ||
{| {{Prettytable}} | {| {{Prettytable}} | ||
! Bit !! Name !! Typ !! Bedeutung | ! Bit !! Name !! Typ !! Bedeutung | ||
| + | |- | ||
| + | | 0 || Immediate Readiness || RO / fix || Wenn dieses Bit auf 1 gesetzt ist bedeutet dasss dass das betreffende PCI-Gerät sofort nach dem Reset Zugriffe auf den Konfigurationsadressraum korrekt verarbeitet. | ||
|- | |- | ||
| 3 || Interrupt Status || RO / dynamic || Wenn dieses Bit auf 1 gesetzt ist möchte das betreffende PCI-Gerät einen Interrupt über sein #INT?-Signal melden. Nur wenn das Bit 10 im Command-Register gelöscht ist wird auch tatsächlich ein Interrupt (an den PIC o.ä.) signalisiert. Falls das PCI-Gerät keine Interrupts benutzt oder diese ausschließlich per [[MSI]](-X) signalisiert kann dieses Bit fest auf 0 geklemmt sein. Auf Bridges meldet dieses Bit nur eigene Interrupts, durch geleitete Interrupts, von sekundären Bussen zum übergeordnetem Bus, beeinflussen dieses Bit nicht. | | 3 || Interrupt Status || RO / dynamic || Wenn dieses Bit auf 1 gesetzt ist möchte das betreffende PCI-Gerät einen Interrupt über sein #INT?-Signal melden. Nur wenn das Bit 10 im Command-Register gelöscht ist wird auch tatsächlich ein Interrupt (an den PIC o.ä.) signalisiert. Falls das PCI-Gerät keine Interrupts benutzt oder diese ausschließlich per [[MSI]](-X) signalisiert kann dieses Bit fest auf 0 geklemmt sein. Auf Bridges meldet dieses Bit nur eigene Interrupts, durch geleitete Interrupts, von sekundären Bussen zum übergeordnetem Bus, beeinflussen dieses Bit nicht. | ||
| Zeile 141: | Zeile 143: | ||
| 5 || 66 MHz Capable || RO / fix || Dieses Bit gibt an ob eine PCI-Karte nicht nur mit maximal 33 MHz-Bus-Takt arbeiten kann sondern bis zu 66 MHz verträgt. Nur wenn alle PCI-Geräte auf dem betreffenden physischen PCI-Bus-Segment mit mehr als 33 MHz umgehen können darf dieses Bus-Segment auch mit mehr als 33 MHz, bis maximal 66 MHz, betrieben werden.<br />Dieses Bit ist nur beim klassischen PCI gültig und bei allen PCI-Nachfolgern immer fest auf 0 geklemmt, außer bei AGP dort ist es immer fest auf 1 geklemmt. Für die Software hat dieses Bit keine Bedeutung, auf dem PCI-Bus wird die Geschwindigkeit in Hardware ausgehandelt, wenn die Software auf den Konfigurations-Adressraum der angeschlossenen Geräte zugreifen kann ist der Bus bereits funktionsfähig. | | 5 || 66 MHz Capable || RO / fix || Dieses Bit gibt an ob eine PCI-Karte nicht nur mit maximal 33 MHz-Bus-Takt arbeiten kann sondern bis zu 66 MHz verträgt. Nur wenn alle PCI-Geräte auf dem betreffenden physischen PCI-Bus-Segment mit mehr als 33 MHz umgehen können darf dieses Bus-Segment auch mit mehr als 33 MHz, bis maximal 66 MHz, betrieben werden.<br />Dieses Bit ist nur beim klassischen PCI gültig und bei allen PCI-Nachfolgern immer fest auf 0 geklemmt, außer bei AGP dort ist es immer fest auf 1 geklemmt. Für die Software hat dieses Bit keine Bedeutung, auf dem PCI-Bus wird die Geschwindigkeit in Hardware ausgehandelt, wenn die Software auf den Konfigurations-Adressraum der angeschlossenen Geräte zugreifen kann ist der Bus bereits funktionsfähig. | ||
|- | |- | ||
| − | | 7 || Fast Back-to-Back Transactions Capable || RO / fix || Wenn | + | | 7 || Fast Back-to-Back Transactions Capable || RO / fix || Wenn dieses Bit auf 1 gesetzt ist bedeutet dasss dass das betreffende PCI-Gerät die minimal schnelleren Back-to-Back Transfers unterstützt. Als Target werden diese Transfers immer unterstützt, aber als Master dürfen diese Transfers nur benutzt werden falls das Bit 9 im Command-Register gesetzt ist. |
|- | |- | ||
| 8 || Master Data Parity Error || RW1C / dynamic || ''TODO'' | | 8 || Master Data Parity Error || RW1C / dynamic || ''TODO'' | ||
|- | |- | ||
| − | | 10-9 || DEVSEL Timing || RO / fix || Diese 2 Bits, als unsigned Integer betrachtet, geben an nach wie vielen PCI-Bus-Takten das PCI-Gerät erkannt hat ob es das Target eines Zugriffs ist. Gültige Werte sind 0, 1 und 2. Der Wert 3 darf nicht verwendet werden, jedes PCI-Gerät muss nach spätestens 2 Takten dekodiert haben ob es das gewünschte Target ist oder nicht. Im 3ten Takt wird dann eine eventuell vorhandene Subtractive-Bridge aktiv und nimmt den Transfer entgegen | + | | 10-9 || DEVSEL Timing || RO / fix || Diese 2 Bits, als unsigned Integer betrachtet, geben an nach wie vielen PCI-Bus-Takten das PCI-Gerät erkannt hat ob es das Target eines Zugriffs ist. Gültige Werte sind 0, 1 und 2. Der Wert 3 darf nicht verwendet werden, jedes PCI-Gerät muss nach spätestens 2 Takten dekodiert haben ob es das gewünschte Target ist oder nicht. Im 3ten Takt wird dann eine eventuell vorhandene Subtractive-Bridge aktiv und nimmt den Transfer entgegen ansonsten der Zugriff geht ins Leere und der Initiator meldet das als Fehler.<br />Diese Bits sind nur für den klassischen PCI-Bus relevant und auf allen anderen PCI-Implementierungen als reserved zu betrachten. |
|- | |- | ||
| 11 || Signalled Target-Abort || RW1C / dynamic || ''TODO'' | | 11 || Signalled Target-Abort || RW1C / dynamic || ''TODO'' | ||
| Zeile 157: | Zeile 159: | ||
| 15 || Detected Parity Error || RW1C / dynamic || ''TODO'' | | 15 || Detected Parity Error || RW1C / dynamic || ''TODO'' | ||
|} | |} | ||
| − | Nicht beschriebene Bits sind reserviert und | + | Nicht beschriebene Bits sind reserviert und müssen beim Lesen ignoriert werden. Die Bits im Status-Register sind entweder Read-Only (RO) oder lassen sich durch beschreiben mit einer 1 rücksetzen (RW1C), das beschreiben mit einer 0 hat keinen Effekt. Einige Bits ändern ihren Zustand nie (fix) und andere können ihren Zustand durch bestimmte Ereignisse ändern (dynamic). |
==== Command-Register ==== | ==== Command-Register ==== | ||