IP Library Granted Patent US 10,216,936
Granted Patent B2
US 10,216,936 · App. 14/621,708 · Granted Feb 26, 2019

Method of preventing computer malfunction, computer program, and computer

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,216,936
App. No.
14/621,708
Granted
Feb 26, 2019
Kind
B2
Abstract

The malfunction of a system caused by data managed by system firmware is prevented. A firmware ROM 100 is provided with a code area, a default area, and variable areas. Data (CV) fundamental to pre-boot created by a UEFI are written to the variable area. Global variables (GV) defined by the UEFI and data (UV) created by an OS are written to the variable area. The variable area is a recording area capable of being write-locked in the firmware ROM. The UEFI write-locks the variable area after completion of the pre-boot. Thus, the rewriting of CV by the OS can be prevented.

Claims (62)

1. An apparatus comprising:

a processor;

a memory that stores code executable by the processor, the code comprising:

code that writes, to a first variable area, configuration data fundamental to pre-boot;

code that writes, to the second variable area, published data defined by the system firmware to be rewritable by an operating system;

code that writes user data to the second variable area in response to a request from the operating system; and

code that restricts writing to the first variable area after completion of the pre-boot;

code that checks a remaining capacity of the second variable area during the pre-boot and displays a screen indicating that the second variable area is to be cleaned up when the remaining capacity is less than a predetermined value;

code that determines whether a rewriting request for configuration variables is during pre-boot or not;

code that processes the rewriting request when determining that the rewriting request is during the pre-boot; and

code that disables the rewriting of the configuration variables when determining that the pre-boot is completed.

2. The apparatus of claim 1 , wherein the code that restricts the writing write-locks an interface controller connected to the first variable area.

3. The apparatus of claim 1 , wherein the code for restricting the writing includes code for invalidating a request for updating the configuration data by the operating system.

4. The apparatus of claim 2 , wherein the code for restricting the writing includes code for invalidating a request for updating the configuration data by the operating system.

5. The apparatus of claim 1 , wherein the code further comprises:

code that erases the user data when an instruction for the cleanup is received.

6. The apparatus of claim 1 , wherein the code further comprises:

code that recognizes a third variable area storing default values of the configuration data and the published data;

code that recognizes a third variable area storing default values of the configuration data and the published data;

code that compares the configuration data and the published data with the default values, respectively, during the pre-boot; and

code that writes the default values to the first variable area or the second variable area when it is determined that either the configuration data or the published data are erased.

7. The apparatus of claim 1 , wherein the system firmware conforms to a UEFI specification and the published data are global variables defined in the UEFI specification.

8. The apparatus of claim 7 , further wherein the code further comprises:

code that determines the presence or absence of alteration to parameters of global variables related to boot among the global variables recorded in the second variable area during the pre-boot; and

code that writes default values when it is determined that the parameters are altered.

9. The apparatus of claim 8 , wherein the global variables related to the boot are Boot####, BootOrder, Drive####, DriveOrder, and Key####.

10. The apparatus of claim 7 , wherein the operating system runs in a UEFI native mode in accordance with the UEFI specification.

11. The apparatus of claim 1 , wherein the code further comprises code that processes a rewriting request for the global variables and the user variables when determining that the pre-boot is completed.

12. A method comprising:

writing, by use of a processor, to a first storage area of a nonvolatile memory, configuration variables fundamental to pre-boot;

writing, to a second storage area of the nonvolatile memory, global variables defined in a UEFI specification;

writing, to a third storage area of the nonvolatile memory, user variables in response to a request received from an operating system corresponding to the UEFI specification; and

restricting access from the operating system to the first storage area after completion of the pre-boot;

checking a remaining capacity of the second variable area during the pre-boot and displaying a screen indicating that the second variable area is to be cleaned up when the remaining capacity is less than a predetermined value;

determining whether a rewriting request for configuration variables is during pre-boot or not;

processing the rewriting request when determining that the rewriting request is during the pre-boot; and

disabling the rewriting of the configuration variables when it is determined that the pre-boot is completed.

13. The method of claim 12 , wherein the code that restricts the writing write-locks an interface controller connected to the first variable area.

14. The method of claim 12 , wherein restricting the writing includes invalidating a request for updating the configuration data by the operating system.

15. The method of claim 12 , further comprising:

checking a remaining capacity of the second variable area during the pre-boot;

displaying a screen indicating that the second variable area is to be cleaned up when the remaining capacity is less than a predetermined value; and

erasing the user data when an instruction for the cleanup is received.

16. The method of claim 12 , further comprising:

recognizing a third variable area storing default values of the configuration data and the published data;

comparing the configuration data and the published data with the default values, respectively, during the pre-boot; and

writing the default values to the first variable area or the second variable area when it is determined that either the configuration data or the published data are erased.

17. A system comprising:

a processor;

a disk drive storing an operating system conforming to a UEFI specification;

a nonvolatile memory storing UEFI code, the nonvolatile memory comprising:

a first recording area for writing configuration data fundamental to pre-boot;

a second recording area for writing data defined in the UEFI specification and user data created by the operating system; and

a memory that stores code executable by the processor, the code comprising code for restricting writing from the operating system to the first recording area after completion of the pre-boot;

the code executable by the processor further comprising code for:

checking a remaining capacity of the second variable area during the pre-boot and displaying a screen indicating that the second variable area is to be cleaned up when the remaining capacity is less than a predetermined value;

determining alteration to parameters of global variables related to boot among the global variables recorded in the second variable area during the pre-boot and writes default values of the configuration data and the published data;

determining whether a rewriting request for configuration variables is during pre-boot or not;

processing the rewriting request when it is determined that the rewriting request is during the pre-boot; and

disabling the rewriting of the configuration variables when it is determined that the pre-boot is completed.

18. The system of claim 17 , wherein the code for restricting the writing resides at least partially in an interface controller for the nonvolatile memory.

19. The system of claim 18 , wherein the second recording area is divided into a recording area of data defined in the UEFI specification and a recording area of the user data.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2025
From: LENOVO PC INTERNATIONAL LIMITED
To: LENOVO SWITZERLAND INTERNATIONAL GMBH
Reel/Frame 069870/0670 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2019
From: LENOVO (SINGAPORE) PTE LTD
To: LENOVO PC INTERNATIONAL LTD
Reel/Frame 049844/0272 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2015
From: MORISHIGE, YUSAKU; SASAKI, KEN; ANDOH, NORIHIRO
To: LENOVO (SINGAPORE) PTE. LTD.
Reel/Frame 034959/0123 →