IP Library Granted Patent US 9,507,581
Granted Patent B2
US 9,507,581 · App. 14/596,627 · Granted Nov 29, 2016

Systems and methods of device firmware delivery for pre-boot updates

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 9,507,581
App. No.
14/596,627
Filed
Jan 14, 2015
Granted
Nov 29, 2016
Kind
B2
Art Unit
2192
USPC
717/172
Abstract

Systems and methods are provided that may be implemented to deliver firmware for pre-boot updates of targeted information handling system device/devices using custom update capsules (e.g., such as custom unified extensible firmware interface capsules) and a separately-stored firmware update package that is remotely or locally stored. The custom update capsules may contain instruction payload information that may be used to determine location and desired components of the separately-stored firmware update package, and that also may be used to determine whether existing driver/drivers are to be retained in a firmware module in system memory or to be unloaded and replaced with a new (e.g., upgraded or downgraded) driver version in a firmware module in system memory as part of the firmware update.

Claims (68)

1. A method of delivering firmware for pre-boot updates to an information handling system, comprising using at least one processing device of the information handling system to perform the following steps in an out-of-band manner separate from and outside an operating system prior to operating system booting and prior to booting the information handling system:

retrieving a custom unified extensible firmware interface (“UEFI”) update capsule from a source external to the information handling system, the UEFI custom update capsule being formed from an original UEFI capsule by removing one or more firmware images from the original UEFI capsule and replacing the removed firmware images with instruction payload information that describes a specified remote or local storage location for a given firmware update package that includes the removed firmware images, the specified remote or local storage location being separate from the UEFI custom update capsule;

reading the instruction payload information contained in the custom update capsule to determine the specified location of the given firmware update package that is remotely or locally stored, the given firmware update package being separate from the custom update capsule and including the one or more firmware images; and

retrieving the given firmware update package from the specified location determined from the specified firmware update package;

where the custom update capsule contains none of the firmware images contained in the firmware update package; and

where the custom update capsule has a format of a conventional UEFI capsule with the instruction payload information substituted in place of firmware payload components that include the firmware images of the firmware update package that are stored separately from the custom update capsule.

2. The method of claim 1 , where the specified location is remote and external to the information handling system.

3. The method of claim 2 , where the specified location is network storage coupled to the information handling system by a network; and where the method further comprises retrieving the given firmware update package across the network from the network storage.

4. The method of claim 1 , where the source external to the information handling system is separate and external to a chassis of the information handling system; and where the method further comprises using a remote access controller processing device within the information handling system to retrieve the custom update capsule across an external network from the source external to the information handling system, and to store the retrieved custom update capsule in non-volatile memory within the information handling system that is coupled to the remote access controller; providing the custom update capsule from the remote access controller to a host processing device within the information handling system across an internal communication bus of the information handling system; and using the host processing device to read the instruction payload information contained in the custom update capsule to determine the specified location of a given firmware update package, and retrieve the given firmware update package from the determined specified location.

5. The method of claim 4 , where the information handling system is a server or desktop computer.

6. The method of claim 1 , where the given firmware update package is configured for a target device of the information handling system that is currently connected to the at least one processing device of the information handling system; and where the method further comprises using a processing device of the information handling system to execute a current firmware driver of the target device to load one or more of the firmware images of the firmware update package into non-volatile memory of the target device.

7. The method of claim 1 , further comprising performing the following steps before the step of retrieving the custom UEFI update capsule from the source external to the information handling system:

removing the one or more firmware images from the original UEFI capsule and storing the removed firmware images as part of the given firmware update package in the specified remote or local storage location; and

replacing the removed firmware images with the instruction payload information that describes the specified remote or local storage location of the given firmware update package that includes the removed firmware images to form the UEFI custom update package.

8. The method of claim 1 , where the given firmware update package comprises a binary image update section that includes multiple separate binary images that have been removed from the original UEFI capsule, and a driver section containing additional optional drivers associated with each separate binary image; where the instruction payload information includes an identifier table that contains a name and identifier of each optional driver associated with each binary image, and a locator table that includes payload binary image identifier information that identifies each firmware image to be updated together with its corresponding local or remote storage location; and where the method further comprises using a host processing device within the information handling system to execute Firmware Management Protocol (FMP)-based pre-boot software to read the driver version from the identifier table to determine if the current field-deployed resident driver in non-volatile memory of a given target device is capable of reading and applying a corresponding binary image of the firmware update package to the given target device.

