IP Library Granted Patent US 10,936,299
Granted Patent B2
US 10,936,299 · App. 15/581,054 · Granted Mar 2, 2021

Automated intra-system persistent memory updates

Inventors: Wade A. Butcher (Cedar Park, TX); Vijay B. Nijhawan (Austin, TX); Sumanth Vidyadhara (Bangalore, IN)
Assignee: Dell Products, L.P.
G06F8/654
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 10,936,299
App. No.
15/581,054
Granted
Mar 2, 2021
Kind
B2
Abstract

An Information Handling System (IHS) has persistent memory device(s) coupled to a processor. Each memory device includes a first firmware image, version identifying information associated with the first firmware image, and device type identifying information. A firmware interface suite coupled to the processor has a firmware interface that is executed by the processor. The processor responds to identifying a trigger condition for automatic intra-system firmware update of a persistent memory device. The processor accesses the version identifying information and the device type identifying information for a first memory device containing the first firmware image of the persistent memory device(s). The processor associates the device type identifying information with device type information for a second memory device. In response to the first firmware image being different from the second firmware image, the processor selectively replaces the first firmware image on the first memory device with the second firmware image.

Claims (76)

1. An Information Handling System (IHS) comprising:

a processor;

one or more first persistent memory devices coupled to the processor, each of the first persistent memory devices comprising: (i) a first firmware image, (ii) version identifying information associated with the first firmware image, and (iii) device type identifying information; and

a firmware interface suite coupled to the processor and comprising a firmware interface that is executed by the processor to cause the processor to:

in response to identifying at least one of a plurality of possible trigger conditions for automatic intra-system firmware update of a persistent memory device, the possible trigger conditions comprising a system boot, a restart operation, or a hot plug event, the system boot and restart operation comprising detection by the processor that a persistent second persistent memory device has been added to the IHS while the IHS is powered down and not as the hot plug event:

access the version identifying information and the device type identifying information for a first memory device of the one or more first persistent memory devices, the first memory device containing the first firmware image;

match the device type identifying information for the first memory device with device type identifying information for the second persistent memory device, the second persistent memory device containing or supporting operation via a second firmware image, wherein the second persistent memory device comprises a non-volatile memory coupled to the firmware interface suite and comprising: (i) the second firmware image; and (ii) metadata associating the second firmware image to the device type identifying information of the second persistent memory device, the metadata comprising a Firmware Management Protocol (FMP) driver Globally Unique Identifier (GUID) that allows a vendor-specific update rather than a Joint Electron Device Engineering Council (JEDEC) standard update for a class of persistent memory devices;

compare firmware versions between the first firmware image of the first memory device and the second firmware image of the second persistent memory device;

in response to the first firmware image of the first memory device being different from the second firmware image and the device type identifying information of the first memory device being the same as the device type identifying information of the second persistent memory device, selectively replace the first firmware image on the first memory device with the second firmware image, wherein the first firmware image of the first memory device is automatically upgraded or roll-backed from the first firmware image of the first memory device to the second firmware image; and

subsequently operating each of the one or more first persistent memory devices and the second persistent memory device utilizing the second firmware image, wherein persistent memory devices with a same device type identifying information operate using a same version of firmware image;

in response to the system boot or the restart operation by a basic input/output system (BIOS) of the IHS, detect whether a feature enablement in the BIOS is set for automatically updating intra-system firmware image; and

in response to the feature enablement being set for automatic updating of the intra-system firmware image:

read serial presence detect (SPD) and dual inline memory module (DIMM) data, including manufacturer identifier (ID), firmware device ID, and firmware version ID;

sort the data into list of unique manufacture IDs and firmware device IDs;

determine whether DIMM cloning is enabled; and

in response to the DIMM cloning being enabled: select a master image of firmware;

identify DIMMs with a version of firmware image that is different from a version of the selected master image; and program the identified DIMMs with the selected master image.

2. The IHS of claim 1 , wherein the second persistent memory device further comprises: (i) the second firmware image, (ii) version identifying information associated with the second firmware image, and (iii) the device type identifying information that is identical to the device type identifying information of the first memory device.

3. The IHS of claim 2 , further comprising a random access memory coupled to the processor and containing an operating system, wherein:

the firmware interface causes the processor to activate a persistent agent executed by the processor as part of the operating system; and

another trigger of the plurality of possible trigger conditions comprises the firmware interface causing the processor, via the persistent agent, to detect a hot plugging event of the second persistent memory device.

