DE10296986B4 - Verfahren und Vorrichtung zum Programmieren eines BIOS - Google Patents

Verfahren und Vorrichtung zum Programmieren eines BIOS Download PDF

Info

Publication number
DE10296986B4
DE10296986B4 DE10296986T DE10296986T DE10296986B4 DE 10296986 B4 DE10296986 B4 DE 10296986B4 DE 10296986 T DE10296986 T DE 10296986T DE 10296986 T DE10296986 T DE 10296986T DE 10296986 B4 DE10296986 B4 DE 10296986B4
Authority
DE
Germany
Prior art keywords
bios
primary
memory
programming
backup
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 - Fee Related
Application number
DE10296986T
Other languages
English (en)
Other versions
DE10296986T5 (de
Inventor
Matthew San Luis Obispo Harding
Peter San Luis Obispo Hawkins
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE10296986T5 publication Critical patent/DE10296986T5/de
Application granted granted Critical
Publication of DE10296986B4 publication Critical patent/DE10296986B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2135Metering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2139Recurrent verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2151Time stamp

Landscapes

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

Abstract

Verfahren zum Programmieren eines BIOS, gekennzeichnet durch die folgenden Schritte:
Anschließen eines Programmiermoduls (441) mit einem Nurlesespeicher an einer Leiterplatte, die einen Speicherbaustein (112) enthält;
Booten eines Computersystems durch Lesen von Inhalt aus dem Programmiermodul (441);
Kopieren eines Reserve-BIOS-Programms (113) vom Programmiermodul (441) in den Speicherbaustein (112);
Kopieren eines primären BIOS (113) in den Speicherbaustein (112);
Entfernen des Programmiermoduls (441) von der Leiterplatte; und
anschließendes Booten des Computersystems von dem Speicherbaustein (112);
Validieren des primären BIOS (113), wobei die höchstwertigen Adreßbits zur Steuerlogik (111) geroutet werden, zum automatischen Auswählen einer ersten Boot-Sequenz im primären BIOS (113) zur Ausführung, wenn das primäre BIOS (113) Validiert wird, und zum automatischen Auswählen einer zweiten Boot-Sequenz in dem Reserve-BIOS (114) zur Ausführung, wenn das primäre BIOS (113) nicht validiert wird, wobei das Reserve-BIOS (113) vor unbeabsichtiger Verfälschung geschützt ist, indem erforderlich ist, dass das Programmiermodul an der...

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Technisches Gebiet
  • Die Erfindung betrifft allgemein Computer und insbesondere die Programmierung eines BIOS.
  • 2. Allgemeiner Stand der Technik
  • Computer werden gewöhnlich durch Ausführen eines Eingabe-/Ausgabe-Grundsystems (BIOS – Basic Input/Output System) initialisiert. Das BIOS ist nichtflüchtiger Code, der bestimmt, was der Computer ohne Zugreifen auf Programme von einem Datenträger unternehmen kann. Auf PCs (Personal Computers) enthält das BIOS allen Code, der zur Durchführung eines Selbsttests und zur Steuerung der Tastatur, des Anzeigeschirms, von Plattenlaufwerken, der seriellen Kommunikation und einer Anzahl verschiedener Funktionen erforderlich ist. Das BIOS lädt dann das Betriebssystem von der Platte. Ursprünglich wurde das BIOS in einem Nurlesespeicher (ROM) plaziert und konnte nicht modifiziert werden, ohne den ROM physisch auszuwechseln. Mit zunehmender Komplexität der von dem BIOS durchgeführten Funktionen und leichterer Umkonfiguration von Computer nach der Herstellung wurde das BIOS auf beschreibbaren programmierbaren ROMs, wie z. B. Flash-Speicher, plaziert.
  • Da das BIOS nun am Einsatzort umgeschrieben werden kann, nachdem der Computer funktionsfähig wird, und ein Computer nicht ohne ein gültiges BIOS gebootet werden kann, entstehen dadurch Zuverlässigkeits- und Sicherheitsfragen. Ein Computer kann gesperrt werden, wenn das BIOS durch inkorrektes Umschreiben verfälscht wird, wie z. B. durch Benutzerfehler, Stromversorgungs unterbrechung oder Softwarefehlfunktion. Um dabei zu helfen, einen unbehebbaren Zustand zu verhindern, enthalten viele Systeme eine Reservekopie des System-BIOS, auf die man sich verlassen kann, wenn das primäre BIOS fehlerhaft ist. Die erfordern jedoch im allgemeinen einen physischen Eingriff durch den Benutzer, um das Reserve-BIOS zu aktivieren. Zum Beispiel kann das Reserve-BIOS durch einen mechanischen Schalter oder eine Brücke auf dem Motherboard freigegeben werden. Systeme, die eine bestimmte Art von automatischer Behebung aufweisen, erfordern immer noch die physische Anwesenheit und den Eingriff eines Bedieners, um z. B. Boot-Optionen zu wählen oder einen Behebungsdatenträger einzulegen. Wenn das fehlerhafte BIOS durch ein Herunterladen zu einem abgesetzten System ohne Anwesenheit eines Bedieners verursacht wurde, kann die Korrekturmaßnahme (Aussenden eines Technikers zu dem Standort) sowohl im Hinblick auf Geld als auch Ausfallzeit sehr koststpielig sein. Ein zusätzlicher Nachteil des Konventions-BIOS-Redundanzansatzes besteht darin, daß gewöhnlich die beiden BIOS-Kopien in zwei getrennten Speicherbausteinen gespeichert werden, wodurch die Herstellungskosten steigen.
  • In der US 5,793,943 A wird ein duales BIOS-ROM-System zur Initialisierung des Computers umfaßt. Bei der Inbetriebnahme oder beim Neustart eines Computers wird das primäre BIOS-ROM freigegeben. Der Computer analysiert den gesamten Programminhalt des primären BIOS-ROMs. Falls ein Datenfehler erfaßt wird, wird der primäre BIOS-ROM mittels einer Chip-Freigabeschaltung gesperrt und ein zweiter BIOS-ROM freigegeben, der im wesentlichen dieselben Initialisierungsbefehle wie der primäre BIOS-ROM enthält.
  • Die US 5,522,076 A offenbart einen als ein BIOS-ROM verwendeten Flash-Speicher, der einen Hauptblock mit einem BIOS und einen Boot-Block mit einem Minimalprogramm zur Ausführung bei der Initialisierung des Systems umfaßt. Bei der Inbetriebnahme wird eine Routine zur Erfassung einer Tastenbetätigung im Boot-Block ausgeführt, um zu prüfen, ob eine vorbestimmte Taste gedrückt wurde. Wird festgestellt, daß die Taste gedrückt wurde, wird ein Programm auf einer Floppy-Disk in das System geladen und ausgeführt, wodurch der Inhalt zum BIOS- ROM des Flash-Speichers übertragen wird.
  • Die US, 5,797,023 A offenbart eine Vorrichtung zur für eine fehlertolerante Inbetriebnahme eines Computersystems unter Verwendung eines BIOS-Speichers, der ein primäres Konfigurationsprogramm für das Computersystem enthält, und eines getrennten Speichers, der einen Teil des primären Konfigurationsprogramms enthält. Auf den Teil des Konfigurationsprogramms wird in Reaktion auf einen Prüfsummendetektor der Daten des BIOS-Speichers ohne menschlichen Eingriff zugegriffen.
  • In der WO 0 079 390 A1 werden Verfahren zur Aktualisierung von Boot-Software in einem Mikroprozessor offenbart.
  • Es ist die Aufgabe der vorliegenden Erfindung ein einfach werkseitig programmierbares, sicheres und anwenderfreundliches Doppel-BIOS-System sowie ein entsprechendes Verfahren bereitzustellen.
  • Diese Aufgabe wird gelöst mit einem Verfahren mit den Merkmalen gemäß Anspruch 1 sowie mit einer Vorrichtung mit den Merkmalen gemäß Anspruch 6.
  • Vorteilhafte Ausführungsformen sind in den Unteransprüchen angegeben.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt ein Blockschaltbild eines Doppel-BIOS-Systems.
  • 2A, 2B, 2C zeigen ein Flußdiagramm einer Verfahrensausführungsform.
  • 3A, 3B, 3C zeigen ein ausführlicheres Flußdiagramm einer Verfahrensausführungsform.
  • 4 zeigt ein Blockschaltbild eines Doppel-BIOS-Systems mit einem Modul zum Programmieren des BIOS-Inhalts.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Verschiedene Ausführungsformen ermöglichen ein automatisches Freigeben eines Reserve-BIOS-Bildes immer dann, wenn das primäre BIOS-Bild fehlerhaft ist, ohne jegliches Eingreifen durch einen Bediener. Es kann auch ermöglichen, beide BIOS-Bilder in einer physischen Einrichtung zu speichern, wodurch Board-Fläche und Kosten vermindert werden. Im Betrieb kann die Ausführung in dem Reserve-BIOS beginnen, wodurch das primäre BIOS validiert werden kann. Wenn das primäre BIOS die Validierungsprüfung besteht, kann die Steuerung dann an das primäre BIOS abgegeben werden, um die Bootsequenz durchzuführen. Wenn das primäre BIOS die Validierungsprüfung nicht besteht, wodurch angezeigt wird, daß es verfälscht wurde, kann das Reserve-BIOS einen Warnanzeiger erzeugen und die Bootsequenz durchführen. Wenn das primäre BIOS die Validierungsprüfung besteht, aber die Bootsequenz nicht korrekt abschließt, wodurch angezeigt wird, daß es auf eine Art und Weise fehlerhaft ist, die der Validierungsprüfung entgangen ist, kann das System mit dem Reserve-BIOS gebootet werden. Die Bootsequenz für das primäre und das Reserve-BIOS-Bild muß nicht identisch sein.
  • 1 zeigt Funktionskomponenten einer Ausführungsform eines Doppel-BIOS-Systems 10. Mit dem Speicherbaustein 112 kann der Code sowohl für das Reserve-BIOS 113 als auch das primäre BIOS 114 gehalten werden. Bei einer Ausführungsform kann der Speicherbaustein 112 ein programmierbarer Nurlesespeicher (PROM), wie z. B. ein Flash-Speicherbaustein, sein. Bei einer Ausführungsform kann der Speicherbaustein 112 eine einzige integrierte Schaltung sein. Mit der Steuerlogik 111 kann der Betrieb des Speicherbausteins 112 gesteuert werden, um die Merkmale des Doppel-BIOS-Systems 10 freizugeben. Im Betrieb können die Adressleitungen ADR eines Buses zum Lesen des Inhalts des Speicherbausteins 112 über Datenleitungen DATA verwendet werden, um Anweisungen zur Initialisierung des Systems abzurufen. Bei einer Ausführungsform enthalten die Adressleitungen ADR alle 32 Bit eines 32-Bit-Adressbuses. Um ein leichtes Umwechseln zwischen dem Reserve-BIOS 113 und dem primären BIOS 114 zu ermöglichen, können die niedrigstwertigen Adressbit (LSAB) direkt zu dem Speicherbaustein 112 geroutet werden, während die höchstwertigen Adressbit (MSAB) zu der Steuerlogik 111 geroutet werden können. Die Steuerlogik 111 kann dann ausgewählte der höchstwertigen Bit (SELECTION MSB) ausgeben, um entweder das Reserve-BIOS 113 oder das primäre BIOS 114 auszuwählen. Die Anzahl von Bit in LSAB kann so ausgelegt werden, daß die maximale Größe jedes BIOS berücksichtigt wird. Bei einer Ausführungsform besteht LSAB aus 16 Adressleitungen, um eine direkte Adressierung eines BIOS-Adressraums von 64k zu ermöglichen. In einer 32-Bit-Adressenumgebung können dadurch 16 Bit für MSAB übrigbleiben. Die Anzahl von Bit in SELECTION MSB kann jedoch auf nur diejenigen reduziert werden, die ihren Zustand während BIOS-Operationen ändern werden, während die übrigen Adressbiteingaben hoher Ordnung für den Speicherbaustein 112 ignoriert werden kann. Die Anzahl von für SELECTION MSB erforderlichen Bit hängt von den spezifischen Adressenbereichen ab, die für das Reserve-BIOS 113 und das primäre BIOS 114 gewählt werden. Bei einer Ausführungsform enthält SELECTION MSB nur ein Bit, um ein Umwechseln zwischen den beiden Adressenbereichen zu ermöglichen.
  • Die Steuerlogik 111 kann außerdem mehrere Steuereingaben aus dem Bus aufweisen. Bei einer Ausführungsform können dazu Write Enable, Chip Select zu der BIOS-Einrichtung und CPU-INIT gehören. Die Steuerlogik 111 kann dann mehrere Steuersignale an den Speicherbaustein 112 ausgeben. Bei einer Ausführungsform können dazu Write Enable (WE) und Chip Select (CS) gehören. Diese beiden aus der Steuerlogik 111 ausgegebenen Signale folgen jedoch möglicherweise nicht den äquivalenten Signalen, die in die Steuerlogik 111 eingegeben werden, weil die Steuerlogik 111 diese möglicherweise manipuliert, um die automatische Doppel-BIOS-Funktion zu steuern.
  • Das Reserve-BIOS 113 kann sich in einem Adressraum des Speicherbausteins 112 befinden, der durch die Steuerlogik 111 als Nurlese decodiert wird, während sich das primäre BIOS 114 in einem Adressraum des Speicherbausteins 112 befinden kann, der von der Steuerlogik 111 als Lesen/Schreiben decodiert wird. Der Nurlesezustand kann durchgesetzt werden, indem das Reserve-BIOS schreibgeschützt wird. Man erreicht dies z. B. durch Zurücksetzen der Leitung Write Enable zu dem Speicherbaustein 112 immer dann, wenn ein beliebiger Teil des Reserve-BIOS 113 adressiert wird, so daß die Möglichkeit einer Verfälschung des Reserve-BIOS 113 mit einer Schreiboperation verhindert wird. Bei dieser Ausführungsform kann das primäre BIOS 114 durch Umprogrammieren revidiert werden, aber das Reserve-BIOS 113 kann unverändert bleiben, so daß jedes beliebige erkannte Problem mit dem primären BIOS 114 vermieden werden kann, indem das System mit dem älteren, bewährten Reserve-BIOS 113 gebootet wird. Mit dem Validierer 115 kann das primäre BIOS 114 validiert werden, um zu bestimmen, ob das primäre BIOS 114 verfälscht wurde; d. h. ob Teile von ihm nicht korrekt programmiert wurden. Bei einer Ausführungsform enthält der Validierer 115 Code, der sich in dem Reserve-BIOS 113 befindet, um einen Prüfsummenprozeß an dem primären BIOS 114 durchzuführen. Die Steuerlogik 111 kann die Leitung Chip Select zu dem Speicherbaustein 112 immer dann setzen, wenn auf den Speicherbaustein 112 zugegriffen wird, gleichgültig, welches BIOS adressiert wird.
  • 2A–C zeigen ein Flußdiagramm einer Verfahrensausführungsform 20. Der BIOS-Eintrittspunkt ist im Block 221 gezeigt. Der Eintritt in diesen Punkt kann z. B. als Ergebnis einer Systemrücksetzung, eines CPU-Initialisierungssignals oder eines Sprungs zum Bootvektor erfolgen. Bei einer Ausführungsform befindet sich der BIOS-Eintrittspunkt an der obersten Position des adressierbaren Speicherraums. Block 222 bestimmt, ob das Reserve-BIOS oder das primäre BIOS ausgeführt wird. Bei einer Ausführungsform kann dies bestimmt werden, indem ein Bit untersucht wird, das gesetzt wird, um zu steuern, welches BIOS ausgeführt werden soll. Bei einer anderen Ausführungsform kann dies bestimmt werden, indem ein oder mehrere Adressbit hoher Ordnung untersucht werden. Wenn das Reserve-BIOS abläuft, kann das Reserve-BIOS im Block 224 das primäre BIOS validieren, um zu bestimmen, ob das primäre BIOS verfälscht ist, und kann außerdem einen Neuversuchszähler prüfen, der die Anzahl erfolgloser Versuche des primären BIOS, ausgeführt zu werden, verfolgt. Eine Verfälschung des primären BIOS kann auf verschiedene Ursachen zurückzuführen sein, wie z. B. Fehler beim Schreiben des Codes in den Teil des Speicherbausteins, der den Code des primären BIOS enthält. Eine andere Ursache kann ein Ausfall mindestens einer Speicherzelle in dem Teil des Speicherbausteins, der den Code des primären BIOS enthält, sein. Bei einer Ausführungsform kann die Validierung durch Ausführen einer Prüfsumme an dem Code mindestens eines Teils des primären BIOS durchgeführt werden. Bei einer anderen Ausführungsform kann das Reserve-BIOS eine ausführlichere Validierungsprüfung an dem primären BIOS ausführen. Wenn sich das primäre BIOS als verfälscht erweist oder wenn der Neuversuchszähler einen hier als 'X' bezeichneten vorbestimmten Wert erreicht, kann das Reserve-BIOS im Block 225 einen Fehleranzeiger, wie z. B. ein 'Invalid'-Flag setzen, um anzuzeigen, daß das primäre BIOS nicht verläßlich ist und daß das Reserve-BIOS zum Booten des Systems verwendet werden wird. Mit Block 226 können Einstellungen vorgenommen werden, um den Umstand zu berücksichtigen, daß die Bilder des primären und des Reserve-BIOS verschieden sein können. Wenn das primäre BIOS zuvor revidiert wurde, kann es andere Parameter verändert haben, wodurch es mit dem unveränderten Reserve-BIOS inkompatibel wird. Wenn das primäre BIOS z. B. andere CMOS-Einstellungen als das Reserve-BIOS erfordert, müssen diese Einstellungen möglicherweise im Block 226 modifiziert werden, damit sie mit dem Reserve-BIOS kompatibel sind. Nach diesen Einstellungen (falls sie notwendig sind) kann die Bootsequenz im Block 223 in dem Reserve-BIOS fortgesetzt werden und sich zu dem Punkt 'A', der in 2B fortgesetzt wird, bewegen.
  • Wieder mit Bezug auf Block 224 kann, wenn sich das primäre BIOS als gültig erweist und der Neuversuchszähler noch nicht den vorbestimmten Wert erreicht hat, im Block 227 ein Watchdog-Timer gestartet werden, mit dem später ein Fehler in dem BIOS erkannt werden kann, der nicht durch die Validierungsprüfung erkannt wurde. Außerdem kann der Neuversuchszähler, der im Block 224 geprüft wurde, erhöht werden. Im Block 228 kann ein Anzeiger 'Primary BIOS' gesetzt werden, um die Steuerung auf das primäre BIOS umzuschalten. Bei einer Ausführungsform kann dies darin bestehen, ein Hardwarebit zu setzen. Im Block 229 kann ein CPU-Initialisierunssignal erzeugt werden, um eine Ausführung zurück zu dem BIOS-Eintrittspunt im Block 221 zu erzwingen. Bei einer Ausführungsform kann dieses Initialisierungssignal unter der Steuerung des BIOS-Codes erzeugt werden. Bei einr anderen Ausführungsform kann es in Hardware als Ergebnis des Setzens des Select-Bit im Block 228 erzeugt werden. Nachdem sich die Ausführung zu dem BIOS-Eintrittspunkt bewegt hat, kann der Block 222 nochmals bestimmen, ob das primäre oder das Reserve-BIOS ausgeführt wird. Da im Block 228 der Anzeiger 'primary BIOS' gesetzt wurde, wird nun das primäre BIOS ausgeführt und die Bootsequenz kann im Block 223 fortgesetzt werden. Von dort aus kann die Ausführung am Punkt 'A' in 2B fortgesetzt werden.
  • Im Block 230 von 2B wird die gewählte Bootsequenz ausgeführt. Wenn die Bootsequenz ordnungsgemäß ausgeführt wird, ist sie abgeschlossen, bevor der Watchdog-Timer die Zeitgrenze erreicht, und sie löscht den Neuversuchszähler und sperrt den Watchdog-Timer im Block 231, bevor sie die Steuerung im Block 232 an das Betriebssystem abgibt. Wenn erwartet wird, daß die Bootsequenz länger als die längste Periode dauern wird, auf die der Watchdog-Timer eingestellt werden kann, kann die Bootsequenz so programmiert werden, daß sie den Watchdog-Timer periodisch neu startet. Andernfalls kann der Watchdog-Timer auf einen einzigen Wert gesetzt werden, der Zeit schafft, damit die Bootsequenz bis zum Abschluß ablaufen kann. 2C zeigt die Sequenz, die auftritt, wenn der Watchdog-Timer die Zeitgrenze erreicht (siehe Block 240). Eine Zeitüberschreitung des Watchdog-Timers kann anzeigen, daß die Ausführung des BIOS nicht planmäßig verläuft und daß etwas mit dieser Ausführung nicht stimmt. Damit kann man bestimmte Fehler in dem BIOS erkennen, die einer Erkennung bei der Validierungsprüfung entgangen sind. Eine Zeitüberschreitung kann das Reserve-BIOS im Block 241 neu wählen und die Steuerung vom Block 241 in 2C zum Block 221 in 2A an den BIOS-Eintrittspunkt zurückgeben. Dadurch kann die zuvor beschriebene Validierungs- und Zeitüberschreitungsequenz neu gestartet werden. Wenn der Watchdog-Timer die Zeitgrenze überschreitet, wodurch ein Ausführungsausfall des primären BIOS angezeigt wird, kann das primäre BIOS eine vorbestimmte Anzahl von Malen neu versucht werden, indem der Neuversuchszähler verwendet wird, der im Block 224 geprüft und im Block 227 erhöht wird. Wenn die ausgewiesene Anzahl von Neuversuchen auftritt, erreicht der Neuversuchszähler einen Wert von 'X', wodurch die Ausführung des Reserve-BIOS in den Blöcken 225226, 223 und 230232 verursacht wird. Der Neuversuchszähler kann initialisiert werden (nicht gezeigt), bevor die erste Bootsequenz mit dem primären BIOS versucht wird.
  • 3A–C zeigen ein Flußdiagramm 30 einer Ausführungsform, die den BIOS-Code zwischen hohem und niedrigem Speicher verteilt. Viele Prozessoren sind so ausgelegt, daß sie, immer dann, wenn das System zurückgesetzt wird, automatisch zu einer Speicherstelle an der obersten Position des adressierbaren Speicherraums springen. Bei der in 3A gezeigten Ausführungsform erfolgt die Bestimmung, welches BIOS-Bild ausgeführt werden soll, in den Blöcken 331339, während man sich immer noch im oberen Speicher befindet, der größte Teil des primären und sekundären BIOS-Codes befindet sich jedoch in dem unteren eins Megabyte des adressierbaren Speicherraums und die Ausführung der Bootsequenz wird in den Blöcken 340342 durchgeführt. Bei der dargestellten Ausführungsform können die primäre und die Reserve-Bootsequenz in dem unteren Speicher als in den unteren 1 Megabyte des adressierbaren Speicherraums befindlich betrachtet werden, während der Validierungs- und der BIOS-Auswahlcode als in dem hohen Speicher am oberen Ende des adressierbaren Speicherraums befindlich betrachtet werden können.
  • Block 331 stellt eine Aktion dar, die den Eintritt in den BIOS-Code auslöst. Bei einer Ausführungsform kann dies ein Systemneustart, ein Rücksetzen oder ein CPU-Initialisierungssignal sein. Die genaue Adresse des Eintrittspunkts kann durch den Entwurf des Prozessors bestimmt werden, ungeachtet des BIOS-Codes, der implementiert wird. Im Block 332 kann die Ausführung von dieser vorbestimmten Adresse zu dem BIOS-Bild in der Nähe der obersten Position des 32-Bit-Adressraums springen. Bei einer Ausführungsform wird der Inhalt des BIOS aus dem programmierbaren Nurlesespeicher (PROM) in den Hauptspeicher kopiert und die Ausführung wird dann im Hauptspeicher fortgesetzt. Dadurch kann die Ausführung beschleunigt werden, wenn der PROM-Speicher, der das BIOS-Bild enthält, eine langsamere Zugriffsgeschwindigkeit als der Hauptspeicher aufweist. Dieser Teil des Hauptspeichers kann als Spiegelspeicher bezeichnet werden, da sein Inhalt nun den des PROM, der das BIOS-Bild enthält, wiederspiegelt. Block 333 kann ein Entscheidungspunkt sein, um zu bestimmen, ob sich das BIOS-Bild in dem unteren eins Megabyte des Adressraums in dem Spiegelspeicher befindet. Wenn dies der Fall ist, kann die Ausführung im Block 339 zu dem BIOS-Eintrittspunkt in diesem Spiegelspeicher in den unteren 1 Megabyte springen. Wenn das BIOS-Bild nicht im Spiegelspeicher in dem unteren eins Megabyte vorliegt, kann der Code den „Big-Real-Modus" freigeben, um einen Zugriff auf ein BIOS-Bild im oberen Adressbereich zu erlauben. Der Big-Real-Modus ist ein wohlbekannter Betriebsmodus, der ein Hybrid zwischen dem Real-Modus und dem Protected-Modus ist. Der Real-Modus, der aus den Zeiten stammt, als der Computeradressraum stärker begrenzt war, gestattet nur ein Megabyte Adressraum, während der Protected-Modus durch eine 32-Bit-Adresse möglichen Zugriff auf die vollen 4 Gigabyte Adressraum gestattet. Der Big-Real-Modus weist einen Teil der Einfachheit des Real-Modus auf, ermöglicht aber dennoch einen Zugriff auf die 4 Gigabyte Adressbereich. Bei der Ausführungsform von 3A wird im Block 334 der Big-Real-Modus freigegeben. Das primäre BIOS-Bild wird dann validiert. Bei einer Ausführungsform besteht die Validierung aus der Durchführung einer Prüfsumme an dem Code und einem Vergleich dieser mit einer vorbestimmten Prüfsumme für diesen Code. Außerdem kann im Block 335 der Neuversuchszähler geprüft werden, um zu sehen ob er einen als 'X' gezeigten vorbestimmten Wert erreicht hat. Wenn im Block 335 der primäre BIOS-Code validiert wird, wodurch angezeigt wird, daß der Code die Validierungsprüfung bestanden hat, und der Neuversuchszähler nicht den vorbestimmten Wert erreicht hat, kann Block 336 den Rücksetztzähler erhöhen und den Watchdog-Timer starten und dann die Hardware für das Decodieren des primären BIOS in dem Bereich des unteren eins Megabyte vorbereiten. Block 339 springt dann zu dem BIOS-Eintrittspunkt in diesem unteren Bereich. Bei einer Ausführungsform umfaßt das Vorbereiten der Hardware für das Decodieren des primären BIOS das Setzen von Bit in der Steuerlogik 111 zum Auswählen des primären BIOS 114 in dem Speicherbaustein 112 (siehe 1). Wenn der primäre BIOS-Code im Block 335 nicht validiert wird, d. h. er die Validierungsprüfung nicht besteht, wodurch angezeigt wird, daß der Code verfälscht wurde, oder wenn der Neuversuchszähler anzeigt, daß das primäre BIOS eine spezifizierte Anzahl von Malen neu versucht wurde, kann Block 337 ein 'Invalid'-Flag setzen, um den Benutzer zu warnen, daß das primäre BIOS-Bild ungültig ist und daß das Reservebild verwendet wird. Bei einer Ausführungsform kann diese Warnung die Form einer Nachricht an den Benutzer annehmen. Block 338 kann dann die Hardware für das Decodieren des Reserve-BIOS in dem Bereich des unteren eins Megabyte vorbereiten, und Block 339 springt dann zu dem BIOS-Eintrittspunkt in diesem unteren Bereich. Bei einer Ausführungsform umfaßt das Vorbereiten der Hardware für das Decodieren des Reserve-BIOS das Setzen von Bit in der Steuerlogik 111 für eine Auswahl des Reserve-BIOS 112 in dem Speicherbaustein 112 (1).
  • Nach dem Springen zu dem unteren Speicher in Block 339 kann Block 340 bestimmen, ob das 'Invalid'-Flag gesetzt wurde. Wenn nicht, kann die gewählte Bootsequenz dann im Block 342 fortgesetzt werden. Wenn es gesetzt wurde, kann Block 341 etwaige notwendige Einstellungen durchführen, um die Unterschiede zwischen dem primären BIOS und dem Reserve-BIOS zu berücksichtigen, wie z. B. durch Löschen und Neuschreiben der CMOS-Einstellungen. Bei einer Ausführungsform können alle das BIOS betreffende Einstellungen anfänglich für das primäre BIOS eingestellt werden und müssen nur dann verändert werden, wenn ein defektes primäres BIOS-Bild einen Wechsel zu dem Reserve-BIOS verursacht.
  • Nachdem die gewählte Bootsequenz im Block 342 gestartet wurde, kann sie durch den Punkt 'B' zum Block 343 in 3B fortgesetzt werden. Falls die Bootsequenz ordnungsgemäß ausgeführt wird, ist sie abgeschlossen, bevor der Watchdog-Timer die Zeitgrenze erreicht, und sie löscht den Neuversuchszähler und sperrt den Watchdog-timer im Block 344, bevor sie die Steuerung im Block 345 an das Betriebssystem abgibt. Wenn erwartet wird, daß die Bootsequenz länger als die längste Periode, auf die der Watchdog-Timer eingestellt werden kann, dauert, kann die Bootsequenz so programmiert werden, daß sie den Watchdog-Timer periodisch neu startet. Andernfalls kann der Watchdog-Timer auf einen einzigen Wert gesetzt werden, der Zeit schafft, damit die Bootsequenz bis zum Abschluß ablaufen kann. 3C zeigt die Sequenz, die auftritt, wenn der Watchdog-Timer die Zeitgrenze erreicht (siehe Block 350). Eine Zeitüberschreitung des Watchdog-Timers kann anzeigen, daß die Ausführung des BIOS nicht wie geplant abläuft und daß etwas mit dieser Ausführung nicht stimmt. Damit können bestimmte Fehler in dem BIOS erkannt werden, die der Erkennung bei der Validierungsprüfung entgangen sind. Eine Zeitüberschreitung kann das Reserve-BIOS im Block 351 neu auswählen und die Steuerung von dem Block 352 in 3C zu dem Block 331 in 3A an den BIOS-Eintrittspunkt zurückgeben. Dadurch kann die Validierungs- und Zeitüberschreitungssequenz, die zuvor beschrieben wurde neu gestartet werden. Wenn der Watchdog-Timer die Zeitgrenze überschreitet, wodurch ein Ausführungsausfall des primären BIOS angezeigt wird, kann das primäre BIOS eine vorbestimmte Anzahl von Malen neu versucht werden, indem der Neuversuchszähler verwendet wird, der im Block 335 geprüft und im Block 336 erhöht wird. Wenn die ausgewiesene Anzahl von Neuversuchen auftritt, erreicht der Neuversuchszähler einen Wert von 'X', der eine Ausführung des Reserve-BIOS in den Blöcken 339345 verursacht. Der Neuversuchszähler kann initialisiert werden (nicht gezeigt), bevor die erste Bootsequenz mit dem primären BIOS versucht wird.
  • 4 zeigt ein System 40, das dem System 10 in 1 sehr ähnlich sein kann, aber zusätzlich ein Modul zum Programmieren des primären und/oder des sekundären BIOS-Bildes enthält. Die Programmiereinrichtung 441 kann zum Programmieren des Inhalts des Reserve-BIOS 113 und auch zum Programmieren des Inhalts des primären BIOS 114 verwendet werden. Bei einer Ausführungsform kann die Programmiereinrichtung 441 einen vorprogrammierten Nurlesespeicherchip (ROM-Chip) auf einem Modul mit einem Verbinder enthalten. Die Schnittstelle 442 kann ein Verbinder auf derselben Leiterplatte sein, die den Speicherbaustein 112 enthält, der es der Einrichtung 441 gestattet, mechanisch und elektrisch an das System angeschlossen oder von diesem entfernt zu werden. Bei einer Ausführungsform erhält die gesamte Einrichtung 441 ihre elektrische Stromversorgung, Eingangssignale und mechanische Halterung durch die Schnittstelle 442 und/oder die Leiterplatte, so daß keine externe Verbindungen zur Programmierung des Speicherbausteins 112 notwendig sind.
  • Wenn ein System anfänglich konstruiert wird, kann der Speicherbaustein 112 leer, d. h. nicht mit einem BIOS programmiert sein. Da ein BIOS-Programm oder sein Äquivalent notwendig sein kann, um das Computersystem zu booten, kann das Einführen der Einrichtung 441 in die Schnittstelle 442 das Äquivalent eines BIOS-Programms bereitstellen und außerdem dem Speicherbaustein 112 gestatten, für zukünftige Boot-Operationen mit einem BIOS programmiert zu werden. Nachdem der Speicherbaustein 112 programmiert wurde, kann die Einrichtung 441 entfernt werden. Die Schnittstelle 442 kann Datenleitungen (DATA) und Adressleitungen (ADR) zu der Einrichtung 441 von einem Systembus bereitstellen, so daß der Inhalt des ROM über einen Standardbus durch den Systemprozessor gelesen werden kann. Der Verbinder 442 kann außerdem Handshaking-Signale auf den Leitungen PROG bereitstellen, um es der Steuerlogik 111 zu ermöglichen, zu der Einrichtung 441 umzuschalten. Bei einer Ausführungsform kann die Schnittstelle 442 eine Modul-Präsenzerkennungsleitung zu der Steuerlogik 111 sein, um der Steuerlogik 111 eine Anzeige zu geben, wann die Einrichtung 441 in die Schnittstelle 442 eingesteckt ist. Nach dem Empfang dieser Anzeige, daß der ROM eingesteckt ist, kann die Steuerlogik 111 den Zugriff auf den Speicherbaustein 112 blockieren, indem sie das Signal Chip Enable zu dem Speicherbaustein 112 zurücksetzt, und kann einen Zugriff auf die Einrichtung 441 bereitstellen, indem das Signal Chip Enable zu der Einrichtung 441 gesetzt wird. Wenn ein Rücksetzen, ein Systemneustart oder ein CPU-Initialisierungssignal bewirkt, daß die Ausführung wie zuvor beschrieben zu hohem Speicher springt, kann diese Aktion dem ROM ermöglichen, als Reaktion Anweisungen an den Systemprozessor zu liefern. Der ROM kann das Äquivalent des anfänglichen BIOS-Codes enthalten, der es dem Systemprozessor gestattet, Kontrolle über grundlegende Systembetriebsmittel zu erhalten. Der ROM kann außerdem Code enthalten, der es der Steuerlogik 111 gestattet, den Zugriff auf den Speicherbaustein 112 wieder zuzulassen. Mit dieser Möglichkeit kann ein BIOS-Programm aus dem ROM in den Speicherbaustein 112 kopiert werden. Der ROM kann außerdem Code zum Validieren des Inhalts des Speicherbausteins 112 durch Verifizieren, daß das BIOS korrekt kopiert wurde, enthalten.
  • Entweder für anfängliches BIOS-Programmieren oder zur Revision des Reserve-BIOS 113 kann das Einführen der Einrichtung 441 ein Programmieren des Reserve-BIOS 113 in den Speicherbaustein 112 gestatten. Bei einer Ausführungsform kann auch das primäre BIOS 114 aus der Einrichtung 441 programmiert werden. Bei einer anderen Ausführungsform kann, sobald das Reserve-BIOS 113 programmiert wurde, das primäre BIOS 114 durch das System während des Systembetriebs in den Speicherbaustein 112 heruntergeladen werden. Bei beiden Ausführungsformen kann das primäre BIOS 114 durch Herunterladen des revidierten primären BIOS in den Speicherbaustein 112 durch das System während des Systembetriebs revidiert werden. Durch diese Merkmale kann das primäre BIOS 114 während der Systemoperationen aufgerüstet werden, ohne daß spezielle Geräte oder technische Hilfe notwendig sind, und sie können auch eine Aufrüstung des primären BIOS 114 ohne Anwesenheit eines Bedieners durch Verwendung eines Fernherunterladens ermöglichen. Gleichzeitig kann das Reserve-BIOS 113 vor unbeabsichtigter Verfälschung geschützt werden, indem gefordert wird, daß die Einrichtung 441 eingeführt wird, bevor das Reserve-BIOS 113 umprogrammiert werden kann.
  • Die Erfindung kann in Schaltkreisen oder als ein Verfahren implementiert werden. Die Erfindung kann auch als Anweisungen auf einem maschinenlesbaren Medium implementiert werden, das durch mindestens einen Prozessor gelesen und ausgeführt werden kann, um die hier beschriebenen Funktionen durchzuführen. Ein maschinenlesbares Medium umfaßt jeglichen Mechanismus zum Speichern oder Übertragen von Informationen in einer Form, die durch eine Maschine (z. B. einen Computer) lesbar ist. Maschinenlesbare Medien sind z. B. Nurlesespeicher (ROM); Direktzugangsspeicher (RAM); Magnetplattenspeichermedien; optische Speichermedien; Flash-Speicherbausteine; elektrische, optische, akustische oder andere Arten propagierter Signale (z. B. Trägerwellen, Infrarotsignale, Digitalsignale usw.) und andere.

Claims (10)

  1. Verfahren zum Programmieren eines BIOS, gekennzeichnet durch die folgenden Schritte: Anschließen eines Programmiermoduls (441) mit einem Nurlesespeicher an einer Leiterplatte, die einen Speicherbaustein (112) enthält; Booten eines Computersystems durch Lesen von Inhalt aus dem Programmiermodul (441); Kopieren eines Reserve-BIOS-Programms (113) vom Programmiermodul (441) in den Speicherbaustein (112); Kopieren eines primären BIOS (113) in den Speicherbaustein (112); Entfernen des Programmiermoduls (441) von der Leiterplatte; und anschließendes Booten des Computersystems von dem Speicherbaustein (112); Validieren des primären BIOS (113), wobei die höchstwertigen Adreßbits zur Steuerlogik (111) geroutet werden, zum automatischen Auswählen einer ersten Boot-Sequenz im primären BIOS (113) zur Ausführung, wenn das primäre BIOS (113) Validiert wird, und zum automatischen Auswählen einer zweiten Boot-Sequenz in dem Reserve-BIOS (114) zur Ausführung, wenn das primäre BIOS (113) nicht validiert wird, wobei das Reserve-BIOS (113) vor unbeabsichtiger Verfälschung geschützt ist, indem erforderlich ist, dass das Programmiermodul an der Leiterplatte angeschlossen wird und wenn das primäre BIOS andere CMOS-Einstellungen als das Reserve-BIOS erfordert, Modifizieren der Einstellungen, so dass sie mit dem Reserve-BIOS kompatibel sind.
  2. Verfahren nach Anspruch 1, wobei das Anschließen des Programmiermoduls (441) das Empfangen aller notwendigen elektrischen Stromversorgung für das Programmiermodul (441) aus der Leiterplatte umfaßt.
  3. Verfahren nach Anspruch 1, wobei das Anschließen des Programmiermoduls (441) das Empfangen aller notwendigen mechanischen Halterung für das Programmiermodul (441) aus der Leiterplatte umfaßt.
  4. Verfahren nach Anspruch 1, das des weiteren ein Umprogrammieren des Reserve-BIOS-Programms (114) vom Programmiermodul (441) umfaßt.
  5. Verfahren nach Anspruch 1, wobei das Validieren des primären BIOS (113) das Vergleichen des primären BIOS (113) mit dem Reserve-BIOS (114) umfaßt.
  6. Vorrichtung zum Programmieren eines BIOS, umfassend: einen Speicherbaustein (112), der ein primäres BIOS (114) und ein Reserve-BIOS (113) enthält; einen Validierer (115) zum Validieren mindestens eines Teils des primären BIOS (114); und an den Speicherbaustein (112) angekoppelte Steuerlogik (111), wobei die höchstwertigen Adreßbits zur Steuerlogik (111) geroutet werden zum automatischen Auswählen einer ersten Bootsequenz in dem primären BIOS (113) zur Ausführung, wenn das primäre BIOS validiert wird, und zum automatischen Auswählen einer zweiten Bootsequenz in dem Reserve-BIOS (114) zur Ausführung, wenn das primäre BIOS (113) nicht validiert wird; ein Programmiermodul (441) mit einem Nurlesespeicher, in dem das Reserve-BIOS (114) und das primäre BIOS gespeichert sind, zum wahlweisen Verbinden mit einer Leiterplatte, die den Speicherbaustein umfasst, wobei das Reserve-BIOS (114) schreibgeschützt ist, außer bei einer Programmieroperation durch das Programmiermodul, wobei die Vorrichtung eine Einrichtung umfasst, die die CMOS-Einstellungen modifiziert, so dass sie mit dem Reserve-BIOS kompatibel sind, wenn das primäre BIOS andere CMOS-Einstellungen erfordert als das Reserve-BIOS.
  7. Vorrichtung nach Anspruch 6, wobei der Validierer (115) Code in dem Reserve-BIOS (114) zur Durchführung eines Validierungsprozesses an der ersten Bootsequenz enthält.
  8. Vorrichtung nach Anspruch 6, wobei der Speicherbaustein (112) sowohl das primäre BIOS (113) als auch das Reserve-BIOS (114) auf einer einzigen integrierten Schaltung umfaßt.
  9. Vorrichtung nach Anspruch 6, wobei die Programmiereinrichtung (441) so verbunden ist, daß sie ihre gesamte elektrische Stromversorgung aus der Leiterplatte erhält.
  10. Vorrichtung nach Anspruch 6, wobei die Programmiereinrichtung (441) so verbunden ist, daß sie ihre gesamte mechanische Halterung von der Leiterplatte erhält.
DE10296986T 2001-06-29 2002-06-21 Verfahren und Vorrichtung zum Programmieren eines BIOS Expired - Fee Related DE10296986B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/895,981 2001-06-29
US09/895,981 US6651188B2 (en) 2001-06-29 2001-06-29 Automatic replacement of corrupted BIOS image
PCT/US2002/020019 WO2003003212A2 (en) 2001-06-29 2002-06-21 Automatic replacement of corrupted bios image

Publications (2)

Publication Number Publication Date
DE10296986T5 DE10296986T5 (de) 2004-11-25
DE10296986B4 true DE10296986B4 (de) 2009-01-08

Family

ID=25405408

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10296986T Expired - Fee Related DE10296986B4 (de) 2001-06-29 2002-06-21 Verfahren und Vorrichtung zum Programmieren eines BIOS

Country Status (7)

Country Link
US (1) US6651188B2 (de)
CN (1) CN100432948C (de)
DE (1) DE10296986B4 (de)
GB (1) GB2392529B (de)
HK (1) HK1059324A1 (de)
TW (1) TWI233057B (de)
WO (1) WO2003003212A2 (de)

Families Citing this family (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6892323B2 (en) * 1999-05-05 2005-05-10 Giga-Byte Technology Co., Ltd. Dual basic input/output system for a computer
TW462025B (en) * 1999-06-23 2001-11-01 Micro Star Int Co Ltd BIOS virus protection method
US6728922B1 (en) * 2000-08-18 2004-04-27 Network Appliance, Inc. Dynamic data space
KR100464147B1 (ko) * 2000-10-30 2004-12-31 엘지전자 주식회사 로딩 서버를 사용한 교환기 시스템 로딩 에러 처리장치 및방법
TW480444B (en) * 2000-11-29 2002-03-21 Mitac Technology Corp Computer system boot-up method capable of completing the startup procedure even the system BIOS code is damaged
US6976136B2 (en) * 2001-05-07 2005-12-13 National Semiconductor Corporation Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller
US7069431B2 (en) * 2001-07-31 2006-06-27 Lenovo ( Singapore) Pte Ltd. Recovery of a BIOS image
JP4288893B2 (ja) * 2001-09-26 2009-07-01 ソニー株式会社 情報処理装置、プログラムロード方法、記録媒体、プログラム更新方法及び回路素子
TW535112B (en) * 2001-10-02 2003-06-01 Via Tech Inc Method for initializing computer system
TW548574B (en) * 2001-10-19 2003-08-21 Micro Star Int Co Ltd Display interface with dual basic input/output system and the computer having the same
US7434068B2 (en) * 2001-10-19 2008-10-07 Intel Corporation Content protection in non-volatile storage devices
JP4434539B2 (ja) * 2001-12-26 2010-03-17 富士通マイクロエレクトロニクス株式会社 プロセッサおよびそのブート方法
TWI251771B (en) * 2001-12-28 2006-03-21 Asustek Comp Inc Module and method for automatic restoring BIOS device, and the computer-readable recording media of storing the program codes thereof
US7313705B2 (en) * 2002-01-22 2007-12-25 Texas Instrument Incorporated Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory
US7562208B1 (en) * 2002-02-07 2009-07-14 Network Appliance, Inc. Method and system to quarantine system software and configuration
US6948057B2 (en) * 2002-02-08 2005-09-20 Via Technologies, Inc. Memory modules storing therein boot codes and method and device for locating same
US20030182561A1 (en) * 2002-03-25 2003-09-25 International Business Machines Corporation Tamper detection mechanism for a personal computer and a method of use thereof
US7318173B1 (en) * 2002-06-03 2008-01-08 National Semiconductor Corporation Embedded controller based BIOS boot ROM select
US7024550B2 (en) * 2002-06-28 2006-04-04 Hewlett-Packard Development Company, L.P. Method and apparatus for recovering from corrupted system firmware in a computer system
JP2004038529A (ja) * 2002-07-03 2004-02-05 Nec Corp 情報処理装置
US7849011B1 (en) * 2002-07-16 2010-12-07 Diebold Self-Service Systems Division Of Diebold, Incorporated Automated banking machine bootable media authentication
US7143275B2 (en) * 2002-08-01 2006-11-28 Hewlett-Packard Development Company, L.P. System firmware back-up using a BIOS-accessible pre-boot partition
US7069471B2 (en) * 2002-10-18 2006-06-27 Sun Microsystems, Inc. System PROM integrity checker
US7237102B2 (en) * 2002-10-30 2007-06-26 Intel Corporation Methods and apparatus for configuring hardware resources in a pre-boot environment without requiring a system reset
KR100532413B1 (ko) * 2002-12-02 2005-12-02 삼성전자주식회사 플래시 메모리 보호 장치 및 방법
US6944758B2 (en) * 2003-03-31 2005-09-13 Giga-Byte Technology Co., Ltd. Backup method for interface BIOS by making backup copy of interface BIOS in system BIOS and executing backup interface BIOS in system BIOS if error occurs
JP2004302997A (ja) * 2003-03-31 2004-10-28 Giga-Byte Technology Co Ltd 大記憶容量と複数のbiosバックアップコピーを備えるデバイス
EP1465038B1 (de) * 2003-04-03 2013-03-27 STMicroelectronics (Research & Development) Limited Speichersicherungsgerät für flexible Programmumgebung
TWI265409B (en) * 2003-04-16 2006-11-01 Winbond Electronics Corp Method and structure of using one basic input/output system (BIOS) memory to start up a computer system
CN1277211C (zh) * 2003-05-06 2006-09-27 联想(北京)有限公司 一种计算机操作***的修复方法
TW200428284A (en) * 2003-06-03 2004-12-16 Hon Hai Prec Ind Co Ltd System and method for bootstrap with backup boot-code in single flash ROM
TWI307015B (en) * 2003-06-03 2009-03-01 Hon Hai Prec Ind Co Ltd System and method for automatically bootstrap with double boot areas in a single flash rom
US20040268116A1 (en) * 2003-06-30 2004-12-30 Vasisht Virender K Fault tolerant recovery block with reduced flash footprint
CN100357891C (zh) * 2003-11-10 2007-12-26 华邦电子股份有限公司 利用一颗基本输出入***存储器启始的计算机***及方法
EP1538509A1 (de) * 2003-12-04 2005-06-08 Axalto S.A. Methode zum Absichern einer Programmausführung gegen Strahlungsangriffe
JP4534498B2 (ja) * 2004-01-28 2010-09-01 ソニー株式会社 半導体装置およびその起動処理方法
US20080276122A1 (en) * 2004-04-20 2008-11-06 Koninklijke Philips Electronics, N.V. Restoring the firmware and all programmable content of an optical drive
US20050273588A1 (en) * 2004-06-08 2005-12-08 Ong Soo K Bootstrap method and apparatus with plural interchangeable boot code images
TW200601150A (en) * 2004-06-28 2006-01-01 Wistron Corp Method and apparatus for switching among multiple initial execution addresses
US7409539B2 (en) * 2004-08-06 2008-08-05 International Business Machines Corporation System design and code update strategy to implement a self-healing, self-verifying system
US7340595B2 (en) * 2005-01-07 2008-03-04 International Business Machines Corporation Multiplex execution-path system
CN100375049C (zh) * 2005-03-28 2008-03-12 联想(北京)有限公司 一种基本输入输出***芯片的恢复方法
US7523350B2 (en) * 2005-04-01 2009-04-21 Dot Hill Systems Corporation Timer-based apparatus and method for fault-tolerant booting of a storage controller
US7711989B2 (en) * 2005-04-01 2010-05-04 Dot Hill Systems Corporation Storage system with automatic redundant code component failure detection, notification, and repair
US20060236084A1 (en) * 2005-04-15 2006-10-19 Dune-Ren Wu Method and system for providing an auxiliary bios code in an auxiliary bios memory utilizing time expiry control
US7716464B2 (en) * 2005-06-23 2010-05-11 Intel Corporation Method to have fault resilient booting
CN100386732C (zh) * 2005-07-05 2008-05-07 英业达股份有限公司 远程切换操控计算机平台备用***程序的方法及***
FR2888651B1 (fr) * 2005-07-13 2009-06-05 Neoware Systems Inc Procede pour la prise en compte automatique et le stockage persistant de parametres de personnalisation a priori volatils
TWI284813B (en) * 2005-10-21 2007-08-01 Inventec Corp Auto reset system, and method thereof
KR100698141B1 (ko) * 2005-10-26 2007-03-22 엘지전자 주식회사 무선 주파수 교정 데이터 복구 기능을 갖는 이동통신단말기 및 교정 데이터 백업 및 복원 방법
US7814368B2 (en) * 2006-03-22 2010-10-12 G2 Microsystems Pty. Ltd. Adjusting threshold for software error reset attempts to be commensurate with reserve power
US8495415B2 (en) * 2006-05-12 2013-07-23 International Business Machines Corporation Method and system for maintaining backup copies of firmware
US8055989B2 (en) * 2006-08-08 2011-11-08 Stmicroelectronics, Inc. Boot security using embedded counters
TWI327290B (en) 2006-10-03 2010-07-11 Magic Pixel Inc Electronic system with nand flash memory storing boot code and a highly reliable boot up method
US7676671B2 (en) * 2006-10-31 2010-03-09 Hewlett-Packard Development Company, L.P. System for multi-profile boot selection of an embedded device
US7971056B2 (en) * 2006-12-18 2011-06-28 Microsoft Corporation Direct memory access for compliance checking
US7900036B2 (en) * 2006-12-18 2011-03-01 International Business Machines Corporation System and method for implementing boot/recovery on a data processing sysem
US20080168299A1 (en) * 2007-01-08 2008-07-10 Jim Kateley Recovery Mechanism for Embedded Device
CN100451967C (zh) * 2007-02-14 2009-01-14 威盛电子股份有限公司 基本输入输出***文件切换方法及可支持其切换的控制器
JP2008225858A (ja) * 2007-03-13 2008-09-25 Nec Corp Biosストール障害時の復旧装置、その方法及びそのプログラム
TW200849096A (en) * 2007-06-12 2008-12-16 Realtek Semiconductor Corp Data recovering method
JP2009009227A (ja) * 2007-06-26 2009-01-15 Aruze Corp システム情報を自動複写する情報処理装置
US20090063834A1 (en) * 2007-09-05 2009-03-05 Inventec Corporation Auto-Switching Bios System and the Method Thereof
US7971051B2 (en) * 2007-09-27 2011-06-28 Fujitsu Limited FPGA configuration protection and control using hardware watchdog timer
TWI362588B (en) * 2007-10-12 2012-04-21 Asustek Comp Inc Monitor apparatus, a monitoring method thereof and computer apparatus therewith
JP2009157632A (ja) * 2007-12-26 2009-07-16 Toshiba Corp 情報処理装置
CN101488106A (zh) * 2008-01-18 2009-07-22 鸿富锦精密工业(深圳)有限公司 具有至少两个bios存储器的***
WO2009094021A1 (en) * 2008-01-23 2009-07-30 Hewlett-Packard Development Company, L.P. Bios graphical setup engine
TWI355608B (en) * 2008-01-30 2012-01-01 Inventec Corp Computer system with dual basic input output syste
US20090199014A1 (en) * 2008-02-04 2009-08-06 Honeywell International Inc. System and method for securing and executing a flash routine
US8392762B2 (en) * 2008-02-04 2013-03-05 Honeywell International Inc. System and method for detection and prevention of flash corruption
TWI360077B (en) * 2008-02-19 2012-03-11 Asustek Comp Inc Update method of basic input output system and upd
TWI411959B (zh) * 2008-03-21 2013-10-11 Asustek Comp Inc 具雙開機程式碼區之電腦系統及其啟動方法
TW200945192A (en) * 2008-04-28 2009-11-01 Asustek Comp Inc Motherboard and method for recovering BIOS thereof and for booting computer
US8495349B2 (en) * 2008-10-09 2013-07-23 International Business Machines Corporation Generating a primary BIOS code memory address and a recovery BIOS code memory address, where the recovery BIOS service code is loaded when the primary BIOS code fails to execute
TWI382346B (zh) * 2008-10-20 2013-01-11 Asustek Comp Inc 保護雙基本輸出入系統程式之電腦系統及其控制方法
CN101783790B (zh) * 2009-01-16 2012-10-10 深圳市维信联合科技有限公司 对终端设备进行认证的认证设备、终端认证***及方法
CN101782950B (zh) * 2009-01-16 2012-05-30 深圳市维信联合科技有限公司 主板与板载设备之间的通信控制***和方法
JP5460167B2 (ja) * 2009-07-31 2014-04-02 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及び制御プログラム
US8055948B2 (en) * 2009-09-14 2011-11-08 International Business Machines Corporation Resilient software-controlled redundant array of independent disks (RAID)
TW201118731A (en) * 2009-11-18 2011-06-01 Inventec Corp Method for upadating firmware of embedded system
JP5185918B2 (ja) * 2009-12-25 2013-04-17 東芝テック株式会社 電子機器及びプログラム
US8726087B2 (en) * 2011-03-18 2014-05-13 Denso International America, Inc. System and method for curing a read inability state in a memory device
TWI459294B (zh) * 2011-03-18 2014-11-01 Phoenix Tech Ltd Bios程式的更新方法與其電腦系統
US8826080B2 (en) 2011-07-29 2014-09-02 The Boeing Company Methods and systems for preboot data verification
KR101845512B1 (ko) * 2011-08-10 2018-04-04 삼성전자주식회사 메모리 시스템의 초기화 방법
US8832455B1 (en) * 2011-09-21 2014-09-09 Google Inc. Verified boot path retry
TW201314575A (zh) * 2011-09-26 2013-04-01 Pegatron Corp 開機方法及開機系統
CN104025047B (zh) * 2012-01-05 2017-06-06 三菱电机株式会社 信息处理装置、信息处理方法以及计算机程序
TWI474163B (zh) * 2012-12-17 2015-02-21 Hon Hai Prec Ind Co Ltd 基本輸入輸出系統的存取系統及方法
WO2014175867A1 (en) 2013-04-23 2014-10-30 Hewlett-Packard Development Company, L.P. Verifying controller code and system boot code
US9880908B2 (en) * 2013-04-23 2018-01-30 Hewlett-Packard Development Company, L.P. Recovering from compromised system boot code
EP2989547B1 (de) 2013-04-23 2018-03-14 Hewlett-Packard Development Company, L.P. Reparatur beschädigter systemdaten in einem nichtflüchtigen speicher
CN104182289A (zh) * 2013-05-27 2014-12-03 英业达科技有限公司 ***还原方法
US9542195B1 (en) * 2013-07-29 2017-01-10 Western Digital Technologies, Inc. Motherboards and methods for BIOS failover using a first BIOS chip and a second BIOS chip
CN104423890A (zh) * 2013-08-27 2015-03-18 鸿富锦精密电子(天津)有限公司 固态硬盘
TWI484337B (zh) 2014-01-06 2015-05-11 威盛電子股份有限公司 記憶體晶片與資料保護方法
TWI515557B (zh) * 2014-02-26 2016-01-01 緯創資通股份有限公司 電腦系統與控制方法
US9772856B2 (en) * 2014-07-10 2017-09-26 Lattice Semiconductor Corporation System-level dual-boot capability in systems having one or more devices without native dual-boot capability
TWI541724B (zh) 2014-07-22 2016-07-11 技嘉科技股份有限公司 寫入基本輸入輸出系統程式碼的電路與寫入方法
US10169052B2 (en) * 2014-07-22 2019-01-01 Hewlett-Packard Development Company, L.P. Authorizing a bios policy change for storage
US20160232057A1 (en) * 2015-02-11 2016-08-11 Sandisk Technologies Inc. Safe mode boot loader
US9983885B2 (en) 2015-05-06 2018-05-29 Elbit Systems Of America, Llc BIOS system with non-volatile data memory
US9904543B2 (en) 2015-10-26 2018-02-27 Hewlett-Packard Development Company, L.P. Setting a build indicator to enable or disable a feature
CN106776086A (zh) * 2015-11-23 2017-05-31 英业达科技有限公司 芯片初始化方法及其芯片初始化***
WO2017131680A1 (en) * 2016-01-27 2017-08-03 Hewlett-Packard Development Company, L.P. Operational verification
CN105843712B (zh) * 2016-03-31 2020-02-21 联想(北京)有限公司 一种数据传输方法及电子设备
US9946553B2 (en) * 2016-05-04 2018-04-17 America Megatrends, Inc. BMC firmware recovery
CN106095625A (zh) * 2016-07-13 2016-11-09 上海斐讯数据通信技术有限公司 无线接入设备启动方法及***
US10133637B2 (en) * 2016-08-04 2018-11-20 Dell Products L.P. Systems and methods for secure recovery of host system code
US10534618B2 (en) * 2016-09-27 2020-01-14 American Megatrends International, Llc Auto bootloader recovery in BMC
WO2018125031A1 (en) * 2016-12-27 2018-07-05 Intel Corporation Cross-component health monitoring and improved repair for self-healing platforms
US10986220B2 (en) * 2017-05-16 2021-04-20 II John Thomas Walker Device for radio communications and method for establishing and maintaining communications between device and fixed location radio communication facilities
US10620879B2 (en) 2017-05-17 2020-04-14 Macronix International Co., Ltd. Write-while-read access method for a memory device
CN108196858A (zh) * 2017-12-22 2018-06-22 天津麒麟信息技术有限公司 一种基于飞腾平台的双bios***及其实现方法
US10445088B2 (en) * 2018-01-11 2019-10-15 Macronix International Co., Ltd. System boot code clone
TWI682271B (zh) * 2018-11-28 2020-01-11 英業達股份有限公司 伺服器系統
WO2020159533A1 (en) 2019-02-01 2020-08-06 Hewlett-Packard Development Company, L.P. Security credential derivation
WO2020167283A1 (en) 2019-02-11 2020-08-20 Hewlett-Packard Development Company, L.P. Recovery from corruption
US11567844B2 (en) * 2021-01-21 2023-01-31 Infineon Technologies LLC Nonvolatile memory devices, systems and methods for fast, secure, resilient system boot
US12014187B2 (en) * 2022-05-04 2024-06-18 Micron Technology, Inc. Boot processes for storage systems

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522076A (en) * 1993-05-13 1996-05-28 Kabushiki Kaisha Toshiba Computer system having BIOS (basic input/output system)-ROM (Read Only Memory) writing function
US5793943A (en) * 1996-07-29 1998-08-11 Micron Electronics, Inc. System for a primary BIOS ROM recovery in a dual BIOS ROM computer system
US5797023A (en) * 1994-10-17 1998-08-18 Digital Equipment Corporation Method and apparatus for fault tolerant BIOS addressing
WO2000079390A1 (en) * 1999-06-21 2000-12-28 Nokia Networks Oy Updating microprocessor boot software

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0449242A3 (en) * 1990-03-28 1992-10-28 National Semiconductor Corporation Method and structure for providing computer security and virus prevention
US5214695A (en) * 1990-07-23 1993-05-25 International Business Machines Corporation Apparatus and method for loading a system reference diskette image from a system partition in a personal computer system
US5918047A (en) * 1996-01-26 1999-06-29 Texas Instruments Incorporated Initializing a processing system
KR100280637B1 (ko) 1997-11-24 2001-02-01 윤종용 고정된플래시롬의데이터갱신이가능한컴퓨터시스템및그제어방법
US6167532A (en) 1998-02-05 2000-12-26 Compaq Computer Corporation Automatic system recovery

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522076A (en) * 1993-05-13 1996-05-28 Kabushiki Kaisha Toshiba Computer system having BIOS (basic input/output system)-ROM (Read Only Memory) writing function
US5797023A (en) * 1994-10-17 1998-08-18 Digital Equipment Corporation Method and apparatus for fault tolerant BIOS addressing
US5793943A (en) * 1996-07-29 1998-08-11 Micron Electronics, Inc. System for a primary BIOS ROM recovery in a dual BIOS ROM computer system
WO2000079390A1 (en) * 1999-06-21 2000-12-28 Nokia Networks Oy Updating microprocessor boot software

Also Published As

Publication number Publication date
HK1059324A1 (en) 2004-06-25
TWI233057B (en) 2005-05-21
GB2392529B (en) 2005-06-15
GB2392529A (en) 2004-03-03
CN100432948C (zh) 2008-11-12
DE10296986T5 (de) 2004-11-25
US6651188B2 (en) 2003-11-18
GB0327176D0 (en) 2003-12-24
CN1514970A (zh) 2004-07-21
WO2003003212A2 (en) 2003-01-09
WO2003003212A3 (en) 2003-04-17
US20030005277A1 (en) 2003-01-02

Similar Documents

Publication Publication Date Title
DE10296986B4 (de) Verfahren und Vorrichtung zum Programmieren eines BIOS
DE69027164T2 (de) Ladeverfahren und Ladegerät für ein Rechnersystem
DE69027165T2 (de) Verfahren und Gerät zum Schutz eines Rechnersystems
DE69027167T2 (de) Rechnersystem mit Programmladegerät und Ladeverfahren
DE10003108B4 (de) Verfahren und Computersystem zum Durchführen einer Softwareinstallation
US6167532A (en) Automatic system recovery
US6308265B1 (en) Protection of boot block code while allowing write accesses to the boot block
EP1903436B1 (de) Computersystem und Verfahren zum Aktualisieren von Programmcode
DE102009020389A1 (de) System zur Aktualisierung von Firmware und Verfahren dazu, und Verfahren zum Erzeugen von Firmware
DE10159901B4 (de) Mikrocomputer mit eingebautem programmierbarem, nichtflüchtigem Speicher
US6571347B1 (en) Apparatus and method for intelligent computer initiation program recovery
EP3709149A1 (de) Off-board-flash-speicher
EP1262856B1 (de) Programmgesteuerte Einheit
US5794007A (en) System and method for programming programmable electronic components using board-level automated test equipment
DE102008005863A1 (de) Verfahren zum Reparieren eines Halbleiterspeicherbauelements und Halbleiterspeicherbauelement
DE60008872T2 (de) Verfahren und vorrichtung zur automatischen reintegration eines moduls in ein rechnersystem
US20080201572A1 (en) Method and system for uniformizing product data embedded in a computer platform
DE60226276T2 (de) Verfahren und anordnung zum modifizieren des inhalts eines korrekturidentifikationsregisters
DE102005060714B4 (de) Datenverarbeitungsvorrichtung, Speicherkarte, Verfahren zum Betreiben einer Datenverarbeitungsvorrichtung und Herstellungsverfahren für eine Datenverarbeitungsvorrichtung
DE19946959B4 (de) Verfahren zum Laden von Daten für grundlegende Systemroutinen
DE102006012677A1 (de) Verfahren und Anordnung zur Freischaltung und zur Konfiguration spezifischer Systemabläufe eines Druckers oder Kopierers
CN111783162A (zh) 数据保护实现方法、装置及计算机设备
DE102006016743A1 (de) Computersystem, Verfahren zum Starten eines Computersystems und Verfahren zum Speichern eines BIOS-Programms
DE602005002485T2 (de) Vorrichtung zur Vermeidung von Schaltungsfehlern in Anwesenheit von Fehlern
DE102005031530B4 (de) Speichersystem, Einchip-Mikrocontroller und eingebettetes System

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law

Ref document number: 10296986

Country of ref document: DE

Date of ref document: 20041125

Kind code of ref document: P

8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee