Product state for STM32H5

Revision as of 15:28, 15 September 2023 by Registered User (→‎Product state : provisioning)

1. Introduction

It is advised to start by reading the New product state article.
From the development phase until the maintenance phase a product can be configure under many product states ( also called lifecycle states).
The lifecycle controls the access to code and data.

This article lists in which product states a STM32H5 can be configured.

2. Product states

2.1. Product state : Open

  • This state is mainly used during the development phase since the device is fully open.
  • Debug is fully open.
  • The Trust Zone can be disabled or enabled (TZEN option byte programming).
  • Bootloader is usable.

2.2. Product state : provisioning

  • This state is used during the provisioning.
  • The debug is only available when executing a nonsecure user application.
  • The Trust Zone can be disabled or enabled (TZEN option byte programming).
  • Bootloader is usable.
  • Secure Firmware install can be launched in this state (not anymore possible in the following states).

2.3. Product state : Provisioned

  • In this state, the OEM-iROT setup is done.
  • Debug is available only when executing a nonsecure user application.
  • Debug access for secure applications can be available by launching the Debug Authentication (see Debug Authentication setting).
  • The OEM-iROT can launch the bootloader if the verification of the code located in the next isolation level is failing (authentication, integrity, or missing code)

2.4. Product state : TZ-Closed

  • The Trust Zone closed state is used when
  • the OEM-iROT and the secure user application are provisioned (case 1)
  • the OEM-iROT and the uROT+Secure user application are provisioned (case2) (see section 5.1.2).
  • For case 2, the uROT allows updating the next isolation level (Code and Data).
  • uROT can launch the bootloader if the verification of the code located in the next isolation level is failing (authentication, integrity, or missing code).
  • The debug is only available when executing a nonsecure user application.
  • Debug access for secure applications can be available by launching the Debug Authentication (see Debug Authentication setting).

2.5. Product state : Closed

  • This state occurs with the fully provisioned product.
  • The debug is fully closed but can be opened by launching the Debug Authentication (see Debug Authentication setting).

2.6. Product state : Locked

  • This state is used with the fully provisioned product without any more changes.
  • Locked is a final unchangeable product state. No method can modify the embedded firmware and product configuration.
  • The debug is definitively closed and cannot be reopened through debug authentication.
  • No regression is possible anymore

3. Lifecycle

SECURITY Lifecycle 2.png