Life Cycle States
In addition to the device states, there is also a managed life cycle operating in conjunction with those states, to further refine how a device can be configured.
A device always exists in a single life cycle state (LCS) dependent on the contents of the device NVM and the internal status.
A device can be in one of the following life cycle states:
- LCS_PROD: The Production LCS corresponds directly to the PROD_STATE.
- LCS_EH: The Energy Harvesting LCS corresponds directly to the EH_STATE.
- LCS_CM: Chip Manufacture is the initial LCS in ROT_STATE. The device is unsecured in this state.
- LCS_DM: Device Manufacture is the state in which the chip is partially provisioned and the device is secured.
- LCS_SE: Secure state is the state in which the chip is fully provisioned, and also the state in which devices are normally released to the public.
- LCS_RMA: Return Merchandise Authorization (return to manufacturer) is designed for devices being returned in an unsecured state. All secret information has been wiped.
All life cycle transitions are governed by the contents of the NVM, enforced by the ROM. All life cycle transitions occur during a power-on reset of the device.
Life cycle changes can occur in accordance with the "Flow Through Valid Life Cycle States" figure.
NOTE: Life Cycle State transitions are one-way only.
The rest of this section focuses on those life cycle states which form part of ROT_STATE.
Root of Trust State LCS Properties and Transition Requirements
Life cycle management is controlled by a combination of hardware components and the secure boot firmware embedded in ROM. The life cycle state is governed by the contents of the NVM memory, which is interpreted during system power-up.
The life cycle state is determined as one of the defined states, provided the contents of the NVM can be validated. If any corruption in the NVM memory is detected, the device reverts to a failure mode with the debug port locked, and makes no attempt to execute any application firmware.
As indicated in the "Flow Through Valid Life Cycle States" figure, ROT_STATE has paths for four valid LCSs and four valid LCS transitions. Any other attempted LCS transitions, including attempts to reverse an LCS transition, constitutes an error condition and results in the device being locked.
In all life cycle states, any application firmware must be properly configured for execution in the system. This means the following items must be available:
- The application context structure must be set up to provide details of the key and content certificates describing the application.
- One or two key certificates providing the trust chain must be defined and packaged with the application.
- A content certificate describing the application and allowing it to be authenticated must be provided.
- The application itself must be signed in accordance with the content certificate.
These items are described in more detail later, and the process for creating and combining them into a loadable image is also explained.
For now it is important to understand that the items detailed above are used to verify that an application has not been corrupted, and that it can be authenticated against a known identity.