IP Library Granted Patent US 8,869,138
Granted Patent B2
US 8,869,138 · App. 13/295,021 · Granted Oct 21, 2014

Robust firmware update with recovery logic

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 8,869,138
App. No.
13/295,021
Granted
Oct 21, 2014
Kind
B2
Abstract

Systems and methods for updating firmware include a firmware update module executing on a client device. A firmware package to be installed on the client device may be verified by the firmware update module, including verifying that firmware files included in the firmware package are intact prior to beginning a firmware update. Recovery logic for enabling a client device to boot-up from a functional partition after a failed firmware update may be provided. The recovery logic may ensure that, when a firmware update failure occurs, the client device may boot-up from a functional partition. A recovery process may back up certain components stored in the client device. An update status related to the firmware update process may be provided.

Claims (69)

1. A method for updating firmware components of a client device using a firmware update module running on the client device, the method comprising:

receiving of a firmware update configuration file at the client device, wherein the firmware update configuration file identifies a firmware update repository, one or more firmware updates, and a firmware update package name, size, and cyclic redundancy check (CRC) value for each of the one or more firmware updates;

parsing of the firmware update configuration file on the client device;

communicating with the firmware update repository to validate each of the one or more firmware updates by comparing, for each of the one or more firmware updates, the firmware update package name and size identified in the firmware update configuration file and a firmware update package name and size stored in the firmware update repository;

receiving, on the client device, from the firmware update repository, the firmware update package for each of the one or more firmware updates, calculating a CRC value of each received firmware update package, and comparing the calculated CRC value with the CRC value identified for the firmware update package in the firmware update configuration file;

performing a backup of one or more firmware components on the client device corresponding to the one or more firmware updates; and

updating of the one or more firmware components on the client device using the received firmware update package for each of the one or more firmware updates.

2. The method of claim 1 , wherein the one or more firmware updates include an update for at least one of a master boot record (MBR), a basic input/output system (BIOS), a complementary metal-oxide-semiconductor (CMOS) memory, a firmware update module, and an operating system on the client device.

3. The method of claim 1 , wherein the firmware update module is stored in a dedicated partition of a non-volatile memory of the client device, the method further comprising:

booting the client device from the dedicated partition of the non-volatile memory storing the firmware update module.

4. The method of claim 1 further comprising:

booting the client device using a pre-boot execution (PXE) module of the client device; and

retrieving, as part of the booting of the client device, the firmware update module from a PXE server in communication with the client device.

5. The method of claim 1 , wherein the firmware update module and the firmware update configuration file are stored in a removable storage device connected to the client device, the method further comprising:

booting the client device from the removable storage device storing the firmware update module and the firmware update configuration file.

6. The method of claim 1 , wherein the client device is in communication with a remote management server, the method further comprising:

scheduling, on the remote management server, a firmware update for updating firmware components of the client device; and

receiving, on the client device from the remote management server, the firmware update configuration file.

7. The method of claim 1 , further comprising:

determination that the updating of a particular firmware component of the one or more firmware components on the client has failed; and

in response to the determination, restoring of the particular firmware component on the client device from the backup of the firmware component.

8. The method of claim 1 , wherein the client device comprises a non-volatile memory having first and second partitions, the method further comprising:

prior to updating of a firmware components located on the first partition of the non-volatile memory, setting of the second partition of the non-volatile memory as the primary boot partition on the client device.

9. A machine-readable storage medium encoded with instructions executable by one or more processors to perform one or more operations for updating firmware components of a client device using a firmware update module running on the client device, the one or more operations comprising:

receiving of a firmware update configuration file at the client device, wherein the firmware update configuration file identifies a firmware update repository, one or more firmware updates, and a firmware update package name, size, and cyclic redundancy check (CRC) value for each of the one or more firmware updates;

parsing of the firmware update configuration file on the client device;

communicating with the firmware update repository to validate each of the one or more firmware updates by comparing, for each of the one or more firmware updates, the firmware update package name and size identified in the firmware update configuration file and a firmware update package name and size stored in the firmware update repository;

receiving, on the client device, from the firmware update repository, the firmware update package for each of the one or more firmware updates, calculating a CRC value of each received firmware update package, and comparing the calculated CRC value with the CRC value identified for the firmware update package in the firmware update configuration file;

performing a backup of one or more firmware components on the client device corresponding to the one or more firmware updates; and

updating of the one or more firmware components on the client device using the received firmware update package for each of the one or more firmware updates.

10. The machine-readable storage medium of claim 9 , wherein the one or more firmware updates include an update for at least one of a master boot record (MBR), a basic input/output system (BIOS), a complementary metal-oxide-semiconductor (CMOS) memory, a firmware update module, and an operating system on the client device.

11. The machine-readable storage medium of claim 9 , wherein the firmware update module is stored in a dedicated partition of a non-volatile memory of the client device, and wherein the one or more operations further comprise:

