IP Library Granted Patent US 7,730,295
Granted Patent B1
US 7,730,295 · App. 11/515,554 · Granted Jun 1, 2010

Updating firmware of a peripheral device

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,730,295
App. No.
11/515,554
Granted
Jun 1, 2010
Kind
B1
Abstract

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.

Claims (72)

1. A method of updating firmware of a peripheral device coupled to a computer system, the method comprising:

executing a first boot operation for loading an operating system into the computer system;

installing an update routine for loading updated firmware into the peripheral device;

modifying the operating system so that the operating system executes the update routine during a second boot operation; and

executing the second boot operation, during which the update routine is executed to load the updated firmware into the peripheral device;

wherein:

the operating system configures the peripheral device during each boot operation; and

the step of modifying the operating system further comprises modifying the operating system so that the update routine is executed prior to the operating system configuring the peripheral device.

2. The method as recited in claim 1 , wherein the operating system periodically accesses the peripheral device, and wherein modifying the operating system comprises modifying the operating system so that the update routine is executed prior to the operating system periodically accessing the peripheral device.

3. The method as recited in claim 2 , wherein:

the peripheral device comprises a disk drive; and

the operating system periodically accesses the disk drive to read a system file.

4. The method as recited in claim 3 , wherein:

the operating system comprises a Windows operating system; and

the system file comprises a “pagefile.sys” file of the Windows operating system.

5. The method as recited in claim 1 , wherein:

executing the first boot operation further comprises executing an operating system loader program for loading the operating system into the computer system;

the update routine comprises an update driver; and

modifying the operating system further comprises installing the update driver so that the operating system loader program executes the update driver during the second boot operation.

6. The method as recited in claim 5 , wherein:

the operating system comprises a registry file; and

modifying the operating system comprises inserting a SERVICE_BOOT_START entry into the registry file for the update driver.

7. The method as recited in claim 1 , wherein:

the update routine comprises an update driver including a DriverEntry procedure; and

executing the second boot operation includes executing the DriverEntry procedure to load the updated firmware into the peripheral device.

8. A method of updating firmware of a peripheral device coupled to a computer system, the method comprising:

executing a first boot operation for loading an operating system into the computer system;

installing an update driver for loading updated firmware into the peripheral device;

modifying the operating system to execute the update driver during a second boot operation of the computer system;

executing the second boot operation, during which the update driver is executed to load the updated firmware into the peripheral device; and

uninstalling the update driver;

wherein:

the operating system configures the peripheral device during each boot operation; and

the step of modifying the operating system further comprises modifying the operating system so that the update routine is executed prior to the operating system configuring the peripheral device.

9. The method as recited in claim 8 , wherein uninstalling the update driver occurs during the second boot operation.

10. The method as recited in claim 8 , wherein uninstalling the update driver comprises modifying the operating system so that the update driver is not executed during a boot operation subsequent to the second boot operation.

11. The method as recited in claim 8 , wherein:

the operating system comprises a registry file; and

installing the update driver comprises inserting a corresponding entry in the registry file.

12. The method as recited in claim 11 , wherein uninstalling the update driver comprises deleting the corresponding entry in the registry file.

13. The method as recited in claim 8 , wherein the update driver returns an error code to unload the update driver during the second boot operation.

14. The method as recited in claim 13 , wherein the error code comprises ERROR_UNSUCCESSFUL.

15. The method as recited in claim 8 , wherein:

installing the update routine comprises executing an installation application to install the update driver after the first boot operation; and

the method further comprises modifying the operating system so that the installation application is re-executed during a subsequent boot operation.

16. The method as recited in claim 15 , wherein the subsequent boot operation is the second boot operation.

17. The method as recited in claim 15 , wherein:

the operating system comprises a registry file; and

modifying the operating system further comprises inserting a RunOnce entry into the registry file so that the installation application is re-executed during the subsequent boot operation.

18. The method as recited in claim 8 , wherein:

installing the update routine comprises executing an installation application to install the update driver after the first boot operation; and

uninstalling the update routine comprises the installation application modifying the operating system so that the update driver is not executed during a subsequent boot operation.

19. A computer readable storage medium storing code segments of an installation application, the code segments configured to be executed by a computer system comprising an operating system, the code segments for:

installing an update routine for loading updated firmware into a peripheral device coupled to the computer system; and

modifying the operating system so that the operating system executes the update routine during a boot operation;

wherein:

the operating system configures the peripheral device during each boot operation; and

the step of modifying the operating system further comprises modifying the operating system so that the update routine is executed prior to the operating system configuring the peripheral device.

20. The computer readable storage medium as recited in claim 19 , wherein the operating system periodically accesses the peripheral device, and wherein modifying the operating system comprises modifying the operating system so that the update routine is executed prior to the operating system periodically accessing the peripheral device.

21. The computer readable storage medium as recited in claim 20 , wherein:

the peripheral device comprises a disk drive; and

the operating system periodically accesses the disk drive to access a system file.

22. The computer readable storage medium as recited in claim 21 , wherein:

the operating system comprises a Windows operating system; and

the system file comprises a “pagefile.sys” file of the Windows operating system.

23. The computer readable storage medium as recited in claim 19 , wherein:

the computer system further comprises an operating system loader program for loading the operating system into the computer system;

the update routine comprises an update driver; and

modifying the operating system comprises installing the update driver so that the operating system loader program executes the update driver.

24. The computer readable storage medium as recited in claim 23 , wherein:

the operating system comprises a registry file; and

modifying the operating system comprises inserting a SERVICE_BOOT_START entry into the registry file for the update driver.

Assignments (7)
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 038744 FRAME 0481 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0556 →
RELEASE OF SECURITY INTEREST Recorded Mar 5, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045501/0714 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038722/0229 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038744/0281 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038744/0481 →