SE RT Services Utilities library

| SE RT Services Utilities library

Macros
Error codes
IFX SE low-level Syscall API

## General Description

Error codes definitions.

## Macros
#define | IFX_SE_ERROR_CODE(e) IFX_SE_FIH_UINT_INIT((uint32_t)(e))
| Makes Secure Runtime Services Utility FIH based error code.
#define | IFX_SE_SUCCESS IFX_SE_ERROR_CODE(0xAA5533CCu)
| Success operation.
#define | IFX_SE_INVALID IFX_SE_ERROR_CODE(0xFF000000u)
| The fail status of the SE RT Services return value.
#define | IFX_SE_DISABLED IFX_SE_ERROR_CODE(0xFF000001u)
| Returned when SE RT Services in disabled state.
#define | IFX_SE_SYSCALL_NOT_SUPPORTED IFX_SE_ERROR_CODE(0xFF000002u)
| Returned for non-supported algorithms or operations.
#define | IFX_SE_SYSCALL_GENERAL_ERROR IFX_SE_ERROR_CODE(0xFF000003u)
| Returned on general uncategorized error.
#define | IFX_SE_SYSCALL_ADDR_PROTECTED IFX_SE_ERROR_CODE(0xFF000004u)
| Returned by all APIs when client doesn't have access to region it is using for passing arguments.
#define | IFX_SE_SYSCALL_PROTECTED IFX_SE_ERROR_CODE(0xFF000005u)
| Returned if a master with PC > 2 tries to use PSA syscall.
#define | IFX_SE_SYSCALL_INVALID_OPCODE IFX_SE_ERROR_CODE(0xFF000006u)
| The opcode is not a valid API opcode.
#define | IFX_SE_SYSCALL_INVALID_ARGUMENT IFX_SE_ERROR_CODE(0xFF000007u)
| Returned if invalid arguments are passed to a API or SysCall.
#define | IFX_SE_SYSCALL_ADDR_OUT_OF_RANGE IFX_SE_ERROR_CODE(0xFF000009u)
| Returned when parameters data in non-supported memory regions (MAIN_NVM, SRAM, SOCMEM_RAM or XIP)
#define | IFX_SE_SYSCALL_FI_DETECTED IFX_SE_ERROR_CODE(0xFF00000Au)
| Returned when Fault Injection attack detected.
#define | IFX_SE_SYSCALL_STORAGE_FAILURE IFX_SE_ERROR_CODE(0xFF00000Bu)
| Returned on storage failures.
#define | IFX_SE_SYSCALL_STORAGE_TIMEOUT IFX_SE_ERROR_CODE(0xFF00000Cu)
| Returned when data not written during defined timeout.
#define | IFX_SE_SYSCALL_OV_DETECTED IFX_SE_ERROR_CODE(0xFF00000Du)
| Returned when over-voltage detected during syscall execution.
#define | IFX_SE_SYSCALL_RRAM_CLK_ERROR IFX_SE_ERROR_CODE(0xFF00000Eu)
| Returned when RRAM clock (HFCLK0) not corresponding to selected RRAM power mode (LP/ULP)
#define | IFX_SE_SYSCALL_INVALID_CLOCK IFX_SE_ERROR_CODE(0xFF00000Fu)
| Returned when CPU clock (HFCLK0) frequency not in the supported range (3,6MHz - 210MHz)
#define | IFX_SE_SYSCALL_INTEGRITY_FAILURE IFX_SE_ERROR_CODE(0xFF000010u)
| Returned on data integrity (CRC check) error.
#define | IFX_SE_SYSCALL_INSUFFICIENT_STORAGE IFX_SE_ERROR_CODE(0xFF000011u)
| Returned when input data bigger then supported.
#define | IFX_SE_SYSCALL_BUFFER_TOO_SMALL IFX_SE_ERROR_CODE(0xFF000012u)
| Returned when the output buffer is too small to store the operation output data.
#define | IFX_SE_SYSCALL_DATA_INVALID IFX_SE_ERROR_CODE(0xFF000013u)
| Returned on output data preparation error.
#define | IFX_SE_SYSCALL_ADDR_NOT_ALIGNED IFX_SE_ERROR_CODE(0xFF000014u)
| Returned when address not aligned.
#define | IFX_SE_SYSCALL_INSUFFICIENT_DATA IFX_SE_ERROR_CODE(0xFF000015u)
| Returned when input data size less then expected.
#define | IFX_SE_SYSCALL_INVALID_PARAM_NUM IFX_SE_ERROR_CODE(0xFF000016u)
| Returned when number of syscall parameters is incorrect.
#define | IFX_SE_SYSCALL_INVALID_PACKET_DATA IFX_SE_ERROR_CODE(0xFF000017u)
| Returned when syscall packet data is empty.
#define | IFX_SE_SYSCALL_INVALID_PACKET_SIZE IFX_SE_ERROR_CODE(0xFF000018u)
| Returned when syscall packet size is incorrect.
#define | IFX_SE_SYSCALL_INVALID_PACKET_PARAM IFX_SE_ERROR_CODE(0xFF000019u)
| Returned when syscall packet data has damaged FIH parameters.
#define | IFX_SE_SYSCALL_INSUFFICIENT_CONTEXT IFX_SE_ERROR_CODE(0xFF00001Au)
| Returned when no operation context is available.
#define | IFX_SE_SYSCALL_INVALID_TEMPERATURE IFX_SE_ERROR_CODE(0xFF00001Bu)
| Returned when measured temperature is not in supported range (-40C - +125C) More...
#define | IFX_SE_SYSCALL_INSUFFICIENT_COUNTER IFX_SE_ERROR_CODE(0xFF00001Cu)
| Returned when no key usage Limit counter is available.
#define | IFX_SE_SYSCALL_TIMEOUT_ERROR IFX_SE_ERROR_CODE(0xFF0000FEu)
| Returned when syscall didn't respond until defined timeout.
#define | IFX_SE_SYSCALL_INVALID_MEM_ALLOC IFX_SE_ERROR_CODE(0xFF0000FFu)
| Returned when memory allocation failed.
#define | IFX_SE_SYSCALL_SS_ON IFX_SE_ERROR_CODE(0xFF000100u)
| Returned when subsystem is attempted to be powered on but it is already in ON state.
#define | IFX_SE_SYSCALL_SS_POWERON_FAIL IFX_SE_ERROR_CODE(0xFF000101u)
| Returned when the subsystem is failed to power on.
#define | IFX_SE_SYSCALL_SS_RESET_FAIL IFX_SE_ERROR_CODE(0xFF000102u)
| Returned when the subsystem is failed to come out of reset.
#define | IFX_SE_SYSCALL_SS_INVALID_STATE IFX_SE_ERROR_CODE(0xFF000103u)
| Returned when the subsystem could not transition to the required state to execute the service.
#define | IFX_SE_SYSCALL_CORRUPTION_DETECTED IFX_SE_ERROR_CODE(0xFFBADBADu)
| Returned when data corruption detected.

## Macro Definition Documentation

## ◆ IFX_SE_SYSCALL_INVALID_TEMPERATURE

#define IFX_SE_SYSCALL_INVALID_TEMPERATURE IFX_SE_ERROR_CODE(0xFF00001Bu)

Returned when measured temperature is not in supported range (-40C - +125C)

Temperature is measured during EPC4 device boot process. User application may read its status by ifx_se_get_info API.

When temperature error occurs, it is no longer possible to perform the next operations:

- generate key
- generate IV, nonce, random data
- sign hash or message
- key derivation
- generate attestation token.

To return the Secure Runtime Services to the normal operational state the user application should call sequence of ifx_se_disable and ifx_se_enable when device temperature is returned to allowed range.