IP Library Granted Patent US 11,144,328
Granted Patent B2
US 11,144,328 · App. 16/780,372 · Granted Oct 12, 2021

System method to update failover process by running basic input/output (BIOS) system boot code from non-volatile memory express device (NVME)

Inventors: Shekar Babu Suryanarayana (Bangalore, IN); Sumanth Vidyadhara (Bangalore, IN)
Assignee: Dell Products L.P.
G06F9/4406G06F13/1668
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,144,328
App. No.
16/780,372
Granted
Oct 12, 2021
Kind
B2
Abstract

A BIOS boot and update failover process is provided. A computing system can include flash storage on which the BIOS is stored, an embedded controller and an NVMe drive. After the BIOS successfully performs a boot process, a failover module can be executed to create a BIOS namespace on an NVMe namespace and then store a copy of the BIOS on the NVMe namespace. The failover module can also create a device path that identifies where the copy of the BIOS is stored on the NVMe namespace and store the device path on the embedded controller. The embedded controller can be configured to detect when the BIOS on the flash storage fails to initiate a subsequent boot process and, in response, employ the device path to locate and load the copy of the BIOS from the NVMe namespace to thereby cause the computing system to be booted.

Claims (52)

1. A method for booting a computing system comprising:

in response to a BIOS portion that is stored on flash storage of a computing system having been executed to perform a boot process, causing a copy of the BIOS portion to be stored on a non-volatile memory express (NVMe) namespace;

in conjunction with causing the copy of the BIOS portion to be stored on the NVMe namespace, causing a device path to be stored on an embedded controller, the device path identifying where the copy of the BIOS portion is stored on the NVMe namespace; and

in response to the embedded controller detecting that the BIOS portion stored on flash storage has failed to load as part of an attempt to perform the boot process, using the device path to cause the copy of the BIOS portion to be loaded to perform the boot process.

2. The method of claim 1 , wherein the copy of the BIOS portion is caused to be stored on the NVMe namespace during a first successful boot of the computing system.

3. The method of claim 1 , further comprising:

wherein causing the copy of the BIOS portion to be stored on the NVMe namespace comprises creating the NVMe namespace.

4. The method of claim 1 , wherein the device path includes a BIOS portion device path node that defines an address within the NVMe namespace where the copy of the BIOS portion is stored.

5. The method of claim 4 , wherein the device path also includes a BIOS header device path node that identifies a BIOS header in the NVMe namespace.

6. The method of claim 5 , wherein the device path also includes a device path node that identifies the NVMe namespace.

7. The method of claim 4 , wherein using the device path to cause the copy of the BIOS portion to be loaded to perform the boot process comprises reading the copy of the BIOS portion from the address defined in the BIOS portion device path node.

8. The method of claim 7 , wherein using the device path to cause the copy of the BIOS portion to be loaded to perform the boot process comprises enumerating an NVMe controller that is identified in the device path.

9. The method of claim 1 , wherein detecting that the BIOS portion stored on the flash storage has failed to load comprises handling a Serial Peripheral Interconnect fault.

10. The method of claim 1 , further comprising:

storing an updated version of the BIOS portion on the NVMe namespace; and

causing an updated device path to be stored on the embedded controller, the updated device path identifying where the updated version of the BIOS portion is stored on the NVMe namespace.

11. The method of claim 10 , further comprising:

causing the updated version of the BIOS portion to be loaded to perform a subsequent boot process.

12. A computing system comprising:

a central processing unit;

system memory;

flash storage on which a BIOS portion is stored;

an embedded controller;

an NVMe drive; and

a failover module that is configured to execute during a boot process to perform the following:

create a BIOS namespace on the NVMe drive;

cause a copy of the BIOS portion to be stored on the BIOS namespace; and

cause the embedded controller to store a device path to the copy of the BIOS portion that is stored on the BIOS namespace.

13. The computing system of claim 12 , wherein the embedded controller is configured to perform the following:

during a subsequent boot process, detect when the BIOS portion stored on the flash storage fails to load;

in response to the detection, employ the device path to cause the copy of the BIOS portion stored on the BIOS namespace to be loaded to perform the subsequent boot process.

14. The computing system of claim 13 , wherein the device path identifies an address in the BIOS namespace where the copy of the BIOS portion is stored, and wherein employing the device path to cause the copy of the BIOS portion stored on the BIOS namespace to be loaded to perform the subsequent boot process comprises reading the copy of the BIOS portion from the address.

15. The computing system of claim 12 , wherein the failover module is further configured to:

cause an updated version of the BIOS portion to be stored on the BIOS namespace; and

cause the embedded controller to store an updated device path to the updated version of the BIOS portion that is stored on the BIOS namespace.

16. The computing system of claim 15 , wherein the embedded controller is further configured to employ the updated device path to cause the updated version of the BIOS portion stored on the BIOS namespace to be loaded to perform a subsequent boot process.

17. The computing system of claim 12 , wherein the device path includes:

device path nodes that identify the BIOS namespace as a namespace on the NVMe drive;

a BIOS header device path node that identifies a BIOS header stored on the BIOS namespace; and

a BIOS portion device path node that identifies where the copy of the BIOS portion is stored on the BIOS namespace.

18. One or more computer storage media storing computer executable instructions which when executed on a computing system implement a method comprising:

in response to detecting that a BIOS portion stored on a flash storage has successful performed a boot process, causing a copy of the BIOS portion to be stored on a BIOS namespace on an NVMe drive;

creating a device path that identifies the BIOS namespace and where the copy of the BIOS portion is stored on the BIOS namespace; and

causing the device path to be stored on an embedded controller.

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

detecting, by the embedded controller, that the BIOS portion stored on the flash storage has failed to perform a subsequent boot process;

accessing the device path; and

employing the device path to cause the copy of the BIOS portion to be loaded from the BIOS namespace to thereby cause the computing system to be booted using the copy of the BIOS portion.

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

causing an updated version of the BIOS portion to be stored on the BIOS namespace;

creating an updated device path that identifies the BIOS namespace and where the updated version of the BIOS portion is stored on the BIOS namespace; and

causing the updated device path to be stored on the embedded controller.

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 4, 2020
From: SURYANARAYANA, SHEKAR BABU; VIDYADHARA, SUMANTH
To: DELL PRODUCTS L.P.
Reel/Frame 051708/0603 →