IP Library Granted Patent US 11,593,121
Granted Patent B1
US 11,593,121 · App. 16/128,301 · Granted Feb 28, 2023

Remotely disabling execution of firmware components

Inventor: Sivasakthivel Nainar (Duluth, GA)
Assignee: American Megatrends International, LLC
G06F9/4411G06F21/575
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 11,593,121
App. No.
16/128,301
Granted
Feb 28, 2023
Kind
B1
Abstract

The components of a firmware that are to be executed are identified, such as firmware device drivers and SMI interrupt handlers. Performance data is also obtained for the components. An inventory identifying the components and the performance data are provided to a BMC. The BMC provides the inventory and the performance data to a remote management client through an out-of-band (“OOB”) network connection. The BMC might also receive a blacklist instruction from the management client. The blacklist instruction provides an indication to the BMC that one or more of the components of the firmware are not to be executed by the computing system. The BMC provides the blacklist instruction to the firmware. The firmware adds the component, or components, identified in the blacklist instruction to a blacklist. The next time the computing system is booted, the firmware will not execute the components identified in the blacklist.

Claims (35)

1. A computer-implemented method, comprising:

identifying, by way of a firmware driver executing on a computing system and at a boot time of the computing system, components of a firmware to be executed on the computing system, the computing system comprising a baseboard management controller (BMC), the BMC configured to communicate with a remote management client via an out-of-band (OOB) network connection;

obtaining, by way of the firmware driver, performance data for the identified components of the firmware to be executed on the computing system;

transmitting from the firmware driver to the BMC an inventory identifying the components and the performance data;

receiving, from the BMC at the firmware driver, an indication that an identified one of the components is not to be executed at a next boot of the computing system, the indication generated based, at least in part, on the performance data, wherein the BMC receives the indication that the identified one of the components is not to be executed from the remote management client via the OOB network connection;

preventing, by way of the firmware, execution of the identified one of the components not to be executed during the next boot of the computing system; and

preventing, by way of the firmware, execution of one or more other components of the firmware that are dependent on the identified one of the components not to be executed during the next boot of the computing system.

2. The computer-implemented method of claim 1 , wherein the components comprise firmware drivers.

3. The computer-implemented method of claim 1 , wherein the components comprise system management interrupt (SMI) handlers.

4. The computer-implemented method of claim 1 , wherein the inventory and the performance data are expressed using a JavaScript Object Notation (JSON) format based on an Open Data Protocol (OData).

5. A non-transitory computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by a computing system, cause the computing system to:

identify, by way of a firmware driver executing on the computing system and at a boot time of the computing system, a plurality of components of a firmware to be executed on the computing system, the computing system comprising a baseboard management controller (BMC), the BMC configured to communicate with a remote management client via an out-of-band (OOB) network connection;

obtain, by way of the firmware driver, performance data for the identified plurality of components of the firmware to be executed on the computing system;

transmit from the firmware driver to the BMC an inventory identifying the identified plurality of components and the performance data to the BMC;

receive an indication from the BMC at the firmware driver that a component of the firmware executing on the computing system is not to be executed at a next boot of the computing system, the indication generated based, at least in part, on performance data for the components of the firmware to be executed on the computing system, wherein the BMC receives the indication that the component of the firmware is not to be executed from the remote management client via the OOB network connection;

responsive to receiving the indication, add data, by way of the firmware driver, identifying the component to a blacklist stored by the firmware;

prevent, by way of the firmware, execution of the component not to be executed during the next boot of the computing system; and

prevent, by way of the firmware, execution of one or more of the plurality of components of the firmware that are dependent on the component not to be executed during the next boot of the computing system.

6. The non-transitory computer-readable storage medium of claim 5 , wherein the component and the plurality of components comprise firmware drivers.

7. The non-transitory computer-readable storage medium of claim 5 , wherein the component and the plurality of components comprise system management interrupt (SMI) handlers.

8. The non-transitory computer-readable storage medium of claim 5 , wherein the inventory and the performance data are expressed using a JavaScript Object Notation (JSON) format based on an Open Data Protocol (OData).

9. A computing system, comprising:

one or more processors;

a baseboard management controller (BMC) configured to communicate with a remote management client via an out-of-band (OOB) network connection; and

at least one non-transitory computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by the one or more processors, cause the computing system to:

identify, by way of a firmware driver executing on the computing system and at a boot time of the computing system, components of a firmware to be executed on the computing system;

obtain, by way of the firmware driver, performance data for the identified components of the firmware to be executed on the computing system;

transmit from the firmware driver to the BMC an inventory identifying the components of the firmware to be executed on the computing system and the performance data to the BMC;

receive an indication at the firmware driver from the BMC that a component of the firmware executing on the computing system is not to be executed during a next boot of the computing system, the indication generated based, at least in part, on the performance data for the identified components of the firmware to be executed on the computing system, wherein the BMC receives the indication that the component of the firmware is not to be executed from the remote management client via the OOB network connection;

responsive to receiving the indication, adding data by way of the firmware driver that identifies the component not to be executed to a blacklist stored by the firmware;

prevent, by way of the firmware, execution of the component not to be executed during the next boot of the computing system; and

prevent, by way of the firmware, execution of one or more of the components of the firmware that are dependent on the component not to be executed during the next boot of the computing system.

10. The computing system of claim 9 , wherein the component and the plurality of components comprise firmware drivers.

11. The computing system of claim 9 , wherein the component and the plurality of components comprise system management interrupt (SMI) handlers.

12. The computing system of claim 9 , wherein the inventory and the performance data are expressed using a JavaScript Object Notation (JSON) format based on an Open Data Protocol (OData).

Assignments (5)
PATENT SECURITY AGREEMENT Recorded Oct 23, 2024
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC
To: BAIN CAPITAL CREDIT, LP, AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 069229/0834 →
RELEASE OF SECURITY INTEREST Recorded Oct 17, 2024
From: MIDCAP FINANCIAL TRUST
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 069205/0795 →
SECURITY INTEREST Recorded May 6, 2019
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC
To: MIDCAP FINANCIAL TRUST, AS COLLATERAL AGENT
Reel/Frame 049087/0266 →
ENTITY CONVERSION Recorded Apr 15, 2019
From: AMERICAN MEGATRENDS, INC.
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 049091/0973 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2018
From: NAINAR, SIVASAKTHIVEL
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 046844/0914 →