Expose Software.MultipartUpdate on PLDM update object
Expose the xyz.openbmc_project.Software.MultipartUpdate interface [1]
alongside xyz.openbmc_project.Software.Update on the PLDM update
object (/xyz/openbmc_project/software/pldm). This allows clients
(e.g., bmcweb) to discover a single multipart-capable update entity
when no targets are specified, while continuing to use StartUpdate
for image transfer. PLDM continues to handle multi-component updates
internally.
[1] https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/78905
Tests:
- FW Update using Multipart URI
```
curl -X POST -k https://{ip}/redfish/v1/UpdateService/update-multipart --form 'UpdateParameters={"Targets":[]};type=application/json' --form "UpdateFile=@vbios.fwpkg;type=application/octet-stream"
{
"@odata.id": "/redfish/v1/TaskService/Tasks/0",
"@odata.type": "#Task.v1_4_3.Task"
...
"PercentComplete": 0,
"StartTime": "2025-08-05T13:33:23+00:00",
"TaskMonitor": "/redfish/v1/TaskService/TaskMonitors/0",
"TaskState": "Running",
"TaskStatus": "OK"
}
```
Signed-off-by: Rajeev Ranjan <ranjan.rajeev1609@gmail.com>
Change-Id: I11b21ae1df1862166cce16e4d9804c80cef79ecc
Signed-off-by: Rajeev Ranjan <ranjan.rajeev1609@gmail.com>
diff --git a/fw-update/update.hpp b/fw-update/update.hpp
index c6cfccc..e01249f 100644
--- a/fw-update/update.hpp
+++ b/fw-update/update.hpp
@@ -1,6 +1,7 @@
#pragma once
#include <xyz/openbmc_project/Software/ApplyTime/server.hpp>
+#include <xyz/openbmc_project/Software/MultipartUpdate/server.hpp>
#include <xyz/openbmc_project/Software/Update/server.hpp>
namespace pldm
@@ -12,7 +13,8 @@
class UpdateManager;
using UpdateIntf = sdbusplus::server::object_t<
- sdbusplus::xyz::openbmc_project::Software::server::Update>;
+ sdbusplus::xyz::openbmc_project::Software::server::Update,
+ sdbusplus::xyz::openbmc_project::Software::server::MultipartUpdate>;
using ApplyTimeIntf =
sdbusplus::xyz::openbmc_project::Software::server::ApplyTime;