27 #ifndef MCUXCLELS_COMMON_H_ 28 #define MCUXCLELS_COMMON_H_ 30 #include <mcuxClConfig.h> 34 #include <platform_specific_headers.h> 57 #ifndef MCUXCL_FEATURE_ELS_GET_FW_VERSION 58 #define MCUXCLELS_HW_VERSION ((mcuxClEls_HwVersion_t) { \ 60 .revision = (uint32_t) ELS_HW_VERSION_REVISION, \ 61 .minor = (uint32_t) ELS_HW_VERSION_MINOR, \ 62 .major = (uint32_t) ELS_HW_VERSION_MAJOR, \ 63 .level = (uint32_t) ELS_HW_VERSION_LEVEL \ 67 #define MCUXCLELS_HW_VERSION ((mcuxClEls_HwVersion_t) { \ 69 .revision = (uint32_t) ELS_HW_VERSION_REVISION, \ 70 .minor = (uint32_t) ELS_HW_VERSION_MINOR, \ 71 .major = (uint32_t) ELS_HW_VERSION_MAJOR, \ 72 .fw_revision = (uint32_t) ELS_HW_VERSION_FW_REVISION, \ 73 .fw_minor = (uint32_t) ELS_HW_VERSION_FW_MINOR, \ 74 .fw_major = (uint32_t) ELS_HW_VERSION_FW_MAJOR \ 79 #ifdef MCUXCL_FEATURE_ELS_DMA_FINAL_ADDRESS_READBACK 80 #define MCUXCLELS_DMA_READBACK_PROTECTION_TOKEN MCUX_CSSL_FP_FUNCTION_CALLED(mcuxClEls_CompareDmaFinalOutputAddress) 82 #define MCUXCLELS_DMA_READBACK_PROTECTION_TOKEN (0u) 92 #define MCUXCLELS_ELS_INTERRUPT_ENABLE (0x01U) 93 #define MCUXCLELS_ELS_INTERRUPT_DISABLE (0x00U) 94 #ifdef MCUXCL_FEATURE_ELS_GLITCHDETECTOR 95 #define MCUXCLELS_GLITCH_DETECTOR_INTERRUPT_ENABLE ((uint32_t) 1U) 96 #define MCUXCLELS_GLITCH_DETECTOR_INTERRUPT_DISABLE ((uint32_t) 0U) 106 #define MCUXCLELS_ELS_RESET_CLEAR (0x01U) 107 #define MCUXCLELS_ELS_RESET_KEEP (0x00U) 108 #ifdef MCUXCL_FEATURE_ELS_GLITCHDETECTOR 109 #define MCUXCLELS_GLITCH_DETECTOR_RESET_CLEAR ((uint32_t) 1U) 110 #define MCUXCLELS_GLITCH_DETECTOR_RESET_KEEP ((uint32_t) 0U) 120 #define MCUXCLELS_ELS_INTERRUPT_SET (0x01U) 121 #define MCUXCLELS_ELS_INTERRUPT_KEEP (0x00U) 122 #ifdef MCUXCL_FEATURE_ELS_GLITCHDETECTOR 123 #define MCUXCLELS_GLITCH_DETECTOR_NEG_SET (0x01U) 124 #define MCUXCLELS_GLITCH_DETECTOR_NEG_KEEP (0x00U) 125 #define MCUXCLELS_GLITCH_DETECTOR_POS_SET (0x01U) 126 #define MCUXCLELS_GLITCH_DETECTOR_POS_KEEP (0x00U) 136 #define MCUXCLELS_ERROR_FLAGS_KEEP ((mcuxClEls_ErrorHandling_t) 0x0u) 137 #define MCUXCLELS_ERROR_FLAGS_CLEAR ((mcuxClEls_ErrorHandling_t) 0x1u) 146 #define MCUXCLELS_RESET_DO_NOT_CANCEL ((mcuxClEls_ResetOption_t) 0x0u) 147 #define MCUXCLELS_RESET_CANCEL ((mcuxClEls_ResetOption_t) 0x1u) 161 #define MCUXCLELS_STATUS_PPROT_UNPRIVILEGED_SECURE ((uint32_t) 0x0u) 162 #define MCUXCLELS_STATUS_PPROT_PRIVILEGED_SECURE ((uint32_t) 0x1u) 163 #define MCUXCLELS_STATUS_PPROT_UNPRIVILEGED_NONSECURE ((uint32_t) 0x2u) 164 #define MCUXCLELS_STATUS_PPROT_PRIVILEGED_NONSECURE ((uint32_t) 0x3u) 173 #define MCUXCLELS_STATUS_ECDSAVFY_NORUN ((uint32_t) 0x0u) 174 #define MCUXCLELS_STATUS_ECDSAVFY_FAIL ((uint32_t) 0x1u) 175 #define MCUXCLELS_STATUS_ECDSAVFY_OK ((uint32_t) 0x2u) 176 #define MCUXCLELS_STATUS_ECDSAVFY_ERROR ((uint32_t) 0x3u) 184 #define MCUXCLELS_STATUS_DRBGENTLVL_NONE ((uint32_t) 0x0u) 185 #define MCUXCLELS_STATUS_DRBGENTLVL_LOW ((uint32_t) 0x1u) 186 #define MCUXCLELS_STATUS_DRBGENTLVL_HIGH ((uint32_t) 0x2u) 189 #ifdef MCUXCL_FEATURE_ELS_LOCKING 195 #define MCUXCLELS_MASTER_UNLOCK_ANY ((uint32_t) 0x1Fu) 232 #ifndef MCUXCL_FEATURE_ELS_GET_FW_VERSION 236 uint32_t fw_revision :4;
237 uint32_t fw_minor :8;
238 uint32_t fw_major :4;
264 #ifdef MCUXCL_FEATURE_ELS_GLITCHDETECTOR 265 uint32_t gdet_pos :1;
266 uint32_t gdet_neg :1;
271 #ifdef MCUXCL_FEATURE_ELS_LOCKING 272 uint32_t els_locked :1;
308 #ifdef MCUXCL_FEATURE_ELS_GLITCHDETECTOR 329 #ifdef MCUXCL_FEATURE_ELS_GLITCHDETECTOR 350 #ifdef MCUXCL_FEATURE_ELS_GLITCHDETECTOR 351 uint32_t gdetint_neg :1;
352 uint32_t gdetint_pos :1;
399 #define drbgreqsub drbgreqsup 433 #ifdef MCUXCL_FEATURE_ELS_HWCONFIG 637 uint32_t counterLimit,
729 #ifdef MCUXCL_FEATURE_ELS_LOCKING 755 uint32_t * pSessionId
823 #ifdef MCUXCL_FEATURE_ELS_DMA_ADDRESS_READBACK 837 uint32_t* pLastAddress
841 #ifdef MCUXCL_FEATURE_ELS_DMA_FINAL_ADDRESS_READBACK 861 uint8_t *outputStartAddress,
862 size_t expectedLength
uint32_t tlsinitsup
Indicates whether the tls_init command is supported.
Definition: mcuxClEls_Common.h:385
uint32_t mcuxClEls_Status_t
Type for ELS driver status codes.
Definition: mcuxClEls_Types.h:211
uint32_t value
Accesses the bit field as a full word.
Definition: mcuxClEls_Common.h:369
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_ResetErrorFlags(void)
Resets all error flags that have been set by a previous operation.
uint32_t kdeletesup
Indicates whether the kdelete command is supported.
Definition: mcuxClEls_Common.h:381
uint32_t dtrngevalsup
Indicates whether the dtrng_eval command is supported.
Definition: mcuxClEls_Common.h:392
uint32_t keygensup
Indicates whether the keygen command is supported.
Definition: mcuxClEls_Common.h:378
uint32_t keyprovsup
Indicates whether the keyprov command is supported.
Definition: mcuxClEls_Common.h:382
uint32_t value
Accesses the bit field as a full word.
Definition: mcuxClEls_Common.h:345
uint32_t value
Accesses the bit field as a full word.
Definition: mcuxClEls_Common.h:324
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_ResetIntFlags(mcuxClEls_InterruptOptionRst_t options)
Clear the interrupt status register.
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_Enable_Async(void)
Enables the ELS.
uint32_t dtrgncfgloadsup
Indicates whether the dtrng_cfg_load command is is supported.
Definition: mcuxClEls_Common.h:391
uint32_t ckdfsup
Indicates whether the ckdf command is supported.
Definition: mcuxClEls_Common.h:383
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_WaitForOperation(mcuxClEls_ErrorHandling_t errorHandling)
Wait for an ELS operation and optionally clear the error status.
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_GetHwVersion(mcuxClEls_HwVersion_t *result)
Determines the version of the underlying ELS hardware IP.
uint32_t ecdsavfy
ECDSA verify operation state (For possible values of this field, see MCUXCLELS_STATUS_ECDSAVFY_)
Definition: mcuxClEls_Common.h:260
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_GetIntEnableFlags(mcuxClEls_InterruptOptionEn_t *result)
Get interrupt enable flags.
Type to control which ELS interrupts should be set when calling mcuxClEls_SetIntFlags.
Definition: mcuxClEls_Common.h:341
uint32_t authciphersup
Indicates whether the auth_cipher command is supported.
Definition: mcuxClEls_Common.h:374
Type to control which ELS interrupts should be reset when calling mcuxClEls_ResetIntFlags.
Definition: mcuxClEls_Common.h:320
uint32_t drbgentlvl
Entropy quality of the current DRBG instance (For possible values of this field, see MCUXCLELS_STATUS...
Definition: mcuxClEls_Common.h:262
uint32_t hashsup
Indicates whether the hash command is supported.
Definition: mcuxClEls_Common.h:386
Command option type for mcuxClEls_SetIntEnableFlags and mcuxClEls_GetIntEnableFlags.
Definition: mcuxClEls_Common.h:299
uint32_t eckxchsup
Indicates whether the dhkey_xch command is supported.
Definition: mcuxClEls_Common.h:377
uint32_t mcuxClEls_ResetOption_t
Type to handle ELS reset options.
Definition: mcuxClEls_Common.h:292
uint32_t busy
ELS is busy.
Definition: mcuxClEls_Common.h:256
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_SetIntFlags(mcuxClEls_InterruptOptionSet_t options)
Set the interrupt status register, for debug and testing purposes.
Result type of mcuxClEls_GetHwState.
Definition: mcuxClEls_Common.h:248
uint32_t gdettrimsup
Indicates whether the gdet_trim command is supported.
Definition: mcuxClEls_Common.h:394
uint32_t ecsignsup
Indicates whether the ecsign command is supported.
Definition: mcuxClEls_Common.h:375
uint32_t err
ELS is in error state.
Definition: mcuxClEls_Common.h:258
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_GetHwState(mcuxClEls_HwState_t *result)
Determines the current state of the ELS.
uint32_t elsint
Whether ELS interrupt should be used. (For possible values of this field, see mcuxClEls_InterruptOpti...
Definition: mcuxClEls_Common.h:307
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_GetErrorLevel(mcuxClEls_ErrorHandling_t errorHandling, uint32_t *errorLevel)
Get the last ELS error code and level and optionally clear the error status.
uint32_t value
Accesses the bit field as a full word.
Definition: mcuxClEls_Common.h:303
uint32_t elsint
Whether ELS interrupt should be set. (For possible values of this field, see mcuxClEls_InterruptOptio...
Definition: mcuxClEls_Common.h:349
uint32_t keyinsup
Indicates whether the keyin command is supported.
Definition: mcuxClEls_Common.h:379
#define MCUXCLELS_API
Marks a function as a public API function of the mcuxClEls component.
Definition: mcuxClEls_Common.h:47
uint32_t hkdfsup
Indicates whether the hkdf command is supported.
Definition: mcuxClEls_Common.h:384
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_Disable(void)
Disable the ELS.
uint32_t ecvfysup
Indicates whether the ecvfy command is supported.
Definition: mcuxClEls_Common.h:376
uint32_t hmacsup
Indicates whether the hmac command is supported.
Definition: mcuxClEls_Common.h:387
uint32_t drbgtestsup
Indicates whether the drbg_test command is supported.
Definition: mcuxClEls_Common.h:390
Definition of function identifiers for the flow protection mechanism.
uint32_t irq
ELS interrupt activated.
Definition: mcuxClEls_Common.h:257
uint32_t major
Major version.
Definition: mcuxClEls_Common.h:231
Provides the API for the CSSL flow protection mechanism.
uint32_t elsint
Whether ELS interrupt should be reset. (For possible values of this field, see mcuxClEls_InterruptOpt...
Definition: mcuxClEls_Common.h:328
uint32_t keyoutsup
Indicates whether the keyout command is supported.
Definition: mcuxClEls_Common.h:380
Result type of #mcuxClEls_GetHwConfig.
Definition: mcuxClEls_Common.h:365
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_SetRandomStartDelay(uint32_t delay)
Set the random start delay for AES based operations.
uint32_t dtrng_busy
Indicates the DTRNG is gathering entropy.
Definition: mcuxClEls_Common.h:263
uint32_t pprot
The privilege/security level of the most recently started ELS command (For possible values of this fi...
Definition: mcuxClEls_Common.h:261
uint32_t level
Release level version.
Definition: mcuxClEls_Common.h:233
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_LimitedWaitForOperation(uint32_t counterLimit, mcuxClEls_ErrorHandling_t errorHandling)
Await the completion of an ELS operation for a limited amount of time and optionally clear the error ...
uint32_t revision
Revision number.
Definition: mcuxClEls_Common.h:229
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_Reset_Async(mcuxClEls_ResetOption_t options)
Perform a synchronous reset of the ELS.
#define MCUX_CSSL_FP_FUNCTION_DECL(...)
Declaration of a flow protected function.
Definition: mcuxCsslFlowProtection.h:125
uint32_t cmacsup
Indicates whether the cmac command is supported.
Definition: mcuxClEls_Common.h:388
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_SetIntEnableFlags(mcuxClEls_InterruptOptionEn_t options)
Set interrupt enable flags.
uint32_t drbgreqsup
Indicates whether the drbg_req command is supported.
Definition: mcuxClEls_Common.h:389
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_GetErrorCode(mcuxClEls_ErrorHandling_t errorHandling)
Get the last ELS error code and optionally clear the error status.
Result type of mcuxClEls_GetHwVersion.
Definition: mcuxClEls_Common.h:221
uint32_t ciphersup
Indicates whether the cipher command is supported.
Definition: mcuxClEls_Common.h:373
MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_GetRandomStartDelay(uint32_t *delay)
Get the random start delay for AES based operations.
uint32_t mcuxClEls_ErrorHandling_t
Type to handle ELS error clearing options.
Definition: mcuxClEls_Common.h:285
uint32_t value
Accesses the bit field as a full word.
Definition: mcuxClEls_Common.h:225
uint32_t prngready
ELS PRNG is seeded and ready to use.
Definition: mcuxClEls_Common.h:259
uint32_t minor
Minor version.
Definition: mcuxClEls_Common.h:230
uint32_t gdetcfgloadsup
Indicates whether the gdet_cfg_load command is supported.
Definition: mcuxClEls_Common.h:393
uint32_t value
Accesses the bit field as a full word.
Definition: mcuxClEls_Common.h:252
#define MCUX_CSSL_FP_PROTECTED_TYPE(resultType)
Based on a given base type, builds a return type with flow protection.
Definition: mcuxCsslFlowProtection.h:81