ARM-software / psa-firmware-update-spec

The PSA Firmware Update API specification, and discussion of future versions of this API.
Other
4 stars 2 forks source link

Remove dependency output parameters from `psa_fw_install()` #11

Open athoelke opened 2 years ago

athoelke commented 2 years ago

The v0.7 specification definition of psa_fwu_install() can report image information for a missing dependency, along with a PSA_SUCCESS_DEPENDENCY_NEEDED, and the multi-image code sample in the Appendix shows how this might be used.

Analysis

Feedback on v0.7 resulted in the removal of the dependent image information being returned from psa_fwu_install(): an image can depend on more than one other image, so the v0.7 API does not scale.

The use cases for v1.0 expect that the Client or Update Server is managing a multi-component update, and has all of the dependency information described in an update manifest/package.

Update Service-orchestration (e.g. SUIT) is proposed to be out of scope for v1.0 (see #6).

Proposal

Remove the dependency output parameters from psa_fwu_install() and the PSA_SUCCESS_DEPENDENCY_NEEDED result code. When an installation attempt detects a missing dependency, the PSA_ERROR_DEPENDENCY_NEEDED can be returned.

The Client must arrange to install firmware in an order that ensures that dependencies can be satisfied at each point of installation of a new firmware image.

Open issues

Multi-component updates

There is a separate issue to discuss these scenarios: see #12

Mandatory dependency verification

There is a separate issue to discuss this aspect of the current specification: see #13