IP Library Granted Patent US 10,782,764
Granted Patent B2
US 10,782,764 · App. 15/431,037 · Granted Sep 22, 2020

Techniques of emulating an ACPI controller on a service processor

Inventors: Balaji Nagalingam Rajendiran (Duluth, GA); Viswanathan Swaminathan (Suwanee, GA); David Wise (Loganville, GA)
Assignee: AMERICAN MEGATRENDS INTERNATIONAL, LLC
G06F1/3228G06F1/266G06F1/3215G06F13/24
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,782,764
App. No.
15/431,037
Granted
Sep 22, 2020
Kind
B2
Abstract

In an aspect of the disclosure, a method, a computer-readable medium, and a computer system are provided. The computer system includes a service processor. The service processor monitors events of one or more ACPI compliant devices of a host of the service processor. The service processor maintains device data associated with the one or more ACPI compliant devices based on the events in a data store of the service processor. The service processor emulates an ACPI controller to monitor a communication channel for detecting one or more ACPI commands from the host. The service processor processes the device data in the data store in response to detecting the one or more ACPI commands on the communication channel.

Claims (79)

1. A method of operating a computer system including a service processor, comprising:

executing, at a processing unit of the service processor, a first set of instructions to emulate, at the service processor, an ACPI controller, the emulated ACPI controller monitoring, at the service processor and on a first communication channel, one or more Advanced Configuration and Power Interface (ACPI) events generated by one or more ACPI compliant devices of a host of the service processor, the first communication channel supporting communications in accordance with the Advanced Configuration and Power Interface Specification;

executing, at the processing unit of the service processor, a second set of instructions to implement a baseboard management controller (BMC) in compliance with Intelligent Platform Management Interface (IPMI) standards;

detecting, at a programmable logic device managing the one or more ACPI compliant devices, the one or more ACPI events;

sending, at the programmable logic device, a first notification to the service processor in response to detecting the one or more ACPI events;

retrieving, by the ACPI controller in response to receiving the first notification, the one or more ACPI events through the first communication channel;

updating, at the service processor, device data associated with the one or more ACPI compliant devices based on the one or more ACPI events in a data store of the service processor;

sending, at the programmable logic device, a second notification to the host in response to detecting the one or more ACPI events;

receiving, at the service processor, a query command sent by the host through a second communication channel other than the first communication channel in response to receiving the second notification, wherein the second communication channel is also utilized by the BMC for communication between the BMC and the host in accordance with a BMC management function;

sending, at the service processor and to the host, an ACPI address for locating first data associated with a first ACPI device in the data store through the second communication channel; and

receiving, at the service processor, a read command sent from the host indicating the ACPI address for retrieving first data associated with a first ACPI device.

2. The method of claim 1 , further comprising:

determining, at the service processor, that a first event of the one or more ACPI events occurred at the first ACPI device; and

storing, at the service processor, the first data in the data store.

3. The method of claim 2 , further comprising:

detecting, at the programmable logic device, the first event occurred at the first ACPI device; and

sending, at the programmable logic device and to the service processor, an interrupt, wherein the first event is determined by the service processor based on the interrupt.

4. The method of claim 2 , wherein the second notification is an interrupt to the host.

5. The method of claim 4 , wherein the computer system further comprises the host, the method further comprising:

sending, at the host and to the service processor, the query command in response to receiving the interrupt.

6. The method of claim 1 , further comprising:

retrieving, at the service processor, the first data from a location at the ACPI address in the data store reserved for the first ACPI device; and

sending, at the service processor, to the host, the first data.

7. The method of claim 6 , wherein the data store includes a first memory space and a second memory space, wherein one of the first and second memory spaces stores a current copy of the device data and the other one of the first and second memory spaces stores a legacy copy of the device data, wherein the first data is retrieved from the one of the first and second memory spaces storing the current copy.

8. The method of claim 7 , wherein the second memory space stores the current copy, wherein the first data is retrieved from the second memory space.

9. The method of claim 8 , wherein the first memory space stores the legacy copy, the method further comprising:

determining to update first data;

storing updated first data in the first memory space while the first data is being retrieved from the second memory space; and

copying the device data from the first memory space to the second memory space and indicating that the first memory space stores the current copy and the second memory space stores the legacy copy.

10. The method of claim 1 , wherein the data store includes a first memory space and a second memory space, wherein one of the first and second memory spaces stores a current copy of the device data and the other one of the first and second memory spaces stores a legacy copy of the device data, the method further comprising:

acquiring, after the service processor is booted, the device data from the one or more ACPI compliant devices;

storing the device data in the first memory space and indicating that the first memory space stores the current copy; and

copying the device data from the first memory space to the second memory space and indicating that the first memory space stores the legacy copy and the second memory space stores the current copy.

11. The method of claim 1 , further comprising:

