An embodiment of the present invention comprises a method of updating
firmware of a peripheral device coupled to a computer system. A first
boot operation is executed for loading an operating system into the
computer system, and an update routine is installed for loading updated
firmware into the peripheral device. The operating system is modified so
that the update routine is executed early during a second boot operation
for loading the operating system into the computer system. The second
boot operation is executed, during which the update routine is executed
to load the updated firmware into the peripheral device. In one
embodiment, the update routine comprises an update driver having a
DriverEntry code segment for loading the updated firmware into the
peripheral device.