From 4e825567f93b9a6c8bcfefba7c97869bd81a12da Mon Sep 17 00:00:00 2001 From: Andrew Geissler Date: Thu, 28 Mar 2019 12:56:42 -0500 Subject: fw-update: Provide details on ApplyTime design Adding support for user to be able to dictate when the image is updated Change-Id: I6602aa70424f412871b3c4c6436041e864ea42f5 Signed-off-by: Andrew Geissler --- designs/firmware-update-over-redfish.md | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/designs/firmware-update-over-redfish.md b/designs/firmware-update-over-redfish.md index fc6d502..1785a11 100644 --- a/designs/firmware-update-over-redfish.md +++ b/designs/firmware-update-over-redfish.md @@ -80,12 +80,14 @@ later. - Support firmware update for other targets (power supplies, voltage regulators, ...) - Support to update multiple targets with the same firmware image at once -- Support scheduling of when update occurs +- Support scheduling of when update occurs (Maintenance windows) - Support remaining TransferProtocolTypes in UpdateService (CIFS, FTP, SFTP, HTTP, HTTPS, NSF, SCP, NFS) - TODO: Any update mechanism that doesn't have transport security on its own, like FTP, needs a secondary verification mechanism. Update mechanisms that have transport security need a way to adjust the trusted root certificates. +- Support the Task schema to provide progress to user during upload and + activation phases ## Proposed Design @@ -95,14 +97,24 @@ The pseudo flow for an update is: ``` Discover UpdateService location HttpPushUri = GET https://${bmc}/redfish/v1/UpdateService -POST https://${bmc}/${HttpPushUri} ApplyTime=Immediate +POST ApplyTime property in + UpdateService/HttpPushUriOptions->HttpPushUriApplyTime object + (Immediate or OnReset) +POST https://${bmc}/${HttpPushUri} ``` This will cause the following on the back-end: - Receive the image - Copy it internally to the required location in the filesystem (/tmp/images) - Wait for the InterfacesAdded signal from /xyz/openbmc_project/software -- Activate the new image (which may involve a reboot of the BMC) - +- Activate the new image +- If ApplyTime is Immediate, reboot the BMC or Host +- If ApplyTime is OnReset, do nothing (user will need to initiate host or bmc + reboot to apply image) + +Note that the ApplyTime property will be processed by the software management +stack at the end of the activation. +Note that the ApplyTime property is global to all firmware update packages and +will be used for all subsequent firmware update packages. ### Change the Priority of an Image -- cgit v1.2.1