-
TECHNISCHES
GEBIET
-
Die vorliegende Erfindung betrifft
generell Datenverarbeitungssysteme und insbesondere die autonome
Konfiguration von mit einem Datenverarbeitungssystem gekoppelten
Vorrichtungen.
-
TECHNISCHER
HINTERGRUND DER ERFINDUNG
-
In US-A-5 999 989 sind BIOS-Routinen
zum Bestimmen der verfügbaren
Systemeinrichtungen beschrieben. Vorrichtungen, die dazu bestimmt
worden sind, von der Einschalt-Eigenprüf-(POST-)Routine freigegeben
zu werden, werden während
der Vorrichtungsenumeration aktiviert, und es wird eine einer Vorrichtung
zugeordnete Plug-and-Play-Vorrichtung ROM wird hinsichtlich des
Initialisierungscodes gelesen, welcher dann ausgeführt wird,
wodurch der Betrieb der Vorrichtung freigegeben wird.
-
Modems und Audio-Subsysteme sind
gemäß der Microsoft-Spezifikation
PC99 erforderliche Komponenten eines auf Windows basierenden PCs (Personalcomputers).
Diese sind eine Voraussetzung zum Empfangen des Microsoft Windows-Logos.
Angesichts der Erhöhung
der Zyklengeschwindigkeit bei Prozessoren werden die Modem- und
Audio-Funktionen in eine Software implementiert, die unter Windows-Betriebssystemen
von Microsoft auf dem PC-Prozessor laufen. Dies dient der weiteren Kostensenkung
und der Schaffung einer größeren Flexibilität bei der
Software-Verbesserung.
-
Ein Beispiel für solche Implementierungen
ist der Industriestandard AMR (Audio-/Modem-Riser), der eine Architektur
bestehend aus einer Schaltungskarte oder einer Riser-Karte definiert,
die nur eine analoge Frontend-Hardware für die Modem- und Audio-Systeme
aufweist. Siehe AUDIO/MODEM RISER SPE-CIFICATION, Revision 1.01, Intel Corporation, 5.
1–24.
Der Großteil
der Modem- und Audio-Verarbeitung erfolgt auf dem Host-Prozessor.
Die Riser-Karte selbst ist keine PCI-Vorrichtung und wird als Motherboard-Einrichtung
angesehen und ist daher nicht enumerierbar. Trotzdem wird ein PCI-Kontroller
zum Bereitstellen des Interface zwischen der Host-Software und der
Riser-Karte verwendet.
Der Riser enthält
ein oder mehrere Codecs. Der PCI-Kontroller kann in Form einer oder
mehrerer "PCI-Vorrichtungen" dargestellt werden.
-
Um die Angelegenheit noch schwieriger
zu machen, werden die Host-Software-Treiber für Modem und Audio sowie die
Codecs und Riser-Karten von verschiedenen Anbietern geliefert. Wegen
des Schutzes geistigen Eigentums ist die Modem- oder Audio-Software
eines Anbieters so ausgeführt,
dass sie nur mit ihrem speziellen Codec arbeitet. Einige Codec-Anbieter
produzieren auch Riser-Karten, während
einige Riser von Firmen hergestellt werden, die keine Codecs produzieren.
Dies führt
zu der Forderung, dass der PCI-Kontroller konfigurierbar ist (die
IDs mehrerer Anbieter unterstützt),
damit Windows ihn korrekt enumeriert.
-
Eine korrekte Enumeration bewirkt,
dass die betroffenen Treiber (die von den Codec-Anbietern geliefert
werden) geladen werden. Ferner ermöglicht eine korrekte Enumeration,
dass Informationen darüber,
wer den Riser produziert hat und wessen Codec-Komponenten enthalten
sind, an Windows übermittelt
werden. Schließlich
ermöglicht
eine korrekt Enumeration, dass der PCI-Kontroller korrekt als ein oder
mehrere PCI-Vorrichtungen, die die Interface-Funktionen mit jedem
Codec auf dem Riser unterstützen,
konfiguriert wird.
-
Das Computersystem-BIOS (Grundeingabe-Ausgabe-System)
enumeriert PCI-Vorrichtungen durch
Auslesen der anbieterspezifischen Informationen aus dem PCI-Konfigurationsplatz
und Erstellen einer Tabelle, damit das Betriebssystem dann die entsprechenden
Treiber lädt.
-
Zurzeit macht es die AMR-Architektur
erforderlich, dass eine auf die Kundenwünsche zugeschnittenes BIOS-Routine
ausgeführt
wird, um zu detektieren, welche spezifische Riser-Karte eines Anbieters
in dem System vorhanden ist. Die auf die Kundenwünsche zugeschnittene BIOS-Routine
lädt dann
eine Anbieter-ID als Teil-PCI-Vorrichtungs-ID in den PCI-Konfigurationsplatz.
Daher werden der Kontroller, der Riser und das Platform-BIOS miteinander verbunden;
alle drei müssen
gemeinsam geschrieben, getestet, gewartet, unterstützt und
qualifiziert werden. Dies führt
zu höherem
Aufwand und größerer Inflexibilität.
-
Dieses "Verbinden" führt
auch zu unmöglichen
Situationen. Beispielsweise sei angenommen, dass Codec-Anbieter
A einen Audio-Codec, einen Modem-Codec und einen PCI-Kontroller
produziert. Eine korrekte Enumeration führt dazu, dass Windows zwei
PCI-Vorrichtungen (ein mit dem Audio-Codec "A" verbundener
Kontroller "A" und ein mit dem
Modem-Codec "A" verbundener Kontroller "A") präsentiert
werden. Das Einstecken der Karte eines anderen Herstellers in den
Riser kann jedoch zu anderen Ergebnisse führen. Die von dem Anbieter "B" produzierten neuen Audio- und Modem-Codecs
können
mit dem PCI-Kontroller "A" verbunden werden.
Wenn die Firmen A und B Konkurrenten sind, kann das Ergebnis für den Anwender,
der von dem Betriebssystem einfach nur angewiesen wird, den "A-B"-Treiber zu finden,
sehr frustrierend sein.
-
Auf dem Gebiet wird ein Mechanismus
benötigt,
der es einer Vorrichtung ermöglicht,
eine Enumeration ohne Änderungen
an dem Platform-BIOS durchzuführen.
Auf dem Gebiet wird ferner eine Einrichtung zum Enumerieren einer
größeren Funktionalität über Medienzugriffs-Vorrichtungen
hinaus benötigt,
was zu einer technischen Verbesserung der von der Plattform (BIOS)
abgekoppelten Riser-Karte führt.
-
BESCHREIBUNG
DER ERFINDUNG
-
Die vorliegende Erfindung reagiert
dadurch auf den vorgenannten Bedarf, dass sie es einem Betriebssystem
ermöglicht,
mehrere PCI-Vorrichtungen zu enumerieren, die derzeit nicht enumerierbar
sind, ohne dass das System-Platform-BIOS (Basis-I/O-Routinen) auf
die Kundenwünsche
zugeschnitten wird. Folglich kann das Betriebssystem solche PCI-Vorrichtungen
ohne Änderungen
an dem Platform-BIOS enumerieren, wodurch das Testen und Qualifizieren
der Vorrichtungen von der Plattform abgekoppelt werden, die Kosten
für die
Wartung der Platform-Software dadurch reduziert werden, dass das
BIOS unverändert
bleibt, und die technische Verbesserung der PCI-Vorrichtungen von
dem System-Platform-BIOS abgekoppelt wird.
-
Insbesondere bietet die vorliegende
Erfindung ein Verfahren und eine Einrichtung zum Enumerieren mehrerer
Vorrichtungen/Funktionen auf einer Riser-Karte (auch Motherboard-Down-Vorrichtungen),
um dem Betriebssystem einen ladefähigen Code und Konfigurationsdaten
zur Verfügung
zu stellen, ohne dass das Platform-BIOS den Kundenwünschen angepasst
werden muss. Dies erfolgt durch Erstellen eines virtuellen Zusatz-ROM,
den das BIOS auf natürliche
Weise detektiert. Eine Datenspeichervorrichtung (z. B. einen seriellen
EEPROM) auf der Riser-Karte enthält
die für
die Enumeration erforderlichen Konfigurationsdaten und weist möglicherweise auch
einen ladefähigen
Code auf, der die Konfigurationsdaten in den normalen PCI-Konfigurationsplatz jeder
Vorrichtung kopiert. Bei einer Ausführungsform wird der die Konfigurationsdaten
und den ladefähigen
Code enthaltende Riser-Seriell-EEPROM in einen verfügbaren Bereich
des Systemspeichers kopiert. Die Seriell-EEPROM-Daten sind in dem Systemspeicher derart
konfiguriert, dass das BIOS sie bei Verwendung eines AA55-Header
detektiert, wie es auch bei Zusatz-ROMs der Fall ist. Das BIOS detektiert
diesen Bereich des Systemspeichers, wenn es den AA55 Header entdeckt.
Das BIOS behandelt diesen Bereich des Systemspeichers als Zusatz-ROM,
wodurch es diesem ermöglicht
wird, sämtliche
PCI-Konfigurationsplätze mit
der Riser-Konfiguration auszuführen
und zu initiali sieren. Der ausgeführte Code ist in der Lage,
das BIOS für andere
bestehende PCI-Peripherieadressen abzufragen, so dass die Modem-
und Audio-PCI-Konfigurationsplätze
lokalisiert werden können.
Das BIOS enumeriert dann sämtliche
in dem System detektierten PCI-Vorrichtungen.
-
Bei einer weiteren Ausführungsform
der vorliegenden Erfindung werden die Konfigurationsdaten in dem
EEPROM als virtueller Zusatz-ROM behandelt, und zwar mit optionaler
Schattenabbildung der Daten in den Systemspeicher.
-
Ein Vorteil der vorliegenden Erfindung
liegt darin, dass sämtliche
mit der Riser-Karte in Zusammenhang stehenden Vorrichtungen enumeriert
werden können,
ohne dass das BIOS den Kundenwünschen
angepasst werden muss. Ein weiterer Vorteil der vorliegenden Erfindung
liegt darin, dass sich die Riser-Technik
unabhängig
von dem Platform-BIOS entwickeln kann.
-
Obwohl die vorliegende Erfindung
mit Bezug auf PCI- und BIOS-Einheiten beschrieben ist, ist die vorliegende
Erfindung auf ein beliebiges Datenverarbeitungssystem anwendbar,
bei dem zusätzliche
Informationen oder eine autonome Konfiguration erforderlich ist.
Ferner ist die vorliegende Erfindung auf ein beliebiges System anwendbar,
das einen Programmbereich mit einem Kontroller und einer Medienzugriffs-Vorrichtung
(z. B. Ethernet + PHY; DSL-Hard-Modem-Kontroller
+ DSP-Maschine etc.) aufweist.
-
In der vorstehenden Beschreibung
sind die Merkmale und technischen Vorteile der vorliegenden Erfindung
umfassend dargelegt worden, so dass die nachstehende detaillierte
Beschreibung der Erfindung besser verständlich wird. Weitere Merkmale und
Vorteile der Erfindung werden nachstehend beschrieben und sind Gegenstand
der Patentansprüche.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Für
ein umfassenderes Verständnis
der vorliegenden Erfindung und ihrer Vorteile wird nun auf die nachstehenden
Beschreibungen in Zusammenhang mit den beiliegenden Zeichnungen
verwiesen. Es zeigen:
-
1 ein
gemäß der vorliegenden
Erfindung konfiguriertes Datenverarbeitungssystem;
-
2 das
Kopieren von Informationen innerhalb eines EEPROM in einer Riser-Karte
in den Systemspeicher;
-
3 das
Ausführen
von Befehlen innerhalb eines Zusatz-ROM, das zum Kopieren von Anbieter-Informationen
in PCI-Konfigurationsplätze
führt; und
-
4 ein
Ablaufdiagramm gemäß der vorliegenden
Erfindung.
-
ART(EN) ZUM DURCHFÜHREN DER
ERFINDUNG
-
In der folgenden Beschreibung sind
zahlreiche spezifische Details dargelegt, wie z. B. Wort- oder Byte-Längen etc.,
um die vorliegende Erfindung verständlich zu machen. Es ist jedoch
für Fachleute auf
dem Sachgebiet offensichtlich, dass die vorliegende Erfindung auch
ohne solche spezifischen Details in die Praxis umgesetzt werden
kann. In anderen Fällen
sind bekannte Schaltungen in Form von Blockschaltbildern dargestellt,
um die vorliegende Erfindung nicht durch unnötige Details zu unverständlich zu
machen. Größtenteils
sind Details bezüglich
Zeitsteuerung u. dgl. weggelassen worden, da solche Details zum
Verständnis
der vorliegenden Erfindung nicht erforderlich sind und in die Kenntnisse
von Fachleuten auf dem Sachgebiet fallen.
-
In den Zeichnungen sind die gezeigten
Elemente nicht unbedingt maßstabgetreu
dargestellt und gleiche oder im wesentlichen gleiche Elemente in
sämtlichen
Ansichten mit den gleichen Bezugszeichen bezeichnet.
-
1 zeigt
ein erfindungsgemäßes Datenverarbeitungssystem 100.
Das Datenverarbeitungssystem 100 kann andere Elemente als
die spezifisch in 1 dargestellten,
die typischerweise in einem Computersystem enthalten sind, aufweisen.
Eine CPU (zentrale Verarbeitungseinheit) 101 ist über einen
Lokalbus 105 mit einem Direktzugriffsspeicher (RAM) 102 gekoppelt.
Der Lokalbus koppelt ferner die CPU 101 mit dem Grundeingabe-Ausgabe-System
(BIOS) 103 und einem PCI-Bus-Kontroller 104. Das
BIOS 103 weist einen wesentlichen Satz von Routinen auf
und bildet ein Interface zwischen dem Betriebssystem und der Hardware
in dem System 100. Das BIOS 103 unterstützt sämtliche
Peripherietechniken und internen Dienste, wie z. B. die Echtzeituhr.
Beim Starten des Systems 100 testet das BIOS 103 das
System 100 und bereitet es durch Abfragen seiner eigenen
kleinen CMOS-Speicherbank für
das Laufwerk und andere Konfigurationseinstellungen auf den Betrieb
vor. Dann lädt
es das Betriebssystem und übergibt
ihm die Steuerung. Die Bussteuerung von 104 enthält eine Schaltungsanordnung
zum Betreiben einer Peripherievorrichtung, bei der es sich in diesem
Beispiel um eine Peripherievorrichtung auf einer Riser-Karte 106 handelt.
Bei dem System 100 ist der Bus-Kontroller 104 ein
mit einem PCI-Bus 107 gekoppelter PCI-Bus-Kontroller. PCI bedeutet
Peripheriekomponentenverbindung, und der PCI-Bus 107 ist
ein Peripheriebus, der einen Hochgeschwindigkeits-Datenweg zwischen
der CPU 101 und Peripherievorrichtungen (Audio, Video,
Diskette, Netz etc.) bildet. Die PCI bietet eine "Plug-and-Play"-Möglichkeit,
die die PIC-Karten beim Starten automatisch konfiguriert.
-
Bei der Vorrichtungs-Enumeration
innerhalb des Systems 100 werden sämtliche mit dem System 100 verbundenen
Vorrichtungen identifiziert und erforderliche Routinen (Treiber)
initialisiert, die deren Betrieb freigeben. Register innerhalb des PCI-Bus-Kontrollers 104 werden
mit den speziellen Informatio nen über die Peripherievorrichtung
auf der Riser-Karte 106 versorgt, so dass der Bus-Kontroller 104 korrekt
mit der Peripherievorrichtung kommunizieren kann.
-
Bei einem Ausführungsbeispiel der vorliegenden
Erfindung ist die Riser-Karte 106 ein Audio-Modem-Riser
(AMR), der es Herstellern ermöglicht,
Motherboards ohne analoge I/O-Funktionen zu produzieren. Stattdessen
werden diese Funktionen auf die Riser-Karte platziert, die eine
Codec-Schaltungsanordnung aufweist, welche orthogonal zu dem Motherboard
eingesteckt wird, so dass das Motherboard und die Riser-Karte 106 einen
rechten Winkel bilden. Das Trennen der analogen I/O-Funktionen von
dem Motherboard kann zu einer höheren
Audio-Qualität
und geringeren Produktionsverzögerungen
führen.
Bevor es die AMR-Spezifikation gab, durchliefen die analogen I/O-Funktionen
ein langwieriges FCC-Verfahren und ein Verfahren zur internationalen
Telecom-Zertifizierung.
-
Die vorliegende Erfindung bietet
ein Verfahren und eine Einrichtung zum Enumerieren zahlreicher Vorrichtungen/Funktionen
auf der Riser-Karte 106, indem sie dem System 100 einen
ladefähigen Code
und Konfigurationsdaten zur Verfügung
stellt, ohne dass das Platform-BIOS 103 den Kundenwünschen angepasst
wird. Dies erfolgt durch Erstellen eines virtuellen Zusatz-ROM,
den das BIOS 103 auf natürliche Weise beim Starten des
Systems 100 detektiert. Gemäß 2 ist eine Datenspeichervorrichtung,
wie z. B. ein serieller EEPROM 201, auf die Riser-Karte 106 geschaltet,
und sie enthält
sämtliche für eine vollständig Enumeration
von auf der Riser-Karte 106 befindlichen Peripherievorrichtungen erforderlichen
Daten. Es können
beispielsweise eine oder mehrere Audio- oder Video-Peripherievorrichtungen
auf der Riser-Karte 106 vorhanden sein, wie z. B. ein Modem.
Der serielle EEPROM 201 weist möglicherweise ferner einen ladefähigen Code
auf, mit dem die Konfigurationsdaten in den normalen PCI-Konfigurationsplatz
jeder Vorrichtung kopiert werden, wodurch eine normale Enumeration
ermöglicht
wird. Da das Host-System 100 nicht direkt von der auf dem
Riser basierenden Speichereinrichtung 201 laden kann, können die
Daten aus der Vorrichtung 201 zuerst in einen verfügbaren System-RAM kopiert
werden, wie durch den gestrichelten Pfeil in 2 gezeigt.
-
3 zeigt
ein Blockschaltbild mit Darstellung der Ausführung der vorliegenden Erfindung.
Wie oben gesagt, weist die Riser-Karte 106 eine EEPROM-Speichervorrichtung 201 auf.
Eine Einrichtung 303 wird zum Kopieren der für eine vollständige Enumeration
der auf der Riser-Karte 106 vorhandenen Peripherievorrichtungen
erforderlichen Konfigurationsdaten und eines möglichen ladefähigen Codes in
den Systemspeicher 304 implementiert. Solche Daten werden
in dem Systemspeicher 304 derart strukturiert, dass das
BIOS 103 diese als Zusatz-ROM 305 detektiert.
Dies erfolgt durch Platzieren des Header AA55 am vorderen Teil der
in den Systemspeicher 304 kopierten Daten. Es ist auf dem Sachgebiet
bekannt, dass das BIOS 103 derart konfiguriert ist, dass
es auf der Suche nach dem Header AA55 bestimmte Stellen und Speicher
automatisch durchsucht. Es wird angenommen, dass es sich bei Daten
mit einem solchen Header AA55 um einen Zusatz-ROM an dieser Stelle
in dem Systemspeicher 304 handelt und das BIOS 103 die
darin enthaltenen Daten automatisch lädt. Die in dem Zusatz-ROM 305 enthaltenen
Daten werden geladen und führen
eine Initialisierung sämtlicher
PCI-Konfigurationsplätze
für die
auf der Riser-Karte 106 befindlichen Peripherievorrichtungen
durch. Bei dem in 3 gezeigten
Beispiel wird für
eine erste Peripherievorrichtung PHY1 deren Anbieter_ID_Y in dem
PCI-Kontroller-Konfigurations-Speicherplatz 301 gespeichert. 3 zeigt eine weitere Peripherievorrichtung
PHY2, deren Anbieter_ID_Z-Daten in dem PCI-Kontroller-Konfigurations-Speicherplatz 302 gespeichert
werden. Das BIOS 103 enumeriert dann diese detektierten "PCI-Vorrichtungen".
-
Zwecks detaillierterer Beschreibung
dessen, was von einer Zustandsmaschine 303 durchgeführt wird,
kann die Zustandsmaschine 303 eine vorgegebene Einschaltbedingung
aufweisen, die bewirkt, dass die Zustandsmaschine mit dem Kopieren
des Inhalts der EEPROM-Speichervorrichtung 201 in einen
Teil des Systemspeichers 304, von dem bekannt ist, dass
er Zusatz-ROMs aufweist, beginnt. Die Zustandsmaschine 303 überwacht
dann den BIOS-Zusatz-ROM-Detektieralgorithmus.
Wenn das BIOS 103 eine Leseoperation von der Basisadresse
des kopierten EEPROM-Bilds durchführt, muss die Zustandsmaschine 303 die
Speicherlesezeile in den aktiven Zustand ziehen. Der Grund dafür liegt
darin, dass das BIOS 103 den I/O-Platz prüft, der
ein anderes Lesesteuersignal aufweist. Das erste Byte des ladefähigen Codes
in dem EEPROM-Bild fordert die CPU 101 auf, mit dem Ausführen des
Codes von dem Systemspeicher 304 zu beginnen. Das bedeutet, dass
die Zustandsmaschine 303 die Überwachung der Operation beenden
kann, da die Steuerung erfolgreich übertragen worden ist. Der endgültige Code in
der EEPROM-Speichervorrichtung 201 gibt die Steuerung des
Einschaltvorgangs an das BIOS 103 zurück.
-
Alternativ kann in Block 303 der
PCI-Kontroller als Zusatz-ROM-Vorrichtung dargestellt werden. Die
vorliegende Erfindung behandelt die serielle EEPROM-Vorrichtung 201 und
den PCI-Kontroller als Zusatz-ROM, ohne dass der Inhalt des EEPROM 201 in
den Systemspeicher 304 kopiert, sondern vielmehr an seinen
Platz geladen wird. Dadurch entfällt
das komplexe Verfahren zum Kopieren der Daten aus dem EEPROM 201 in
den Systemspeicher 304. Die Leistung kann durch "Schattenabbildung" der Daten aus dem
EEPROM 201 in den Systemspeicher 304 (von einer
BIOS-Einstellung gesteuert) verbessert werden. Diese "Schattenabbildung" ist ein bekannter Mechanismus
in dem Platform-BIOS, mit dem der Speicher automatisch in den System-RAM
kopiert wird. Dadurch wird die Ausführungsleistung durch Verringern
der für
den Zugriff auf die ROM-Daten (die nach dem Kopieren von dem System-RAM
geladen werden) benötigten
Zeit verbessert. Folglich wird bewirkt, dass der PCI-Kontroller 104 (oder
eine einfache Zustandsmaschinenvorrichtung), der an den Riser-EEPROM 201 angeschlossen
ist, auf denjenigen Adressenbereich anspricht, der dafür sorgt,
dass er als Zusatz-ROM-Vorrichtung angesehen wird. Das BIOS 103 erkennt
ihn als Zusatz-ROM und übergibt dieser
Vorrichtung die Programmausführung.
-
Im wesentlichen ist dieses alternative
Schattenabbildungsverfahren das gleiche wie oben in Zusammenhang
mit dem Kopieren des Bilds in den Systemspeicher beschriebene, mit
der Ausnahme, dass die Option zur Schattenabbildung des Zusatz-ROM in
den Hauptspeicher eingeschaltet ist. Wenn das gesamte ROM-Bild in
den Systemspeicher 304 kopiert ist, fängt das BIOS 103 Anforderungen
bezüglich
des Zugriffs auf die ursprüngliche
Speicherstelle ab und leitet diese auf die von ihr erstellte Kopie
um. Diese Option befindet sich typischerweise auf dem für den Benutzer
zugänglichen
BIOS-Konfigurationsbild. Dies kann auch durch einen in dem EEPROM-Bild gespeicherten
ladefähigen
Code erfolgen. Höchstwahrscheinlich
wird diese Option standardmäßig von dem
OEM (Originalhersteller) eingeschaltet, da dadurch Zugriffe auf
das Bild beträchtlich
schneller werden, da der Haupt-Systemspeicher 304 viel
schneller ist als der EEPROM 201.
-
Bei einer weiteren Alternative spricht
ein Zustandmaschinen-Kontroller für den EEPROM 201 tatsächlich auf
die Leseanforderung des BIOS 103 mit dem Header AA55 an.
Es ist keine Rückübersetzung erforderlich,
da die Zustandsmaschine 303 auf standardmäßige Weise
direkt reagiert. Wenn das Lesen einer Adresse aus dem EEPROM 201 angefordert wird, übersetzt
die Zustandsmaschine 303 die Anforderung und präsentiert
die Daten dem System, wenn es bereit ist. Dieses Verfahren ist leicht
implementierbar, da nur eine standardmäßige Signalgebung erforderlich
ist. Das oben beschriebene Verfahren der Schattenabbildung funktioniert
auch in diesem Fall und macht den Zugriff schneller.
-
Die gespeicherten Daten sind bei
sämtlichen oben
beschriebenen Verfahren die gleichen. Sie identifizieren, welche
Vorrichtungen) auf der Riser-Karte vorhanden ist (sind). Sie umfassen
Hersteller, Modell, Änderung
und andere Informationen, die der Anbieter wünscht. Sie umfassen ferner
die PCI-Anbieter-ID, Unteranbieter-ID, PCI-Klasse und auch hier
sämtliche
anderen Informationen, die der Anbieter für geeignet hält. Der
ladefähige
Minimal-Code fragt das System nach verfügbaren Kontrollern. Wenn er
welche findet, liest er die PCI-ID, Vorrichtungs-ID und andere Daten,
die der Anbieter für
zum Identifizieren der Vorrichtung geeignet hält. Wenn jede Medienvorrichtung
(Riser-PHY/CODE etc.) einen dazu passenden Kontroller gefunden hat, schreibt
der Code in dem EEPROM-Bild die korrekte PCI-Anbieter-ID, Unteranbieter-ID,
Vorrichtungs-ID etc. in den passenden Kontroller, bis jede Vorrichtung korrekt
definiert ist. Diese Informationen können auch Möglichkeiten zur Energieverwaltung
oder andere Informationen umfassen, die der Konstrukteur des Systems
aufnehmen muss.
-
Wenn der EEPROM-Code seine Operation beendet
hat, führt
das BIOS 103 einen Standard-PCI-Entdeckungs-Zyklus durch,
und da die PCI-Konfiguration bereits beendet ist, enumerieren die
Vorrichtungen korrekt und kann das Betriebssystem einen bekannten
guten Treiber laden.
-
4 zeigt
das oben beschriebene Verfahren noch genauer. In Schritt 401 führt das
BIOS 103 eine Überprüfung auf
Zusatz-ROMs durch. In Schritt 402 spricht der virtuelle ROM/Kontroller
auf eine Speicherauslesung aus dem Systemspeicher 304 mit dem
entsprechenden AA55-16-Bit-Speicherwert an. In Schritt 403 liest
das BIOS 103 die nächste
Speicherstelle des virtuellen ROM 305, um dessen Größe festzustellen.
In Schritt 404 erfolgt eine Schattenabbildung des Inhalts des virtuellen
ROM 305 in den Hauptspeicher 304. In Schritt 405 überträgt das BIOS 103 unter
Verwendung von Industriestandard-Protokollen
das Ausführen
des Codes an den virtuellen ROM 305. In Schritt 406 enthält der virtuelle
ROM 305 einen ladefähigen
Code, der die folgenden Aktionen durchführt. Erstens identifiziert
er sämtliche
auf PCI basierende Host-Kontroller über einen standardmäßigen PCI-Enumerations-Zyklus.
Dies kann unter Anwendung zweier möglicher Verfahren erfolgen. Erstens
weist die PCI-SIG-Gruppe der Riser-Karte 106 nur Kontroller
mit einer speziellen PCI-ID-Nummer
zu. Bei einem zweiten möglichen
Enumerationszyklus handelt es sich um das Platzieren sämtlicher Host-Kontroller
auf einem unbenutzten, jedoch standardmäßig vorgesehenen PCI-Logikbus.
-
Da der ROM-Programmierer genau weiß, welche
Kontroller potentiell verfügbar
sind, weiß der Programmierer
auch, wie auf die PCI-Konfigurationsregister in verschiedenen PCI-Host-Kontrollern
zugegriffen werden kann und wie diese geschrieben werden können.
-
Die dritte von dem virtuellen ROM
durchgeführte
Aktion ist das Schreiben der der Riser-Komponente zugewiesenen Anbieter
ID-Nummer in das entsprechende PCI-Konfigurationsregister des Host-Kontrollers 104.
Dabei kann es sich um die Unteranbieter- oder Subsystem-ID handeln;
es bleibt dem Konstrukteur des Systems überlassen, das geeignete Register
auszuwählen.
Danach ist der vierte von dem virtuellen ROM durchführbare Prozess
das wiederholte Schreiben der Riser-Vorrichtungs-IDs für sämtliche
Vorrichtungs-Kontroller-Paare im System 100.
-
Danach wird in Schritt 407 das Ausführen des
Codes nach Beendigung der gesamten Konfiguration an das BIOS 103 zurückgegeben.
Obwohl die vorstehende Beschreibung nur PCI-ID-Register betrifft,
sei darauf hingewiesen, dass einige vorrichtungsspezifische Aktionen
durchgeführt
werden können,
wenn der Konstrukteur solche auswählt. Danach erfolgt in Schritt
408, wenn das normale BIOS/PC-Einschaltverfahren fortgesetzt wird,
ein standardmäßiger, auf
BIOS basierender Enumerationszyklus. Da sämtliche erforderlichen PCI-ID-Nummern bereits
geschrieben sind, enumerieren sämtliche
PCI-Riser-Vorrichtungen korrekt auf PCI-BIOS und kann das Betriebssystem
dann die entsprechenden korrekten Treiber laden.