IP Library Granted Patent US 11,861,349
Granted Patent B2
US 11,861,349 · App. 17/450,232 · Granted Jan 2, 2024

Modular firmware updates in an information handling system

Inventors: Shekar Babu Suryanarayana (Bangalore, IN); Vivek Viswanathan Iyer (Austin, TX)
Assignee: Dell Products L.P.
G06F8/65H04L9/3247
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 11,861,349
App. No.
17/450,232
Granted
Jan 2, 2024
Kind
B2
Abstract

A method for managing firmware of an information handling system may include receiving, by the information handling system, an update for a firmware of the information handling system. The information handling system may determine based, at least in part, on the received update, one or more firmware modules of the information handling system that are changed by the update. The information handling system may determine a location of each of the one or more firmware modules within one or more firmware volumes of the information handling system using an offset list including one or more offsets corresponding to the one or more firmware modules. The information handling system may update the one or more firmware modules based, at least in part, on the determined location of each of the one or more firmware modules within the one or more firmware volumes.

Claims (66)

1. A method for managing firmware of an information handling system, comprising:

receiving, by the information handling system, an update for a firmware of the information handling system;

determining, by the information handling system based at least in part on the received update, one or more firmware modules of the information handling system that are changed by the update;

determining, by the information handling system, a location of each of the one or more firmware modules within one or more firmware volumes of the information handling system using an offset list including one or more offsets corresponding to the one or more firmware modules; and

updating the one or more firmware modules based, at least in part, on the determined location of each of the one or more firmware modules within the one or more firmware volumes.

2. The method of claim 1 , wherein determining, by the information handling system, one or more firmware modules of the information handling system that are changed by the update comprises:

comparing contents of the received update with current contents of the firmware of the information handling system; and

determining, based on the comparison, one or more firmware modules of the firmware having current contents that differ from corresponding contents of the received update.

3. The method of claim 1 , wherein determining the location of each of the one or more firmware modules comprises:

determining, based on the offset list including one or more offsets corresponding to the one or more firmware modules, an offset within a flash memory of the information handling system at which a first firmware module of the one or more firmware modules is stored.

4. The method of claim 3 , further comprising:

determining that sufficient space remains in a portion of the flash memory allocated to the first firmware module for storage of the first firmware module when the update is applied,

wherein updating the one or more firmware modules comprises overwriting, in the portion of the flash memory allocated to the first firmware module, one or more words of the first firmware module.

5. The method of claim 1 , further comprising:

generating, based on the determined one or more firmware modules and the received update, a modular firmware update package,

wherein the modular firmware package comprises an updated firmware volume signature for a firmware volume comprising one or more of the one or more firmware modules, and

wherein updating the one or more firmware modules comprises applying the updated firmware volume signature.

6. The method of claim 5 , wherein generating the modular firmware package comprises requesting the updated firmware volume signature from a remote signing server.

7. The method of claim 1 , further comprising:

reserving space in a flash memory in which the firmware of the information handling system is stored for future updates to the one or more firmware modules;

mapping the flash memory to determine a location of each of the one or more firmware modules in the flash memory and an amount of the reserved space for each of the one or more firmware modules in the flash memory for future updates; and

storing the determined location of each of the one or more firmware modules and the amount of the reserved space for each of the one or more firmware modules in the offset list.

8. An information handling system, comprising:

a processor; and

a memory,

wherein the processor is configured to perform steps comprising:

receiving an update for a firmware of the information handling system;

determining, based at least in part on the received update, one or more firmware modules of the information handling system that are changed by the update;

determining a location of each of the one or more firmware modules within one or more firmware volumes of the information handling system using an offset list including one or more offsets corresponding to the one or more firmware modules; and

updating the one or more firmware modules based, at least in part, on the determined location of each of the one or more firmware modules within the one or more firmware volumes.

9. The information handling system of claim 8 , wherein determining, by the information handling system, one or more firmware modules of the information handling system that are changed by the update comprises:

comparing contents of the received update with current contents of the firmware of the information handling system; and

determining, based on the comparison, one or more firmware modules of the firmware having current contents that differ from corresponding contents of the received update.

