Computer system and method for replacing obsolete or corrupt boot code contained within reprogrammable memory with new boot code supplied from an external source through a data port
First Claim
1. A computer system, comprising:
- a processor;
a system memory coupled to said processor;
an expansion bus coupled to said processor;
a disk drive coupled to said processor for storing data and providing data, said disk drive coupled to said expansion bus;
a data port coupled to said expansion bus;
a reprogrammable memory coupled to said expansion bus, said reprogrammable memory storing a boot code for execution by said processor upon power up of the computer system;
a microcontroller coupled to said expansion bus, to said reprogrammable memory, and to said data port, said microcontroller initially having access to said reprogrammable memory, said microcontroller selectively communicating with a host computer over said data port; and
an integrity checker to check the integrity of said boot code in said reprogrammable memory and to indicate whether the integrity of said boot code has been compromised, wherein if the integrity of said boot code has been compromised upon power up, said microcontroller receives data from said data port and stores said data in said reprogrammable memory as said boot code.
3 Assignments
0 Petitions
Accused Products
Abstract
In accordance with the invention, a computer system is provided with a flash read-only-memory (ROM), a microcontroller and a data port. The microcontroller initially owns the flash ROM. The microcontroller further has a separate ROM upon which it can execute boot-up instructions. After booting up, the microcontroller checks the flash ROM contents, preferably by performing a check-sum of the flash ROM contents. If the checksum of the flash ROM contents matches an expected value, the microcontroller releases ownership of the flash ROM to the computer system so that the computer system boots-up as normal. If the microcontroller determines that the flash ROM has become corrupted, the microcontroller accesses the data port and looks for a flash programming protocol. If the protocol is present at the data port, the microcontroller receives the data from the data port and programs the flash ROM accordingly. In this manner, the flash ROM can be updated to a good known state, even if the computer system is not able to boot up due to, among other things, the corruption of the flash ROM.
171 Citations
38 Claims
-
1. A computer system, comprising:
-
a processor; a system memory coupled to said processor; an expansion bus coupled to said processor; a disk drive coupled to said processor for storing data and providing data, said disk drive coupled to said expansion bus; a data port coupled to said expansion bus; a reprogrammable memory coupled to said expansion bus, said reprogrammable memory storing a boot code for execution by said processor upon power up of the computer system; a microcontroller coupled to said expansion bus, to said reprogrammable memory, and to said data port, said microcontroller initially having access to said reprogrammable memory, said microcontroller selectively communicating with a host computer over said data port; and an integrity checker to check the integrity of said boot code in said reprogrammable memory and to indicate whether the integrity of said boot code has been compromised, wherein if the integrity of said boot code has been compromised upon power up, said microcontroller receives data from said data port and stores said data in said reprogrammable memory as said boot code. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method for updating a boot code of a computer system, said computer system having a processor coupled to a system memory and an expansion bus;
- the processor booting the computer system using a boot code, said expansion bus coupled to a data port;
a reprogrammable memory having the boot code; and
a microcontroller which initially has access to said reprogrammable memory after power up;
said microcontroller selectively communicating with a host computer and receiving data over said data port, said method comprising the steps of;initially accessing the reprogrammable memory with the microcontroller after power-up; checking the integrity of said boot code in said reprogrammable memory before the processor boots the system; and if the integrity of said boot code has been compromised, performing the steps of; receiving data from said data port; and storing said data in said reprogrammable memory as said boot code; and booting the computer system using said processor after said checking step and said if step. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
- the processor booting the computer system using a boot code, said expansion bus coupled to a data port;
-
32. An apparatus for updating codes for execution by a processor, said processor coupled to an expansion bus, said apparatus comprising:
-
a reprogrammable memory coupled to said expansion bus, said reprogrammable memory storing a boot code for execution by the processor upon power up of the processor; a data port coupled to said expansion bus; a microcontroller coupled to said expansion bus, to said reprogrammable memory, and to said data port, said microcontroller initially having access to said reprogrammable memory, said microcontroller selectively communicating with a host computer over said data port; and an integrity checker to check the integrity of said boot code in said reprogrammable memory and to indicate whether the integrity of said boot code has been compromised, wherein if the integrity of said boot code has been compromised upon power up, said microcontroller receives data from said data port and stores said data in said reprogrammable memory as said boot code. - View Dependent Claims (33, 34, 35, 36, 37, 38)
-
Specification