# US 2014/0157229 A1 · Streamlining Hardware Initialization Code

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

- Number: US 2014/0157229 A1
- Document ID: US20140157229A1
- Status: Published application
- Kind: A1
- Application number: 13/693,420
- Filed: 2012-12-04
- Published: 2014-06-05
- Earliest claimed: 2012-12-04
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Daniel M. Crowell; John Farrugia; Michael J. Jones; David Dean Sanner
- Web page: https://patentgrep.com/patent/US20140157229A1

## CPC

- G06F 8/72: Code refactoring
- G06F 8/30: Creation or generation of source code
- G06F 8/4443: {Inlining}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

According to one embodiment of the present disclosure, hardware initialization code and error action information are retrieved from separate storage areas. The hardware initialization code includes code that initializes a device, and also includes placeholders corresponding to actions that are performed when the device fails initialization. Likewise, the error action information describes the actions that are performed when the device fails initialization. The error action information is converted into macros that include lines of code. As such, the error action placeholders are matched to the macros and, in turn, each of the error action placeholders is replaced with the lines of code corresponding to the matched macros.

## Claims

### Claim 1

(canceled)

### Claim 2

(canceled)

### Claim 3

(canceled)

### Claim 4

(canceled)

### Claim 5

(canceled)

### Claim 6

(canceled)

### Claim 7

(canceled)

### Claim 8

An information handling system comprising:
one or more processors;
a memory coupled to at least one of the processors;
one or more storage areas coupled to at least one of the processors;
a set of computer program instructions stored in the memory and executed by at least one of the processors in order to perform actions of:
retrieving, from a first one of the storage areas, hardware initialization code that is adapted to initialize a device, wherein the hardware initialization code also includes an error action placeholder, the error action placeholder corresponding to one or more actions that are performed in response to detecting a failure during the initialization of the device;
retrieving error action information from a second one of the storage areas, wherein the error action information describes one or more of the actions that are performed in response to detecting the failure during the initialization of the device;
converting the error action information to one or more macros, wherein each of the one or more macros includes one or more lines of code;
matching the error action placeholder to one of the macros; and
replacing the error action placeholder in the hardware initialization code with the lines of code corresponding to the macro that matched the error action placeholder.

### Claim 9 (depends on 8)

The information handling system of claim 8 wherein one or more of the processors perform additional actions comprising:
compiling the modified hardware initialization code, resulting in hardware initialization firmware code; and
executing the hardware initialization firmware code wherein, during the execution, the hardware initialization firmware code executes one or more of the actions in response to the device failing the initialization.

### Claim 10 (depends on 8)

The information handling system of claim 8 wherein one or more of the processors perform additional actions comprising:
the error action information is generated in human-recognizable format; and
the hardware initialization code includes a plurality of error action placeholders that are macro call functions, wherein the error action placeholder is included in the plurality of error action placeholders and is one of the macro call functions.

### Claim 11 (depends on 10)

The information handling system of claim 10 wherein one or more of the processors perform additional actions comprising:
converting one more create macro calls included in the hardware initialization code to the macro call functions.

### Claim 12 (depends on 8)

The information handling system of claim 8 wherein one of the actions de-configures the device in response to the device failing initialization.

### Claim 13 (depends on 8)

The information handling system of claim 8 wherein one of the actions logs error data in response to the device failing initialization, and wherein one or more of the processors perform additional actions comprising:
providing the logged error data to a developer tool;
receiving, from the developer tool, one or more software changes;
in response to the one or more software changes corresponding to one or more of the actions:
updating the error action information in the second storage area;
converting the updated error action information to one or more updated lines of code; and
modifying the hardware initialization code by replacing the error action placeholder with the one or more updated lines of code.

### Claim 14

The information handling system of 13 wherein, in response to the one or more software changes corresponding to the hardware initialization code, and wherein one or more of the processors perform additional actions comprising:
updating the hardware initialization code based upon the one or more software changes; and
modifying the updated hardware initialization code by replacing the error action placeholder with the lines of code corresponding to the macro that matched the error action placeholder.

### Claim 15

A computer program product stored in a computer readable storage medium, comprising computer program code that, when executed by an information handling system, causes the information handling system to perform actions comprising:
retrieving, from a first one of the storage areas, hardware initialization code that is adapted to initialize a device, wherein the hardware initialization code also includes an error action placeholder, the error action placeholder corresponding to one or more actions that are performed in response to detecting a failure during the initialization of the device;
retrieving error action information from a second one of the storage areas, wherein the error action information describes one or more of the actions that are performed in response to detecting the failure during the initialization of the device;
converting the error action information to one or more macros, wherein each of the one or more macros includes one or more lines of code;
matching the error action placeholder to one of the macros; and
replacing the error action placeholder in the hardware initialization code with the lines of code corresponding to the macro that matched the error action placeholder.

### Claim 16 (depends on 15)

The computer program product of claim 15 wherein the information handling system performs additional actions comprising:
compiling the modified hardware initialization code, resulting in hardware initialization firmware code; and
executing the hardware initialization firmware code wherein, during the execution, the hardware initialization firmware code executes one or more of the actions in response to the device failing the initialization.

### Claim 17 (depends on 15)

The computer program product of claim 15 wherein the information handling system performs additional actions comprising:
the error action information is generated in human-recognizable format; and
the hardware initialization code includes a plurality of error action placeholders that are macro call functions, wherein the error action placeholder is included in the plurality of error action placeholders and is one of the macro call functions.

### Claim 18 (depends on 17)

The computer program product of claim 17 wherein the information handling system performs additional actions comprising:
converting one more create macro calls included in the hardware initialization code to the macro call functions.

### Claim 19 (depends on 15)

The computer program product of claim 15 wherein one of the actions de-configures the device in response to the device failing initialization.

### Claim 20 (depends on 15)

The computer program product of claim 15 wherein one of the actions logs error data in response to the device failing initialization, and wherein the information handling system performs additional actions comprising:
providing the logged error data to a developer tool;
receiving, from the developer tool, one or more software changes;
in response to the one or more software changes corresponding to one or more of the actions:
updating the error action information in the second storage area;
converting the updated error action information to one or more updated lines of code; and
modifying the hardware initialization code by replacing the error action placeholder with the one or more updated lines of code.

### Claim 21

The computer program product of 20 wherein, in response to the one or more software changes corresponding to the hardware initialization code, and wherein the information handling system performs additional actions comprising:
updating the hardware initialization code based upon the one or more software changes; and
modifying the updated hardware initialization code by replacing the error action placeholder with the lines of code corresponding to the macro that matched the error action placeholder.

### Claim 22

(canceled)

### Claim 23

(canceled)

### Claim 24

(canceled)

### Claim 25

(canceled)