10. The information handling system of claim 8 , wherein determining the location of each of the one or more firmware modules comprises:

determining, based on the offset list including one or more offsets corresponding to the one or more firmware modules, an offset within a flash memory of the information handling system at which a first firmware module of the one or more firmware modules is stored.

11. The information handling system of claim 8 , wherein the processor is further configured to perform steps comprising:

determining that sufficient space remains in a portion of a flash memory allocated to a first firmware module for storage of the first firmware module when the update is applied,

wherein updating the one or more firmware modules comprises overwriting, in the portion of the flash memory allocated to the first firmware module, one or more words of the first firmware module.

12. The information handling system of claim 8 , wherein the processor is further configured to perform steps comprising:

generating, based on the determined one or more firmware modules and the received update, a modular firmware update package,

wherein the modular firmware package comprises an updated firmware volume signature for a firmware volume comprising one or more of the one or more firmware modules, and

wherein updating the one or more firmware modules comprises applying the updated firmware volume signature.

13. The information handling system of claim 12 , wherein generating the modular firmware package comprises requesting the updated firmware volume signature from a remote signing server.

14. The information handling system of claim 8 , wherein the processor is further configured to perform steps comprising:

reserving space in a flash memory in which the firmware of the information handling system is stored for future updates to the one or more firmware modules;

mapping the flash memory to determine a location of each of the one or more firmware modules in the flash memory and an amount of the reserved space for each of the one or more firmware modules in the flash memory for future updates; and

storing the determined location of each of the one or more firmware modules and the amount of the reserved space for each of the one or more firmware modules in the offset list.

15. A computer program product, comprising:

a non-transitory computer readable medium, wherein the non-transitory computer readable medium comprises instructions for causing a processor to perform steps comprising:

receiving, by an information handling system, an update for a firmware of the information handling system;

determining, by the information handling system based at least in part on the received update, one or more firmware modules of the information handling system that are changed by the update;

determining, by the information handling system, a location of each of the one or more firmware modules within one or more firmware volumes of the information handling system using an offset list including one or more offsets corresponding to the one or more firmware modules; and

updating the one or more firmware modules based, at least in part, on the determined location of each of the one or more firmware modules within the one or more firmware volumes.

16. The computer program product of claim 15 , wherein determining, by the information handling system, one or more firmware modules of the information handling system that are changed by the update comprises:

comparing contents of the received update with current contents of the firmware of the information handling system; and

determining, based on the comparison, one or more firmware modules of the firmware having current contents that differ from corresponding contents of the received update.

17. The computer program product of claim 15 , wherein determining the location of each of the one or more firmware modules comprises:

determining, based on the offset list including one or more offsets corresponding to the one or more firmware modules, an offset within a flash memory of the information handling system at which a first firmware module of the one or more firmware modules is stored.

18. The computer program product of claim 17 , wherein the non-transitory computer readable medium further comprises instructions for causing a processor to perform steps comprising:

determining that sufficient space remains in a portion of the flash memory allocated to the first firmware module for storage of the first firmware module when the update is applied,

wherein updating the one or more firmware modules comprises overwriting, in the portion of the flash memory allocated to the first firmware module, one or more words of the first firmware module.

19. The computer program product of claim 15 , wherein the non-transitory computer readable medium further comprises instructions for causing a processor to perform steps comprising:

generating, based on the determined one or more firmware modules and the received update, a modular firmware update package,

wherein the modular firmware package comprises an updated firmware volume signature for a firmware volume comprising one or more of the one or more firmware modules, and

wherein updating the one or more firmware modules comprises applying the updated firmware volume signature.

20. The computer program product of claim 19 , wherein generating the modular firmware package comprises requesting the updated firmware volume signature from a remote signing server.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2021
From: SURYANARAYANA, SHEKAR BABU; IYER, VIVEK VISWANATHAN
To: DELL PRODUCTS L.P.
Reel/Frame 057733/0299 →
Continuity (1)
Related Publication 20230112734A1 · Apr 13, 2023
Cited By (1)
US 12,288,056