DE10296986B4 - Verfahren und Vorrichtung zum Programmieren eines BIOS - Google Patents
Verfahren und Vorrichtung zum Programmieren eines BIOS Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2135—Metering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2139—Recurrent verification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2149—Restricted operating environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2151—Time 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...
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 - In der
WO 0 079 390 A1 - 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-Systems10 . Mit dem Speicherbaustein112 kann der Code sowohl für das Reserve-BIOS113 als auch das primäre BIOS114 gehalten werden. Bei einer Ausführungsform kann der Speicherbaustein112 ein programmierbarer Nurlesespeicher (PROM), wie z. B. ein Flash-Speicherbaustein, sein. Bei einer Ausführungsform kann der Speicherbaustein112 eine einzige integrierte Schaltung sein. Mit der Steuerlogik111 kann der Betrieb des Speicherbausteins112 gesteuert werden, um die Merkmale des Doppel-BIOS-Systems10 freizugeben. Im Betrieb können die Adressleitungen ADR eines Buses zum Lesen des Inhalts des Speicherbausteins112 ü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-BIOS113 und dem primären BIOS114 zu ermöglichen, können die niedrigstwertigen Adressbit (LSAB) direkt zu dem Speicherbaustein112 geroutet werden, während die höchstwertigen Adressbit (MSAB) zu der Steuerlogik111 geroutet werden können. Die Steuerlogik111 kann dann ausgewählte der höchstwertigen Bit (SELECTION MSB) ausgeben, um entweder das Reserve-BIOS113 oder das primäre BIOS114 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 Speicherbaustein112 ignoriert werden kann. Die Anzahl von für SELECTION MSB erforderlichen Bit hängt von den spezifischen Adressenbereichen ab, die für das Reserve-BIOS113 und das primäre BIOS114 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 Steuerlogik111 kann dann mehrere Steuersignale an den Speicherbaustein112 ausgeben. Bei einer Ausführungsform können dazu Write Enable (WE) und Chip Select (CS) gehören. Diese beiden aus der Steuerlogik111 ausgegebenen Signale folgen jedoch möglicherweise nicht den äquivalenten Signalen, die in die Steuerlogik111 eingegeben werden, weil die Steuerlogik111 diese möglicherweise manipuliert, um die automatische Doppel-BIOS-Funktion zu steuern. - Das Reserve-BIOS
113 kann sich in einem Adressraum des Speicherbausteins112 befinden, der durch die Steuerlogik111 als Nurlese decodiert wird, während sich das primäre BIOS114 in einem Adressraum des Speicherbausteins112 befinden kann, der von der Steuerlogik111 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 Speicherbaustein112 immer dann, wenn ein beliebiger Teil des Reserve-BIOS113 adressiert wird, so daß die Möglichkeit einer Verfälschung des Reserve-BIOS113 mit einer Schreiboperation verhindert wird. Bei dieser Ausführungsform kann das primäre BIOS114 durch Umprogrammieren revidiert werden, aber das Reserve-BIOS113 kann unverändert bleiben, so daß jedes beliebige erkannte Problem mit dem primären BIOS114 vermieden werden kann, indem das System mit dem älteren, bewährten Reserve-BIOS113 gebootet wird. Mit dem Validierer115 kann das primäre BIOS114 validiert werden, um zu bestimmen, ob das primäre BIOS114 verfälscht wurde; d. h. ob Teile von ihm nicht korrekt programmiert wurden. Bei einer Ausführungsform enthält der Validierer115 Code, der sich in dem Reserve-BIOS113 befindet, um einen Prüfsummenprozeß an dem primären BIOS114 durchzuführen. Die Steuerlogik111 kann die Leitung Chip Select zu dem Speicherbaustein112 immer dann setzen, wenn auf den Speicherbaustein112 zugegriffen wird, gleichgültig, welches BIOS adressiert wird. -
2A –C zeigen ein Flußdiagramm einer Verfahrensausführungsform20 . Der BIOS-Eintrittspunkt ist im Block221 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. Block222 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 Block224 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 Block225 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 Block226 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 Block226 modifiziert werden, damit sie mit dem Reserve-BIOS kompatibel sind. Nach diesen Einstellungen (falls sie notwendig sind) kann die Bootsequenz im Block223 in dem Reserve-BIOS fortgesetzt werden und sich zu dem Punkt 'A', der in2B 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 Block227 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 Block224 geprüft wurde, erhöht werden. Im Block228 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 Block229 kann ein CPU-Initialisierunssignal erzeugt werden, um eine Ausführung zurück zu dem BIOS-Eintrittspunt im Block221 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 Block228 erzeugt werden. Nachdem sich die Ausführung zu dem BIOS-Eintrittspunkt bewegt hat, kann der Block222 nochmals bestimmen, ob das primäre oder das Reserve-BIOS ausgeführt wird. Da im Block228 der Anzeiger 'primary BIOS' gesetzt wurde, wird nun das primäre BIOS ausgeführt und die Bootsequenz kann im Block223 fortgesetzt werden. Von dort aus kann die Ausführung am Punkt 'A' in2B fortgesetzt werden. - Im Block
230 von2B 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 Block231 , bevor sie die Steuerung im Block232 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 Block240 ). 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 Block241 neu wählen und die Steuerung vom Block241 in2C zum Block221 in2A 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 Block224 geprüft und im Block227 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öcken225 –226 ,223 und230 –232 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ßdiagramm30 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 in3A gezeigten Ausführungsform erfolgt die Bestimmung, welches BIOS-Bild ausgeführt werden soll, in den Blöcken331 –339 , 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öcken340 –342 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 Block332 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. Block333 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 Block339 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 von3A wird im Block334 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 Block335 der Neuversuchszähler geprüft werden, um zu sehen ob er einen als 'X' gezeigten vorbestimmten Wert erreicht hat. Wenn im Block335 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 Block336 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. Block339 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 Steuerlogik111 zum Auswählen des primären BIOS114 in dem Speicherbaustein112 (siehe1 ). Wenn der primäre BIOS-Code im Block335 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 Block337 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. Block338 kann dann die Hardware für das Decodieren des Reserve-BIOS in dem Bereich des unteren eins Megabyte vorbereiten, und Block339 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 Steuerlogik111 für eine Auswahl des Reserve-BIOS112 in dem Speicherbaustein112 (1 ). - Nach dem Springen zu dem unteren Speicher in Block
339 kann Block340 bestimmen, ob das 'Invalid'-Flag gesetzt wurde. Wenn nicht, kann die gewählte Bootsequenz dann im Block342 fortgesetzt werden. Wenn es gesetzt wurde, kann Block341 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 Block343 in3B 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 Block344 , bevor sie die Steuerung im Block345 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 Block350 ). 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 Block351 neu auswählen und die Steuerung von dem Block352 in3C zu dem Block331 in3A 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 Block335 geprüft und im Block336 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öcken339 –345 verursacht. Der Neuversuchszähler kann initialisiert werden (nicht gezeigt), bevor die erste Bootsequenz mit dem primären BIOS versucht wird. -
4 zeigt ein System40 , das dem System10 in1 sehr ähnlich sein kann, aber zusätzlich ein Modul zum Programmieren des primären und/oder des sekundären BIOS-Bildes enthält. Die Programmiereinrichtung441 kann zum Programmieren des Inhalts des Reserve-BIOS113 und auch zum Programmieren des Inhalts des primären BIOS114 verwendet werden. Bei einer Ausführungsform kann die Programmiereinrichtung441 einen vorprogrammierten Nurlesespeicherchip (ROM-Chip) auf einem Modul mit einem Verbinder enthalten. Die Schnittstelle442 kann ein Verbinder auf derselben Leiterplatte sein, die den Speicherbaustein112 enthält, der es der Einrichtung441 gestattet, mechanisch und elektrisch an das System angeschlossen oder von diesem entfernt zu werden. Bei einer Ausführungsform erhält die gesamte Einrichtung441 ihre elektrische Stromversorgung, Eingangssignale und mechanische Halterung durch die Schnittstelle442 und/oder die Leiterplatte, so daß keine externe Verbindungen zur Programmierung des Speicherbausteins112 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 Einrichtung441 in die Schnittstelle442 das Äquivalent eines BIOS-Programms bereitstellen und außerdem dem Speicherbaustein112 gestatten, für zukünftige Boot-Operationen mit einem BIOS programmiert zu werden. Nachdem der Speicherbaustein112 programmiert wurde, kann die Einrichtung441 entfernt werden. Die Schnittstelle442 kann Datenleitungen (DATA) und Adressleitungen (ADR) zu der Einrichtung441 von einem Systembus bereitstellen, so daß der Inhalt des ROM über einen Standardbus durch den Systemprozessor gelesen werden kann. Der Verbinder442 kann außerdem Handshaking-Signale auf den Leitungen PROG bereitstellen, um es der Steuerlogik111 zu ermöglichen, zu der Einrichtung441 umzuschalten. Bei einer Ausführungsform kann die Schnittstelle442 eine Modul-Präsenzerkennungsleitung zu der Steuerlogik111 sein, um der Steuerlogik111 eine Anzeige zu geben, wann die Einrichtung441 in die Schnittstelle442 eingesteckt ist. Nach dem Empfang dieser Anzeige, daß der ROM eingesteckt ist, kann die Steuerlogik111 den Zugriff auf den Speicherbaustein112 blockieren, indem sie das Signal Chip Enable zu dem Speicherbaustein112 zurücksetzt, und kann einen Zugriff auf die Einrichtung441 bereitstellen, indem das Signal Chip Enable zu der Einrichtung441 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 Steuerlogik111 gestattet, den Zugriff auf den Speicherbaustein112 wieder zuzulassen. Mit dieser Möglichkeit kann ein BIOS-Programm aus dem ROM in den Speicherbaustein112 kopiert werden. Der ROM kann außerdem Code zum Validieren des Inhalts des Speicherbausteins112 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 Einrichtung441 ein Programmieren des Reserve-BIOS113 in den Speicherbaustein112 gestatten. Bei einer Ausführungsform kann auch das primäre BIOS114 aus der Einrichtung441 programmiert werden. Bei einer anderen Ausführungsform kann, sobald das Reserve-BIOS113 programmiert wurde, das primäre BIOS114 durch das System während des Systembetriebs in den Speicherbaustein112 heruntergeladen werden. Bei beiden Ausführungsformen kann das primäre BIOS114 durch Herunterladen des revidierten primären BIOS in den Speicherbaustein112 durch das System während des Systembetriebs revidiert werden. Durch diese Merkmale kann das primäre BIOS114 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 BIOS114 ohne Anwesenheit eines Bedieners durch Verwendung eines Fernherunterladens ermöglichen. Gleichzeitig kann das Reserve-BIOS113 vor unbeabsichtigter Verfälschung geschützt werden, indem gefordert wird, daß die Einrichtung441 eingeführt wird, bevor das Reserve-BIOS113 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)
- 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. - 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. - 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. - Verfahren nach Anspruch 1, das des weiteren ein Umprogrammieren des Reserve-BIOS-Programms (
114 ) vom Programmiermodul (441 ) umfaßt. - 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. - 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. - 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. - 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. - Vorrichtung nach Anspruch 6, wobei die Programmiereinrichtung (
441 ) so verbunden ist, daß sie ihre gesamte elektrische Stromversorgung aus der Leiterplatte erhält. - Vorrichtung nach Anspruch 6, wobei die Programmiereinrichtung (
441 ) so verbunden ist, daß sie ihre gesamte mechanische Halterung von der Leiterplatte erhält.
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)
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)
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)
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 |
-
2001
- 2001-06-29 US US09/895,981 patent/US6651188B2/en not_active Expired - Lifetime
-
2002
- 2002-06-11 TW TW091112654A patent/TWI233057B/zh not_active IP Right Cessation
- 2002-06-21 DE DE10296986T patent/DE10296986B4/de not_active Expired - Fee Related
- 2002-06-21 CN CNB028118065A patent/CN100432948C/zh not_active Expired - Fee Related
- 2002-06-21 GB GB0327176A patent/GB2392529B/en not_active Expired - Fee Related
- 2002-06-21 WO PCT/US2002/020019 patent/WO2003003212A2/en not_active Application Discontinuation
-
2004
- 2004-03-10 HK HK04101763A patent/HK1059324A1/xx not_active IP Right Cessation
Patent Citations (4)
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 |