E Document change history

E.1 Changes between version 1.0.0 and 1.0.1

General changes

  • Updated introduction to reflect GlobalPlatform assuming the governance of the PSA Certified evaluation scheme.

E.2 Changes between version 1.0 Beta and 1.0.0

General changes

API changes

E.3 Changes between version 0.7 and 1.0 Beta

General changes

  • Relicensed the document under Attribution-ShareAlike 4.0 International with a patent license derived from Apache License 2.0. See License.

  • Removed Profile IDs, and discussion of SUIT and manifest formats

  • Revised and extended all of the early chapters covering the goals, architecture and design of the API.

  • Updated code examples to match the v1.0 API. See Example usage.

API changes

  • Renamed psa_image_id_t to psa_fwu_component_t, and changed the type to uint8_t.

  • Renamed psa_image_info_t to psa_fwu_component_info_t.

  • Renamed psa_image_version_t to psa_fwu_image_version_t.

  • Reworked the state model to reflect the overall state of a firmware component, not a specific image.

    • Renamed PSA_FWU_UNDEFINED to PSA_FWU_READY - the default starting state for the state model.

    • Renamed CANDIDATE state to WRITING state. The new definition is PSA_FWU_WRITING.

    • Renamed REBOOT_NEEDED state to STAGED state. The new definition is PSA_FWU_STAGED.

    • Renamed PENDING_INSTALL state to TRIAL state. The new definition is PSA_FWU_TRIAL.

    • Renamed INSTALLED state to UPDATED state. The new definition is PSA_FWU_UPDATED.

    • Renamed REJECTED state to FAILED state. The new definition is PSA_FWU_FAILED.

    • Reintroduced REJECTED as a volatile state when rollback has been requested, but reboot has not yet occurred.

  • Renamed some of the installation functions:

  • Explicit support for concurrent installation of multiple components:

    • Reintroduced CANDIDATE state for an image that has been prepared for installation, but not installed.

    • Add psa_fwu_finish() to mark a new firmware image as ready for installation.

    • Add psa_fwu_cancel() to abandon an update that is being prepared.

    • Removed the component_id parameter from psa_fwu_install(), psa_fwu_accept(), and psa_fwu_reject(): these now act atomically on all components in the initial state for the operation.

  • Reference the standard definition of the status codes, and remove them from this specification. See Status codes.

    • Rationalize the API-specific error codes. This removes the following error codes:

      • PSA_ERROR_WRONG_DEVICE

      • PSA_ERROR_CURRENTLY_INSTALLING

      • PSA_ERROR_ALREADY_INSTALLED

      • PSA_ERROR_INSTALL_INTERRUPTED

      • PSA_ERROR_DECRYPTION_FAILURE

      • PSA_ERROR_MISSING_MANIFEST

    • Standardize the use of error codes, aligning with other PSA Certified APIs:

      • Use PSA_ERROR_BAD_STATE when operations are called in the wrong sequence.

      • Use PSA_ERROR_DOES_NOT_EXIST when operations are called with an unknown component Id.

      • Use PSA_ERROR_NOT_PERMITTED when firmware images do not comply with update policy.

  • Removed the discovery API functions and types

    • psa_fwu_get_image_id_iterator()

    • psa_fwu_get_image_id_next()

    • psa_fwu_get_image_id_valid()

    • psa_fwu_get_image_id()

    • psa_fwu_iterator_t

  • Removed Profile IDs, and discussion of SUIT and metadata formats

E.4 Changes between version 0.6 and 0.7

This section describes detailed changes between past versions.

  • PSA_FWU_API_VERSION_MINOR has increased from 6 to 7

  • psa_image_id_t is now defined as a 32-bit integer. Functions no longer have a pointer type for this parameter.

  • UUID concept dropped from function names and parameters.

  • Added Vendor ID and Class ID to psa_image_info_t structure.

  • Added Future changes section

  • Added error code and success code definitions

  • Fixed mistake: psa_fwu_abort return type changed from void to psa_status_t

  • Clarifications to the text

  • Replaced PSA_ERROR_ROLLBACK_DETECTED with PSA_ERROR_NOT_PERMITTED

  • Remove standardized image IDs until we get more feedback

  • Improvements to the Design Overview text