9. A method of determining a firmware driver update action during pre-boot operation of an information handling system, comprising using at least one processing device of the information handling system to perform the following steps in an out-of-band manner separate from and outside an operating system prior to operating system booting and prior to booting the information handling system:

retrieving a custom unified extensible firmware interface (“UEFI”) update capsule from a source external to the information handling system, the custom update capsule including instruction payload information and multiple driver version images contained therein, the UEFI custom update capsule being formed from an original UEFI capsule by inserting instruction payload information into the original UEFI capsule, and the instruction payload information being indicative of a driver update action, a specified remote or local storage location of a given firmware update package, or both;

reading the instruction payload information contained in the custom update capsule to determine a driver update action, the determined driver update action being either one of:

unloading an existing firmware driver version from a system memory of the information handling system and loading a different upgraded or downgraded firmware driver version on to the system memory from the custom update capsule, or

leaving the existing firmware driver version resident on the system memory and not loading a different firmware driver version on system memory from the custom update capsule; and

performing the determined driver update action;

where the custom update capsule contains none of the firmware images contained in the firmware update package; and

where the custom update capsule has a format of a conventional UEFI capsule with the instruction payload information substituted in place of firmware payload components that include the firmware images of the firmware update package that are stored separately from the custom update capsule.

10. The method of claim 9 , further comprising using at least one processing device of the information handling system to query the system memory to determine the identity of the firmware driver version currently resident on the system memory; and then determining the driver update action based at least in part on the determined identity of the firmware driver version currently resident on the system memory.

11. The method of claim 10 , where the instruction payload information comprises a metadata operator; and where the method further comprises using at least one processing device of the information handling system to apply the metadata operator to the determined identity of the firmware driver version currently resident on the system memory to determine the driver update action.

12. The method of claim 9 , where the determined driver update action comprises using at least one processing device of the information handling system to unload the existing firmware driver version from the system memory, and to load a different upgraded or downgraded firmware driver version on to the system memory from the custom update capsule.

13. The method of claim 9 , where the determined driver update action comprises using at least one processing device of the information handling system to leave the existing firmware driver version resident on the system memory and not to load a different firmware driver version on to system memory from the custom update capsule.

14. The method of claim 9 , further comprising:

using a host processing device of the information handling system to:

read instruction payload information contained in the custom update capsule to determine a specified location of a given firmware update package configured for a target device of the information handling system that is currently connected to the at least one processing device of the information handling system and that is remotely or locally stored, the given firmware update package being separate from the custom update capsule and including one or more firmware images, and

retrieve the given firmware update package from the specified location determined from the specified firmware update package; and

using a processing device of the information handling system to execute the current firmware driver of the target device to load the firmware update into non-volatile memory of the target device after the determined driver update action has been performed.

15. The method of claim 9 , further comprising inserting the instruction payload information into the original UEFI capsule to form the custom UEFI update capsule before the step of retrieving the custom UEFI update capsule from the source external to the information handling system.

16. The method of claim 15 , where the instruction payload information is indicative of both the driver update action and the specified remote or local storage location of the given firmware update package.

17. An information handling system, comprising at least one processing device that is coupled to memory storing executable instructions configured to perform the following steps in an out-of-band manner separate from and outside an operating system prior to operating system booting and prior to booting the information handling system:

retrieving a custom unified extensible firmware interface (“UEFI”) update capsule from a source external to the information handling system, the UEFI custom update capsule being formed from an original UEFI capsule by removing one or more firmware images from the original UEFI capsule and replacing the removed firmware images with instruction payload information that describes a specified remote or local storage location of a given firmware update package that includes the removed firmware images, the specified remote or local storage location being separate from the UEFI custom update capsule;

reading the instruction payload information contained in the custom update capsule to determine the specified location of the given firmware update package that is remotely or locally stored, the given firmware update package being separate from the custom update capsule and including the one or more firmware images; and

retrieving the given firmware update package from the specified location determined from the specified firmware update package;

where the custom update capsule contains none of the firmware images contained in the firmware update package; and

where the custom update capsule has a format of a conventional UEFI capsule with the instruction payload information substituted in place of firmware payload components that include the firmware images of the firmware update package that are stored separately from the custom update capsule.

18. The system of claim 17 , where the specified location is network storage coupled to the information handling system by a network; and where the at least one processing device is further configured to retrieve the given firmware update package across the network from the network storage.

