AESECB driver implementation for the Low Power F3 family.
==========================================================================
The Low Power F3 family of devices has a dedicated AES hardware that can perform AES encryption operations with 128-bit keys. Only one operation can be carried out on the accelerator at a time. Mutual exclusion is implemented at the driver level and coordinated between all drivers relying on the accelerator. It is transparent to the application and only noted to ensure sensible access timeouts are set.
The driver implementation does not perform runtime checks for most input parameters. Only values that are likely to have a stochastic element to them are checked (such as whether a driver is already open). Higher input parameter validation coverage is achieved by turning on assertions when compiling the driver.
#include <stdbool.h>
#include <stdint.h>
#include <ti/drivers/AESECB.h>
#include <ti/drivers/cryptoutils/aes/AESCommonLPF3.h>
#include <ti/drivers/cryptoutils/sharedresources/CryptoResourceLPF3.h>
Go to the source code of this file.
Data Structures | |
struct | AESECBLPF3_Object |
AESECBLPF3 Object. More... | |
Macros | |
#define | AESECBLPF3_DMA_SIZE_THRESHOLD (1U * AES_BLOCK_SIZE) |
#define | AESEBCLPF3_SINGLE_BLOCK_AUTOCFG ((uint32_t)AES_AUTOCFG_AESSRC_BUF | (uint32_t)AES_AUTOCFG_TRGAES_WRBUF3S | (uint32_t)AES_AUTOCFG_BUSHALT_EN) |
Typedefs | |
typedef AESCommonLPF3_HWAttrs | AESECBLPF3_HWAttrs |
AESECBLPF3 Hardware Attributes. More... | |
#define AESECBLPF3_DMA_SIZE_THRESHOLD (1U * AES_BLOCK_SIZE) |
The threshold at which blocking and callback mode transfers will utilize DMA. For data lengths below this threshold, polling CPU R/W will be used instead of DMA. With task switching and interrupt overhead, it is inefficient to utilize DMA for shorter length operations. The threshold value must be a multiple of AES_BLOCK_SIZE.
#define AESEBCLPF3_SINGLE_BLOCK_AUTOCFG ((uint32_t)AES_AUTOCFG_AESSRC_BUF | (uint32_t)AES_AUTOCFG_TRGAES_WRBUF3S | (uint32_t)AES_AUTOCFG_BUSHALT_EN) |
AESECBLPF3 Hardware Attributes.
AESECBLPF3 hardware attributes should be included in the board file and pointed to by the AESECB_config struct.