fw_update: target specific startUpdate implementation Description: This commit implements the `startUpdate` handling of the target specific update flow [1], which introduced `ItemUpdateManager` for handling target specific updates. Motivation: We have introduced the `FirmwareInventory`/`FirmwareInventoryManager` classes to manage D-Bus interfaces for firmware update, After that, we would like to implement the `StartUpdate` method for `FirmwareInventory` properly for the update process implementation, which `AggregateUpdateManager` will help route the command to the specific update sessions. Test results: - Successful FD item Firmware update performed on Yosemite4, by manually triggering the `StartUpdate` method call on the `xyz.openbmc_project.Software.Update` interface. - Successful FD item Firmware update performed on Yosemite4, by using Redfish API to trigger the update. (main stream version, no patch needed) - Successful firmware update performed on Yosemite4 via the dir inotify based flow. - Successful firmware update performed on Yosemite4 via the multipart image flow. - Successful firmware update performed on Yosemite4 after a previous failed update attempt. - [1]: https://github.com/openbmc/docs/blob/master/designs/code-update.md Change-Id: I724f0987eb882a1b4e6bce8c209b319c927689e9 Signed-off-by: Unive Tien <unive.tien.wiwynn@gmail.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.