IP Library Granted Patent US 10,853,179
Granted Patent B2
US 10,853,179 · App. 16/229,264 · Granted Dec 1, 2020

Information handling system and method for restoring firmware in one or more regions of a flash memory device

Inventors: Adolfo S. Montero (Pflugerville, TX); Benson Lai (Neihu District, TW)
Assignee: Dell Products L.P.
G06F11/1417G06F9/4401G06F11/1469G06F11/2284G06F13/4282G06F21/575
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,853,179
App. No.
16/229,264
Granted
Dec 1, 2020
Kind
B2
Abstract

An information handling system (IHS) may include a platform controller hub (PCH), an embedded controller (EC) configured to execute a boot block stored in ROM to initiate a boot process for the IHS, a Flash memory device configured to store EC application firmware, boot firmware and backup boot firmware, which is substantially identical to the boot firmware, and an SPI bus that directly connects the EC to the Flash memory device during a portion of the boot process when the PCH is in reset. The EC uses the SPI bus to access the Flash memory device, retrieve the EC application firmware stored therein, store a local copy of the EC application firmware in internal RAM and execute the local copy of the EC application firmware while the PCH is in reset. The EC application firmware stored in RAM includes boot recovery firmware, which may be executed by the EC to restore the boot firmware if the boot firmware is damaged or corrupt.

Claims (43)

1. An information handling system (IHS), comprising:

a platform controller hub (PCH);

an embedded controller (EC) including a processing device, read only memory (ROM) and random access memory (RAM), wherein the processing device is configured to execute a boot block stored in ROM to initiate a boot process for the IHS;

a Flash memory device storing EC application firmware, boot firmware and backup boot firmware, which is identical to the boot firmware; and

a Serial Peripheral Interface (SPI) bus that directly connects the EC to the Flash memory device during a portion of the boot process when the PCH is in reset; and

wherein the EC is configured to bypass the PCH and directly access the Flash memory device via the SPI bus while the PCH is in reset to retrieve the EC application firmware from the Flash memory device, store a local copy of the EC application firmware in RAM and execute the local copy of the EC application firmware.

2. The information handling system as recited in claim 1 , wherein the local copy of the EC application firmware stored in RAM comprises boot recovery firmware, which is executable by the processing device to restore the boot firmware if the boot firmware is determined to be damaged or corrupt.

3. The information handling system as recited in claim 2 , wherein the boot recovery firmware is executable by the processing device to restore the boot firmware upon: receiving a command or a flag from another information handling system component, detecting a Hot key trigger, or detecting a timer expiration indicating that a problem has occurred with the boot process.

4. The information handling system as recited in claim 2 , wherein the boot recovery firmware is executable by the processing device to:

perform an integrity check on the boot firmware stored in the Flash memory device to determine if the boot firmware is damaged or corrupt; and

restore the boot firmware if the integrity check returns an error.

5. The information handling system as recited in claim 4 , wherein the boot recovery firmware is executable to perform the integrity check by applying a cryptographic hash function to a payload of the boot firmware.

6. The information handling system as recited in claim 2 , wherein the boot recovery firmware is executable by the processing device to restore the boot firmware by copying contents of a region of the Flash memory device comprising backup boot firmware into a region of the Flash memory device comprising the boot firmware.

7. The information handling system as recited in claim 2 , wherein the boot recovery firmware is executable by the processing device to check the integrity of other firmware regions within the Flash memory device and to restore one or more of the other firmware regions if they are damaged or corrupt.

8. The information handling system as recited in claim 2 , wherein the boot recovery firmware is executable by the processing device to restore the boot firmware, if the boot firmware is damaged or corrupt, before the PCH comes out of reset and before a central processing unit (CPU) of the IHS begins executing the boot firmware stored in the Flash memory device.

9. The information handling system as recited in claim 2 , wherein SPI bus directly connecting the EC to the Flash memory device is closed before a central processing unit (CPU) of the IHS begins executing the boot firmware stored in the Flash memory device.

10. A method performed by an embedded controller (EC) of an information handling system (IHS) during a boot process to restore firmware contained within one or more regions of a Flash memory device of the IHS, the method comprising:

