# US 11,113,070 B1 · Automated identification and disablement of system devices in a computing system

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

- Number: US 11,113,070 B1
- Document ID: US11113070B1
- Status: Granted
- Kind: B1
- Application number: 16/528,503
- Filed: 2019-07-31
- Granted: 2021-09-07
- Earliest claimed: 2019-07-31
- Assignees: American Megatrends International, LLC
- Applicants: American Megatrends International, LLC
- Inventors: Igor Kulchytskyy; Manickavasakam Karpagavinayagam; Viswanathan Swaminathan; Chandrasekar Rathineswaran
- Web page: https://patentgrep.com/patent/US11113070B1

## CPC

- G06F 9/4401: Bootstrapping (security arrangements therefor G06F21/57)
- G06F 9/4411: {Configuring for operating with peripheral devices; Loading of device drivers}
- G06F 9/44505: {Configuring for program initiating, e.g. using registry, configuration files}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Technologies are provided for automated identification of system devices to be disabled in a computing system and the disablement of the system devices during bootup of the computing system. In some embodiments, the computing system can execute a firmware configured to perform a bootup process of the computing system. The computing system includes multiple system devices. The firmware can generate program code for identifying a system device for disablement. The firmware can send the program code to a controller device curing the bootup process, where execution of the program code by the controller device generates data identifying one or several specific system devices to be disabled in the computing system. The firmware can then access such data from the controller device. Using the data, the firmware can determine that a specific system device to be disabled. The firmware can then disable that particular system device on a next bootup process.

## Claims

### Claim 1

A computer-implemented method, comprising:
initiating execution of a firmware configured to perform a bootup process of a computing system having multiple system devices, the firmware retained in a non-volatile memory of the computing system;
accessing, by the firmware, program code that defines a procedure to identify a system device for disablement, wherein the accessing includes one of generating the program code or retrieving the program code from a memory element within the non-volatile memory;
sending, by the firmware, the program code to a baseboard management controller (BMC), wherein execution of the program code by the BMC generates data identifying one or more second system devices to be disabled;
accessing, by the firmware, second data from a memory device within the BMC;
determining, using the second data, that a first system device of the multiple system devices is to be disabled; and
disabling the first system device by the firmware.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the generating the program code comprises generating a script defining logic to identify the system device for disablement, and wherein the script is configured, at least partially, using defined semantics of a hypermedia representational state transfer (REST) interface.

### Claim 3 (depends on 2)

The computer-implemented method of claim 2, wherein the procedure corresponds to an action configured according to the hypermedia REST interface.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the accessing the data comprises executing a command to retrieve the data from a database retained in the BMC, the command configured according to an Intelligent Platform Management Interface (IPMI) protocol.

### Claim 5 (depends on 4)

The computer-implemented method of claim 4, wherein the accessing further comprises receiving the data, wherein the data comprise,
first data indicative of a type of the first system device;
second data indicative of a name of the first system device; and
third data indicative of an instance of the first system device in the computing system.

### Claim 6 (depends on 5)

The computer-implemented method of claim 5, wherein the first data comprises a first string of characters identifying the type, and wherein the second data comprises a second string of characters identifying the name, and further wherein the third data comprises a third string of characters identifying the instance.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein the sending the program code comprises sending data using a hypermedia representational state transfer (REST) interface, the data expressed using a JavaScript Object Notation (JSON) format based on Open Data Protocol (OData).

### Claim 8

At least one computer-readable non-transitory storage medium having instructions encoded thereon that, in response to execution, cause a computing device to perform or facilitate operations comprising:
initiating execution of a firmware configured to perform a bootup process of a computing system having multiple system devices, the firmware retained in a non-volatile memory device of the computing system;
accessing, by the firmware, program code that defines a procedure to identify a system device for disablement;
sending, by the firmware, the program code to a controller device, wherein execution of the program code by the controller device generates data identifying one or more second system devices to be disabled;
accessing, by the firmware, second data from a memory device within the controller device;
determining, using the second data, that a first system device of the multiple system devices is to be disabled; and
disabling the first system device by the firmware.

### Claim 9 (depends on 8)

The at least one computer-readable non-transitory storage medium of claim 8, wherein the generating the program code comprises generating a script defining logic to identify a system device for disablement, and wherein the script is configured, at least partially, using defined semantics of a hypermedia representational state transfer (REST) interface.

### Claim 10 (depends on 9)

