IP Library Granted Patent US 10,108,485
Granted Patent B2
US 10,108,485 · App. 15/380,242 · Granted Oct 23, 2018

Method for automatic correction of nonvolatile memory in information handling systems

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,108,485
App. No.
15/380,242
Granted
Oct 23, 2018
Kind
B2
Abstract

A method for automatic correction of nonvolatile memory in information handling systems includes storing ECC data for a compressed BIOS firmware. The ECC data are used to identify and correct error bits in the compressed BIOS firmware. The discovered error bits are recorded in the nonvolatile memory and accessed for a faster correction method for the compressed BIOS firmware than using the ECC data on subsequent attempts.

Claims (82)

1. A method for correcting nonvolatile memories in information handling systems, the method comprising:

determining whether a compressed version of a basic input/output system (BIOS) firmware stored on a nonvolatile memory of an information handling system is decompressible;

if the compressed version of the BIOS firmware is not decompressible:

copying the compressed version of the BIOS firmware to a system memory of the information handling system;

using error correction codes (ECC) stored on the nonvolatile memory for the compressed version of the BIOS firmware, identifying and correcting first error bits for the compressed version of the BIOS firmware in the compressed version of the BIOS firmware in the system memory;

recording the first error bits for the compressed version of the BIOS firmware identified from the compressed version of the BIOS firmware in a recorded set of error bits at the nonvolatile memory; and

using the first error bits for the compressed version of the BIOS firmware identified, decompressing the compressed version of the BIOS firmware in the system memory; and

prior to determining whether the compressed version of the BIOS firmware is decompressible:

determining whether a recorded set of error bits for the compressed version of the BIOS firmware is recorded at the nonvolatile memory; and

if the recorded set of error bits for the compressed version of the BIOS firmware is recorded at the nonvolatile memory:

copying the compressed version of the BIOS firmware to the system memory; and

using the recorded set of error bits for the compressed version of the BIOS firmware recorded at the nonvolatile memory, identifying and correcting the first error bits for the compressed version of the BIOS firmware in the compressed version of the BIOS firmware in the system memory.

2. The method of claim 1 , wherein the recorded set of error bits recorded at the nonvolatile memory comprises the first error bits.

3. The method of claim 1 , further comprising:

if the compressed version of the BIOS firmware is decompressible:

decompressing, by an embedded controller processor of the information handling system, the compressed version of the BIOS firmware;

executing, by a primary processor of the information handling system, an uncompressed version of the BIOS firmware from the system memory; and

booting, by the primary processor, the information handling system.

4. The method of claim 3 , further comprising, while the information handling system is operating after the booting:

determining whether the compressed version of the BIOS firmware is decompressible using the first error bits of the recorded set of error bits for the compressed version of the BIOS firmware;

if the compressed version of the BIOS firmware is not decompressible using the first error bits of the recorded set of error bits for the compressed version of the BIOS firmware:

sending a notification to a user of the information handling system that the information handling system is not rebootable;

copying the compressed version of the BIOS firmware to the system memory;

using the ECC, identifying and correcting second error bits for the compressed version of the BIOS firmware in the compressed version of the BIOS firmware in the system memory; and

recording the second error bits for the compressed version of the BIOS firmware in addition to first error bits of the recorded set of error bits for the compressed version of the BIOS firmware in the recorded set of error bits at the nonvolatile memory.

5. The method of claim 1 , wherein an uncompressed version of the BIOS firmware complies with a Unified Extensible Firmware Interface (UEFI) standard.

6. The method of claim 5 , wherein the uncompressed version of the BIOS firmware includes code to execute a driver execution environment (DXE) and a system management mode (SMM).

7. An embedded controller (EC) for correcting nonvolatile memories in information handling systems, the embedded controller comprising:

an EC processor in an information handling system including a primary processor different from the EC processor, the EC processor having access to a nonvolatile memory storing instructions executable to:

determine whether a compressed version of a basic input/output system (BIOS) firmware stored on the nonvolatile memory is decompressible;

if the compressed version of the BIOS firmware is not decompressible:

copying the compressed version of the BIOS firmware to a system memory of the information handling system;

using error correction codes (ECC) stored on the nonvolatile memory for the compressed version of the BIOS firmware, identify and correct first error bits for the compressed version of the BIOS firmware in the BIOS firmware in the system memory;

record the first error bits for the compressed version of the BIOS firmware identified from the compressed version of the BIOS firmware in a recorded set of error bits at the nonvolatile memory; and

using the first error bits for the compressed version of the BIOS firmware identified, decompress the compressed version of the BIOS firmware in the system memory; and

prior to determining whether the compressed version of the BIOS firmware is decompressible:

determine whether a recorded set of error bits for the compressed version of the BIOS firmware is recorded at the nonvolatile memory; and

if the recorded set of error bits for the compressed version of the BIOS firmware is recorded at the nonvolatile memory:

copy the compressed version of the BIOS firmware to the system memory; and

using the recorded set of error bits for the compressed version of the BIOS firmware recorded at the nonvolatile memory, identify and correct the first error bits for the compressed version of the BIOS firmware in the compressed version of the BIOS firmware in the system memory.

8. The embedded controller of claim 7 , wherein the recorded set of error bits recorded at the nonvolatile memory comprises the first error bits.

