# US 10,768,940 B2 · Restoring a processing unit that has become hung during execution of an option ROM

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,768,940 B2
- Document ID: US10768940B2
- Status: Granted
- Kind: B2
- Application number: 16/130,037
- Filed: 2018-09-13
- Published: 2019-08-08
- Granted: 2020-09-08
- Earliest claimed: 2018-02-08
- Assignees: Lenovo Enterprise Solutions (Singapore) Pte. Ltd.
- Applicants: Lenovo Enterprise Solutions (Singapore) Pte. Ltd.
- Inventors: Zhijun Liu; Yun Yun Lou; Xuefeng Sun
- Web page: https://patentgrep.com/patent/US10768940B2

## CPC

- G06F 9/4401: Bootstrapping (security arrangements therefor G06F21/57)
- G06F 11/07: Responding to the occurrence of a fault, e.g. fault tolerance
- G06F 11/0793: {Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40)}
- G06F 11/1417: {Boot up procedures}
- G06F 1/24: Resetting means
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A computing device includes an accessory containing an option ROM, a first processor adapted to boot the computing device and to execute the option ROM, and a second processor adapted to be activated by the first processor to monitor execution of the option ROM by the first processor. The second processor is adapted to restore the first processor to a state prior to execution of the option ROM in response to the first processor becoming hung during execution of the option ROM. A computer program product includes program instructions executable by a processor to monitor execution of the option ROM by a first processor of a computing device, determine whether the first processor has become hung during execution of the option ROM, and restore the first processor to an execution environment that the first processor had prior to execution of the option ROM.

## Claims

### Claim 1

A computing device, comprising:
an accessory containing an option ROM;
a first processing unit adapted to boot the computing device and to execute the option ROM; and
a second processing unit adapted to be activated by the first processing unit to monitor execution of the option ROM by the first processing unit;
wherein the second processing unit is adapted to restore the first processing unit to a state prior to execution of the option ROM in response to the first processing unit becoming hung during execution of the option ROM.

### Claim 2 (depends on 1)

The computing device of claim 1, wherein the first processing unit is further adapted to save an execution environment of the first processing unit into a first memory of the computing device before executing the option ROM.

### Claim 3 (depends on 2)

The computing device to claim 2, wherein the first memory is a system memory of the computing device.

### Claim 4 (depends on 2)

The computing device to claim 2, wherein the second processing unit is further adapted to store information about the accessory into a second memory of the computing device, wherein the information about the accessory indicates whether the option ROM of the accessory will execute successfully.

### Claim 5 (depends on 4)

The computing device according to claim 4, wherein the second memory is non-volatile memory.

### Claim 6 (depends on 4)

The computing device of claim 4, wherein the first processing unit is adapted to continue boot of the computing device after the first processing unit is restored to the state prior to execution of the option ROM by skipping the option ROM in response to the information stored in the second memory.

### Claim 7 (depends on 4)

The computing device of claim 4, wherein the second memory is memory attached to an Integrated Management Module.

### Claim 8 (depends on 4)

The computing device of claim 4, wherein the second processing unit is further adapted to initiate a reboot of the computing device after storing the information about the accessory into the second memory of the computing device.

### Claim 9 (depends on 8)

The computing device of claim 8, wherein the first processing unit is further adapted to disable the accessory during the reboot of the computing device and before activating the second processing unit in response to the information about the accessory stored in the second memory indicating that the option ROM of the accessory will not execute successfully.

### Claim 10 (depends on 1)

The computing device of claim 1, wherein the first and second processing units are first and second cores of a multicore microprocessor.

### Claim 11 (depends on 1)

The computing device of claim 1, wherein the first processing unit is a boot strap processor, and wherein the second processing unit is an application processor.

### Claim 12

A computer program product comprising non-transitory computer readable storage media having program instructions embodied therewith, the program instructions executable by a processor to:
monitor execution of an option ROM by a first processor of a computing device, wherein the option ROM is included in an accessory coupled to the computing device;
determine whether the first processor has become hung during execution of the option ROM; and
restore the first processor to an execution environment that the first processor had prior to execution of the option ROM.

### Claim 13 (depends on 12)

The computer program product of claim 12, where the first processor is a boot strap processor.

### Claim 14 (depends on 12)

The computer program product of claim 12, wherein the program instructions are further executable by the processor to:
store information about the accessory into a second memory of the computing device prior to restoring the first processor to the execution environment that the first processor had prior to execution of the option ROM.

### Claim 15 (depends on 14)

The computer program product of claim 14, wherein the second memory is a non-volatile memory of the computing device.

### Claim 16 (depends on 14)

The computer program product of claim 14, wherein the second memory is part of an Integrated Management Module.

### Claim 17 (depends on 14)

The computer program product of claim 14, wherein the information about the accessory stored into the second memory instructs the first processor to skip execution of the option ROM.

### Claim 18 (depends on 17)

The computer program product of claim 17, wherein the program instructions are further executable by the processor to:
initiate a reboot of the computing device.