receiving, from the host, a write command for storing second data associated with a second ACPI device; and

storing the second data at a location in the data store reserved for the second ACPI device.

12. The method of claim 11 , wherein the data store includes a first memory space and a second memory space, wherein one of the first and second memory spaces stores a current copy of the device data and the other one of the first and second memory spaces stores a legacy copy of the device data, wherein the second data is stored in the one of the first and second memory spaces storing the legacy copy.

13. The method of claim 12 , wherein the first memory space stores the legacy copy, wherein the second data are stored in the first memory space, the method further comprising:

copying the device data from the first memory space to the second memory space and indicating that the first memory space stores the current copy and the second memory space stores the legacy copy.

14. The method of claim 13 , further comprising:

determining to update the first data; and

storing updated first data in the first memory space while the second data are being stored in the first memory space.

15. The method of claim 13 , further comprising:

determining to update the second data; and

determining that the second data is being stored in the first memory space;

waiting until the storing second data in the first memory space is complete; and

subsequent to that the device data is copied from the first memory space and the second memory space is indicated as storing the legacy copy, storing updated second data to the second memory space.

16. A computer system, comprising:

a service processor including:

a memory; and

at least one processor coupled to the memory and configured to:

execute a first set of instructions to emulate, at the service processor, an ACPI controller, the emulated ACPI controller monitoring, at the service processor and on a first communication channel, one or more Advanced Configuration and Power Interface (ACPI) events generated by one or more ACPI compliant devices of a host of the service processor, the first communication channel supporting communications in accordance with the Advanced Configuration and Power Interface Specification;

execute a second set of instructions to implement a baseboard management controller (BMC) in compliance with Intelligent Platform Management Interface (IPMI) standards;

detect, at a programmable logic device managing the one or more ACPI compliant devices, the one or more ACPI events;

send, at the programmable logic device, a first notification to the service processor in response to detecting the one or more ACPI events;

retrieve, at the ACPI controller, the one or more ACPI events through the first communication channel;

update device data associated with the one or more ACPI compliant devices based on the one or more ACPI events in a data store of the service processor;

send, at the programmable logic device, a second notification to the host in response to detecting the one or more ACPI events;

receive, at the service processor, a query command sent by the host through a second communication channel other than the first communication channel in response to receiving the second notification, wherein the second communication channel is also utilized by the BMC for communication between the BMC and the host in accordance with a BMC management function;

send, at the service processor and to the host, an ACPI address for locating first data associated with a first ACPI device in the data store through the second communication channel; and

receive, at the service processor, a read command sent from the host indicating the ACPI address for retrieving first data associated with a first ACPI device.

17. The computer system of claim 16 , wherein the at least one processor is further configured to:

determine that a first event of the one or more ACPI events occurred at the first ACPI device; and

store the first data in the data store.

18. The computer system of claim 17 , wherein to detect the one or more ACPI events and to update the device data, the programmable logic device is configured to:

detect the first event occurred at the first ACPI device; and

send an interrupt to the service processor, wherein the first event is determined by the service processor based on the interrupt.

19. The computer system of claim 17 , wherein the second notification is an interrupt to the host, the at least one processor is further configured to send an interrupt to the host.

20. A non-transitory computer-readable medium storing computer executable code for operating a service processor, comprising code, when executed on a processing unit of the service processor, to:

emulate, at the service processor, an ACPI controller, the emulated ACPI controller monitoring, at the service processor and on a first communication channel, one or more Advanced Configuration and Power Interface (ACPI) events generated by one or more ACPI compliant devices of a host of the service processor, the first communication channel supporting communications in accordance with the Advanced Configuration and Power Interface Specification;

implement a baseboard management controller (BMC) in compliance with Intelligent Platform Management Interface (IPMI) standards;

detect, at a programmable logic device managing the one or more ACPI compliant devices, the one or more ACPI events;

send, at the programmable logic device, a first notification to the service processor in response to detecting the one or more ACPI events;

detect, at the ACPI controller, the one or more ACPI events through the first communication channel;

update device data associated with the one or more ACPI compliant devices based on the one or more ACPI events in a data store of the service processor;

notify the host through a second communication channel other than the first communication channel;

receive, at the service processor, a query command from the host through a second communication channel other than the first communication channel in response to the notification, wherein the second communication channel is also utilized by the BMC for communication between the BMC and the host in accordance with a BMC management function;

send, at the service processor and to the host, an indication for locating first data associated with a first ACPI device in the data store through the second communication channel; and

receive, at the service processor, a read command sent from the host indicating the ACPI address for retrieving first data associated with a first ACPI device.

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 Feb 13, 2017
From: RAJENDIRAN, BALAJI NAGALINGAM; SWAMINATHAN, VISWANATHAN; WISE, DAVID
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 041240/0348 →
Continuity (1)
Related Publication 20180232183A1 · Aug 16, 2018