19. The system of claim 17 , where the given firmware update package is configured for a target device of the information handling system that is currently connected to the at least one processing device of the information handling system; where the source external to the information handling system is separate and external to a chassis of the information handling system; and where the system further comprises:

a remote access controller processing device within the information handling system and configured to retrieve the custom update capsule across an external network from the source external to the information handling system, and to store the retrieved custom update capsule in non-volatile memory coupled to the remote access controller;

a host processing device within the information handling system and coupled to the remote access controller processing device by an internal communication bus of the information handling system, the host processing device being configured to:

receive the custom update capsule from the remote access controller, and

read the instruction payload information contained in the custom update capsule to determine the specified location of a given firmware update package, and

retrieve the given firmware update package from the determined specified location; and

a processing device configured to execute the current firmware driver of the target device to load one or more of the firmware images of the firmware update package into non-volatile memory of the target device.

20. The system of claim 19 , where the information handling system is a server or desktop computer.

21. An information handling system, comprising at least one processing device configured to perform the following steps in an out-of-band manner separate from and outside an operating system prior to operating system booting and prior to booting the information handling system:

retrieving a unified extensible firmware interface (“UEFI”) custom update capsule from a source external to the information handling system, the custom update capsule including instruction payload information and multiple driver version images contained therein, the UEFI custom update capsule being formed from an original UEFI capsule by inserting instruction payload information into the original UEFI capsule, and the instruction payload information being indicative of a driver update action, a specified remote or local storage location of a given firmware update package, or both;

reading the instruction payload information contained in the custom update capsule to determine a driver update action, the determined driver update action being either one of:

unloading an existing firmware driver version from a system memory of the information handling system and loading a different upgraded or downgraded firmware driver version on to the system memory from the custom update capsule, or

leaving the existing firmware driver version resident on the system memory and not loading a different firmware driver version on to the system memory from the custom update capsule; and

performing the determined driver update action;

where the custom update capsule contains none of the firmware images contained in the firmware update package; and

where the custom update capsule has a format of a conventional UEFI capsule with the instruction payload information substituted in place of firmware payload components that include the firmware images of the firmware update package that are stored separately from the custom update capsule.

22. The system of claim 21 , where the instruction payload information comprises a metadata operator; and where the at least one processing device is further configured to:

query the system memory to determine the identity of the firmware driver version currently resident on the system memory; and

determine the driver update action based at least in part on the determined identity of the firmware driver version currently resident on the system memory by applying the metadata operator to the determined identity of the firmware driver version currently resident on the system memory to determine the driver update action.

23. The system of claim 21 , where the determined driver update action comprises using at least one processing device of the information handling system to unload the existing firmware driver version from the system memory, and to load a different firmware driver version on to the system memory from the custom update capsule.

24. The system of claim 21 , where the determined driver update action comprises using at least one processing device of the information handling system to leave the existing firmware driver version resident on the system memory and not to load a different firmware driver version on to the system memory from the custom update capsule.

25. The system of claim 21 , where the system comprises:

a host processing device configured to:

read instruction payload information contained in the custom update capsule to determine a specified location of a given firmware update package that is remotely or locally stored, the given firmware update package being separate from the custom update capsule and including one or more firmware images configured for a target device of the information handling system that is currently connected to the at least one processing device of the information handling system, and

retrieve the given firmware update package from the specified location determined from the specified firmware update package; and

a processing device configured to execute the current firmware driver of the target device to load one or more of the firmware images of the firmware update package into non-volatile memory of the target device after the determined driver update action has been performed.

26. The system of claim 21 , where the instruction payload information is indicative of both the driver update action and the specified remote or local storage location of the given firmware update package.

Assignments (15)
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 →
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 REEL 035104 FRAME 0043 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.
Reel/Frame 040027/0123 →
RELEASE OF REEL 035103 FRAME 0809 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.
Reel/Frame 040027/0934 →
RELEASE OF REEL 035103 FRAME 0536 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.
Reel/Frame 040016/0864 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Feb 26, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 035103/0536 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Feb 26, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035104/0043 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Feb 26, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 035103/0809 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2015
From: BUTCHER, WADE ANDREW; LILES, TERRY WAYNE; MADALA, RAVEENDRA BABU; VIDYADHARA, SUMANTH; VENKATARAMUDU, RAGHAVENDRA
To: DELL PRODUCTS, L.P.
Reel/Frame 034708/0128 →