Documentation/driver-api/ipmb.rst
Source file repositories/reference/linux-study-clean/Documentation/driver-api/ipmb.rst
File Facts
- System
- Linux kernel
- Corpus path
Documentation/driver-api/ipmb.rst- Extension
.rst- Size
- 3541 bytes
- Lines
- 110
- Domain
- Support Tooling And Documentation
- Bucket
- Documentation
- Inferred role
- Support Tooling And Documentation: documentation
- Status
- atlas-only
Why This File Exists
Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
- Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
function management
Annotated Snippet
==============================
IPMB Driver for a Satellite MC
==============================
The Intelligent Platform Management Bus or IPMB, is an
I2C bus that provides a standardized interconnection between
different boards within a chassis. This interconnection is
between the baseboard management (BMC) and chassis electronics.
IPMB is also associated with the messaging protocol through the
IPMB bus.
The devices using the IPMB are usually management
controllers that perform management functions such as servicing
the front panel interface, monitoring the baseboard,
hot-swapping disk drivers in the system chassis, etc...
When an IPMB is implemented in the system, the BMC serves as
a controller to give system software access to the IPMB. The BMC
sends IPMI requests to a device (usually a Satellite Management
Controller or Satellite MC) via IPMB and the device
sends a response back to the BMC.
For more information on IPMB and the format of an IPMB message,
refer to the IPMB and IPMI specifications.
IPMB driver for Satellite MC
----------------------------
ipmb-dev-int - This is the driver needed on a Satellite MC to
receive IPMB messages from a BMC and send a response back.
This driver works with the I2C driver and a userspace
program such as OpenIPMI:
1) It is an I2C slave backend driver. So, it defines a callback
function to set the Satellite MC as an I2C slave.
This callback function handles the received IPMI requests.
2) It defines the read and write functions to enable a user
space program (such as OpenIPMI) to communicate with the kernel.
Load the IPMB driver
--------------------
The driver needs to be loaded at boot time or manually first.
First, make sure you have the following in your config file:
CONFIG_IPMB_DEVICE_INTERFACE=y
1) If you want the driver to be loaded at boot time:
a) Add this entry to your ACPI table, under the appropriate SMBus::
Device (SMB0) // Example SMBus host controller
{
Name (_HID, "<Vendor-Specific HID>") // Vendor-Specific HID
Name (_UID, 0) // Unique ID of particular host controller
:
:
Device (IPMB)
{
Name (_HID, "IPMB0001") // IPMB device interface
Name (_UID, 0) // Unique device identifier
}
}
b) Example for device tree::
&i2c2 {
status = "okay";
Annotation
- Detected declarations: `function management`.
- Atlas domain: Support Tooling And Documentation / Documentation.
- Implementation status: atlas-only.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.