common/utils: use decoder in findStateSensorId Refactor findStateSensorId to read the fixed fields with decode_pldm_platform_state_sensor_pdr(), replacing the packed struct overlay and its manual offset math. Tested: Build an image for the vr-nvl-obmc machine with the following patches cherry-picked: ``` 1. Kernel https://lore.kernel.org/all/20260702165524.2168091-1-jackyhuang@nvidia.com/ 2. u-boot https://lore.kernel.org/openbmc/20260629105202.1417679-1-jackyhuang@nvidia.com/ 3. meta-nvidia https://gerrit.openbmc.org/c/openbmc/openbmc/+/90959 https://gerrit.openbmc.org/c/openbmc/openbmc/+/92346 4. platform-init https://gerrit.openbmc.org/c/openbmc/platform-init/+/92189 https://gerrit.openbmc.org/c/openbmc/platform-init/+/92190 https://gerrit.openbmc.org/c/openbmc/platform-init/+/92191 https://gerrit.openbmc.org/c/openbmc/platform-init/+/92192 5. mctp-over-usb-config https://gerrit.openbmc.org/c/openbmc/dbus-sensors/+/80452 https://gerrit.openbmc.org/c/openbmc/dbus-sensors/+/86236 https://gerrit.openbmc.org/c/openbmc/dbus-sensors/+/86791 6. libpldm: https://gerrit.openbmc.org/c/openbmc/libpldm/+/90952 https://gerrit.openbmc.org/c/openbmc/libpldm/+/91583 ``` Built pldmd at this change and at master for vr-nvl-obmc. A pldmtool GetPDR walk of the BMC repository and the FindStateSensorPDR D-Bus lookups return output byte-identical to the unmodified build. Change-Id: I3a9ae8c48a52afdc10deaff57f4bc7f119ac771b Signed-off-by: JY Voon <jvoon@nvidia.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.