BIOS/BMC initialization communication system
A BIOS/BMC initialization communication system includes a storage device having a controller memory buffer device, a BMC device coupled to the storage device, and a BIOS coupled to the storage device. During initialization operations, the BIOS configures the controller memory buffer device for BIOS/BMC communications, and transmits controller memory buffer device utilization information for the controller memory buffer device to the BMC device. The BIOS may then communicate with the BMC device during initialization operations by providing a BMC command in the controller memory buffer device, determining that the BMC device has provided a BMC response in the controller memory buffer device, and retrieving the BMC response. Similarly, the BMC device may communicate with the BIOS during initialization operations by providing a BIOS command in the controller memory buffer device, determining that the BIOS has provided a BIOS response in the controller memory buffer device, and retrieving the BIOS response.
1 . A Basic Input/Output System (BIOS)/Baseboard Management Controller (BMC) initialization communication system, comprising:
a storage device that includes a controller memory buffer device;
a Baseboard Management Controller (BMC) device that is coupled to the storage device;
a Basic Input/Output System (BIOS) that is coupled to the storage device and that is configured, during initialization operations, to:
configure the controller memory buffer device for BIOS/BMC communications;
transmit controller memory buffer device utilization information for the controller memory buffer device to the BMC device;
provide, in the controller memory buffer device, a BMC command;
determine that the BMC device has provided a BMC response to the BMC command in the controller memory buffer device; and
retrieve, in response to determining that the BMC device has provided the BMC response to the BMC command in the controller memory buffer device, the BMC response.
2 . The system of claim 1 , wherein the configuring the controller memory buffer device for BIOS/BMC communications includes:
setting a register in the storage device to indicate an intent to use the controller memory buffer device.
3 . The system of claim 1 , wherein the BIOS is configured, during the initialization operations, to:
retrieve the controller memory buffer device utilization information from the controller memory buffer device.
4 . The system of claim 1 , wherein the controller memory buffer device utilization information for the controller memory buffer device is transmitted to the BMC device via an Intelligent Platform Management Interface (IPMI) communication subsystem.
5 . The system of claim 1 , wherein the configuring the controller memory buffer device for BIOS/BMC communications includes:
configuring the controller memory buffer device with a BIOS/BMC submission queue that is configured to store the BMC request and a BIOS/BMC completion queue that is configured to store the BMC response.
6 . The system of claim 1 , wherein the providing the BMC command in the controller memory buffer device includes:
providing a BMC command indicator in a header of the controller memory buffer device.
7 . The system of claim 1 , wherein the BMC device is configured to:
provide, in the controller memory buffer device, a BIOS command;
determine that the BIOS has provided a BIOS response to the BIOS command in the controller memory buffer device; and
retrieve, in response to determining that the BIOS has provided the BIOS response to the BIOS command in the controller memory buffer device, the BIOS response.
8 . An Information Handling System (IHS), comprising:
a processing system; and
a memory system that is coupled to the processing system and that includes instructions that, when executed by the processing system, cause the processing system to provide a Basic Input/Output System (BIOS) engine that is configured, during initialization operations, to:
configure, for BIOS/BMC communications, a controller memory buffer device in a storage device that is coupled to the processing system;
transmit controller memory buffer device utilization information for the controller memory buffer device to a BMC device that is coupled to the processing system;
provide, in the controller memory buffer device, a BMC command;
determine that the BMC device has provided a BMC response to the BMC command in the controller memory buffer device; and
retrieve, in response to determining that the BMC device has provided the BMC response to the BMC command in the controller memory buffer device, the BMC response.
9 . The IHS of claim 8 , wherein the configuring the controller memory buffer device for BIOS/BMC communications includes:
setting a register in the storage device to indicate an intent to use the controller memory buffer device.
10 . The IHS of claim 8 , wherein the BIOS engine is configured, during the initialization operations, to:
retrieve the controller memory buffer device utilization information from the controller memory buffer device.
11 . The IHS of claim 8 , wherein the controller memory buffer device utilization information for the controller memory buffer device is transmitted to the BMC device via an Intelligent Platform Management Interface (IPMI) subsystem.
12 . The IHS of claim 8 , wherein the configuring the controller memory buffer device for BIOS/BMC communications includes:
configuring the controller memory buffer device with a BIOS/BMC submission queue that is configured to store the BMC request and a BIOS/BMC completion queue that is configured to store the BMC response.
13 . The IHS of claim 8 , wherein the providing the BMC command in the controller memory buffer device includes:
providing a BMC command indicator in a header of the controller memory buffer device.
14 . A method for Basic Input/Output System (BIOS)/Baseboard Management Controller (BMC) communication during initialization of a computing device, comprising:
configuring, by a Basic Input/Output System (BIOS) during initialization operations, a controller memory buffer device in a storage device for BIOS/BMC communications;
transmitting, by the BIOS during the initialization operations, controller memory buffer device utilization information for the controller memory buffer device to a BMC device;
providing, by the BIOS in the controller memory buffer device during the initialization operations, a BMC command;
determining, by the BIOS during the initialization operations, that the BMC device has provided a BMC response to the BMC command in the controller memory buffer device; and
retrieving, by the BIOS during the initialization operations in response to determining that the BMC device has provided the BMC response to the BMC command in the controller memory buffer device, the BMC response.
15 . The method of claim 14 , wherein the configuring the controller memory buffer device for BIOS/BMC communications includes:
setting a register in the storage device to indicate an intent to use the controller memory buffer device.
16 . The method of claim 14 , further comprising:
retrieving, by the BIOS during the initialization operations, the controller memory buffer device utilization information from the controller memory buffer device.
17 . The method of claim 14 , wherein the controller memory buffer device utilization information for the controller memory buffer device is transmitted to the BMC device via an Intelligent Platform Management Interface (IPMI) subsystem.
18 . The method of claim 14 , wherein the configuring the controller memory buffer device for BIOS/BMC communications includes:
configuring the controller memory buffer device with a BIOS/BMC submission queue that is configured to store the BMC request and a BIOS/BMC completion queue that is configured to store the BMC response.
19 . The method of claim 14 , wherein the providing the BMC command in the controller memory buffer device includes:
providing a BMC command indicator in a header of the controller memory buffer device.
20 . The method of claim 14 , further comprising:
providing, by the BMC device in the controller memory buffer device during the initialization operations, a BIOS command;
determining, by the BMC device during the initialization operations, that the BIOS has provided a BIOS response to the BIOS command in the controller memory buffer device; and
retrieving, by the BMC device during the initialization operations in response to determining that the BIOS has provided the BIOS response to the BIOS command in the controller memory buffer device, the BIOS response.