Modifications in PLDM T5 flow to support SPI staged update
Tom Joseph
rushtotom at gmail.com
Fri Aug 15 22:14:35 AEST 2025
Hello All,
SPI Staged Update enables pre-downloading firmware component images for
supported devices, significantly reducing downtime during firmware updates
and activation. This requires devices to support at least two slots — one
for the running firmware and another for staging the new image.
The update process occurs in two iterations:
1.
First Iteration:
-
The PLDM UA initiates the PLDM T5 flow with the PLDM FD supporting
staged updates.
-
All stages (Transfer, Verify, Apply) are completed except activation.
This is achieved by PLDM UA skipping the PLDM T5 ActivateFirmware
command.
-
Upon state machine timeout, the PLDM FD marks the new image as
*staged* (not failed update). Since it’s staged, it remains inactive
until explicitly activated later.
2.
Second Iteration:
-
The same PLDM package is used. Since the image is already staged, the
PLDM FD skips most of the Transfer stage, reducing downtime.
-
This iteration is typically scheduled during a maintenance window.
-
Devices that do not support SPI staging are updated in this iteration.
-
All firmware is activated after this iteration.
To enable this, we propose introducing a new OEM parameter in the MultiPart
API to instruct the PLDM UA to skip sending the ActivateFirmwarecommand,
along with necessary PLDM UA modifications to support the SPI staged flow.
If there is interest within the OpenBMC community to adopt and collaborate
on this feature, please feel free to reach out.
[1]
https://docs.nvidia.com/multi-node-nvlink-systems/nvfupd-guide/appendix/spi-staged.html
Regards,
Tom
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20250815/fd911ccc/attachment.htm>
More information about the openbmc
mailing list