NVIDIA/pldm
forked from openbmc/pldm
Captured source
source ↗NVIDIA/pldm
Language: C++
License: Apache-2.0
Stars: 7
Forks: 3
Open issues: 2
Created: 2024-05-06T16:48:17Z
Pushed: 2026-06-10T18:33:37Z
Default branch: develop
Fork: yes
Parent repository: openbmc/pldm
Archived: no
README:
PLDM - Platform Level Data Model
Overview
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.
Features
- Standardized Messaging: Adheres to the DMTF's PLDM specifications,
enabling consistent and interoperable communication between different components.
- Modularity: Supports multiple PLDM types, including base, FRU,Firmware
update, Platform Monitoring and Control, and BIOS Control and Configuration.
- Extensibility: Easily extendable to support new PLDM types and custom OEM
commands.
- Integration: Seamlessly integrates with other OpenBMC components for
comprehensive system management.
Getting Started
Prerequisites
To build and run PLDM, you need the following dependencies:
MesonNinja
Alternatively, source an OpenBMC ARM/x86 SDK.
Building
To build the PLDM project, follow these steps:
meson setup build && meson compile -C build
To run unit tests
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.
Generate coverage report
Use Meson/Ninja coverage targets with coverage instrumentation enabled:
# 1) Configure with tests and coverage CC=gcc-13 CXX=g++-13 meson setup --wipe build -Dtests=enabled -Db_coverage=true # 2) Run tests to generate .gcda data meson test -C build --print-errorlogs # 3) Generate HTML coverage report (Meson/Ninja target) GCOV=gcov-13 ninja -C build coverage-html
The HTML report is generated at:
build/meson-logs/coveragereport/index.html
Optional text report:
GCOV=gcov-13 ninja -C build coverage-text
Text report path:
build/meson-logs/coverage.txt
To enable pldm verbosity
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
To disable pldm verbosity
rm /etc/default/pldmd systemctl restart pldmd
To enable firmware update debug logging (fw-update logs)
--fw-debug is not enabled by default. You can turn it on at runtime via the service environment file and a service restart:
# Enable fw-update debug logging sudo sh -c 'echo "FWDEBUG=--fw-debug" >> /etc/default/pldm_verbosity' sudo systemctl restart pldmd
To disable it again:
sudo sed -i '/^FWDEBUG=/d' /etc/default/pldm_verbosity # Or set it empty: sudo sh -c 'echo "FWDEBUG=" >> /etc/default/pldm_verbosity' sudo systemctl restart pldmd
Documentation
For complete documentation on the functionality and usage of this repository, please refer to the [docs](docs) folder.