You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/openbmc-rdv3/5_openbmc_ipmi.md
+15-13Lines changed: 15 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,21 +8,21 @@ layout: learningpathall
8
8
9
9
## Customize IPMI Commands in OpenBMC
10
10
11
-
With the host console accessible through OpenBMC, you're now ready to extend its functionality by implementing a custom IPMI command handler.
11
+
With the host console accessible through OpenBMC, you are now ready to extend its functionality by implementing a custom IPMI command handler.
12
12
13
13
The Intelligent Platform Management Interface ([IPMI](https://en.wikipedia.org/wiki/Intelligent_Platform_Management_Interface)) is a standardized protocol for managing and monitoring servers, even when the operating system is not running. In OpenBMC, IPMI support is built-in and can be extended using custom handlers through the D-Bus/IPMI infrastructure.
14
14
15
-
In this module, you'll implement a custom IPMI command handler that returns a simple string response. You'll write the handler in C++, package it with a BitBake recipe, build it into the OpenBMC image, and test it using `ipmitool` inside the simulated FVP environment.
15
+
In this module, you'll implement a custom IPMI command handler that returns a simple string response. You will write the handler in C++, package it with a BitBake recipe, build it into the OpenBMC image, and test it using `ipmitool` inside the simulated FVP environment.
16
16
17
17
### Step 1: Create a BitBake Recipe
18
18
19
-
Create a new file named phosphor-ipmi-example.bb at the same folder.
19
+
Create a new file named `phosphor-ipmi-example.bb` in the same folder.
This output confirms that the custom string returned by your `myIpmiCommand()` function has been correctly encoded and transmitted via IPMI:
153
-
```
155
+
```bash
154
156
std::string reply = "Hello from OpenBMC IPMI!";
155
157
return ipmi::responseSuccess(reply);
156
158
```
@@ -162,9 +164,9 @@ The response from `ipmitool raw` confirms that your custom IPMI handler was:
162
164
- Correctly executed in the simulated environment via IPMI raw access
163
165
- Returning the intended payload, encoded as ASCII and received in hex format
164
166
165
-
By decoding the hex payload into ASCII, you’ve verified the full path from handler registration to command execution and payload delivery.
167
+
By decoding the hex payload into ASCII, you have verified the full path from handler registration to command execution and payload delivery.
166
168
167
-
You’ve now successfully implemented and tested a custom IPMI command in OpenBMC using pre-silicon simulation.
169
+
You have now successfully implemented and tested a custom IPMI command in OpenBMC using pre-silicon simulation.
168
170
169
171
This sets the foundation for adding OEM commands or platform-specific extensions to your BMC firmware.
170
172
You can now expand this pattern to support argument parsing, custom data formats, or system-level control—enabling rapid prototyping of features such as sensor telemetry, power domain control, or boot policy configuration.
0 commit comments