booting the client device from the dedicated partition of the non-volatile memory storing the firmware update module.

12. The machine-readable storage medium of claim 9 , wherein the one or more operations further comprise:

booting the client device using a pre-boot execution (PXE) module of the client device; and

retrieving, as part of the booting of the client device, the firmware update module from a PXE server in communication with the client device.

13. The machine-readable storage medium of claim 9 , wherein the firmware update module and the firmware update configuration file are stored in a removable storage device connected to the client device, and wherein the one or more operations further comprise:

booting the client device from the removable storage device storing the firmware update module and the firmware update configuration file.

14. The machine-readable storage medium of claim 9 , wherein the client device is in communication with a remote management server, and wherein the one or more operations further comprise:

scheduling, on the remote management server, a firmware update for updating firmware components of the client device; and

receiving, on the client device from the remote management server, the firmware update configuration file.

15. The machine-readable storage medium of claim 9 , wherein the one or more operations further comprise:

determination that the updating of a particular firmware component of the one or more firmware components on the client has failed; and

in response to the determination, restoring of the particular firmware component on the client device from the backup of the firmware component.

16. The machine-readable storage medium of claim 9 , wherein the client device comprises a non-volatile memory having first and second partitions, and wherein the one or more operations further comprise:

prior to updating of a firmware components located on the first partition of the non-volatile memory, setting of the second partition of the non-volatile memory as the primary boot partition on the client device.

17. A hardware apparatus for updating firmware components of a client device using a firmware update module running on the client device, the hardware apparatus comprising:

one or more modules configured to perform one or more operations comprising:

receiving of a firmware update configuration file at the client device, wherein the firmware update configuration file identifies a firmware update repository, one or more firmware updates, and a firmware update package name, size, and cyclic redundancy check (CRC) value for each of the one or more firmware updates;

parsing of the firmware update configuration file on the client device;

communicating with the firmware update repository to validate each of the one or more firmware updates by comparing, for each of the one or more firmware updates, the firmware update package name and size identified in the firmware update configuration file and a firmware update package name and size stored in the firmware update repository;

receiving, on the client device, from the firmware update repository, the firmware update package for each of the one or more firmware updates, calculating a CRC value of each received firmware update package, and comparing the calculated CRC value with the CRC value identified for the firmware update package in the firmware update configuration file;

performing a backup of one or more firmware components on the client device corresponding to the one or more firmware updates; and

updating of the one or more firmware components on the client device using the received firmware update package for each of the one or more firmware updates.

18. The hardware apparatus of claim 17 , wherein the one or more firmware updates include an update for at least one of a master boot record (MBR), a basic input/output system (BIOS), a complementary metal-oxide-semiconductor (CMOS) memory, a firmware update module, and an operating system on the client device.

19. The hardware apparatus of claim 17 , wherein the firmware update module is stored in a dedicated partition of a non-volatile memory of the client device, and wherein the one or more operations further comprise:

booting the client device from the dedicated partition of the non-volatile memory storing the firmware update module.

20. The hardware apparatus of claim 17 , wherein the one or more operations further comprise:

booting the client device using a pre-boot execution (PXE) module of the client device; and

retrieving, as part of the booting of the client device, the firmware update module from a PXE server in communication with the client device.

21. The hardware apparatus of claim 17 , wherein the firmware update module and the firmware update configuration file are stored in a removable storage device connected to the client device, and wherein the one or more operations further comprise:

booting the client device from the removable storage device storing the firmware update module and the firmware update configuration file.

22. The hardware apparatus of claim 17 , wherein the client device is in communication with a remote management server, and wherein the one or more operations further comprise:

scheduling, on the remote management server, a firmware update for updating firmware components of the client device; and

receiving, on the client device from the remote management server, the firmware update configuration file.

23. The hardware apparatus of claim 17 , wherein the one or more operations further comprise:

determination that the updating of a particular firmware component of the one or more firmware components on the client has failed; and in response to the determination, restoring of the particular firmware component on the client device from the backup of the firmware component.

24. The hardware apparatus of claim 17 , wherein the client device comprises a non-volatile memory having first and second partitions, and wherein the one or more operations further comprise:

prior to updating of a firmware components located on the first partition of the non-volatile memory, setting of the second partition of the non-volatile memory as the primary boot partition on the client device.

Assignments (16)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
MERGER Recorded May 13, 2022
From: WYSE TECHNOLOGY L.L.C.
To: DELL MARKETING CORPORATION
Reel/Frame 060064/0586 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0618 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040040/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLANT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0216 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jan 2, 2014
From: APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 031897/0348 →
PATENT SECURITY AGREEMENT (ABL) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 031898/0001 →
PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 031899/0261 →
CHANGE OF NAME Recorded Nov 15, 2013
From: WYSE TECHNOLOGY INC.
To: WYSE TECHNOLOGY L.L.C.
Reel/Frame 031645/0051 →