4. The IHS of claim 1 , wherein:

All of the device type identifying information comprises manufacturer identifying information that is unique to a specific manufacturer;

the metadata comprises a driver that performs a firmware management protocol that replaces the first firmware image of the first memory device with the second firmware image; and

another trigger of the plurality of possible trigger conditions comprises the firmware interface causing the processor to determine that both the first and second firmware images are associated with identical manufacturer identifying information.

5. The IHS of claim 1 , further comprising a random access memory coupled to the processor and containing an operating system, wherein:

another trigger of the plurality of possible trigger conditions comprises the firmware interface causing the processor to determining that the first memory device comprises the first firmware image that is updateable by the second firmware image; and

in response to determining that the first firmware image of the first memory device is updateable by the second firmware image, the firmware interface causes the processor to:

replace the first firmware image of the first memory device with the second firmware image; and

publish a memory map to the operating system enumerating the first memory device as usable to functional components of the IHS.

6. The HIS of claim 5 , wherein, in response to determining that the first firmware image of the first memory device is not updateable, the firmware interface publishes to the operating system a memory map that does not enumerate the first memory device.

7. The IHS of claim 1 , wherein the firmware interface causes the processor to:

determine whether a configuration setting of the firmware interface indicates a selected one of: (i) updating to a higher version of a firmware image; and (ii) rolling back to a lower version of the firmware image;

replace the first firmware image with the second firmware image in response to a setting indicating an update and the second firmware image being the higher version; and

replace the first firmware image with the second firmware image in response to the configuration setting indicating rolling back and the second firmware image being the lower version of the firmware image.

8. The IHS of claim 1 , further comprising a board management controller coupled to the firmware interface suite and which controls updates to firmware images on each of the one or more first persistent memory devices and the second persistent memory device by changing a setting for a selected one or more of: (i) enablement of firmware updates; (ii) enablement of version rollback to a lowest available version; (iii) enablement of version update to a highest available version; (iv) directions to read active firmware versions on each of the one or more first persistent memory devices and the second persistent memory device; (v) directions to read inactive firmware versions on each of the one or more first persistent memory devices and the second persistent memory device; (vi) directions to read metadata contained on each of the one or more first persistent memory devices and the second persistent memory device; (vii) enablement to execute binary code contained in the metadata; and (viii) directions to dynamically map memory based in part on compatibility of the firmware images.

9. The IHS of claim 1 , wherein the firmware interface is further executed by the processor to cause the processor to:

in response to the DIMM cloning not being enabled:

determine whether DIMM rollback is enabled;

in response to the DIMM rollback being enabled: identifying DIMMs with firmware versions that are different from a lowest version value; and initiate rollback of firmware images for the identified DIMMs to the lowest version value; and

in response to the DIMM rollback not being enabled:

determining whether memory remapping is enabled; and

in response to the memory remapping being enabled, excluding DIMMs that have an incompatible version of the firmware image, including a firmware image less than a minimum version.

10. A method comprising:

identifying, by a processor executing a firmware interface of a firmware interface suite coupled to the processor of an information handling system (IHS), at least one of a plurality of possible trigger conditions for automatic intra-system firmware update of a first memory device of one or more persistent memory devices, each of the one or more persistent memory devices coupled to the processor, and the first memory device comprising: (i) a first firmware image, (ii) version identifying information associated with the first firmware image, and (iii) device type identifying information; and

in response to identifying the at least one of the plurality of possible trigger conditions for automatic intra-system firmware update of a persistent memory device, the possible trigger conditions comprising a system boot, a restart operation, or a hot plug event, the system boot and restart operation comprising detection by the processor that a second memory device has been added to the IHS while the IHS is powered down and not as the hot plug event:

accessing the version identifying information associated with the first firmware image contained in the first memory device of the one or more persistent memory devices;

matching the device type identifying information for the first memory device with device type identifying information for the second memory device, the second memory device being a persistent memory device containing a second firmware image, wherein the second memory device comprises a non-volatile memory coupled to the firmware interface suite and comprising: (i) the second firmware image; and (ii) metadata associating the second firmware image to the device type identifying information of the second memory device, the metadata comprising a Firmware Management Protocol (FMP) driver Globally Unique Identifier (GUID) that allows a vendor-specific update rather than a Joint Electron Device Engineering Council (JEDEC) standard update for a class of persistent memory devices;

comparing firmware versions between the first firmware image of the first memory device and the second firmware image associated with the second memory device;

