SE RT Services Utilities library

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.