accessing the Flash memory device via a Serial Peripheral Interface (SPI) bus, which directly connects the EC to the Flash memory device, to retrieve a copy of EC application firmware stored within an EC firmware region of the Flash memory device;

storing the copy of the EC application firmware in random access memory (RAM); and

executing the copy of the EC application firmware stored in RAM to restore firmware contained within one or more regions of the Flash memory device if the firmware contained therein is determined to be damaged or corrupt.

11. The method as recited in claim 10 , wherein the embedded controller performs said accessing, storing and executing before a platform controller hub (PCH) of the IHS comes out of reset and assumes control of the Flash memory device.

12. The method as recited in claim 10 , wherein the embedded controller performs said executing upon: receiving a command or a flag from another information handling system component, detecting a Hot key trigger, or detecting a timer expiration indicating that a problem has occurred with the boot process.

13. The method as recited in claim 10 , wherein said executing comprises:

performing an integrity check on the firmware contained within one or more regions of the Flash memory device to determine if the firmware contained therein is damaged or corrupt; and

restoring the firmware if the integrity check returns an error.

14. The method as recited in claim 13 , wherein said performing an integrity check comprises applying a cryptographic hash function to the firmware contained within one or more regions of the Flash memory device.

15. The method as recited in claim 10 , wherein if the firmware contained within one or more regions of the Flash memory device is determined to be damaged or corrupt, the embedded controller restores the firmware by copying a backup copy of the firmware, which is stored within another region of the Flash memory device, into the one or more regions of the Flash memory device.

16. The method as recited in claim 10 , wherein the embedded controller performs said executing to restore boot firmware, which is stored within a boot firmware region of the Flash memory device, if the boot firmware is determined to be damaged or corrupt.

17. The method as recited in claim 16 , wherein the embedded controller performs said executing to restore the boot firmware, if the boot firmware is determined to be damaged or corrupt, before a central processing unit (CPU) of the IHS begins executing the boot firmware within the boot firmware region of the Flash memory device.

18. The method as recited in claim 16 , further comprising closing the SPI bus directly connecting the EC to the Flash memory device before a central processing unit (CPU) of the IHS begins executing the boot firmware within the boot firmware region of the Flash memory device.

19. The method as recited in claim 10 , further comprising performing an integrity check on the EC application firmware stored within the EC firmware region of the Flash memory device before retrieving the copy of EC application firmware.

20. The method as recited in claim 19 , wherein if the integrity check determines that the EC application firmware is damaged or corrupt, the method further comprises:

accessing the Flash memory device, via SPI bus, to retrieve a backup copy of the EC application firmware from the Flash memory device;

storing the backup copy of the EC application firmware in RAM; and

executing the backup copy of the EC application firmware stored in RAM to restore firmware contained within one or more regions of the Flash memory device if the firmware contained therein is determined to be damaged or corrupt.

21. An information handling system (IHS), comprising:

a platform controller hub (PCH);

an embedded controller (EC) including a processing device, read only memory (ROM) and random access memory (RAM), wherein the processing device is configured to execute a boot block stored in ROM to initiate a boot process for the IHS;

a Flash memory device storing EC application firmware within an EC firmware region of the Flash memory device; and

a Serial Peripheral Interface (SPI) bus that directly connects the EC to the Flash memory device during a portion of the boot process when the PCH is in reset; and

wherein the EC is configured to bypass the PCH and directly access the Flash memory device via the SPI bus while the PCH is in reset to retrieve the EC application firmware from the Flash memory device, store a local copy of the EC application firmware in RAM and execute the local copy of the EC application firmware; and

wherein the local copy of the EC application firmware stored in RAM is executable by the processing device to restore firmware contained within one or more regions of the Flash memory device if the firmware contained therein is determined to be damaged or corrupt.

22. The information handling system as recited in claim 21 , wherein the Flash memory device stores boot firmware; and wherein the local copy of the EC application firmware stored in RAM is executable by the processing device to restore the boot firmware stored within the Flash memory device if the boot firmware is determined to be damaged or corrupt.

Assignments (5)
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 →
SECURITY AGREEMENT Recorded Oct 1, 2021
From: DELL PRODUCTS, L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 057682/0830 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2018
From: MONTERO, ADOLFO S.; LAI, BENSON
To: DELL PRODUCTS L.P.
Reel/Frame 047840/0982 →