pldmd: Wire fw-update-legacy into pldmd The fw-update-legacy module provides the firmware update functionality ported from the legacy pldmd-google daemon. This change wires the legacy firmware manager into the pldmd-google-dev-common main execution path. The manager now inherits from MctpDiscoveryHandlerIntf and is registered with the MctpDiscovery handler. Relevant PLDM_FWUP messages are routed to it in the processRxMsg function, restoring the firmware update features. Upstream firmware update implementation requires a newer dbus API version. Updating gBMC to use the newer version is a lot much bigger effort as it is one of the fundamental dependencies influencing the whole system, so the quickest way to achieve feature parity between pldmd-google and pldmd-google-dev-common was doing this instead. Tested: Compiled and verified on platform31. The pldmd daemon successfully parses the endpoints and initiates GetFirmwareParameters requests, closely matching the behavior from the legacy pldmd-google logs. No firmware update was attempted just yet. Change-Id: I82044602e9519207fa7e0d8f41947b676bd4f7ab Google-Bug-Id: 458166668 Signed-off-by: Luka Strizic <lstrz@google.com>
PLDM (Platform Level Data Model) is a key component of the OpenBMC project, providing a standardized data model and message formats for various platform management functionalities. It defines a method to manage, monitor, and control the firmware and hardware of a system.
The OpenBMC PLDM project aims to implement the specifications defined by the Distributed Management Task Force (DMTF), allowing for interoperable management interfaces across different hardware and firmware components.
To build and run PLDM, you need the following dependencies:
MesonNinjaAlternatively, source an OpenBMC ARM/x86 SDK.
To build the PLDM project, follow these steps:
meson setup build && meson compile -C build
The simplest way of running the tests is as described by the meson man page:
meson test -C build
Alternatively, tests can be run in the OpenBMC CI docker container using these steps.
pldm daemon accepts a command line argument --verbose or --v or -v to enable the daemon to run in verbose mode. It can be done via adding this option to the environment file that pldm service consumes.
echo 'PLDMD_ARGS="--verbose"' > /etc/default/pldmd systemctl restart pldmd
rm /etc/default/pldmd systemctl restart pldmd
For complete documentation on the functionality and usage of this repository, please refer to the docs folder.