|
AM64x MCU+ SDK
08.01.00
|
|
Go to the documentation of this file.
57 #include <security/sa2ul/hw_include/cslr_cp_ace.h>
73 #define SA2UL_MAX_HASH_SIZE_BYTES (64U)
75 #define SA2UL_MAX_KEY_SIZE_BYTES (32U)
77 #define SA2UL_MAX_IV_SIZE_BYTES (16U)
79 #define SA2UL_NUMBER_OF_RINGS (3U)
81 #define SA2UL_CACHELINE_ALIGNMENT (128U)
83 #define SA2UL_SECCTX_SIZE (256U)
85 #define SA2UL_INSTANCES_MAX (4U)
87 #define SA2UL_RING_N_ELEMS (8U)
89 #define SA2UL_SW_RING_NUM (304U)
99 #define SA2UL_HASH_ALG_NULL (0x10U)
101 #define SA2UL_HASH_ALG_SHA2_256 (0x14U)
103 #define SA2UL_HASH_ALG_SHA2_512 (0x16U)
112 #define SA2UL_OP_ENC (0x01U)
114 #define SA2UL_OP_AUTH (0x02U)
116 #define SA2UL_OP_ENC_THEN_AUTH (0x03U)
118 #define SA2UL_OP_AUTH_THEN_ENC (0x04U)
127 #define SA2UL_ENGINE_CODE_DEFAULT_ENGINE_ID (0U)
128 #define SA2UL_ENGINE_CODE_ENCRYPTION_MODULE_P1 (2U)
129 #define SA2UL_ENGINE_CODE_ENCRYPTION_MODULE_P2 (3U)
130 #define SA2UL_ENGINE_CODE_AUTHENTICATION_MODULE_P1 (4U)
131 #define SA2UL_ENGINE_CODE_AUTHENTICATION_MODULE_P2 (5U)
132 #define SA2UL_ENGINE_CODE_DEFAULT_EGRESS_PORT (20U)
141 #define SA2UL_ENC_ALG_AES (0x0U)
142 #define SA2UL_ENC_ALG_TDES (0x1U)
143 #define SA2UL_ENC_ALG_MAX (0x2U)
152 #define SA2UL_ENC_DIR_ENCRYPT (0x0U)
153 #define SA2UL_ENC_DIR_DECRYPT (0x1U)
162 #define SA2UL_ENC_MODE_ECB (0x0U)
163 #define SA2UL_ENC_MODE_CBC (0x1U)
164 #define SA2UL_ENC_MODE_MAX (0x2U)
173 #define SA2UL_ENC_KEYSIZE_128 (0x0U)
174 #define SA2UL_ENC_KEYSIZE_192 (0x1U)
175 #define SA2UL_ENC_KEYSIZE_256 (0x2U)
176 #define SA2UL_ENC_KEYSIZE_MAX (0x3U)
241 uint32_t udmapRxChnum[2];
375 uint32_t reserved1[4];
376 uint32_t authenticationKeyValueL[8];
378 uint32_t authenticationKeyValueH[8];
395 uint32_t modeCtrlInstrs[6];
397 uint32_t encKeyValue[8];
402 uint8_t preCryptoData[15];
570 memset(ctxPrms, 0,
sizeof(*ctxPrms));
Parameters passed to SA2UL_open()
Definition: sa2ul.h:217
uint32_t numDesc
Definition: sa2ul.h:315
uint8_t hashAlg
Definition: sa2ul.h:194
SA2UL_Scctl scctl
Definition: sa2ul.h:410
Parameters passed to SA2UL_contextAlloc()
Definition: sa2ul.h:191
SA2UL_Attrs * attrs
Definition: sa2ul.h:352
CSL_Cp_aceRegs * pSaRegs
Definition: sa2ul.h:233
void * Udma_FlowHandle
UDMA flow handle.
Definition: udma_types.h:73
uint32_t contextIdMaxNum
Definition: sa2ul.h:333
uint32_t secure
Definition: sa2ul.h:345
#define SA2UL_INSTANCES_MAX
Max SA2UL instances.
Definition: sa2ul.h:85
SA2UL_Handle handle
Definition: sa2ul.h:424
SA2UL context RAM structure for authentication engine.
Definition: sa2ul.h:370
uint8_t sopOffset
Definition: sa2ul.h:361
uint16_t index
Definition: tisci_rm_proxy.h:3
SA2UL_Config gSa2ulConfig[]
Externally defined driver configuration array.
uint8_t encMode
Definition: sa2ul.h:200
uint8_t encKeySize
Definition: sa2ul.h:204
SA2UL context RAM structure.
Definition: sa2ul.h:409
uint32_t storageQueueHead
Definition: sa2ul.h:281
void * Udma_ChHandle
UDMA channel handle.
Definition: udma_types.h:67
uint32_t reserved0
Definition: sa2ul.h:372
#define SA2UL_RING_N_ELEMS
Max SA2UL ring n elements.
Definition: sa2ul.h:87
Opaque UDMA ring object.
Definition: udma_ring.h:596
uint8_t secCtxId
Definition: sa2ul.h:423
uint8_t opType
Definition: sa2ul.h:192
int32_t SA2UL_contextFree(SA2UL_ContextObject *pCtxObj)
Function to free secure context configuration.
Udma_ChHandle txChHandle
Definition: sa2ul.h:264
int32_t SA2UL_contextAlloc(SA2UL_Handle handle, SA2UL_ContextObject *ctxObj, const SA2UL_ContextParams *ctxPrms)
Function to configure secure context.
void SA2UL_close(SA2UL_Handle handle)
Function to close a SA2UL module specified by the SA2UL handle.
int32_t SA2UL_rngRead(SA2UL_Handle handle, uint32_t *out)
Read random numbers into the output buffer.
uint32_t rxBytesCnt
Definition: sa2ul.h:431
SA2UL_SecCtx secCtx
Definition: sa2ul.h:421
uint32_t authCtx1
Definition: sa2ul.h:371
#define SA2UL_MAX_IV_SIZE_BYTES
Max Initialization vector (IV) size in bytes.
Definition: sa2ul.h:77
uint32_t gSa2ulConfigNum
Externally defined driver configuration Num.
SA2UL instance attributes - used during init time.
Definition: sa2ul.h:299
void * SA2UL_Handle
Handle to the SA2UL driver returned by SA2UL_open()
Definition: sa2ul.h:185
int32_t SA2UL_contextProcess(SA2UL_ContextObject *ctxObj, const uint8_t *input, uint32_t ilen, uint8_t *output)
Function to transfer and recieve data buffer.
Udma_EventHandle rxEvtHandle
Definition: sa2ul.h:276
Udma_RingHandle txRingHandle
Definition: sa2ul.h:274
Udma_FlowHandle rxFlowHandle
Definition: sa2ul.h:266
uint32_t encrCtl
Definition: sa2ul.h:394
void SA2UL_init(void)
This function initializes the SA2UL module.
uint32_t computationStatus
Definition: sa2ul.h:429
uint8_t encAlg
Definition: sa2ul.h:196
void * Udma_RingHandle
UDMA ring handle.
Definition: udma_types.h:71
SA2UL_Handle SA2UL_open(uint32_t index, const SA2UL_Params *params)
This function opens a given SA2UL module.
uint8_t contextId
Definition: sa2ul.h:293
uint8_t middleOffset
Definition: sa2ul.h:362
uint32_t scptrH
Definition: sa2ul.h:387
Opaque UDMA channel object.
Definition: udma_ch.h:893
uint32_t privId
Definition: sa2ul.h:341
Udma_EventObject udmaEvtObj
Definition: sa2ul.h:256
#define SA2UL_NUMBER_OF_RINGS
Max number of rings.
Definition: sa2ul.h:79
static void SA2UL_ContextParams_init(SA2UL_ContextParams *ctxPrms)
Definition: sa2ul.h:566
uint32_t txBytesCnt
Definition: sa2ul.h:430
Udma_ChObject udmaTxChObj
Definition: sa2ul.h:248
SA2UL context RAM structure for Encryption engine.
Definition: sa2ul.h:393
int32_t SA2UL_rngSetup(SA2UL_Handle handle)
setup the SA2UL RNG module.
uint32_t scptrL
Definition: sa2ul.h:388
SA2UL_SecCtxAuth auth
Definition: sa2ul.h:414
Opaque UDMA flow object.
Definition: udma_flow.h:438
uint32_t txPsilThreadId
Definition: sa2ul.h:305
#define SA2UL_MAX_KEY_SIZE_BYTES
Max key size in bytes.
Definition: sa2ul.h:75
SA2UL_Handle handle
Definition: sa2ul.h:227
uint32_t rxPsil1ThreadId
Definition: sa2ul.h:309
SA2UL_Params prms
Definition: sa2ul.h:229
uint32_t descSize
Definition: sa2ul.h:317
uint32_t txRingNumInt
Definition: sa2ul.h:335
uint32_t udmaHandle
Definition: sa2ul.h:329
uint32_t rxPsil0ThreadId
Definition: sa2ul.h:307
void * Udma_EventHandle
UDMA event handle.
Definition: udma_types.h:69
uint32_t ringCnt
Definition: sa2ul.h:327
uint32_t inputLen
Definition: sa2ul.h:206
uint32_t udmapTxChnum
Definition: sa2ul.h:239
uint32_t rxRingNumInt
Definition: sa2ul.h:337
SA2UL_ContextParams ctxPrms
Definition: sa2ul.h:425
SA2UL engine related structures.
Definition: sa2ul.h:384
Udma_RingHandle rxFreeRingHandle
Definition: sa2ul.h:268
uint32_t totalLengthInByes
Definition: sa2ul.h:427
uint32_t udmaSaRxGroupNum
Definition: sa2ul.h:325
uint32_t reserved
Definition: sa2ul.h:218
uint32_t authenticationLengthHi
Definition: sa2ul.h:373
uint8_t encDirection
Definition: sa2ul.h:198
uint32_t scctl2
Definition: sa2ul.h:386
Udma_RingHandle rxRingHandle
Definition: sa2ul.h:270
uint32_t storageQueueTail
Definition: sa2ul.h:282
SA2UL_Object * object
Definition: sa2ul.h:354
Udma_FlowObject udmaFlowObj
Definition: sa2ul.h:252
UDMA Driver API/interface file.
void * Udma_DrvHandle
UDMA driver handle.
Definition: udma_types.h:65
Udma_DrvHandle drvHandle
Definition: sa2ul.h:260
uint32_t storageQueueFree
Definition: sa2ul.h:283
Udma_EventObject udmaEvtObj0
Definition: sa2ul.h:258
uint32_t priv
Definition: sa2ul.h:343
uint32_t rxRingMemAddr
Definition: sa2ul.h:311
uint32_t descMemSize
Definition: sa2ul.h:321
uint32_t udmapRxFlownum
Definition: sa2ul.h:243
Udma_RingHandle txComplRingHandle
Definition: sa2ul.h:272
uint32_t udmaSaTxGroupNum
Definition: sa2ul.h:323
MEDdata for Encryption engine.
Definition: sa2ul.h:360
static void SA2UL_Params_init(SA2UL_Params *prms)
Function to initialize default SA2UL parameters.
Definition: sa2ul.h:558
Object for a SA2UL crypto operation.
Definition: sa2ul.h:226
uint32_t sa2ulErrCnt
Definition: sa2ul.h:432
const uint8_t * mcInstrs
Definition: sa2ul.h:365
uint32_t saBaseAddr
Definition: sa2ul.h:303
Opaque UDMA event object.
Definition: udma_event.h:441
#define SA2UL_MAX_HASH_SIZE_BYTES
Max hash size in bytes.
Definition: sa2ul.h:73
uint32_t hwCtrlWord
Definition: sa2ul.h:396
uint32_t swRingNumInt
Definition: sa2ul.h:339
uint32_t descMemAddr
Definition: sa2ul.h:319
uint32_t scctl1
Definition: sa2ul.h:385
uint32_t authenticationLengthLo
Definition: sa2ul.h:374
uint32_t psilInst
Definition: sa2ul.h:235
SA2UL_SecCtxEnc enc
Definition: sa2ul.h:415
uint32_t contextIdStart
Definition: sa2ul.h:331
void SA2UL_deinit(void)
This function de-initializes the SA2UL module.
SA2UL driver context.
Definition: sa2ul.h:351
uint8_t eopOffset
Definition: sa2ul.h:363
uint8_t nMCInstrs
Definition: sa2ul.h:364
uint32_t txRingMemAddr
Definition: sa2ul.h:313
uint32_t isOpen
Definition: sa2ul.h:231