IP Library Granted Patent US 11,294,691
Granted Patent B2
US 11,294,691 · App. 16/780,287 · Granted Apr 5, 2022

Dynamic memory layouts for firmware updates based on OEM memory subsystem

Inventors: Sumanth Vidyadhara (Bangalore, IN); Karunakar Poosapalli (Telangana, IN)
Assignee: Dell Products L.P.
G06F9/4406G06F8/65G06F9/5016G06F12/0246G06F12/06G06F9/4401
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,294,691
App. No.
16/780,287
Granted
Apr 5, 2022
Kind
B2
Abstract

A capsule-based firmware update process is provided. After an operating system has provided a firmware update in the form of a capsule and the computing system is rebooted, a module can be loaded to locate a memory subsystem separate from the system memory. The module can initialize the separate memory subsystem and then identify a contiguous block of memory within the separate memory subsystem. The module can then cause the capsule to be coalesced from the system memory into the separate memory subsystem. Once the capsule is coalesced into the separate memory subsystem and the system memory is registered, the module can cause the coalesced capsule to be copied back into system memory where it can be accessed by other components that are subsequently loaded during the boot process.

Claims (47)

1. A method, implemented on a computing system, for providing a firmware update in the form of a capsule, the method comprising:

during a boot process on a computing system, detecting that a capsule exists in system memory, the capsule containing a firmware update;

in response to the detection, selecting a first separate memory subsystem from among multiple separate memory subsystems that are available on the computing system;

identifying a block of memory in the first separate memory subsystem;

causing the capsule to be coalesced from the system memory into the block of memory in the first separate memory subsystem;

causing the capsule that has been coalesced into the block of memory in the first separate memory subsystem to be copied to the system memory.

2. The method of claim 1 , wherein causing the capsule to be coalesced from the system memory into the block of memory in the first separate memory subsystem comprises identifying a physical address of the block of memory.

3. The method of claim 1 , further comprising:

prior to causing the capsule to be coalesced from the system memory into the block of memory in the separate memory subsystem, initializing the first separate memory subsystem.

4. The method of claim 1 , further comprising:

prior to causing the capsule that has been coalesced into the block of memory in the first separate memory subsystem to be copied to the system memory, registering the system memory.

5. The method of claim 1 , wherein causing the capsule that has been coalesced into the block of memory in the first separate memory subsystem to be copied to the system memory comprises identifying a physical address of the block of memory.

6. The method of claim 1 , wherein

the first separate memory subsystem is selected from among the multiple separate memory subsystems based on a policy.

7. The method of claim 1 , wherein the separate memory subsystem is one of:

GPU memory;

NVMe-based storage; or

dedicated internal memory.

8. The method of claim 1 , further comprising:

prior to causing the capsule to be coalesced from the system memory into the block of memory in the separate memory subsystem, causing the system memory to be initialized.

9. A computing system comprising:

one or more processors;

system memory;

multiple separate memory subsystems;

an operating system; and

firmware that is configured to perform the following:

during a boot process, detect that the operating system has stored a capsule in the system memory, the capsule containing a firmware update;

in response to the detection, select a first separate memory subsystem from among the multiple separate memory subsystems;

identify a block of memory in the first separate memory subsystem;

cause the capsule to be coalesced from the system memory into the block of memory in the first separate memory subsystem; and

cause the capsule that has been coalesced into the block of memory in the first separate memory subsystem to be copied to the system memory.

10. The computing system of claim 9 , wherein the firmware comprises a pre-EFI initialization module.

11. The computing system of claim 9 , further comprising:

a policy that dictates that the block of memory in the first separate memory subsystem should be identified.

12. The computing system of claim 9 , wherein the firmware causes the capsule to be coalesced from the system memory into the block of memory in the first separate memory subsystem by identifying a physical address of the block of memory.

13. The computing system of claim 9 , wherein the firmware is further configured to initialize the first separate memory subsystem prior to causing the capsule to be coalesced from the system memory into the block of memory in the first separate memory subsystem.

14. The computing system of claim 9 , wherein the firmware is further configured to register the system memory prior to causing the capsule that has been coalesced into the block of memory in the first separate memory subsystem to be copied to the system memory.

15. The computing system of claim 9 , wherein the first separate memory subsystem is one of: GPU memory, NVMe-based storage or dedicated internal memory.

16. One or more computer storage media storing computer executable which when executed on a computing system implement a method for providing a firmware update in the form of a capsule, the method comprising:

during an initialization stage of a boot process, detecting that an operating system on the computing system has stored a capsule in system memory, the capsule including a firmware update;

in response to the detection, selecting a first separate memory subsystem, from among multiple separate memory subsystems, to be employed to coalesce the capsule;

identifying a block of memory in the first separate memory subsystem;

causing the capsule to be coalesced from the system memory into the block of memory in the first separate memory subsystem; and

after the capsule is coalesced into the block of memory in the first separate memory subsystem, causing the coalesced capsule to be copied into the system memory.

17. The computer storage media of claim 16 , wherein determining that the first separate memory subsystem is to be employed to coalesce the capsule comprises selecting the first separate memory subsystem from among multiple separate memory subsystems based on a policy.

18. The computer storage media of claim 16 , wherein the method further comprises:

after the capsule is coalesced into the block of memory in the first separate memory subsystem and prior to causing the coalesced capsule to be copied into the system memory, registering the system memory.

Assignments (13)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0582 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 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
Reel/Frame 060438/0742 →
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 (052851/0081) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0441 →
RELEASE OF SECURITY INTEREST AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2020
From: VIDYADHARA, SUMANTH; POOSAPALLI, KARUNAKAR
To: DELL PRODUCTS L.P.
Reel/Frame 051703/0329 →