[go: up one dir, main page]

HK1068174B - Method and system for linking firmware modules in a pre-memory execution environment - Google Patents

Method and system for linking firmware modules in a pre-memory execution environment Download PDF

Info

Publication number
HK1068174B
HK1068174B HK04109824.9A HK04109824A HK1068174B HK 1068174 B HK1068174 B HK 1068174B HK 04109824 A HK04109824 A HK 04109824A HK 1068174 B HK1068174 B HK 1068174B
Authority
HK
Hong Kong
Prior art keywords
module
modules
execution
call
service
Prior art date
Application number
HK04109824.9A
Other languages
English (en)
French (fr)
Chinese (zh)
Other versions
HK1068174A1 (en
Inventor
Ramamurthy Krithivas
Kirk Brannock
Robert Hale
Andrew Fish
William Stevens
Original Assignee
Intel Corporation
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
Priority claimed from US10/073,495 external-priority patent/US7454603B2/en
Application filed by Intel Corporation filed Critical Intel Corporation
Publication of HK1068174A1 publication Critical patent/HK1068174A1/en
Publication of HK1068174B publication Critical patent/HK1068174B/en

Links

Claims (46)

  1. Verfahren zum Betreiben einer Plattform (100) mit einem Hauptspeicher (107) und einem Basis-Eingabe-Ausgabe-Systems (120) mit mehreren Modulen (212-1 ... 212-M), wobei das Verfahren das Starten der Ausführung des Basis-Eingabe-Ausgabe-Systems (120) umfasst und durch folgende Schritte gekennzeichnet ist:
    Initialisieren der mehreren Module (212-1 ... 212-M), wobei das Initialisieren die folgenden Schritte umfasst:
    Untersuchen mindestens zweier der mehreren Module (212-1 ... 212-M), um eine erforderliche Abfertigungsreihenfolge der Module (212-1 ... 212-M) zu bestimmen;
    Ansetzen der Ausführung der mindestens zwei Module (212-1 ... 212-M); und
    Abfertigen der angesetzten Module (212-1 ... 212-M) zur Ausführung in der bestimmten Reihenfolge; und
    Initialisieren des Hauptspeichers (107) der Plattform (100), nachdem die angesetzten Module (212-1 ... 212-M) abgefertigt worden sind.
  2. Verfahren nach Anspruch 1, wobei das Untersuchen der mindestens zwei Module (212-1 ... 212-M) das Überprüfen einer Ressourcenliste jedes der zwei Module (212-1 ... 212-M) umfasst.
  3. Verfahren nach Anspruch 1, wobei das Initialisieren der mehreren Module (212-1 ... 212-M) ferner die folgenden Schritte umfasst:
    Ausführen eines Kernmoduls (210), indem eine Anforderungskonfiguration der mehreren Module (212-1 ... 212-M), die zum Laufen geeignet sind, bestimmt wird; und
    Untersuchen einer Plattform, um zu bestimmen, ob durch ein Modul (212-1 ... 212-M) zu initialisierende Hardware in der Plattform vorhanden ist.
  4. Verfahren nach Anspruch 1, ferner umfassend den folgenden Schritt:
    Markieren einer Datenstruktur (500), nachdem ein Modul (212-1 ... 212-M) abgefertigt worden ist, wobei die Datenstruktur (500) zum Anzeigen, ob das Modul abgefertigt worden ist, eingerichtet ist.
  5. Verfahren nach Anspruch 1, ferner umfassend das Aufrufen eines der mehreren Module (212-1 ... 212-M) zum Ausführen während der Ausführung eines anderen der mehreren Module (212-1 ... 212-M).
  6. Verfahren nach Anspruch 4, wobei das Aufrufen eines Moduls der mehreren Module (212-1 ... 212-M) ferner die folgenden Schritte umfasst:
    Speichern einer Rückkehradresse;
    Bestimmen einer physikalischen Adresse des Moduls;
    Ausführen einer an der physikalischen Adresse des Moduls gespeicherten Anweisung; und
    Ausführen einer an der gespeicherten Rückkehradresse gespeicherten Anweisung, wenn die Modulausführung vollständig ist.
  7. Verfahren nach Anspruch 6, wobei das Bestimmen der physikalischen Adresse des Moduls das Nachschauen der physikalischen Adresse in einer Importtabelle (605) des anderen Moduls umfasst.
  8. Verfahren nach einem der vorhergehenden Ansprüche, wobei ein Modul der mehreren Module (212-1 ... 212-M) umfasst:
    eine global eindeutige Identifikation (601) zum Identifizieren des Moduls;
    eine Ressourcenliste (603) zum Speichern von Informationen, die vom Modul zum Betrieb benötigte Ressourcen identifizieren;
    eine Importtabelle (605) zum Speichern von physikalischen Adressen einer Menge von Modulen (212-1 ... 212-M) aus den mehreren Modulen (212-1 ... 212-M), die das Modul während der Ausführung aufrufen kann;
    einen Dienst, der bei Ausführung eine vorgegebene Funktion ausführt;
    eine Exporttabelle (607) zum Speichern eines Wertes, der einer physikalischen Adresse des Dienstes entspricht; und
    eine Schnittstelle, die im Betrieb mit der global eindeutigen Identifikation (601), der Ressourcenliste (603), dem Dienst, der Importtabelle (605) und der Exporttabelle (607) verbunden ist, wobei die Schnittstelle über die global eindeutige Identifikation (601) von einem Aufrufagenten adressierbar ist, um dem Aufrufagenten Zugriff auf die Ressourcenliste (603), den Dienst, die Importtabelle (605) und die Exporttabelle (607) zu gewähren.
  9. Verfahren nach Anspruch 8, wobei der durch die Exporttabelle (607) gespeicherte Wert ein von einer Startadresse des Moduls versetzter Wert ist.
  10. Verfahren nach Anspruch 8, wobei die Importtabelle (605) global eindeutige Identifizierungen (601) der Menge von Modulen (212-1 ... 212-M) der mehreren Module (212-1 ... 212-M) speichert.
  11. Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend die folgenden Schritte:
    Starten der Ausführung eines ersten Moduls der mehreren Module (212-1 ... 212-M);
    Bestimmen, ob das erste Modul mit einem anderen Modul der mehreren Module (212-1 ... 212-M) verkettet werden kann;
    Bestimmen, ob eine zum ersten Modul gehörige Hardware-Komponente (109) in der Plattform vorhanden ist, falls das erste Modul verkettet werden kann;
    Vollenden der Ausführung des ersten Moduls, falls die zum ersten Modul gehörige Hardware-Komponente (109) in der Plattform vorhanden ist; und
    Starten der Ausführung eines zweiten Moduls der mehreren Module (212-1 ... 212-M) ohne Vollenden der Ausführung des ersten Moduls, falls die zum ersten Modul gehörige Hardware-Komponente (109) in der Plattform nicht vorhanden ist.
  12. Verfahren nach Anspruch 11, wobei das erste Modul eine Datenstruktur zum Speichern einer physikalischen Adresse des zweiten Moduls enthält.
  13. Verfahren nach Anspruch 11, ferner umfassend die folgenden Schritte:
    Bestimmen, ob eine zum zweiten Modul der mehreren Module (212-1 ... 212-M) gehörige Hardware-Komponente (109) in der Plattform vorhanden ist, falls das erste Modul verkettet werden kann;
    Vollenden der Ausführung des zweiten Moduls, falls die zum zweiten Modul gehörige Hardware-Komponente (109) in der Plattform vorhanden ist;
    Bestimmen, ob ein drittes Modul mit dem zweiten Modul verkettet ist, falls die zum zweiten Modul gehörige Hardware-Komponente (109) in der Plattform nicht vorhanden ist; und
    Ausführen des dritten Moduls der mehreren Module (212-1 ... 212-M) ohne Vollenden der Ausführung des zweiten Moduls, falls das dritte Modul mit dem zweiten Modul verkettet ist.
  14. Verfahren nach Anspruch 13, wobei das Vollenden der Ausführung des zweiten Moduls ferner das Zurückkehren zu einem Aufrufagenten, der das erste Modul aufgerufen hat, umfasst.
  15. Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend die folgenden Schritte:
    Ausführen eines durch einen Aufrufagenten erfolgten Aufrufs eines ersten Moduls der mehreren Module (212-1 ... 212-M), wobei der Aufruf einer aus einer Menge von Aufrufen ist, aus der jeder Aufruf zu einem Modul aus einer Menge von Modulen (212-1 ... 212-M) der mehreren Module (212-1 ... 212-M) gehört, wobei die Zugehörigkeiten von einer Plattformkonfiguration abhängen;
    Starten der Ausführung des ersten Moduls der mehreren Module (212-1 ... 212-M) auf den Aufruf hin;
    Bestimmen, welches Modul aus der Menge von Modulen (212-1 ... 212-M) zu dem Aufruf gehört; und
    Starten der Ausführung des zu dem Aufruf gehörigen Moduls.
  16. Verfahren nach Anspruch 15, ferner umfassend das Zurückkehren zum Aufrufagenten, wenn die Ausführung des zum Aufruf gehörigen Moduls vollendet ist.
  17. Maschinenlesbares Medium mit Anweisungen, die, wenn sie auf einer Plattform mit einem Hauptspeicher (107) und einem Basis-Eingabe-Ausgabe-System (120) mit mehreren Modulen (212-1 ... 212-M) ausgeführt werden, die Plattform den folgenden Arbeitsschritt ausführen lassen:
    Starten der Ausführung des Basis-Eingabe-Ausgabe-Systems (120); und gekennzeichnet durch die folgenden Schritte:
    Initialisieren der mehreren Module (212-1 ... 212-M), wobei das Initialisieren die folgenden Schritte umfasst:
    Untersuchen mindestens zweier der mehreren Module (212-1 ... 212-M), um eine erforderliche Abfertigungsreihenfolge der Module (212-1 ... 212-M) zu bestimmen;
    Ansetzen der Ausführung der mindestens zwei Module (212-1 ... 212-M); und
    Abfertigen der angesetzten Module (212-1 ... 212-M) zur Ausführung in der bestimmten Reihenfolge; und
    Initialisieren des Hauptspeichers (107) der Plattform (100), nachdem die angesetzten Module (212-1 ... 212-M) abgefertigt worden sind.
  18. Maschinenlesbares Medium nach Anspruch 17, wobei das Untersuchen der mindestens zwei Module (212-1 ... 212-M) das Überprüfen einer Ressourcenliste jedes der zwei Module (212-1 ... 212-M) umfasst.
  19. Maschinenlesbares Medium nach Anspruch 17, wobei das Initialisieren der mehreren Module (212-1 ... 212-M) ferner die folgenden Schritte umfasst:
    Ausführen eines Kernmoduls (210), indem eine Anforderungskonfiguration der mehreren Module (212-1 ... 212-M), die zum Laufen geeignet sind, bestimmt wird; und
    Untersuchen einer Plattform, um zu bestimmen, ob durch ein Modul (212-1 ... 212-M) zu initialisierender Hardware in der Plattform vorhanden ist.
  20. Maschinenlesbares Medium nach Anspruch 17, ferner umfassend den folgenden Schritt:
    Markieren einer Datenstruktur (500), nachdem ein Modul (212-1 ... 212-M) abgefertigt worden ist, wobei die Datenstruktur (500) zum Anzeigen, ob das Modul abgefertigt worden ist, eingerichtet ist.
  21. Maschinenlesbares Medium nach Anspruch 17, ferner umfassend Anweisungen, die, wenn sie von einer Maschine ausgeführt werden, die Maschine ausführen lassen: das Aufrufen eines Moduls der mehreren Module (212-1 ... 212-M) zum Ausführen während der Ausführung eines anderen Moduls der mehreren Module (212-1 ... 212-M).
  22. Maschinenlesbares Medium nach Anspruch 21, wobei das Aufrufen eines Moduls der mehreren Module (212-1 ... 212-M) ferner Anweisungen umfasst, die, wenn sie von der Maschine ausgeführt werden, die Maschine die folgenden Arbeitsschritte ausführen lassen:
    Speichern einer Rückkehradresse;
    Bestimmen einer physikalischen Adresse des Moduls;
    Ausführen einer an der physikalischen Adresse des Moduls gespeicherten Anweisung; und
    Ausführen einer an der gespeicherten Rückkehradresse gespeicherten Anweisung, wenn die Modulausführung vollständig ist.
  23. Maschinenlesbares Medium nach einem der Ansprüche 17 bis 22, wobei ein Modul der mehreren Module (212-1 ... 212-M) umfasst:
    eine global eindeutige Identifikation (601) zum Identifizieren des Moduls;
    eine Ressourcenliste (603) zum Speichern von Informationen, die vom Modul zum Betrieb benötigte Ressourcen identifizieren;
    eine Importtabelle (605) zum Speichern von physikalischen Adressen einer Menge von Modulen (212-1 ... 212-M) aus den mehreren Modulen (212-1 ... 212-M), die das Modul während der Ausführung aufrufen kann;
    einen Dienst, der bei Ausführung eine vorgegebene Funktion ausführt;
    eine Exporttabelle (607) zum Speichern eines Wertes, der einer physikalischen Adresse des Dienstes entspricht; und
    eine Schnittstelle, die im Betrieb mit der global eindeutigen Identifikation (601), der Ressourcenliste (603), dem Dienst, der Importtabelle (605) und der Exporttabelle (607) verbunden ist, wobei die Schnittstelle über die global eindeutige Identifikation (601) von einem Aufrufagenten adressierbar ist, um dem Aufrufagenten Zugriff auf die Ressourcenliste (603), den Dienst, die Importtabelle (605) und die Exporttabelle (607) zu gewähren.
  24. Maschinenlesbares Medium nach einem der Ansprüche 17 bis 23, ferner umfassend Anweisungen, die, wenn sie von der Maschine ausgeführt werden, die Maschine die folgenden Arbeitsschritte ausführen lassen:
    Starten der Ausführung eines ersten Moduls der mehreren Module (212-1 ... 212-M);
    Bestimmen, ob das erste Modul mit einem anderen Modul der mehreren Module (212-1 ... 212-M) verkettet werden kann;
    Bestimmen, ob eine zum ersten Modul gehörige Hardware-Komponente (109) in der Plattform vorhanden ist, falls das erste Modul verkettet werden kann;
    Vollenden der Ausführung des ersten Moduls, falls die zum ersten Modul gehörige Hardware-Komponente (109) in der Plattform vorhanden ist; und
    Starten der Ausführung eines zweiten Moduls der mehreren Module (212-1 ... 212-M) ohne Vollenden der Ausführung des ersten Moduls, falls die zum ersten Modul gehörige Hardware-Komponente (109) in der Plattform nicht vorhanden ist.
  25. Maschinenlesbares Medium nach Anspruch 24, ferner umfassend Anweisungen, die, wenn sie von der Maschine ausgeführt werden, die Maschinen die folgenden Arbeitsschritte ausführen lassen:
    Bestimmen, ob eine zum zweiten Modul der mehreren Module (212-1 ... 212-M) gehörige Hardware-Komponente (109) in der Plattform vorhanden ist, falls das erste Modul verkettet werden kann;
    Vollenden der Ausführung des zweiten Moduls, falls die zum zweiten Modul gehörige Hardware-Komponente (109) in der Plattform vorhanden ist;
    Bestimmen, ob ein drittes Modul mit dem zweiten Modul verkettet ist, falls die zum zweiten Modul gehörige Hardware-Komponente (109) in der Plattform nicht vorhanden ist; und
    Ausführen des dritten Moduls der mehreren Module (212-1 ... 212-M) ohne Vollenden der Ausführung des zweiten Moduls, falls das dritte Modul mit dem zweiten Modul verkettet ist.
  26. Maschinenlesbares Medium nach Anspruch 25, wobei das Vollenden der Ausführung des zweiten Moduls ferner Anweisungen umfasst, die, wenn sie von der Maschine ausgeführt werden, die Maschine einen Arbeitsschritt ausführen lassen, bei dem zu einem Aufrufagenten zurückgekehrt wird, der das erste Modul aufgerufen hat.
  27. Maschinenlesbares Medium nach einem der Ansprüche 17 bis 26, ferner umfassend Anweisungen, die, wenn sie von der Maschine ausgeführt werden, die Maschine die folgenden Arbeitsschritte ausführen lassen:
    Ausführen eines durch einen Aufrufagenten erfolgten Aufrufs eines ersten Moduls der mehreren Module (212-1 ... 212-M), wobei der Aufruf einer aus einer Menge von Aufrufen ist, aus der jeder Aufruf zu einem Modul aus einer Menge von Modulen (212-1 ... 212-M) der mehreren Module (212-1 ... 212-M) gehört, wobei die Zugehörigkeiten von einer Plattformkonfiguration abhängen;
    Starten der Ausführung des ersten Moduls der mehreren Module (212-1 ... 212-M) auf den Aufruf hin;
    Bestimmen, welches Modul aus der Menge von Modulen (212-1 ... 212-M) zu dem Aufruf gehört; und
    Starten der Ausführung des zu dem Aufruf gehörigen Moduls.
  28. Maschinenlesbares Medium nach Anspruch 27, ferner umfassend Anweisungen, die, wenn sie von der Maschine ausgeführt werden, die Maschine einen Arbeitsschritt ausführen lassen, bei dem zu dem Aufrufagenten zurückgekehrt wird, wenn die Ausführung des zum Aufruf gehörigen Moduls vollendet ist.
  29. System, umfassend:
    mehrere Hardware-Komponenten (109-1 - 109-N);
    ein erstes Speichergerät (105) zum Speichern eines Basis-Eingabe-Ausgabe-Systems (120), das mehrere Module (212-1 ... 212-M) aufweist; und
    eine Einrichtung zum Abfertigen angesetzter Module (212-1 ... 212-M) zur Ausführung in einer vorgegebenen Reihenfolge und
    einen mit den mehreren Hardware-Komponenten (109-1 - 109-N) und dem ersten Speichergerät (105) verbundenen Prozessor (103), dadurch gekennzeichnet, dass das Basis-Eingabe-Ausgabe-System (120) enthält:
    eine Einrichtung zum Untersuchen mindestens zweier der mehreren Module (212-1 ... 212-M), um die erforderliche Abfertigungsreihenfolge der Module (212-1 ... 212-M) zu bestimmen;
    eine Ansetzeinrichtung zum Ansetzen der Ausführung der Module (212-1 ... 212-M) einer Menge von Modulen (212-1 ... 212-M), die durch die Untersuchungseinrichtung bestimmt worden sind; und
    wobei das Basis-Eingabe-Ausgabe-System (120) ferner eine Einrichtung zum Initialisieren des Hauptspeichers (107) des Systems, nachdem die angesetzten Module (212-1 ... 212-M) abgefertigt worden sind, umfasst.
  30. System nach Anspruch 29, wobei die Untersuchungseinrichtung dazu ausgelegt ist, eine Ressourcenliste jedes der zwei Module (212-1 ... 212-M) zu überprüfen, um die erforderliche Reihenfolge zu bestimmen.
  31. System nach Anspruch 29, ferner umfassend:
    eine Ausführungseinrichtung zum Ausführen eines Kernmoduls (210), indem eine Anforderungskonfiguration der mehreren Module (212-1 ... 212-M), die zum Laufen geeignet sind, bestimmt wird, und
    wobei die Untersuchungseinrichtung ferner dazu ausgelegt ist, eine Plattform zu untersuchen, um zu bestimmen, ob in der Plattform irgendeine vom Modul (212-1 ... 212-M) zu initialisierende Hardware-Komponente vorhanden ist.
  32. System nach Anspruch 29, ferner umfassend:
    eine Markierungseinrichtung zum Markieren einer Datenstruktur (500), nachdem ein Modul(212-1 ... 212-M) abgefertigt worden ist, wobei die Datenstruktur (500) zum Anzeigen, ob das Modul abgefertigt worden ist, eingerichtet ist.
  33. System nach Anspruch 29, wobei das Basis-Eingabe-Ausgabe-System (120) ferner eine Einrichtung zum Aufrufen eines der mehreren Module (212-1 ... 212-M) zum Ausführen während der Ausführung eines anderen der mehreren Module (212-1 ... 212-M) umfasst.
  34. System nach Anspruch 33, wobei die Einrichtung zum Aufrufen eines Moduls der mehreren Module (212-1 ... 212-M) ferner umfasst:
    eine Einrichtung zum Speichern einer Rückkehradresse;
    eine Einrichtung zum Bestimmen einer physikalischen Adresse des Moduls;
    eine Einrichtung zum Ausführen einer an der physikalischen Adresse des Moduls gespeicherten Anweisung; und
    eine Einrichtung zum Ausführen einer an der gespeicherten Rückkehradresse gespeicherten Anweisung, wenn die Modulausführung vollständig ist.
  35. System nach einem der Ansprüche 29 bis 34, wobei ein Modul der mehreren Module (212-1 ... 212-M) umfasst:
    eine global eindeutige Identifikation (601) zum Identifizieren des Moduls;
    eine Ressourcenliste (603) zum Speichern von Informationen, die vom Modul zum Betrieb benötigte Ressourcen identifizieren;
    eine Importtabelle (605) zum Speichern von physikalischen Adressen einer Menge von Modulen (212-1 ... 212-M) aus den mehreren Modulen (212-1 ... 212-M), die das Modul während der Ausführung aufrufen kann;
    einen Dienst, der bei Ausführung eine vorgegebene Funktion ausführt;
    eine Exporttabelle (607) zum Speichern eines Wertes, der einer physikalischen Adresse des Dienstes entspricht; und
    eine Schnittstelle, die im Betrieb mit der global eindeutigen Identifikation (601), der Ressourcenliste (603), dem Dienst, der Importtabelle (605) und der Exporttabelle (607) verbunden ist, wobei die Schnittstelle über die global eindeutige Identifikation (601) von einem Aufrufagenten adressierbar ist, um dem Aufrufagenten Zugriff auf die Ressourcenliste (603), den Dienst, die Importtabelle (605) und die Exporttabelle (607) zu gewähren.
  36. System nach einem der Ansprüche 29 bis 35, wobei das Basis-Eingabe-Ausgabe-System (120) ferner umfasst:
    eine Einrichtung zum Starten der Ausführung eines ersten Moduls der mehreren Module (212-1 ... 212-M);
    eine Einrichtung zum Bestimmen, ob das erste Modul mit einem anderen Modul der mehreren Module (212-1 ... 212-M) verkettet werden kann;
    eine Einrichtung zum Bestimmen, ob eine Hardware-Komponente der mehreren Hardware-Komponenten (109-1 - 109N), die zum ersten Modul gehört, im System vorhanden ist, falls das erste Modul verkettet werden kann;
    eine Einrichtung zum Vollenden der Ausführung des ersten Moduls, falls die zum ersten Modul gehörige Hardware-Komponente (109) in der Plattform vorhanden ist; und
    eine Einrichtung zum Starten der Ausführung eines zweiten Moduls der mehreren Module (212-1 ... 212-M) ohne Vollenden der Ausführung des ersten Moduls, falls die zum ersten Modul gehörige Hardware-Komponente (109) in der Plattform nicht vorhanden ist.
  37. System nach Anspruch 36, wobei das Basis-Eingabe-Ausgabe-System (120) ferner umfasst:
    eine Einrichtung zum Bestimmen, ob eine zum zweiten Modul der mehreren Module (212-1 ... 212-M) gehörige Hardware-Komponente (109) in der Plattform vorhanden ist, falls das erste Modul verkettet werden kann;
    eine Einrichtung zum Vollenden der Ausführung des zweiten Moduls, falls die zum zweiten Modul gehörige Hardware-Komponente (109) in der Plattform vorhanden ist;
    eine Einrichtung zum Bestimmen, ob ein drittes Modul mit dem zweiten Modul verkettet ist, falls die zum zweiten Modul gehörige Hardware-Komponente (109) in der Plattform nicht vorhanden ist; und
    eine Einrichtung zum Ausführen des dritten Moduls der mehreren Module (212-1 ... 212-M) ohne Vollenden der Ausführung des zweiten Moduls, falls das dritte Modul mit dem zweiten Modul verkettet ist.
  38. System nach Anspruch 37, wobei die Einrichtung zum Vollenden der Ausführung des zweiten Moduls ferner eine Einrichtung zum Zurückkehren zu einem Aufrufagenten, der das erste Modul aufgerufen hat, umfasst.
  39. System nach Anspruch 34, wobei das Basis-Eingabe-Ausgabe-System (120) ferner umfasst:
    eine Einrichtung zum Ausführen eines durch einen Aufrufagenten erfolgten Aufrufs eines ersten Moduls der mehreren Module (212-1 ... 212-M), wobei der Aufruf einer aus einer Menge von Aufrufen ist, aus der jeder Aufruf zu einem Modul aus einer Menge von Modulen (212-1 ... 212-M) der mehreren Module (212-1 ... 212-M) gehört, wobei die Zugehörigkeiten von einer Plattformkonfiguration abhängen;
    eine Einrichtung zum Starten der Ausführung des ersten Moduls der mehreren Module (212-1 ... 212-M) auf den Aufruf hin;
    eine Einrichtung zum Bestimmen, welches Modul aus der Menge von Modulen (212-1 ... 212-M) zu dem Aufruf gehört; und
    eine Einrichtung zum Starten der Ausführung des zu dem Aufruf gehörigen Moduls.
  40. System nach Anspruch 29, wobei, während ein erstes Modul der mehreren Module (212-1 ... 212-M) ausgeführt wird, das erste Modul dazu ausgelegt ist, wahlweise ein zweites Modul der mehreren Module (121-1- ... 212-M) zum Ausführen aufzurufen.
  41. System nach Anspruch 29, wobei ein erstes Modul eine Importtabelle (605) zum Speichern einer physikalischen Adresse eines zweiten Moduls umfasst, wobei das erste Modul ferner dazu ausgelegt ist, eine Rückkehradresse beim Aufrufen des zweiten Moduls in einem Register des Prozessors (103) zu speichern.
  42. System nach einem der Ansprüche 29 bis 41, wobei ein Modul der mehreren Module (212-1 ... 212-M) umfasst:
    eine global eindeutige Identifikation (601) zum Identifizieren des Moduls;
    eine Ressourcenliste (603) zum Speichern von Informationen, die vom Modul zum Betrieb benötigte Ressourcen identifizieren;
    eine Importtabelle (605) zum Speichern von physikalischen Adressen einer Menge von Modulen (212-1 ... 212-M) aus den mehreren Modulen (212-1 ... 212-M), die das Modul während der Ausführung aufrufen kann;
    einen Dienst, der bei Ausführung eine vorgegebene Funktion ausführt;
    eine Exporttabelle (607) zum Speichern eines Wertes, der einer physikalischen Adresse des Dienstes entspricht; und
    eine Schnittstelle, die im Betrieb mit der global eindeutigen Identifikation (601), der Ressourcenliste (603), dem Dienst, der Importtabelle (605) und der Exporttabelle (607) verbunden ist, wobei die Schnittstelle über die global eindeutige Identifikation (601) von einem Aufrufagenten adressierbar ist, um dem Aufrufagenten Zugriff auf die Ressourcenliste (603), den Dienst, die Importtabelle (605) und die Exporttabelle (607) zu gewähren.
  43. System nach Anspruch 42, wobei die Auswahleinrichtung zum Auswählen eines oder mehrerer Module (212-1 ... 212-M) aus den mehreren Modulen (212-1 ... 212-M) dazu ausgelegt ist, eine Menge von Modulen (212-1- ... 212-M) mit identischen global eindeutigen Identifikationen (601) auszuwählen.
  44. System nach Anspruch 43, wobei der Prozessor (103) während der Ausführung eines ersten Moduls aus der Menge von Modulen (212-1 ... 212-M) dazu ausgelegt ist, die Ausführung des ersten Moduls zu vollenden, wenn eine zum ersten Modul gehörige erste Hardware-Komponente im System vorhanden ist, wobei die erste Hardware-Komponente eine der mehreren Hardware-Komponenten (109-1 - 109-N) ist.
  45. System nach Anspruch 44, wobei das erste Modul dazu ausgelegt ist, ein zweites Modul der Menge von Modulen (212-1 ... 212-M) aufzurufen, wenn die erste Hardware-Komponente nicht im System vorhanden ist.
  46. System nach Anspruch 29, wobei während der Ausführung eines ersten Moduls der mehreren Module (212-1 ... 212-M) das erste Modul dazu ausgelegt ist, ein zweites Modul der mehreren Module (212-1 ... 212-M) aufzurufen, um einen Dienst durchzuführen, wobei das zweite Modul dazu ausgelegt ist, ein drittes Modul als eine Funktion einer Konfiguration des Systems aufzurufen, wobei das dritte Modul eines aus einer Menge von Modulen (212-1 ... 212-M) der mehreren Module (212-1 ... 212-M) ist, von der jedes zu einer unterschiedlichen Hardware-Komponente der mehreren Hardware-Komponenten (109-1 - 109N) gehört, die den vom ersten Modul aufgerufenen Dienst zur Verfügung stellen.
HK04109824.9A 2002-02-11 2003-01-24 Method and system for linking firmware modules in a pre-memory execution environment HK1068174B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/073,495 2002-02-11
US10/073,495 US7454603B2 (en) 2002-02-11 2002-02-11 Method and system for linking firmware modules in a pre-memory execution environment
PCT/US2003/002376 WO2003069471A2 (en) 2002-02-11 2003-01-24 Method and system for linking firmware modules in a pre-memory execution environment

Publications (2)

Publication Number Publication Date
HK1068174A1 HK1068174A1 (en) 2005-04-22
HK1068174B true HK1068174B (en) 2009-10-23

Family

ID=

Similar Documents

Publication Publication Date Title
EP1481322B1 (de) Verfahren und system zum verknüpfen von firmware-modulen in einer vorspeicherausführungsumgebung
US6732264B1 (en) Multi-tasking boot firmware
US7669186B2 (en) Debugging applications at resource constrained virtual machines using dynamically installable lightweight agents
US7934209B2 (en) Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan
US6775728B2 (en) Method and system for concurrent handler execution in an SMI and PMI-based dispatch-execution framework
US5355498A (en) Method and apparatus for booting a computer system without loading a device driver into memory
US6848046B2 (en) SMM loader and execution mechanism for component software for multiple architectures
US20020194313A1 (en) Method and apparatus for distributing computer platform firmware across a network
US7747848B1 (en) Updating the system management information of a computer system
US7159105B2 (en) Platform-based optimization routines provided by firmware of a computer system
US7162626B2 (en) Use of common language infrastructure for sharing drivers and executable content across execution environments
US20040267708A1 (en) Device information collection and error detection in a pre-boot environment of a computer system
US20040268113A1 (en) Virtual out-of-band management controller
JP2002508560A (ja) マルチプル・クラスファイルのランタイムイメージへの結合
EP1369787A2 (de) Prozessor, Informationsverarbeitungsgerät, Kompiliervorrichtung, und Kompilierverfahren mittels dieses Prozessors
EP0111952A2 (de) Prüfung der Architektur eines mit Teilbefehlsvorrat versehenen Prozessors
CN117075957A (zh) 一种面向多RISC-V平台的通用Linux操作系统镜像设计方法
CN112130926A (zh) 应用程序运行的方法、装置、终端设备及存储介质
US8230413B2 (en) Detecting incorrect versions of files
US20050268081A1 (en) Booting system and/or method for initializing peripherals
KR19980079596A (ko) 멀티 프로세서 시스템의 프로세서 정지 상태 구현 방법 및 장치
US6141635A (en) Method of diagnosing faults in an emulated computer system via a heterogeneous diagnostic program
HK1068174B (en) Method and system for linking firmware modules in a pre-memory execution environment
US7216189B2 (en) Single BIOS technique for supporting processors with and without 64-bit extensions
US7596685B2 (en) Apparatus and method for building, storing, uploading, relocating and executing DOS based software module during system startup time