DE60100848T2 - Virtuelles rom für geräte-aufzählung - Google Patents

Virtuelles rom für geräte-aufzählung Download PDF

Info

Publication number
DE60100848T2
DE60100848T2 DE60100848T DE60100848T DE60100848T2 DE 60100848 T2 DE60100848 T2 DE 60100848T2 DE 60100848 T DE60100848 T DE 60100848T DE 60100848 T DE60100848 T DE 60100848T DE 60100848 T2 DE60100848 T2 DE 60100848T2
Authority
DE
Germany
Prior art keywords
bios
configuration data
pci
configuration
riser card
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60100848T
Other languages
English (en)
Other versions
DE60100848D1 (de
Inventor
C. Timothy MALECK
R. Charles BOSWELL
Brian Barnes
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GlobalFoundries Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of DE60100848D1 publication Critical patent/DE60100848D1/de
Application granted granted Critical
Publication of DE60100848T2 publication Critical patent/DE60100848T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Description

  • 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.

Claims (10)

  1. Verfahren zum Spezifizieren einer Vorrichtung auf einer Riser-Karte (106), die in ein Motherboard eingesteckt ist, welches einen Prozessor und ein BIOS (103) in einem Datenverarbeitungssystem (100) aufweist, wobei das Verfahren durch folgende Schritte gekennzeichnet ist: Speichern von Konfigurationsdaten für die Vorrichtung in einer Speichervorrichtung (201) auf der Riser-Karte (106); Bereitstellen eines die Konfigurationsdaten enthaltenden Header, so dass ein die Konfigurationsdaten enthaltender Speicherplatz von dem BIOS (103) als Zusatz-ROM behandelt wird; Schreiben der Konfigurationsdaten durch das BIOS (103) in einen Kontroller-Konfigurationsplatz; und Spezifizieren der Vorrichtung unter Verwendung der Konfigurationsdaten.
  2. Verfahren nach Anspruch 1, bei dem der Kontroller-Konfigurationsplatz ein PCI-Kontroller-Konfigurationsplatz ist und ein PCI-Bus die Riser-Karte (106) mit einem mit dem System (100) gekoppelten PIC-Bus-Kontroller (104) koppelt.
  3. Verfahren nach Anspruch 1 oder 2, bei dem ein mit der Speichervorrichtung (201) gekoppeltes Interface als Zusatz-ROM behandelt wird.
  4. Verfahren nach Anspruch 1, 2 oder 3, bei dem der Schritt des Bereitstellens ferner den Schritt den Kopierens der Konfigurationsdaten aus der Speichervorrichtung (201) in einen Bereich in dem Systemspeicher um fasst, wobei der Bereich in dem Systemspeicher als Zusatz-ROM behandelt wird.
  5. Verfahren nach Anspruch 4, bei dem der Schritt des Kopierens ferner den Schritt der Schattenabbildung der Konfigurationsdaten in den Speicher des Systems (100) umfasst.
  6. Riser-Karte (106) zum Verbinden mit einem Motherboard eines Computersystems, die dadurch gekennzeichnet ist, dass sie aufweist: eine Peripherievorrichtung; und ein in einer Speichervorrichtung (201) auf der Riser-Karte (106) gespeichertes Computerprogrammprodukt, das konfigurationsdaten enthält, die zur Verwendung durch ein System-BIOS (103) zum Schreiben in einen PCI-Konfigurationsplatz vorgesehen ist, wenn die Riser-Karte (106) mit dem Computersystem verbunden ist.
  7. Riser-Karte (106) nach Anspruch 6, bei der das Computerprogrammprodukt Daten enthält, die die Konfigurationsdaten derart strukturieren, dass das BIOS (103) die Konfigurationsdaten als Zusatz-ROM erkennen.
  8. Datenverarbeitungssystem (100) mit: einem Motherboard mit einem Prozessor und einem BIOS (103); einem mit dem Prozessor und dem BIOS (103) gekoppelten Buskontroller; und einer über den Buskontroller mit dem Motherboard gekoppelten Riser-Karte (106), die dadurch gekennzeichnet ist, dass sie eine Peripherievorrichtung und eine Speichervorrichtung (201) zum Speichern von der Peripherievorrichtung zugeordneten Konfigurationsdaten aufweist; einer Schaltungsanordnung zum Behandeln der Konfigurationsdaten durch das BIOS (103) als Zusatz-ROM; einer Schaltungsanordnung zum Schreiben der Konfigurationsdaten durch das BIOS (103) in einen KontrolleR-Konfigurationsplatz; und einer Schaltungsanordnung zum Spezifizieren der Peripherievorrichtung unter Verwendung der Konfigurationsdaten.
  9. System nach Anspruch 8, bei dem die zum Behandeln vorgesehene Schaltungsanordnung ferner eine Schaltungsanordnung zum Kopieren der Konfigurationsdaten aus der Speichervorrichtung (201) in einen Bereich in dem Systemspeicher aufweist, wobei der Bereich in dem Systemspeicher als Zusatz-ROM behandelt wird.
  10. System nach Anspruch 9, bei dem die zum Kopieren vorgesehene Schaltungsanordnung eine Schaltungsanordnung zum Bereitstellen eines Header mit den Konfigurationsdaten aufweist, so dass das BIOS (103) den Bereich in dem Systemspeicher als Zusatz-ROM behandelt.
DE60100848T 2000-02-04 2001-01-02 Virtuelles rom für geräte-aufzählung Expired - Lifetime DE60100848T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/498,156 US6611912B1 (en) 2000-02-04 2000-02-04 Method and apparatus having a system BIOS write configuration data of a riser card to a controller configuration space when connecting the riser card to a motherboard
US498156 2000-02-04
PCT/US2001/000075 WO2001057660A2 (en) 2000-02-04 2001-01-02 Virtual rom for device enumeration

Publications (2)

Publication Number Publication Date
DE60100848D1 DE60100848D1 (de) 2003-10-30
DE60100848T2 true DE60100848T2 (de) 2004-06-09

Family

ID=23979811

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60100848T Expired - Lifetime DE60100848T2 (de) 2000-02-04 2001-01-02 Virtuelles rom für geräte-aufzählung

Country Status (6)

Country Link
US (1) US6611912B1 (de)
EP (1) EP1252569B1 (de)
JP (1) JP4597459B2 (de)
KR (1) KR100764921B1 (de)
DE (1) DE60100848T2 (de)
WO (1) WO2001057660A2 (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6889280B1 (en) * 2000-06-30 2005-05-03 Intel Corporation Motherboard extension features to provide plug and play information
US7080165B1 (en) * 2000-07-19 2006-07-18 Advanced Micro Devices, Inc. System and method for protecting against unauthorized use of software by automatically receiving PCI vendor ID from vendor
US7039742B1 (en) * 2000-11-27 2006-05-02 Hewlett-Packard Development Company, L.P. Handheld option pack identification scheme
US7032050B2 (en) * 2001-09-28 2006-04-18 Intel Corporation Method for control of codecs in PC riser card architectures
KR100486244B1 (ko) * 2001-10-16 2005-05-03 삼성전자주식회사 직렬 이이피롬을 이용하여 인터페이스용 카드를초기화하는 반도체 장치 및 초기화 방법
US20040064686A1 (en) * 2002-09-30 2004-04-01 Miller Gregory L. Method and apparatus for marking current memory configuration
US20050172061A1 (en) * 2002-10-29 2005-08-04 Shinji Ushigami Device controller
US20040193860A1 (en) * 2003-03-24 2004-09-30 Rothman Michael A Methods and apparatus to export information from hardware devices
US7062590B2 (en) * 2003-08-29 2006-06-13 Lsi Logic Corporation Methods and structure for PCI bus broadcast using device ID messaging
US7080164B2 (en) * 2003-09-23 2006-07-18 Intel Corporation Peripheral device having a programmable identification configuration register
US20050132160A1 (en) * 2003-12-15 2005-06-16 Everett Gerald L. Platform independent method for establishing a run-time data area
US20050283599A1 (en) * 2004-06-22 2005-12-22 Zimmerman Toby S Exposing BIOS information to an ACPI aware operating system
US7266680B1 (en) 2004-07-29 2007-09-04 Marvell International Ltd. Method and apparatus for loading configuration data
JP2006338380A (ja) * 2005-06-02 2006-12-14 Toshiba Corp 情報処理装置およびその制御方法
CN100395719C (zh) * 2005-08-05 2008-06-18 鸿富锦精密工业(深圳)有限公司 外设部件互连接口负载卡
US7334738B2 (en) * 2005-10-21 2008-02-26 Inventec Corporation Riser card identification system
US7555678B2 (en) * 2006-03-23 2009-06-30 Mediatek Inc. System for booting from a non-XIP memory utilizing a boot engine that does not have ECC capabilities during booting
US8065563B2 (en) * 2006-03-23 2011-11-22 Mediatek Inc. System for booting from a non-XIP memory utilizing a boot engine that does not have ECC capabilities during booting
US7433983B2 (en) * 2006-09-12 2008-10-07 Inventec Corporation Method for supporting riser card by basic input/output system
US20080244147A1 (en) * 2007-03-29 2008-10-02 Inventec Corporation Device Recognition Circuit and the Method of Recognition
US7873824B2 (en) * 2007-06-01 2011-01-18 Advanced Micro Devices, Inc. Method and apparatus for remote BIOS configuration control
US20090172234A1 (en) * 2007-12-28 2009-07-02 Inventec Corporation Apparatus and method for identifying system style
US8117346B2 (en) * 2008-10-03 2012-02-14 Microsoft Corporation Configuration space virtualization

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4589063A (en) * 1983-08-04 1986-05-13 Fortune Systems Corporation Data processing system having automatic configuration
GB2203869B (en) 1987-04-17 1991-10-23 Apple Computer Computer resource configuration method and apparatus
JPH0823856B2 (ja) * 1991-02-22 1996-03-06 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステムおよびその動作方法
JPH0736175B2 (ja) * 1991-10-11 1995-04-19 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システムのシステム構成設定方法、データ処理システム、及びデータ処理システム用拡張ユニット
US5446869A (en) * 1993-12-30 1995-08-29 International Business Machines Corporation Configuration and RAM/ROM control of PCI extension card residing on MCA adapter card
KR960703469A (ko) * 1994-05-02 1996-08-17 프레데릭 얀 스미트 반사 방지 그레이팅을 갖는 광전송 성분(Optical transmissive component with anti-reflection gratings)
US5655148A (en) * 1994-05-27 1997-08-05 Microsoft Corporation Method for automatically configuring devices including a network adapter without manual intervention and without prior configuration information
JPH08221222A (ja) * 1995-02-16 1996-08-30 Hitachi Ltd 情報処理装置
US5835760A (en) * 1995-10-13 1998-11-10 Texas Instruments Incorporated Method and arrangement for providing BIOS to a host computer
US5751975A (en) * 1995-12-28 1998-05-12 Intel Corporation Method and apparatus for interfacing a device compliant to a first bus protocol to an external bus having a second bus protocol and for providing virtual functions through a multi-function intelligent bridge
JPH10143460A (ja) * 1996-11-07 1998-05-29 Nec Eng Ltd Scsiホストアダプタ
KR100265711B1 (ko) * 1997-02-14 2000-09-15 윤종용 Isa장치의 자동감지기능을 갖는 컴퓨터 시스템의 부팅 방법
US5926838A (en) * 1997-03-19 1999-07-20 Micron Electronics Interface for high speed memory
US5999989A (en) 1997-06-17 1999-12-07 Compaq Computer Corporation Plug-and-play
US6298426B1 (en) * 1997-12-31 2001-10-02 Intel Corporation Controller configurable for use with multiple memory organizations
US6311242B1 (en) * 1998-08-27 2001-10-30 Apple Computer, Inc. Method and apparatus for supporting dynamic insertion and removal of PCI devices
US6353885B1 (en) * 1999-01-26 2002-03-05 Dell Usa, L.P. System and method for providing bios-level user configuration of a computer system

Also Published As

Publication number Publication date
WO2001057660A2 (en) 2001-08-09
DE60100848D1 (de) 2003-10-30
WO2001057660A3 (en) 2002-03-21
US6611912B1 (en) 2003-08-26
EP1252569B1 (de) 2003-09-24
KR100764921B1 (ko) 2007-10-09
JP4597459B2 (ja) 2010-12-15
KR20030014352A (ko) 2003-02-17
JP2003521778A (ja) 2003-07-15
EP1252569A2 (de) 2002-10-30

Similar Documents

Publication Publication Date Title
DE60100848T2 (de) Virtuelles rom für geräte-aufzählung
DE19882696B4 (de) Speichertransaktionen auf einem Bus geringer Leitungsanzahl
DE69209538T2 (de) Automatische Konfiguration einer Einheit für koppelbare Rechner
DE60018807T2 (de) Verfahren und vorrichtung zur wiederherstellung der konfiguration eines rechners
DE69817725T2 (de) Mikroprozessor Testsystem
DE19681711B4 (de) Intelligente I/O-Schaltung zum Verbinden einer mit einem ersten Busprotokoll kompatiblen Einrichtung mit einem externen Bus
DE4244266C2 (de) Verfahren und Schaltungseinrichtung zum dynamischen Konfigurieren von Gerätetreibern für Computersystem-Betriebsmittel
DE69819188T2 (de) Programmschnittstellenumsetzer für rechner mit mehreren umgebungen
DE4329336C2 (de) Einrichtung und Verfahren zur Identifizierung eines Computer-Mikroprozessors
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE19580606C2 (de) Plattenlaufwerksverbinderschnittstelle zur Verwendung an einem PCI-Bus
DE69627814T2 (de) System zum bereitstellen eines bios für den hauptrechner
EP1720100B1 (de) Verfahren und Vorrichtung zur Emulation einer programmierbaren Einheit
DE3881414T2 (de) Datenverarbeitungssystem mit einer steckbaren optionellen Karte.
DE69111635T2 (de) Gerät und Verfahren zur Background-Speicherprüfung während des Systemanlaufs.
DE69828074T2 (de) Direkt-speicherzugriff / transaktionen auf ein bus mit niedriger pinanzahl
DE68903693T2 (de) Einrichtung zur datenverarbeitung.
DE60319125T2 (de) Integrierte schaltung mit mehreren betriebsarten
DE19847642C2 (de) PCI-PCI-Brücke
DE102004057756B4 (de) USB-Steuerungseinrichtung mit OTG-Steuerungseinheit
DE102007009300B4 (de) Rechnersystem und Verfahren zum Betreiben eines Rechnersystems
DE10393859B4 (de) Entkoppelter Hardwarekonfigurationsmanager
DE102005004420B4 (de) Programmierbare I/O-Schnittstelle
DE102009040241A1 (de) Verfahren und System für den Speicherzugriff
DE112006000634T5 (de) Verfahren und Vorrichtung zur unabhängigen und gleichzeitigen Datenübertragung auf Host-Controller

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: GLOBALFOUNDRIES INC. MAPLES CORPORATE SERVICES, KY