The at least one computer-readable non-transitory storage medium of claim 9, wherein the procedure corresponds to an action according to the hypermedia REST interface.

### Claim 11 (depends on 8)

The at least one computer-readable non-transitory storage medium of claim 8, wherein the accessing the data comprises executing a command to retrieve the data from the memory device, the command configured according to an Intelligent Platform Management Interface (IPMI) protocol.

### Claim 12 (depends on 11)

The at least one computer-readable non-transitory storage medium of claim 11, the operations further comprising receiving the data, wherein the data comprise,
first data indicative of a type of the first system device;
second data indicative of a name of the first system device; and
third data indicative of an instance of the first system device in the computing system.

### Claim 13 (depends on 8)

The at least one computer-readable non-transitory storage medium of claim 8, wherein the sending the program code comprises sending data using a hypermedia representational state transfer (REST) interface, the data expressed using a JavaScript Object Notation (JSON) format based on Open Data Protocol (OData).

### Claim 14

A computing device, comprising:
at least one processor; and
at least one memory device having computer-executable components stored thereon that, in response to execution by the at least one processor, cause the computing device at least to:
initiate execution of a firmware configured to perform a bootup process of a computing device having multiple system devices, the firmware retained in a non-volatile memory device of the computing system;
access, by the firmware, program code that defines a procedure to identify a system device for disablement;
send, by the firmware, the program code to a controller device, wherein execution of the program code by the controller device generates data identifying one or more second system devices to be disabled;
access, by the firmware, second data from a memory device within the controller device;
determine, using the second data, that a first system device of the multiple system devices is to be disabled; and
disable the first system device by the firmware.

### Claim 15 (depends on 14)

The computing device of claim 14, wherein the program code comprises a script defining logic to identify the first system device for disablement, the script being configured, at least partially, using defined semantics of a hypermedia representational state transfer (REST) interface.

### Claim 16 (depends on 15)

The computing device of claim 15, wherein the procedure corresponds to an action configured according to the hypermedia REST interface.

### Claim 17 (depends on 14)

The computing device of claim 14, wherein the multiple system devices comprise one or more of a central processing unit (CPU), a dual in-line memory module (DIMM), or a Peripheral Component Interconnect Express (PCIe) device.

### Claim 18 (depends on 14)

The computing device of claim 14, wherein sending the program code comprises sending data using a hypermedia representational state transfer (REST) interface, the data expressed using a JavaScript Object Notation (JSON) format based on Open Data Protocol (OData).

### Claim 19 (depends on 14)

The computing device of claim 14, wherein the accessing the data comprises executing a command to retrieve the data from the memory device, the command configured according to an Intelligent Platform Management Interface (IPMI) protocol.

### Claim 20 (depends on 19)

The computing device of claim 19, wherein the data comprises a data structure that uniquely identifies the first device, the data structure including,
first data indicative of a type of the first system device;
second data indicative of a name of the first system device; and
third data indicative of an instance of the first system device in the computing system.

### Claim 21

A computing device, comprising:
at least one processor; and
at least one memory device having computer-executable components stored thereon that, in response to execution by the at least one processor, cause the computing device at least to:
receive program code that defines a procedure to identify a system device for disablement in a computing system;
receive a request to disable a group of system devices, the request including data defining the group of system devices; and
generate, using the data, a list of system devices to be disabled by a firmware configured to bootup the computing system, the list of system devices being generated by executing the program code.

### Claim 22 (depends on 21)

The computing device of claim 21, wherein the computer-executable components further cause the computing device to,
receive a request to supply the list of system devices, wherein the request is received in a command configured according to an Intelligent Platform Management Interface (IPMI) protocol; and
send the list of system device to the firmware, wherein the list of system devices is sent in a response message responsive to the command.

### Claim 23 (depends on 21)

The computing device of claim 21, wherein receiving the program code comprises receiving data using a hypermedia representational state transfer (REST) interface, the data expressed using a JavaScript Object Notation (JSON) format based on Open Data Protocol (OData).

### Claim 24 (depends on 21)

The computing device of claim 21, wherein receiving the program code comprises receiving a logic script composes according to a defined scripting language.

### Claim 25 (depends on 21)

The computing device of claim 21, wherein the system devices in the list comprise one or more of a central processing unit (CPU), a dual in-line memory module (DIMM), or a Peripheral Component Interconnect Express (PCIe) device.