in response to the first firmware image of the first memory device being different from the second firmware image and the device type identifying information of the first memory device being the same as the device type identifying information of the second memory device, selectively replacing the first firmware image on the first memory device with the second firmware image, wherein the first firmware image of the first memory device is automatically upgraded or roll-backed from the first firmware image of the first memory device to the second firmware image; and

subsequently operating each of the one or more persistent memory devices and the second memory device utilizing the second firmware image, wherein persistent memory devices with a same device type identifying information operate using a same version of firmware image;

in response to the system boot or the restart operation by a basic input/output system (BIOS) of the IHS, detecting whether a feature enablement in the BIOS is set for automatically updating intra-system firmware image; and

in response to the feature enablement being set for automatic updating of the intra-system firmware image:

reading serial presence detect (SPD) and dual inline memory module (DIMM) data, including manufacturer identifier (ID), firmware device ID, and firmware version ID;

sorting the data into list of unique manufacture IDs and firmware device IDs;

determining whether DIMM cloning is enabled; and

in response to the DIMM cloning being enabled: selecting a master image of firmware; identify DIMMs with a version of firmware image that is different from a version of the selected master image; and program the identified DIMMs with the selected master image.

11. The method of claim 10 , wherein the second memory device comprises: (i) the second firmware image, (ii) version identifying information associated with the second firmware image, and (iii) the device type identifying information that is identical to the device type identifying information of the first memory device.

12. The method of claim 11 , wherein identifying one of the plurality of possible trigger conditions comprises:

activating a persistent agent as part of an operating system executed by the processor; and

identifying, by the persistent agent, another trigger of a hot plugging event of the second memory device.

13. The method of claim 10 , wherein:

All of the device type identifying information comprises manufacturer identifying information that is unique to a specific manufacturer;

replacing the first firmware image of the first memory device with the second firmware image comprises executing a driver contained in the metadata that performs a firmware management protocol; and

identifying one of the plurality of possible trigger conditions comprises identifying another trigger that both the first and second firmware images are associated with identical manufacturer identifying information.

14. The method of claim 10 , wherein:

identifying one of the plurality of possible trigger conditions comprises determining another trigger that the first memory device comprises the first firmware image that is updateable by the second firmware image; and

in response to determining that the first firmware image is updateable by the second firmware image, the firmware interface:

replacing the first firmware image of the first memory device with the second firmware image; and

publishing a memory map to an operating system enumerating the first memory device as usable to functional components of the IHS.

15. The method of claim 14 , wherein, in response to determining that the first firmware image of the first memory device is not updateable, publishing to the operating system a memory map that does not enumerate the first memory device.

16. The method of claim 10 , further comprising:

determining whether a configuration setting of the firmware interface indicates a selected one of: (i) updating to a higher version of a firmware image; and (ii) rolling back to a lower version of the firmware image;

replacing the first firmware image with the second firmware image in response to the configuration setting indicates updating and the second firmware image being the higher version of the firmware image; and

replacing the first firmware image with the second firmware image in response to the configuration setting indicates rolling back and the second firmware image being the lower version of the firmware image.

17. The method of claim 10 , further comprising controlling, by a board management controller coupled to the firmware interface suite and which controls updates to firmware images on persistent memory devices, including the one or more persistent memory devices and the second memory device, by changing a setting for a selected one or more of: (i) enablement of firmware updates; (ii) enablement of version rollback to a lowest available version; (iii) enablement of version update to a highest available version; (iv) directions to read active firmware versions on the persistent memory devices; (v) directions to read inactive firmware versions on the persistent memory devices; (vi) directions to read metadata contained on the persistent memory devices; (vii) enablement to execute binary code contained in the metadata; (viii) and directions to dynamically map memory based in part on compatibility of the firmware images.

Assignments (8)
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 (042769/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0802 →
RELEASE OF SECURITY INTEREST AT REEL 042768 FRAME 0585 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058297/0536 →
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 →
PATENT SECURITY INTEREST (CREDIT) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 042768/0585 →
PATENT SECURITY INTEREST (NOTES) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 042769/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 1, 2017
From: BUTCHER, WADE A.; NIJHAWAN, VIJAY B.; VIDYADHARA, SUMANTH
To: DELL PRODUCTS, L.P.
Reel/Frame 042191/0015 →
Continuity (1)
Related Publication 20180314511A1 · Nov 1, 2018
Cited By (4)
US 12,278,830 US 12,554,482 US 12,602,217 US 12,609,914