9. The embedded controller of claim 7 , further comprising instructions to:

if the compressed version of the BIOS firmware is decompressible:

decompress the compressed version of the BIOS firmware; and

execute an uncompressed version of the BIOS firmware from the system memory, wherein the primary processor having access to the nonvolatile memory further comprising instructions to:

boot the information handling system.

10. The embedded controller of claim 9 , further comprising instructions to, while the information handling system is operating after booting:

determine whether the compressed version of the BIOS firmware is decompressible using the first error bits of the recorded set of error bits for the compressed version of the BIOS firmware;

if the compressed version of the BIOS firmware is not decompressible using the first error bits of the recorded set of error bits for the compressed version of the BIOS firmware:

send a notification to a user of the information handling system that the information handling system is not rebootable;

copy the compressed version of the BIOS firmware to the system memory;

using the ECC, identify and correct second error bits for the compressed version of the BIOS firmware in the compressed version of the BIOS firmware in the system memory; and

record the second error bits for the compressed version of the BIOS firmware in addition to the first error bits of the recorded set of error bits for the compressed version of the BIOS firmware in the recorded set of error bits at the nonvolatile memory.

11. The embedded controller of claim 7 , wherein an uncompressed version of the BIOS firmware complies with a Unified Extensible Firmware Interface (UEFI) standard.

12. The embedded controller of claim 11 , wherein the uncompressed version of the BIOS firmware includes code to execute a driver execution environment (DXE) and a system management mode (SMM).

13. A non-transitory computer readable nonvolatile memory storing instructions executable by an embedded controller (EC) processor to:

determine, for an information handling system having a primary processor different from the EC processor, whether a compressed version of a basic input/output system (BIOS) firmware stored on the nonvolatile memory is decompressible;

if the compressed version of the BIOS firmware is not decompressible:

copying the compressed version of the BIOS firmware to a system memory of the information handling system;

using error correction codes (ECC) stored on the nonvolatile memory for the compressed version of the BIOS firmware, identify and correct first error bits for the compressed version of the BIOS firmware in the compressed version of the BIOS firmware in the system memory;

record the first error bits for the compressed version of the BIOS firmware identified from the compressed version of the BIOS firmware in a recorded set of error bits at the nonvolatile memory; and

using the first error bits for the compressed version of the BIOS firmware identified, decompress the compressed version of the BIOS firmware in the system memory; and

prior to determining whether the compressed version of the BIOS firmware is decompressible:

determine whether a recorded set of error bits for the compressed version of the BIOS firmware is recorded at the nonvolatile memory; and

if the recorded set of error bits for the compressed version of the BIOS firmware is recorded at the nonvolatile memory:

copy the compressed version of the BIOS firmware to the system memory; and

using the recorded set of error bits for the compressed version of the BIOS firmware recorded at the nonvolatile memory, identify and correct the first error bits for the compressed version of the BIOS firmware in the compressed version of the BIOS firmware in the system memory.

14. The nonvolatile memory of claim 13 , wherein the recorded set of error bits recorded at the nonvolatile memory comprises the first error bits.

15. The nonvolatile memory of claim 13 , further comprising instructions to:

if the compressed version of the BIOS firmware is decompressible:

decompress the compressed version of the BIOS firmware; and

execute an uncompressed version of the BIOS firmware from the system memory, wherein the primary processor having access to the nonvolatile memory further comprising instructions to:

boot the information handling system.

16. The nonvolatile memory of claim 15 , further comprising instructions to, while the information handling system is operating after booting:

determine whether the compressed version of the BIOS firmware is decompressible using the first error bits of the recorded set of error bits for the compressed version of the BIOS firmware;

if the compressed version of the BIOS firmware is not decompressible using the first error bits of the recorded set of error bits for the compressed version of the BIOS firmware:

send a notification to a user of the information handling system that the information handling system is not rebootable;

copy the compressed version of the BIOS firmware to the system memory;

using the ECC, identify and correct second error bits for the compressed version of the BIOS firmware in the compressed version of the BIOS firmware in the system memory; and

record the second error bits for the compressed version of the BIOS firmware in addition to the first error bits of the recorded set of error bits for the compressed version of the BIOS firmware in the recorded set of error bits at the nonvolatile memory.

17. The nonvolatile memory of claim 13 , wherein an uncompressed version of the BIOS firmware complies with a Unified Extensible Firmware Interface (UEFI) standard.

18. The nonvolatile memory of claim 17 , wherein the uncompressed version of the BIOS firmware includes code to execute a driver execution environment (DXE) and a system management mode (SMM).

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 (041829/0873) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL INTERNATIONAL L.L.C.; 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/0724 →
RELEASE OF SECURITY INTEREST AT REEL 041808 FRAME 0516 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL INTERNATIONAL, L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058297/0573 →
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 (NOTES) Recorded Feb 28, 2017
From: DELL INTERNATIONAL L.L.C.; 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 041829/0873 →
PATENT SECURITY INTEREST (CREDIT) Recorded Feb 24, 2017
From: DELL INTERNATIONAL, L.L.C.; 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 041808/0516 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2016
From: CHAIKEN, CRAIG LAWRENCE; SAMUEL, BALASINGH PONRAJ; JOSHI, ANAND PRAKASH
To: DELL PRODUCTS L.P.
Reel/Frame 040992/0655 →