1304 lines
110 KiB
C
1304 lines
110 KiB
C
/*****************************************************************************
|
|
|
|
Copyright (C) 2023 Texas Instruments Incorporated - http://www.ti.com/
|
|
|
|
Redistribution and use in source and binary forms, with or without
|
|
modification, are permitted provided that the following conditions
|
|
are met:
|
|
|
|
Redistributions of source code must retain the above copyright
|
|
notice, this list of conditions and the following disclaimer.
|
|
|
|
Redistributions in binary form must reproduce the above copyright
|
|
notice, this list of conditions and the following disclaimer in the
|
|
documentation and/or other materials provided with the
|
|
distribution.
|
|
|
|
Neither the name of Texas Instruments Incorporated nor the names of
|
|
its contributors may be used to endorse or promote products derived
|
|
from this software without specific prior written permission.
|
|
|
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
*****************************************************************************/
|
|
|
|
#ifndef ti_devices_msp_peripherals_hw_aesadv__include
|
|
#define ti_devices_msp_peripherals_hw_aesadv__include
|
|
|
|
/* Filename: hw_aesadv.h */
|
|
/* Revised: 2023-12-19 15:17:12 */
|
|
/* Revision: 66de12cdc985948e62986db704f24a4ffca2a1c5 */
|
|
|
|
#ifndef __CORTEX_M
|
|
#ifdef __cplusplus
|
|
#define __I volatile /*!< Defines 'read only' permissions */
|
|
#else
|
|
#define __I volatile const /*!< Defines 'read only' permissions */
|
|
#endif
|
|
#define __O volatile /*!< Defines 'write only' permissions */
|
|
#define __IO volatile /*!< Defines 'read / write' permissions */
|
|
|
|
/* following defines should be used for structure members */
|
|
#define __IM volatile const /*! Defines 'read only' structure member permissions */
|
|
#define __OM volatile /*! Defines 'write only' structure member permissions */
|
|
#define __IOM volatile /*! Defines 'read / write' structure member permissions */
|
|
#endif
|
|
|
|
/* Use standard integer types with explicit width */
|
|
#include <stdint.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#if defined ( __CC_ARM )
|
|
#pragma anon_unions
|
|
#endif
|
|
|
|
/******************************************************************************
|
|
* AESADV Registers
|
|
******************************************************************************/
|
|
#define AESADV_DMA_TRIG_DATAOUT_OFS ((uint32_t)0x00001080U)
|
|
#define AESADV_DMA_TRIG_DATAIN_OFS ((uint32_t)0x00001050U)
|
|
#define AESADV_CPU_INT_OFS ((uint32_t)0x00001020U)
|
|
#define AESADV_GPRCM_OFS ((uint32_t)0x00000800U)
|
|
|
|
|
|
/** @addtogroup AESADV_DMA_TRIG_DATAOUT
|
|
@{
|
|
*/
|
|
|
|
typedef struct {
|
|
__I uint32_t IIDX; /* !< (@ 0x00001080) Interrupt Index Register */
|
|
uint32_t RESERVED0;
|
|
__IO uint32_t IMASK; /* !< (@ 0x00001088) Interrupt mask */
|
|
uint32_t RESERVED1;
|
|
__I uint32_t RIS; /* !< (@ 0x00001090) Raw interrupt status */
|
|
uint32_t RESERVED2;
|
|
__I uint32_t MIS; /* !< (@ 0x00001098) Masked interrupt status */
|
|
uint32_t RESERVED3;
|
|
__O uint32_t ISET; /* !< (@ 0x000010A0) Interrupt set */
|
|
uint32_t RESERVED4;
|
|
__O uint32_t ICLR; /* !< (@ 0x000010A8) Interrupt clear */
|
|
} AESADV_DMA_TRIG_DATAOUT_Regs;
|
|
|
|
/*@}*/ /* end of group AESADV_DMA_TRIG_DATAOUT */
|
|
|
|
/** @addtogroup AESADV_DMA_TRIG_DATAIN
|
|
@{
|
|
*/
|
|
|
|
typedef struct {
|
|
__I uint32_t IIDX; /* !< (@ 0x00001050) Interrupt Index Register */
|
|
uint32_t RESERVED0;
|
|
__IO uint32_t IMASK; /* !< (@ 0x00001058) Interrupt mask */
|
|
uint32_t RESERVED1;
|
|
__I uint32_t RIS; /* !< (@ 0x00001060) Raw interrupt status */
|
|
uint32_t RESERVED2;
|
|
__I uint32_t MIS; /* !< (@ 0x00001068) Masked interrupt status */
|
|
uint32_t RESERVED3;
|
|
__O uint32_t ISET; /* !< (@ 0x00001070) Interrupt set */
|
|
uint32_t RESERVED4;
|
|
__O uint32_t ICLR; /* !< (@ 0x00001078) Interrupt clear */
|
|
} AESADV_DMA_TRIG_DATAIN_Regs;
|
|
|
|
/*@}*/ /* end of group AESADV_DMA_TRIG_DATAIN */
|
|
|
|
/** @addtogroup AESADV_CPU_INT
|
|
@{
|
|
*/
|
|
|
|
typedef struct {
|
|
__I uint32_t IIDX; /* !< (@ 0x00001020) Interrupt Index Register */
|
|
uint32_t RESERVED0;
|
|
__IO uint32_t IMASK; /* !< (@ 0x00001028) Interrupt mask */
|
|
uint32_t RESERVED1;
|
|
__I uint32_t RIS; /* !< (@ 0x00001030) Raw interrupt status */
|
|
uint32_t RESERVED2;
|
|
__I uint32_t MIS; /* !< (@ 0x00001038) Masked interrupt status */
|
|
uint32_t RESERVED3;
|
|
__O uint32_t ISET; /* !< (@ 0x00001040) Interrupt set */
|
|
uint32_t RESERVED4;
|
|
__O uint32_t ICLR; /* !< (@ 0x00001048) Interrupt clear */
|
|
} AESADV_CPU_INT_Regs;
|
|
|
|
/*@}*/ /* end of group AESADV_CPU_INT */
|
|
|
|
/** @addtogroup AESADV_GPRCM
|
|
@{
|
|
*/
|
|
|
|
typedef struct {
|
|
__IO uint32_t PWREN; /* !< (@ 0x00000800) Power enable */
|
|
__O uint32_t RSTCTL; /* !< (@ 0x00000804) Reset Control */
|
|
uint32_t RESERVED0[3];
|
|
__I uint32_t STAT; /* !< (@ 0x00000814) Status Register */
|
|
} AESADV_GPRCM_Regs;
|
|
|
|
/*@}*/ /* end of group AESADV_GPRCM */
|
|
|
|
/** @addtogroup AESADV
|
|
@{
|
|
*/
|
|
|
|
typedef struct {
|
|
uint32_t RESERVED0[512];
|
|
AESADV_GPRCM_Regs GPRCM; /* !< (@ 0x00000800) */
|
|
uint32_t RESERVED1[512];
|
|
__I uint32_t PDBGCTL; /* !< (@ 0x00001018) Peripheral Debug Control */
|
|
uint32_t RESERVED2;
|
|
AESADV_CPU_INT_Regs CPU_INT; /* !< (@ 0x00001020) */
|
|
uint32_t RESERVED3;
|
|
AESADV_DMA_TRIG_DATAIN_Regs DMA_TRIG_DATAIN; /* !< (@ 0x00001050) */
|
|
uint32_t RESERVED4;
|
|
AESADV_DMA_TRIG_DATAOUT_Regs DMA_TRIG_DATAOUT; /* !< (@ 0x00001080) */
|
|
uint32_t RESERVED5[13];
|
|
__IO uint32_t EVT_MODE; /* !< (@ 0x000010E0) Event Mode */
|
|
uint32_t RESERVED6[7];
|
|
__O uint32_t GCMCCM_TAG0; /* !< (@ 0x00001100) CBC-MAC third key (LSW) / GCM & CCM Intermediate
|
|
TAG (LSW) */
|
|
__O uint32_t GCMCCM_TAG1; /* !< (@ 0x00001104) CBC-MAC third key / GCM & CCM Intermediate TAG */
|
|
__O uint32_t GCMCCM_TAG2; /* !< (@ 0x00001108) CBC-MAC third key / GCM & CCM Intermediate TAG */
|
|
__O uint32_t GCMCCM_TAG3; /* !< (@ 0x0000110C) CBC-MAC third key (MSW) / GCM & CCM Intermediate
|
|
TAG (MSW) */
|
|
__O uint32_t GHASH_H0; /* !< (@ 0x00001110) CCM & CBC-MAC second key (LSW) / GCM Hash Key
|
|
input (LSW) */
|
|
__O uint32_t GHASH_H1; /* !< (@ 0x00001114) CCM & CBC-MAC second key / GCM Hash Key input */
|
|
__O uint32_t GHASH_H2; /* !< (@ 0x00001118) CCM & CBC-MAC second key / GCM Hash Key input */
|
|
__O uint32_t GHASH_H3; /* !< (@ 0x0000111C) CCM & CBC-MAC second key (MSW) / GCM Hash Key
|
|
input (MSW) */
|
|
__O uint32_t KEY0; /* !< (@ 0x00001120) KEY (LSW) */
|
|
__O uint32_t KEY1; /* !< (@ 0x00001124) KEY */
|
|
__O uint32_t KEY2; /* !< (@ 0x00001128) KEY */
|
|
__O uint32_t KEY3; /* !< (@ 0x0000112C) KEY */
|
|
__O uint32_t KEY4; /* !< (@ 0x00001130) KEY */
|
|
__O uint32_t KEY5; /* !< (@ 0x00001134) KEY */
|
|
__O uint32_t KEY6; /* !< (@ 0x00001138) KEY */
|
|
__O uint32_t KEY7; /* !< (@ 0x0000113C) KEY (MSW) */
|
|
__IO uint32_t IV0; /* !< (@ 0x00001140) IV (LSW) */
|
|
__IO uint32_t IV1; /* !< (@ 0x00001144) IV */
|
|
__IO uint32_t IV2; /* !< (@ 0x00001148) IV */
|
|
__IO uint32_t IV3; /* !< (@ 0x0000114C) IV */
|
|
__IO uint32_t CTRL; /* !< (@ 0x00001150) Input/Output Buffer Control and Mode selection */
|
|
__O uint32_t C_LENGTH_0; /* !< (@ 0x00001154) Crypto data length (LSW) */
|
|
__O uint32_t C_LENGTH_1; /* !< (@ 0x00001158) Crypto data length (MSW) */
|
|
__O uint32_t AAD_LENGTH; /* !< (@ 0x0000115C) AAD Data Length */
|
|
__IO uint32_t DATA0; /* !< (@ 0x00001160) Data input (LSW) / Data output (LSW) */
|
|
__IO uint32_t DATA1; /* !< (@ 0x00001164) Data input / Data output */
|
|
__IO uint32_t DATA2; /* !< (@ 0x00001168) Data input / Data output */
|
|
__IO uint32_t DATA3; /* !< (@ 0x0000116C) Data input (LSW) / Data output (MSW) */
|
|
__I uint32_t TAG0; /* !< (@ 0x00001170) Hash result (LSW) */
|
|
__I uint32_t TAG1; /* !< (@ 0x00001174) Hash result */
|
|
__I uint32_t TAG2; /* !< (@ 0x00001178) Hash result */
|
|
__I uint32_t TAG3; /* !< (@ 0x0000117C) Hash result (MSW) */
|
|
__I uint32_t STATUS; /* !< (@ 0x00001180) Status */
|
|
__O uint32_t DATA_IN; /* !< (@ 0x00001184) Data in alias register */
|
|
__I uint32_t DATA_OUT; /* !< (@ 0x00001188) Data out alias register */
|
|
uint32_t RESERVED7[17];
|
|
__O uint32_t FORCE_IN_AV; /* !< (@ 0x000011D0) Data control register for input data */
|
|
__IO uint32_t CCM_ALN_WRD; /* !< (@ 0x000011D4) AES-CCM AAD alignment data word */
|
|
__IO uint32_t BLK_CNT0; /* !< (@ 0x000011D8) Internal block counter (LSW) */
|
|
__IO uint32_t BLK_CNT1; /* !< (@ 0x000011DC) Internal block counter (MSW) */
|
|
uint32_t RESERVED8[5];
|
|
__IO uint32_t DMA_HS; /* !< (@ 0x000011F4) Control register for DMA handshaking */
|
|
} AESADV_Regs;
|
|
|
|
/*@}*/ /* end of group AESADV */
|
|
|
|
|
|
|
|
#if defined ( __CC_ARM )
|
|
#pragma no_anon_unions
|
|
#endif
|
|
|
|
/******************************************************************************
|
|
* AESADV Register Control Bits
|
|
******************************************************************************/
|
|
|
|
/* AESADV_DMA_TRIG_DATAOUT_IIDX Bits */
|
|
/* AESADV_DMA_TRIG_DATAOUT_IIDX[STAT] Bits */
|
|
#define AESADV_DMA_TRIG_DATAOUT_IIDX_STAT_OFS (0) /* !< STAT Offset */
|
|
#define AESADV_DMA_TRIG_DATAOUT_IIDX_STAT_MASK ((uint32_t)0x000000FFU) /* !< Interrupt index status */
|
|
#define AESADV_DMA_TRIG_DATAOUT_IIDX_STAT_NO_INTR ((uint32_t)0x00000000U) /* !< No interrupt pending */
|
|
#define AESADV_DMA_TRIG_DATAOUT_IIDX_STAT_TRIG1 ((uint32_t)0x00000001U) /* !< AES DMA Trigger 1 (Data Output
|
|
trigger) */
|
|
|
|
/* AESADV_DMA_TRIG_DATAOUT_IMASK Bits */
|
|
/* AESADV_DMA_TRIG_DATAOUT_IMASK[TRIG1] Bits */
|
|
#define AESADV_DMA_TRIG_DATAOUT_IMASK_TRIG1_OFS (0) /* !< TRIG1 Offset */
|
|
#define AESADV_DMA_TRIG_DATAOUT_IMASK_TRIG1_MASK ((uint32_t)0x00000001U) /* !< TRIG1 event mask. */
|
|
#define AESADV_DMA_TRIG_DATAOUT_IMASK_TRIG1_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
|
|
#define AESADV_DMA_TRIG_DATAOUT_IMASK_TRIG1_SET ((uint32_t)0x00000001U) /* !< Set Interrrupt Mask */
|
|
|
|
/* AESADV_DMA_TRIG_DATAOUT_RIS Bits */
|
|
/* AESADV_DMA_TRIG_DATAOUT_RIS[TRIG1] Bits */
|
|
#define AESADV_DMA_TRIG_DATAOUT_RIS_TRIG1_OFS (0) /* !< TRIG1 Offset */
|
|
#define AESADV_DMA_TRIG_DATAOUT_RIS_TRIG1_MASK ((uint32_t)0x00000001U) /* !< TRIG1 event */
|
|
#define AESADV_DMA_TRIG_DATAOUT_RIS_TRIG1_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
|
|
#define AESADV_DMA_TRIG_DATAOUT_RIS_TRIG1_SET ((uint32_t)0x00000001U) /* !< Interrupt occured */
|
|
|
|
/* AESADV_DMA_TRIG_DATAOUT_MIS Bits */
|
|
/* AESADV_DMA_TRIG_DATAOUT_MIS[TRIG1] Bits */
|
|
#define AESADV_DMA_TRIG_DATAOUT_MIS_TRIG1_OFS (0) /* !< TRIG1 Offset */
|
|
#define AESADV_DMA_TRIG_DATAOUT_MIS_TRIG1_MASK ((uint32_t)0x00000001U) /* !< TRIG1 event */
|
|
#define AESADV_DMA_TRIG_DATAOUT_MIS_TRIG1_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
|
|
#define AESADV_DMA_TRIG_DATAOUT_MIS_TRIG1_SET ((uint32_t)0x00000001U) /* !< Interrupt occured */
|
|
|
|
/* AESADV_DMA_TRIG_DATAOUT_ISET Bits */
|
|
/* AESADV_DMA_TRIG_DATAOUT_ISET[TRIG1] Bits */
|
|
#define AESADV_DMA_TRIG_DATAOUT_ISET_TRIG1_OFS (0) /* !< TRIG1 Offset */
|
|
#define AESADV_DMA_TRIG_DATAOUT_ISET_TRIG1_MASK ((uint32_t)0x00000001U) /* !< TRIG1 event */
|
|
#define AESADV_DMA_TRIG_DATAOUT_ISET_TRIG1_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
|
|
#define AESADV_DMA_TRIG_DATAOUT_ISET_TRIG1_SET ((uint32_t)0x00000001U) /* !< Set Interrupt */
|
|
|
|
/* AESADV_DMA_TRIG_DATAOUT_ICLR Bits */
|
|
/* AESADV_DMA_TRIG_DATAOUT_ICLR[TRIG1] Bits */
|
|
#define AESADV_DMA_TRIG_DATAOUT_ICLR_TRIG1_OFS (0) /* !< TRIG1 Offset */
|
|
#define AESADV_DMA_TRIG_DATAOUT_ICLR_TRIG1_MASK ((uint32_t)0x00000001U) /* !< TRIG1 event */
|
|
#define AESADV_DMA_TRIG_DATAOUT_ICLR_TRIG1_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
|
|
#define AESADV_DMA_TRIG_DATAOUT_ICLR_TRIG1_CLR ((uint32_t)0x00000001U) /* !< Clear Interrupt */
|
|
|
|
/* AESADV_DMA_TRIG_DATAIN_IIDX Bits */
|
|
/* AESADV_DMA_TRIG_DATAIN_IIDX[STAT] Bits */
|
|
#define AESADV_DMA_TRIG_DATAIN_IIDX_STAT_OFS (0) /* !< STAT Offset */
|
|
#define AESADV_DMA_TRIG_DATAIN_IIDX_STAT_MASK ((uint32_t)0x000000FFU) /* !< Interrupt index status */
|
|
#define AESADV_DMA_TRIG_DATAIN_IIDX_STAT_NO_INTR ((uint32_t)0x00000000U) /* !< No interrupt pending */
|
|
#define AESADV_DMA_TRIG_DATAIN_IIDX_STAT_TRIG0 ((uint32_t)0x00000001U) /* !< AES trigger 0 DMA (Data Input
|
|
trigger) */
|
|
|
|
/* AESADV_DMA_TRIG_DATAIN_IMASK Bits */
|
|
/* AESADV_DMA_TRIG_DATAIN_IMASK[TRIG0] Bits */
|
|
#define AESADV_DMA_TRIG_DATAIN_IMASK_TRIG0_OFS (0) /* !< TRIG0 Offset */
|
|
#define AESADV_DMA_TRIG_DATAIN_IMASK_TRIG0_MASK ((uint32_t)0x00000001U) /* !< TRIG0 event mask. */
|
|
#define AESADV_DMA_TRIG_DATAIN_IMASK_TRIG0_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
|
|
#define AESADV_DMA_TRIG_DATAIN_IMASK_TRIG0_SET ((uint32_t)0x00000001U) /* !< Set Interrrupt Mask */
|
|
|
|
/* AESADV_DMA_TRIG_DATAIN_RIS Bits */
|
|
/* AESADV_DMA_TRIG_DATAIN_RIS[TRIG0] Bits */
|
|
#define AESADV_DMA_TRIG_DATAIN_RIS_TRIG0_OFS (0) /* !< TRIG0 Offset */
|
|
#define AESADV_DMA_TRIG_DATAIN_RIS_TRIG0_MASK ((uint32_t)0x00000001U) /* !< TRIG0 event */
|
|
#define AESADV_DMA_TRIG_DATAIN_RIS_TRIG0_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
|
|
#define AESADV_DMA_TRIG_DATAIN_RIS_TRIG0_SET ((uint32_t)0x00000001U) /* !< Interrupt occured */
|
|
|
|
/* AESADV_DMA_TRIG_DATAIN_MIS Bits */
|
|
/* AESADV_DMA_TRIG_DATAIN_MIS[TRIG0] Bits */
|
|
#define AESADV_DMA_TRIG_DATAIN_MIS_TRIG0_OFS (0) /* !< TRIG0 Offset */
|
|
#define AESADV_DMA_TRIG_DATAIN_MIS_TRIG0_MASK ((uint32_t)0x00000001U) /* !< TRIG0 event */
|
|
#define AESADV_DMA_TRIG_DATAIN_MIS_TRIG0_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
|
|
#define AESADV_DMA_TRIG_DATAIN_MIS_TRIG0_SET ((uint32_t)0x00000001U) /* !< Interrupt occured */
|
|
|
|
/* AESADV_DMA_TRIG_DATAIN_ISET Bits */
|
|
/* AESADV_DMA_TRIG_DATAIN_ISET[TRIG0] Bits */
|
|
#define AESADV_DMA_TRIG_DATAIN_ISET_TRIG0_OFS (0) /* !< TRIG0 Offset */
|
|
#define AESADV_DMA_TRIG_DATAIN_ISET_TRIG0_MASK ((uint32_t)0x00000001U) /* !< TRIG0 */
|
|
#define AESADV_DMA_TRIG_DATAIN_ISET_TRIG0_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
|
|
#define AESADV_DMA_TRIG_DATAIN_ISET_TRIG0_SET ((uint32_t)0x00000001U) /* !< Set Interrupt */
|
|
|
|
/* AESADV_DMA_TRIG_DATAIN_ICLR Bits */
|
|
/* AESADV_DMA_TRIG_DATAIN_ICLR[TRIG0] Bits */
|
|
#define AESADV_DMA_TRIG_DATAIN_ICLR_TRIG0_OFS (0) /* !< TRIG0 Offset */
|
|
#define AESADV_DMA_TRIG_DATAIN_ICLR_TRIG0_MASK ((uint32_t)0x00000001U) /* !< TRIG0 event */
|
|
#define AESADV_DMA_TRIG_DATAIN_ICLR_TRIG0_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
|
|
#define AESADV_DMA_TRIG_DATAIN_ICLR_TRIG0_CLR ((uint32_t)0x00000001U) /* !< Clear Interrupt */
|
|
|
|
/* AESADV_CPU_INT_IIDX Bits */
|
|
/* AESADV_CPU_INT_IIDX[STAT] Bits */
|
|
#define AESADV_CPU_INT_IIDX_STAT_OFS (0) /* !< STAT Offset */
|
|
#define AESADV_CPU_INT_IIDX_STAT_MASK ((uint32_t)0x000000FFU) /* !< Interrupt index status */
|
|
#define AESADV_CPU_INT_IIDX_STAT_NO_INTR ((uint32_t)0x00000000U) /* !< No interrupt pending */
|
|
#define AESADV_CPU_INT_IIDX_STAT_OUTPUTRDY ((uint32_t)0x00000001U) /* !< This indicates that the core has an
|
|
output available to be read out. This
|
|
should not be used if DMA handshake
|
|
is used (AES_DMA_HS.DMA_DATA_ACK set
|
|
to 1) */
|
|
#define AESADV_CPU_INT_IIDX_STAT_INPUTRDY ((uint32_t)0x00000002U) /* !< This indicates that the engine can
|
|
take new input. This should not be
|
|
used if DMA handshake is used
|
|
(AES_DMA_HS.DMA_DATA_ACK set to 1) */
|
|
#define AESADV_CPU_INT_IIDX_STAT_SAVEDCNTXTRDY ((uint32_t)0x00000003U) /* !< This bit indicates that an AES
|
|
authentication TAG and/or IV block(s)
|
|
is/are available for the CPU to
|
|
retrieve. This bit is only asserted
|
|
if the save_context bit is set to 1b.
|
|
The bit is mutually exclusive with
|
|
the context_ready bit. */
|
|
#define AESADV_CPU_INT_IIDX_STAT_CNTXTRDY ((uint32_t)0x00000004U) /* !< This bit indicates that the context
|
|
data registers can be overwritten,
|
|
and the CPU is permitted to write new
|
|
context. */
|
|
|
|
/* AESADV_CPU_INT_IMASK Bits */
|
|
/* AESADV_CPU_INT_IMASK[OUTPUTRDY] Bits */
|
|
#define AESADV_CPU_INT_IMASK_OUTPUTRDY_OFS (0) /* !< OUTPUTRDY Offset */
|
|
#define AESADV_CPU_INT_IMASK_OUTPUTRDY_MASK ((uint32_t)0x00000001U) /* !< This indicates that the core has an
|
|
output available to be read out. This
|
|
should not be used if DMA handshake
|
|
is used (AES_DMA_HS.DMA_DATA_ACK set
|
|
to 1) */
|
|
#define AESADV_CPU_INT_IMASK_OUTPUTRDY_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
|
|
#define AESADV_CPU_INT_IMASK_OUTPUTRDY_SET ((uint32_t)0x00000001U) /* !< Set Interrrupt Mask */
|
|
/* AESADV_CPU_INT_IMASK[INPUTRDY] Bits */
|
|
#define AESADV_CPU_INT_IMASK_INPUTRDY_OFS (1) /* !< INPUTRDY Offset */
|
|
#define AESADV_CPU_INT_IMASK_INPUTRDY_MASK ((uint32_t)0x00000002U) /* !< This indicates that the engine can
|
|
take new input. This should not be
|
|
used if DMA handshake is used
|
|
(AES_DMA_HS.DMA_DATA_ACK set to 1) */
|
|
#define AESADV_CPU_INT_IMASK_INPUTRDY_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
|
|
#define AESADV_CPU_INT_IMASK_INPUTRDY_SET ((uint32_t)0x00000002U) /* !< Set Interrrupt Mask */
|
|
/* AESADV_CPU_INT_IMASK[SAVEDCNTXTRDY] Bits */
|
|
#define AESADV_CPU_INT_IMASK_SAVEDCNTXTRDY_OFS (2) /* !< SAVEDCNTXTRDY Offset */
|
|
#define AESADV_CPU_INT_IMASK_SAVEDCNTXTRDY_MASK ((uint32_t)0x00000004U) /* !< This bit indicates that an AES
|
|
authentication TAG and/or IV block(s)
|
|
is/are available for the CPU to
|
|
retrieve. This bit is only asserted
|
|
if the save_context bit is set to 1b.
|
|
The bit is mutually exclusive with
|
|
the context_ready bit. */
|
|
#define AESADV_CPU_INT_IMASK_SAVEDCNTXTRDY_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
|
|
#define AESADV_CPU_INT_IMASK_SAVEDCNTXTRDY_SET ((uint32_t)0x00000004U) /* !< Set Interrrupt Mask */
|
|
/* AESADV_CPU_INT_IMASK[CNTXTRDY] Bits */
|
|
#define AESADV_CPU_INT_IMASK_CNTXTRDY_OFS (3) /* !< CNTXTRDY Offset */
|
|
#define AESADV_CPU_INT_IMASK_CNTXTRDY_MASK ((uint32_t)0x00000008U) /* !< This bit indicates that the context
|
|
data registers can be overwritten,
|
|
and the CPU is permitted to write
|
|
next context. */
|
|
#define AESADV_CPU_INT_IMASK_CNTXTRDY_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
|
|
#define AESADV_CPU_INT_IMASK_CNTXTRDY_SET ((uint32_t)0x00000008U) /* !< Set Interrrupt Mask */
|
|
|
|
/* AESADV_CPU_INT_RIS Bits */
|
|
/* AESADV_CPU_INT_RIS[OUTPUTRDY] Bits */
|
|
#define AESADV_CPU_INT_RIS_OUTPUTRDY_OFS (0) /* !< OUTPUTRDY Offset */
|
|
#define AESADV_CPU_INT_RIS_OUTPUTRDY_MASK ((uint32_t)0x00000001U) /* !< This indicates that the core has an
|
|
output available to be read out. This
|
|
should not be used if DMA handshake
|
|
is used (AES_DMA_HS.DMA_DATA_ACK set
|
|
to 1) */
|
|
#define AESADV_CPU_INT_RIS_OUTPUTRDY_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
|
|
#define AESADV_CPU_INT_RIS_OUTPUTRDY_SET ((uint32_t)0x00000001U) /* !< Interrupt occured */
|
|
/* AESADV_CPU_INT_RIS[INPUTRDY] Bits */
|
|
#define AESADV_CPU_INT_RIS_INPUTRDY_OFS (1) /* !< INPUTRDY Offset */
|
|
#define AESADV_CPU_INT_RIS_INPUTRDY_MASK ((uint32_t)0x00000002U) /* !< This indicates that the engine can
|
|
take new input. This should not be
|
|
used if DMA handshake is used
|
|
(AES_DMA_HS.DMA_DATA_ACK set to 1) */
|
|
#define AESADV_CPU_INT_RIS_INPUTRDY_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
|
|
#define AESADV_CPU_INT_RIS_INPUTRDY_SET ((uint32_t)0x00000002U) /* !< Set Interrrupt Mask */
|
|
/* AESADV_CPU_INT_RIS[SAVEDCNTXTRDY] Bits */
|
|
#define AESADV_CPU_INT_RIS_SAVEDCNTXTRDY_OFS (2) /* !< SAVEDCNTXTRDY Offset */
|
|
#define AESADV_CPU_INT_RIS_SAVEDCNTXTRDY_MASK ((uint32_t)0x00000004U) /* !< This bit indicates that an AES
|
|
authentication TAG and/or IV block(s)
|
|
is/are available for the CPU to
|
|
retrieve. This bit is only asserted
|
|
if the save_context bit is set to 1b.
|
|
The bit is mutually exclusive with
|
|
the context_ready bit. */
|
|
#define AESADV_CPU_INT_RIS_SAVEDCNTXTRDY_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
|
|
#define AESADV_CPU_INT_RIS_SAVEDCNTXTRDY_SET ((uint32_t)0x00000004U) /* !< Set Interrrupt Mask */
|
|
/* AESADV_CPU_INT_RIS[CNTXTRDY] Bits */
|
|
#define AESADV_CPU_INT_RIS_CNTXTRDY_OFS (3) /* !< CNTXTRDY Offset */
|
|
#define AESADV_CPU_INT_RIS_CNTXTRDY_MASK ((uint32_t)0x00000008U) /* !< This bit indicates that the context
|
|
data registers can be overwritten,
|
|
and the CPU is permitted to write
|
|
next context. */
|
|
#define AESADV_CPU_INT_RIS_CNTXTRDY_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
|
|
#define AESADV_CPU_INT_RIS_CNTXTRDY_SET ((uint32_t)0x00000008U) /* !< Set Interrrupt Mask */
|
|
|
|
/* AESADV_CPU_INT_MIS Bits */
|
|
/* AESADV_CPU_INT_MIS[OUTPUTRDY] Bits */
|
|
#define AESADV_CPU_INT_MIS_OUTPUTRDY_OFS (0) /* !< OUTPUTRDY Offset */
|
|
#define AESADV_CPU_INT_MIS_OUTPUTRDY_MASK ((uint32_t)0x00000001U) /* !< This indicates that the core has an
|
|
output available to be read out. This
|
|
should not be used if DMA handshake
|
|
is used (AES_DMA_HS.DMA_DATA_ACK set
|
|
to 1) */
|
|
#define AESADV_CPU_INT_MIS_OUTPUTRDY_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
|
|
#define AESADV_CPU_INT_MIS_OUTPUTRDY_SET ((uint32_t)0x00000001U) /* !< Interrupt occured */
|
|
/* AESADV_CPU_INT_MIS[INPUTRDY] Bits */
|
|
#define AESADV_CPU_INT_MIS_INPUTRDY_OFS (1) /* !< INPUTRDY Offset */
|
|
#define AESADV_CPU_INT_MIS_INPUTRDY_MASK ((uint32_t)0x00000002U) /* !< This indicates that the engine can
|
|
take new input. This should not be
|
|
used if DMA handshake is used
|
|
(AES_DMA_HS.DMA_DATA_ACK set to 1) */
|
|
#define AESADV_CPU_INT_MIS_INPUTRDY_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
|
|
#define AESADV_CPU_INT_MIS_INPUTRDY_SET ((uint32_t)0x00000002U) /* !< Set Interrrupt Mask */
|
|
/* AESADV_CPU_INT_MIS[SAVEDCNTXTRDY] Bits */
|
|
#define AESADV_CPU_INT_MIS_SAVEDCNTXTRDY_OFS (2) /* !< SAVEDCNTXTRDY Offset */
|
|
#define AESADV_CPU_INT_MIS_SAVEDCNTXTRDY_MASK ((uint32_t)0x00000004U) /* !< This bit indicates that an AES
|
|
authentication TAG and/or IV block(s)
|
|
is/are available for the CPU to
|
|
retrieve. This bit is only asserted
|
|
if the save_context bit is set to 1b.
|
|
The bit is mutually exclusive with
|
|
the context_ready bit. */
|
|
#define AESADV_CPU_INT_MIS_SAVEDCNTXTRDY_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
|
|
#define AESADV_CPU_INT_MIS_SAVEDCNTXTRDY_SET ((uint32_t)0x00000004U) /* !< Set Interrrupt Mask */
|
|
/* AESADV_CPU_INT_MIS[CNTXTRDY] Bits */
|
|
#define AESADV_CPU_INT_MIS_CNTXTRDY_OFS (3) /* !< CNTXTRDY Offset */
|
|
#define AESADV_CPU_INT_MIS_CNTXTRDY_MASK ((uint32_t)0x00000008U) /* !< This bit indicates that the context
|
|
data registers can be overwritten,
|
|
and the CPU is permitted to write
|
|
next context. */
|
|
#define AESADV_CPU_INT_MIS_CNTXTRDY_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
|
|
#define AESADV_CPU_INT_MIS_CNTXTRDY_SET ((uint32_t)0x00000008U) /* !< Set Interrrupt Mask */
|
|
|
|
/* AESADV_CPU_INT_ISET Bits */
|
|
/* AESADV_CPU_INT_ISET[OUTPUTRDY] Bits */
|
|
#define AESADV_CPU_INT_ISET_OUTPUTRDY_OFS (0) /* !< OUTPUTRDY Offset */
|
|
#define AESADV_CPU_INT_ISET_OUTPUTRDY_MASK ((uint32_t)0x00000001U) /* !< This indicates that the core has an
|
|
output available to be read out. This
|
|
should not be used if DMA handshake
|
|
is used (AES_DMA_HS.DMA_DATA_ACK set
|
|
to 1) */
|
|
#define AESADV_CPU_INT_ISET_OUTPUTRDY_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
|
|
#define AESADV_CPU_INT_ISET_OUTPUTRDY_SET ((uint32_t)0x00000001U) /* !< Set Interrupt */
|
|
/* AESADV_CPU_INT_ISET[INPUTRDY] Bits */
|
|
#define AESADV_CPU_INT_ISET_INPUTRDY_OFS (1) /* !< INPUTRDY Offset */
|
|
#define AESADV_CPU_INT_ISET_INPUTRDY_MASK ((uint32_t)0x00000002U) /* !< This indicates that the engine can
|
|
take new input.This should not be
|
|
used if DMA handshake is used
|
|
(AES_DMA_HS.DMA_DATA_ACK set to 1) */
|
|
#define AESADV_CPU_INT_ISET_INPUTRDY_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
|
|
#define AESADV_CPU_INT_ISET_INPUTRDY_SET ((uint32_t)0x00000002U) /* !< Set Interrrupt Mask */
|
|
/* AESADV_CPU_INT_ISET[SAVEDCNTXTRDY] Bits */
|
|
#define AESADV_CPU_INT_ISET_SAVEDCNTXTRDY_OFS (2) /* !< SAVEDCNTXTRDY Offset */
|
|
#define AESADV_CPU_INT_ISET_SAVEDCNTXTRDY_MASK ((uint32_t)0x00000004U) /* !< This bit indicates that an AES
|
|
authentication TAG and/or IV block(s)
|
|
is/are available for the CPU to
|
|
retrieve. This bit is only asserted
|
|
if the save_context bit is set to 1b.
|
|
The bit is mutually exclusive with
|
|
the context_ready bit. */
|
|
#define AESADV_CPU_INT_ISET_SAVEDCNTXTRDY_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
|
|
#define AESADV_CPU_INT_ISET_SAVEDCNTXTRDY_SET ((uint32_t)0x00000004U) /* !< Set Interrrupt Mask */
|
|
/* AESADV_CPU_INT_ISET[CNTXTRDY] Bits */
|
|
#define AESADV_CPU_INT_ISET_CNTXTRDY_OFS (3) /* !< CNTXTRDY Offset */
|
|
#define AESADV_CPU_INT_ISET_CNTXTRDY_MASK ((uint32_t)0x00000008U) /* !< This bit indicates that the context
|
|
data registers can be overwritten,
|
|
and the CPU is permitted to write
|
|
next context. */
|
|
#define AESADV_CPU_INT_ISET_CNTXTRDY_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
|
|
#define AESADV_CPU_INT_ISET_CNTXTRDY_SET ((uint32_t)0x00000008U) /* !< Set Interrrupt Mask */
|
|
|
|
/* AESADV_CPU_INT_ICLR Bits */
|
|
/* AESADV_CPU_INT_ICLR[OUTPUTRDY] Bits */
|
|
#define AESADV_CPU_INT_ICLR_OUTPUTRDY_OFS (0) /* !< OUTPUTRDY Offset */
|
|
#define AESADV_CPU_INT_ICLR_OUTPUTRDY_MASK ((uint32_t)0x00000001U) /* !< This indicates that the core has an
|
|
output available to be read out. This
|
|
should not be used if DMA handshake
|
|
is used (AES_DMA_HS.DMA_DATA_ACK set
|
|
to 1) */
|
|
#define AESADV_CPU_INT_ICLR_OUTPUTRDY_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
|
|
#define AESADV_CPU_INT_ICLR_OUTPUTRDY_CLR ((uint32_t)0x00000001U) /* !< Clear Interrupt */
|
|
/* AESADV_CPU_INT_ICLR[INPUTRDY] Bits */
|
|
#define AESADV_CPU_INT_ICLR_INPUTRDY_OFS (1) /* !< INPUTRDY Offset */
|
|
#define AESADV_CPU_INT_ICLR_INPUTRDY_MASK ((uint32_t)0x00000002U) /* !< This indicates that the engine can
|
|
take new input. This should not be
|
|
used if DMA handshake is used
|
|
(AES_DMA_HS.DMA_DATA_ACK set to 1) */
|
|
#define AESADV_CPU_INT_ICLR_INPUTRDY_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
|
|
#define AESADV_CPU_INT_ICLR_INPUTRDY_SET ((uint32_t)0x00000002U) /* !< Set Interrrupt Mask */
|
|
/* AESADV_CPU_INT_ICLR[SAVEDCNTXTRDY] Bits */
|
|
#define AESADV_CPU_INT_ICLR_SAVEDCNTXTRDY_OFS (2) /* !< SAVEDCNTXTRDY Offset */
|
|
#define AESADV_CPU_INT_ICLR_SAVEDCNTXTRDY_MASK ((uint32_t)0x00000004U) /* !< This bit indicates that an AES
|
|
authentication TAG and/or IV block(s)
|
|
is/are available for the CPU to
|
|
retrieve. This bit is only asserted
|
|
if the save_context bit is set to 1b.
|
|
The bit is mutually exclusive with
|
|
the context_ready bit. */
|
|
#define AESADV_CPU_INT_ICLR_SAVEDCNTXTRDY_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
|
|
#define AESADV_CPU_INT_ICLR_SAVEDCNTXTRDY_SET ((uint32_t)0x00000004U) /* !< Set Interrrupt Mask */
|
|
/* AESADV_CPU_INT_ICLR[CNTXTRDY] Bits */
|
|
#define AESADV_CPU_INT_ICLR_CNTXTRDY_OFS (3) /* !< CNTXTRDY Offset */
|
|
#define AESADV_CPU_INT_ICLR_CNTXTRDY_MASK ((uint32_t)0x00000008U) /* !< This bit indicates that the context
|
|
data registers can be overwritten,
|
|
and the CPU is permitted to write
|
|
next context. */
|
|
#define AESADV_CPU_INT_ICLR_CNTXTRDY_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
|
|
#define AESADV_CPU_INT_ICLR_CNTXTRDY_SET ((uint32_t)0x00000008U) /* !< Set Interrrupt Mask */
|
|
|
|
/* AESADV_PWREN Bits */
|
|
/* AESADV_PWREN[ENABLE] Bits */
|
|
#define AESADV_PWREN_ENABLE_OFS (0) /* !< ENABLE Offset */
|
|
#define AESADV_PWREN_ENABLE_MASK ((uint32_t)0x00000001U) /* !< Enable the power */
|
|
#define AESADV_PWREN_ENABLE_DISABLE ((uint32_t)0x00000000U) /* !< Disable Power */
|
|
#define AESADV_PWREN_ENABLE_ENABLE ((uint32_t)0x00000001U) /* !< Enable Power */
|
|
/* AESADV_PWREN[KEY] Bits */
|
|
#define AESADV_PWREN_KEY_OFS (24) /* !< KEY Offset */
|
|
#define AESADV_PWREN_KEY_MASK ((uint32_t)0xFF000000U) /* !< KEY to allow Power State Change */
|
|
#define AESADV_PWREN_KEY_UNLOCK_W ((uint32_t)0x26000000U) /* !< KEY to allow write access to this
|
|
register */
|
|
|
|
/* AESADV_RSTCTL Bits */
|
|
/* AESADV_RSTCTL[RESETSTKYCLR] Bits */
|
|
#define AESADV_RSTCTL_RESETSTKYCLR_OFS (1) /* !< RESETSTKYCLR Offset */
|
|
#define AESADV_RSTCTL_RESETSTKYCLR_MASK ((uint32_t)0x00000002U) /* !< Clear the RESETSTKY bit in the STAT
|
|
register */
|
|
#define AESADV_RSTCTL_RESETSTKYCLR_NOP ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
|
|
#define AESADV_RSTCTL_RESETSTKYCLR_CLR ((uint32_t)0x00000002U) /* !< Clear reset sticky bit */
|
|
/* AESADV_RSTCTL[RESETASSERT] Bits */
|
|
#define AESADV_RSTCTL_RESETASSERT_OFS (0) /* !< RESETASSERT Offset */
|
|
#define AESADV_RSTCTL_RESETASSERT_MASK ((uint32_t)0x00000001U) /* !< Assert reset to the peripheral */
|
|
#define AESADV_RSTCTL_RESETASSERT_NOP ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
|
|
#define AESADV_RSTCTL_RESETASSERT_ASSERT ((uint32_t)0x00000001U) /* !< Assert reset */
|
|
/* AESADV_RSTCTL[KEY] Bits */
|
|
#define AESADV_RSTCTL_KEY_OFS (24) /* !< KEY Offset */
|
|
#define AESADV_RSTCTL_KEY_MASK ((uint32_t)0xFF000000U) /* !< Unlock key */
|
|
#define AESADV_RSTCTL_KEY_UNLOCK_W ((uint32_t)0xB1000000U) /* !< KEY to allow write access to this
|
|
register */
|
|
|
|
/* AESADV_STAT Bits */
|
|
/* AESADV_STAT[RESETSTKY] Bits */
|
|
#define AESADV_STAT_RESETSTKY_OFS (16) /* !< RESETSTKY Offset */
|
|
#define AESADV_STAT_RESETSTKY_MASK ((uint32_t)0x00010000U) /* !< This bit indicates, if the
|
|
peripheral was reset, since this bit
|
|
was cleared by RESETSTKYCLR in the
|
|
RSTCTL register */
|
|
#define AESADV_STAT_RESETSTKY_NORES ((uint32_t)0x00000000U) /* !< The peripheral has not been reset
|
|
since this bit was last cleared by
|
|
RESETSTKYCLR in the RSTCTL register */
|
|
#define AESADV_STAT_RESETSTKY_RESET ((uint32_t)0x00010000U) /* !< The peripheral was reset since the
|
|
last bit clear */
|
|
|
|
/* AESADV_PDBGCTL Bits */
|
|
/* AESADV_PDBGCTL[FREE] Bits */
|
|
#define AESADV_PDBGCTL_FREE_OFS (0) /* !< FREE Offset */
|
|
#define AESADV_PDBGCTL_FREE_MASK ((uint32_t)0x00000001U) /* !< Free run control */
|
|
#define AESADV_PDBGCTL_FREE_RUN ((uint32_t)0x00000001U) /* !< The peripheral ignores the state of
|
|
the Core Halted input */
|
|
|
|
/* AESADV_EVT_MODE Bits */
|
|
/* AESADV_EVT_MODE[INT0_CFG] Bits */
|
|
#define AESADV_EVT_MODE_INT0_CFG_OFS (0) /* !< INT0_CFG Offset */
|
|
#define AESADV_EVT_MODE_INT0_CFG_MASK ((uint32_t)0x00000003U) /* !< Event line mode select for event
|
|
corresponding to
|
|
[IPSTANDARD.INT_EVENT0] */
|
|
#define AESADV_EVT_MODE_INT0_CFG_DISABLE ((uint32_t)0x00000000U) /* !< The interrupt or event line is
|
|
disabled. */
|
|
#define AESADV_EVT_MODE_INT0_CFG_SOFTWARE ((uint32_t)0x00000001U) /* !< The interrupt or event line is in
|
|
software mode. Software must clear
|
|
the RIS. */
|
|
#define AESADV_EVT_MODE_INT0_CFG_HARDWARE ((uint32_t)0x00000002U) /* !< The interrupt or event line is in
|
|
hardware mode. The hardware (another
|
|
module) clears automatically the
|
|
associated RIS flag. */
|
|
/* AESADV_EVT_MODE[EVT1_CFG] Bits */
|
|
#define AESADV_EVT_MODE_EVT1_CFG_OFS (2) /* !< EVT1_CFG Offset */
|
|
#define AESADV_EVT_MODE_EVT1_CFG_MASK ((uint32_t)0x0000000CU) /* !< Event line mode select for event
|
|
corresponding to
|
|
[IPSTANDARD.INT_EVENT1] */
|
|
#define AESADV_EVT_MODE_EVT1_CFG_DISABLE ((uint32_t)0x00000000U) /* !< The interrupt or event line is
|
|
disabled. */
|
|
#define AESADV_EVT_MODE_EVT1_CFG_SOFTWARE ((uint32_t)0x00000004U) /* !< The interrupt or event line is in
|
|
software mode. Software must clear
|
|
the RIS. */
|
|
#define AESADV_EVT_MODE_EVT1_CFG_HARDWARE ((uint32_t)0x00000008U) /* !< The interrupt or event line is in
|
|
hardware mode. The hardware (another
|
|
module) clears automatically the
|
|
associated RIS flag. */
|
|
/* AESADV_EVT_MODE[EVT2_CFG] Bits */
|
|
#define AESADV_EVT_MODE_EVT2_CFG_OFS (4) /* !< EVT2_CFG Offset */
|
|
#define AESADV_EVT_MODE_EVT2_CFG_MASK ((uint32_t)0x00000030U) /* !< Event line mode select for event
|
|
corresponding to
|
|
[IPSTANDARD.INT_EVENT2] */
|
|
#define AESADV_EVT_MODE_EVT2_CFG_DISABLE ((uint32_t)0x00000000U) /* !< The interrupt or event line is
|
|
disabled. */
|
|
#define AESADV_EVT_MODE_EVT2_CFG_SOFTWARE ((uint32_t)0x00000010U) /* !< The interrupt or event line is in
|
|
software mode. Software must clear
|
|
the RIS. */
|
|
#define AESADV_EVT_MODE_EVT2_CFG_HARDWARE ((uint32_t)0x00000020U) /* !< The interrupt or event line is in
|
|
hardware mode. The hardware (another
|
|
module) clears automatically the
|
|
associated RIS flag. */
|
|
|
|
/* AESADV_GCMCCM_TAG0 Bits */
|
|
/* AESADV_GCMCCM_TAG0[DATA] Bits */
|
|
#define AESADV_GCMCCM_TAG0_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_GCMCCM_TAG0_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Key data */
|
|
|
|
/* AESADV_GCMCCM_TAG1 Bits */
|
|
/* AESADV_GCMCCM_TAG1[DATA] Bits */
|
|
#define AESADV_GCMCCM_TAG1_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_GCMCCM_TAG1_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Key data */
|
|
|
|
/* AESADV_GCMCCM_TAG2 Bits */
|
|
/* AESADV_GCMCCM_TAG2[DATA] Bits */
|
|
#define AESADV_GCMCCM_TAG2_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_GCMCCM_TAG2_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Key data */
|
|
|
|
/* AESADV_GCMCCM_TAG3 Bits */
|
|
/* AESADV_GCMCCM_TAG3[DATA] Bits */
|
|
#define AESADV_GCMCCM_TAG3_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_GCMCCM_TAG3_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Key data */
|
|
|
|
/* AESADV_GHASH_H0 Bits */
|
|
/* AESADV_GHASH_H0[DATA] Bits */
|
|
#define AESADV_GHASH_H0_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_GHASH_H0_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Key data */
|
|
|
|
/* AESADV_GHASH_H1 Bits */
|
|
/* AESADV_GHASH_H1[DATA] Bits */
|
|
#define AESADV_GHASH_H1_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_GHASH_H1_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Key data */
|
|
|
|
/* AESADV_GHASH_H2 Bits */
|
|
/* AESADV_GHASH_H2[DATA] Bits */
|
|
#define AESADV_GHASH_H2_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_GHASH_H2_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Key data */
|
|
|
|
/* AESADV_GHASH_H3 Bits */
|
|
/* AESADV_GHASH_H3[DATA] Bits */
|
|
#define AESADV_GHASH_H3_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_GHASH_H3_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Key data */
|
|
|
|
/* AESADV_KEY0 Bits */
|
|
/* AESADV_KEY0[DATA] Bits */
|
|
#define AESADV_KEY0_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_KEY0_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Key data */
|
|
|
|
/* AESADV_KEY1 Bits */
|
|
/* AESADV_KEY1[DATA] Bits */
|
|
#define AESADV_KEY1_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_KEY1_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Key data */
|
|
|
|
/* AESADV_KEY2 Bits */
|
|
/* AESADV_KEY2[DATA] Bits */
|
|
#define AESADV_KEY2_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_KEY2_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Key data */
|
|
|
|
/* AESADV_KEY3 Bits */
|
|
/* AESADV_KEY3[DATA] Bits */
|
|
#define AESADV_KEY3_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_KEY3_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Key data */
|
|
|
|
/* AESADV_KEY4 Bits */
|
|
/* AESADV_KEY4[DATA] Bits */
|
|
#define AESADV_KEY4_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_KEY4_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Key data */
|
|
|
|
/* AESADV_KEY5 Bits */
|
|
/* AESADV_KEY5[DATA] Bits */
|
|
#define AESADV_KEY5_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_KEY5_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Key data */
|
|
|
|
/* AESADV_KEY6 Bits */
|
|
/* AESADV_KEY6[DATA] Bits */
|
|
#define AESADV_KEY6_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_KEY6_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Key data */
|
|
|
|
/* AESADV_KEY7 Bits */
|
|
/* AESADV_KEY7[DATA] Bits */
|
|
#define AESADV_KEY7_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_KEY7_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Key data */
|
|
|
|
/* AESADV_IV0 Bits */
|
|
/* AESADV_IV0[DATA] Bits */
|
|
#define AESADV_IV0_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_IV0_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Key data */
|
|
|
|
/* AESADV_IV1 Bits */
|
|
/* AESADV_IV1[DATA] Bits */
|
|
#define AESADV_IV1_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_IV1_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Key data */
|
|
|
|
/* AESADV_IV2 Bits */
|
|
/* AESADV_IV2[DATA] Bits */
|
|
#define AESADV_IV2_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_IV2_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Key data */
|
|
|
|
/* AESADV_IV3 Bits */
|
|
/* AESADV_IV3[DATA] Bits */
|
|
#define AESADV_IV3_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_IV3_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Key data */
|
|
|
|
/* AESADV_CTRL Bits */
|
|
/* AESADV_CTRL[OUTPUT_RDY] Bits */
|
|
#define AESADV_CTRL_OUTPUT_RDY_OFS (0) /* !< OUTPUT_RDY Offset */
|
|
#define AESADV_CTRL_OUTPUT_RDY_MASK ((uint32_t)0x00000001U) /* !< Output Ready. If 1b, this read-only
|
|
status bit indicates that an AES
|
|
output block is available for the CPU
|
|
to retrieve. */
|
|
#define AESADV_CTRL_OUTPUT_RDY_NOTREADY ((uint32_t)0x00000000U) /* !< Not Ready */
|
|
#define AESADV_CTRL_OUTPUT_RDY_READY ((uint32_t)0x00000001U) /* !< Ready */
|
|
/* AESADV_CTRL[INPUT_RDY] Bits */
|
|
#define AESADV_CTRL_INPUT_RDY_OFS (1) /* !< INPUT_RDY Offset */
|
|
#define AESADV_CTRL_INPUT_RDY_MASK ((uint32_t)0x00000002U) /* !< Ready for input. If 1b, this
|
|
read-only status bit indicates that
|
|
the 16-byte input buffer is empty,
|
|
and the CPU is permitted to write the
|
|
next block of data. After reset, this
|
|
bit is 0. After writing a context,
|
|
this bit will become 1b. */
|
|
#define AESADV_CTRL_INPUT_RDY_NOTEMPTY ((uint32_t)0x00000000U) /* !< Not Ready */
|
|
#define AESADV_CTRL_INPUT_RDY_EMPTY ((uint32_t)0x00000002U) /* !< Ready */
|
|
/* AESADV_CTRL[DIR] Bits */
|
|
#define AESADV_CTRL_DIR_OFS (2) /* !< DIR Offset */
|
|
#define AESADV_CTRL_DIR_MASK ((uint32_t)0x00000004U) /* !< Direction. If set to 1b an encrypt
|
|
operation is performed. If set to 0b
|
|
a decrypt operation is performed.
|
|
Note: This bit must be written with a
|
|
1b when CBC-MAC is selected. */
|
|
#define AESADV_CTRL_DIR_DECRYPT ((uint32_t)0x00000000U) /* !< Decryption */
|
|
#define AESADV_CTRL_DIR_ENCRYPT ((uint32_t)0x00000004U) /* !< Encryption */
|
|
/* AESADV_CTRL[KEYSIZE] Bits */
|
|
#define AESADV_CTRL_KEYSIZE_OFS (3) /* !< KEYSIZE Offset */
|
|
#define AESADV_CTRL_KEYSIZE_MASK ((uint32_t)0x00000018U) /* !< Specifies the encryption strength /
|
|
key width */
|
|
#define AESADV_CTRL_KEYSIZE_K128 ((uint32_t)0x00000008U) /* !< 128-bit key */
|
|
#define AESADV_CTRL_KEYSIZE_K256 ((uint32_t)0x00000018U) /* !< 256-bit key */
|
|
/* AESADV_CTRL[CBC] Bits */
|
|
#define AESADV_CTRL_CBC_OFS (5) /* !< CBC Offset */
|
|
#define AESADV_CTRL_CBC_MASK ((uint32_t)0x00000020U) /* !< If set to 1b, cipher-block-chaining
|
|
(CBC) mode is selected. */
|
|
#define AESADV_CTRL_CBC_DISABLE ((uint32_t)0x00000000U) /* !< Disable CBC mode */
|
|
#define AESADV_CTRL_CBC_ENABLE ((uint32_t)0x00000020U) /* !< Select CBC mode */
|
|
/* AESADV_CTRL[CTR] Bits */
|
|
#define AESADV_CTRL_CTR_OFS (6) /* !< CTR Offset */
|
|
#define AESADV_CTRL_CTR_MASK ((uint32_t)0x00000040U) /* !< If set to 1b, AES counter mode
|
|
(CTR) is selected. Note: This bit
|
|
must also be set for GCM and CCM,
|
|
when encryption/decryption is
|
|
required. */
|
|
#define AESADV_CTRL_CTR_DISABLE ((uint32_t)0x00000000U) /* !< Disable CBC mode */
|
|
#define AESADV_CTRL_CTR_ENABLE ((uint32_t)0x00000040U) /* !< Select CBC mode */
|
|
/* AESADV_CTRL[CTR_WIDTH] Bits */
|
|
#define AESADV_CTRL_CTR_WIDTH_OFS (7) /* !< CTR_WIDTH Offset */
|
|
#define AESADV_CTRL_CTR_WIDTH_MASK ((uint32_t)0x00000180U) /* !< When the CTR bit is set, specifies
|
|
the counter width for AES-CTR mode.
|
|
When the CFB bit is set, specifies
|
|
the CFB mode feedback width: */
|
|
#define AESADV_CTRL_CTR_WIDTH_CTR32 ((uint32_t)0x00000000U) /* !< 32-bit counter */
|
|
#define AESADV_CTRL_CTR_WIDTH_CFB128 ((uint32_t)0x00000000U) /* !< CFB-128 mode */
|
|
#define AESADV_CTRL_CTR_WIDTH_CTR64 ((uint32_t)0x00000080U) /* !< 64-bit counter */
|
|
#define AESADV_CTRL_CTR_WIDTH_CFB1 ((uint32_t)0x00000080U) /* !< CFB-1 mode */
|
|
#define AESADV_CTRL_CTR_WIDTH_CTR96 ((uint32_t)0x00000100U) /* !< 96-bit counter */
|
|
#define AESADV_CTRL_CTR_WIDTH_CFB8 ((uint32_t)0x00000100U) /* !< CFB-8 mode */
|
|
#define AESADV_CTRL_CTR_WIDTH_CTR128 ((uint32_t)0x00000180U) /* !< 128-bit counter */
|
|
/* AESADV_CTRL[ICM] Bits */
|
|
#define AESADV_CTRL_ICM_OFS (9) /* !< ICM Offset */
|
|
#define AESADV_CTRL_ICM_MASK ((uint32_t)0x00000200U) /* !< When the CFB bit is set, specifies
|
|
the CFB mode feedback width: */
|
|
#define AESADV_CTRL_ICM_DISABLE ((uint32_t)0x00000000U) /* !< Disable CBC mode */
|
|
#define AESADV_CTRL_ICM_ENABLE ((uint32_t)0x00000200U) /* !< Select CBC mode */
|
|
/* AESADV_CTRL[CFB] Bits */
|
|
#define AESADV_CTRL_CFB_OFS (10) /* !< CFB Offset */
|
|
#define AESADV_CTRL_CFB_MASK ((uint32_t)0x00000400U) /* !< If set to 1b, AES cipher feedback
|
|
mode CFB is selected. Use the
|
|
ctr_width field to specify the
|
|
feedback width. */
|
|
#define AESADV_CTRL_CFB_DISABLE ((uint32_t)0x00000000U) /* !< Disable CBC mode */
|
|
#define AESADV_CTRL_CFB_ENABLE ((uint32_t)0x00000400U) /* !< Select CBC mode */
|
|
/* AESADV_CTRL[CBCMAC] Bits */
|
|
#define AESADV_CTRL_CBCMAC_OFS (15) /* !< CBCMAC Offset */
|
|
#define AESADV_CTRL_CBCMAC_MASK ((uint32_t)0x00008000U) /* !< If set to 1b, AES-CBC MAC is
|
|
selected, the Direction bit must be
|
|
set to 1 for this mode. */
|
|
#define AESADV_CTRL_CBCMAC_DISABLE ((uint32_t)0x00000000U) /* !< Disable CBC mode */
|
|
#define AESADV_CTRL_CBCMAC_ENABLE ((uint32_t)0x00008000U) /* !< Select CBC mode */
|
|
/* AESADV_CTRL[GCM] Bits */
|
|
#define AESADV_CTRL_GCM_OFS (16) /* !< GCM Offset */
|
|
#define AESADV_CTRL_GCM_MASK ((uint32_t)0x00030000U) /* !< If not set to 00b, AES-GCM mode is
|
|
selected, this is a combined mode,
|
|
using the Galois field multiplier
|
|
GF(2128) for authentication and
|
|
AES-CTR mode for encryption, the bits
|
|
specify the GCM mode: 01b = GHASH
|
|
with H loaded and Y0-encrypted forced
|
|
to zero 10b = GHASH with H loaded and
|
|
Y0-encrypted calculated internally
|
|
11b = Autonomous GHASH (both H and
|
|
Y0-encrypted calculated internally)
|
|
Note: Besides GCM, the CTR mode bits
|
|
must also be set to 1b to enable GCM
|
|
with AES-CTR; if the CTR bit is not
|
|
set a GHASH (authentication) only
|
|
operation is performed. A GHASH only
|
|
operation is only allowed if the GCM
|
|
mode is set to '01b' and the
|
|
direction bit is set to '0b'. Other
|
|
modes may not be selected in
|
|
combination with GCM. Table 14 below
|
|
shows the valid combinations for the
|
|
GCM and CTR mode bits, all other
|
|
options are invalid and must not be
|
|
selected. */
|
|
#define AESADV_CTRL_GCM_FORCE_ZERO ((uint32_t)0x00010000U) /* !< GHASH with H loaded and
|
|
Y0-encrypted forced to 0. */
|
|
#define AESADV_CTRL_GCM_LOAD_HASH_KEY ((uint32_t)0x00020000U) /* !< GHASH with H loaded and
|
|
Y0-encrypted calculated internally */
|
|
#define AESADV_CTRL_GCM_AUTONOMOUS ((uint32_t)0x00030000U) /* !< Autonomous GHASH (both H and
|
|
Y0-encrypted calculated internally) */
|
|
/* AESADV_CTRL[CCM] Bits */
|
|
#define AESADV_CTRL_CCM_OFS (18) /* !< CCM Offset */
|
|
#define AESADV_CTRL_CCM_MASK ((uint32_t)0x00040000U) /* !< If set to 1b, AES-CCM is selected,
|
|
this is a combined mode, using AES
|
|
for both authentication and
|
|
encryption. In addition to the CCM
|
|
bit, the CTR mode bit must be set
|
|
such that AES-CTR is enabled. Other
|
|
combinations with CCM are invalid. */
|
|
#define AESADV_CTRL_CCM_DISABLE ((uint32_t)0x00000000U) /* !< Disable CBC mode */
|
|
#define AESADV_CTRL_CCM_ENABLE ((uint32_t)0x00040000U) /* !< Select CBC mode */
|
|
/* AESADV_CTRL[CCML] Bits */
|
|
#define AESADV_CTRL_CCML_OFS (19) /* !< CCML Offset */
|
|
#define AESADV_CTRL_CCML_MASK ((uint32_t)0x00380000U) /* !< Defines L that indicates the width
|
|
of the length field for CCM
|
|
operations; the length field in bytes
|
|
equals the value of CMM-L plus one.
|
|
All values are supported. */
|
|
#define AESADV_CTRL_CCML_MINIMUM ((uint32_t)0x00000000U) /* !< Length is 1 */
|
|
#define AESADV_CTRL_CCML_MAXIMUM ((uint32_t)0x00380000U) /* !< Length is 8 */
|
|
/* AESADV_CTRL[CCMM] Bits */
|
|
#define AESADV_CTRL_CCMM_OFS (22) /* !< CCMM Offset */
|
|
#define AESADV_CTRL_CCMM_MASK ((uint32_t)0x01C00000U) /* !< Defines M that indicates the length
|
|
of the authentication field for CCM
|
|
operations; the authentication field
|
|
length equals two times (the value of
|
|
CCM-M plus one). Note: The engine
|
|
always returns a 128-bit
|
|
authentication field, of which the M
|
|
least significant bytes are valid.
|
|
All values are supported. */
|
|
#define AESADV_CTRL_CCMM_MINIMUM ((uint32_t)0x00000000U) /* !< Length is 1 */
|
|
#define AESADV_CTRL_CCMM_MAXIMUM ((uint32_t)0x01C00000U) /* !< Length is 8 */
|
|
/* AESADV_CTRL[OFB_GCM_CCM_CONT] Bits */
|
|
#define AESADV_CTRL_OFB_GCM_CCM_CONT_OFS (26) /* !< OFB_GCM_CCM_CONT Offset */
|
|
#define AESADV_CTRL_OFB_GCM_CCM_CONT_MASK ((uint32_t)0x04000000U) /* !< This bit has a dual use, depending
|
|
on the selection of CCM/GCM, see bits
|
|
[18:16]. If CCM/GCM is not selected:
|
|
If this bit is set to 1b, full block
|
|
AES output feedback mode (OFB-128) is
|
|
selected. If CCM/GCM is selected:
|
|
Continue processing of an interrupted
|
|
AES-GCM or AES-CCM operation in the
|
|
AAD phase. Set this write-only signal
|
|
to 1b together with the regular mode
|
|
bit settings for a GCM or CCM
|
|
operation, to continue processing
|
|
from the next full AAD block (128
|
|
bits) boundary. Before setting this
|
|
bit all applicable context to resume
|
|
processing must have been loaded into
|
|
the engine: Keys, IV, intermediate
|
|
digest/TAG, block counter and the CCM
|
|
align data word (the latter is for
|
|
CCM mode only). The mode can be
|
|
written together with this bit, as it
|
|
is part of the same register. */
|
|
#define AESADV_CTRL_OFB_GCM_CCM_CONT_OFB ((uint32_t)0x04000000U) /* !< Enable OFB */
|
|
#define AESADV_CTRL_OFB_GCM_CCM_CONT_GCM_CCM_CONTINUE ((uint32_t)0x04000000U) /* !< Continue GCM/CCM processing in AAD
|
|
phase */
|
|
/* AESADV_CTRL[GET_DIGEST] Bits */
|
|
#define AESADV_CTRL_GET_DIGEST_OFS (27) /* !< GET_DIGEST Offset */
|
|
#define AESADV_CTRL_GET_DIGEST_MASK ((uint32_t)0x08000000U) /* !< Interrupt processing and generate
|
|
an intermediate digest during an
|
|
AES-GCM or AES-CCM operation. Set
|
|
this write-only signal to 1b to
|
|
interrupt GCM or CCM processing at
|
|
the next full block (128 bits)
|
|
boundary. An intermediate digest may
|
|
be requested during the
|
|
encryption/decryption data phase or
|
|
in the AAD phase. Note: Interruption
|
|
can only be done on full block (128
|
|
bits) boundaries. The minimum number
|
|
of remaining bytes to resume and
|
|
finalize the operation, must be
|
|
greater than or equal to 1. */
|
|
#define AESADV_CTRL_GET_DIGEST_NO_EFFECT ((uint32_t)0x00000000U) /* !< No effect */
|
|
#define AESADV_CTRL_GET_DIGEST_ENABLE ((uint32_t)0x08000000U) /* !< Enable */
|
|
/* AESADV_CTRL[GCM_CONT] Bits */
|
|
#define AESADV_CTRL_GCM_CONT_OFS (28) /* !< GCM_CONT Offset */
|
|
#define AESADV_CTRL_GCM_CONT_MASK ((uint32_t)0x10000000U) /* !< Continue processing of an
|
|
interrupted AES-GCM or AES-CCM
|
|
operation in the crypto/payload
|
|
phase. Set this write-only signal to
|
|
1b together with the regular mode bit
|
|
settings for a GCM or CCM operation,
|
|
to continue processing from the next
|
|
full block (128 bits) boundary.
|
|
Before setting this bit all
|
|
applicable context to resume
|
|
processing must have been loaded into
|
|
the engine: Keys, IV, intermediate
|
|
digest/TAG and block counter. The
|
|
mode can be written together with
|
|
this bit, as it is part of the same
|
|
register. */
|
|
#define AESADV_CTRL_GCM_CONT_NO_EFFECT ((uint32_t)0x00000000U) /* !< No effect */
|
|
#define AESADV_CTRL_GCM_CONT_ENABLE ((uint32_t)0x10000000U) /* !< Enable */
|
|
/* AESADV_CTRL[SAVE_CNTXT] Bits */
|
|
#define AESADV_CTRL_SAVE_CNTXT_OFS (29) /* !< SAVE_CNTXT Offset */
|
|
#define AESADV_CTRL_SAVE_CNTXT_MASK ((uint32_t)0x20000000U) /* !< This bit is used to indicate that
|
|
an authentication TAG or result IV
|
|
needs to be stored as a result
|
|
context. If this bit is set, context
|
|
output DMA and/or interrupt will be
|
|
asserted if the operation is
|
|
finished, and related signals are
|
|
enabled. Typically, this value must
|
|
be set for authentication modes
|
|
returning a TAG (CBC-MAC, GCM and
|
|
CCM), or for basic encryption modes
|
|
that require future continuation with
|
|
the current result IV. If this bit is
|
|
set, the engine will hold its full
|
|
context until the TAG and/or IV
|
|
registers are read. Only after
|
|
reading the TAG or IV, a new DMA
|
|
request for a new (input) context
|
|
will be asserted. If this bit is not
|
|
set, the engine will assert the
|
|
context input DMA request signal
|
|
directly after starting to process
|
|
the last block with the current
|
|
context. */
|
|
#define AESADV_CTRL_SAVE_CNTXT_NO_EFFECT ((uint32_t)0x00000000U) /* !< No effect */
|
|
#define AESADV_CTRL_SAVE_CNTXT_ENABLE ((uint32_t)0x20000000U) /* !< Enable */
|
|
/* AESADV_CTRL[SAVED_CNTXT_RDY] Bits */
|
|
#define AESADV_CTRL_SAVED_CNTXT_RDY_OFS (30) /* !< SAVED_CNTXT_RDY Offset */
|
|
#define AESADV_CTRL_SAVED_CNTXT_RDY_MASK ((uint32_t)0x40000000U) /* !< If 1b, this read-only status bit
|
|
indicates that an AES authentication
|
|
TAG and/or IV block(s) is/are
|
|
available for the Host to retrieve.
|
|
This bit is only asserted if the
|
|
save_context bit is set to 1b. The
|
|
bit is mutually exclusive with the
|
|
context_ready bit. */
|
|
#define AESADV_CTRL_SAVED_CNTXT_RDY_NOTREADY ((uint32_t)0x00000000U) /* !< Not ready */
|
|
#define AESADV_CTRL_SAVED_CNTXT_RDY_READY ((uint32_t)0x40000000U) /* !< Ready */
|
|
/* AESADV_CTRL[CNTXT_RDY] Bits */
|
|
#define AESADV_CTRL_CNTXT_RDY_OFS (31) /* !< CNTXT_RDY Offset */
|
|
#define AESADV_CTRL_CNTXT_RDY_MASK ((uint32_t)0x80000000U) /* !< If 1b, this read-only status bit
|
|
indicates that the context data
|
|
registers can be overwritten, and the
|
|
CPU is permitted to write the next
|
|
context. */
|
|
#define AESADV_CTRL_CNTXT_RDY_NOTREADY ((uint32_t)0x00000000U) /* !< Not ready */
|
|
#define AESADV_CTRL_CNTXT_RDY_READY ((uint32_t)0x80000000U) /* !< Ready */
|
|
|
|
/* AESADV_C_LENGTH_0 Bits */
|
|
/* AESADV_C_LENGTH_0[DATA] Bits */
|
|
#define AESADV_C_LENGTH_0_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_C_LENGTH_0_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Bits [60:0] of the crypto length
|
|
registers (LSW and MSW) store the
|
|
cryptographic data length in bytes
|
|
for all modes. Once processing with
|
|
this context is started, this length
|
|
decrements to zero. Data lengths up
|
|
to (261-1) bytes are allowed. For
|
|
GCM, any value up to 236-32 bytes can
|
|
be used. This is because a 32-bit
|
|
counter mode is used; the maximum
|
|
number of 128-bit blocks is 232-2,
|
|
resulting in a maximum number of
|
|
bytes of 236-32. A write to this
|
|
register triggers the engine to start
|
|
using this context. This is valid for
|
|
all modes except GCM and CCM. Note
|
|
that for the combined modes, this
|
|
length does not include the
|
|
authentication only data; the
|
|
authentication length is specified in
|
|
the AES_AAD_LENGTH register below.
|
|
All modes must have a length > 0. For
|
|
the combined modes, it is allowed to
|
|
have one of the lengths equal to
|
|
zero. For the basic encryption modes
|
|
(ECB/CBC/CTR/ICM/CFB/OFB) it is
|
|
allowed to program zero to the length
|
|
field; in that case the length is
|
|
assumed infinite. All data must be
|
|
byte (8-bit) aligned for stream
|
|
cipher modes; bit aligned data
|
|
streams are not supported. For block
|
|
cipher modes, the data length must be
|
|
programmed in multiples of the block
|
|
cipher size, 16 bytes. */
|
|
|
|
/* AESADV_C_LENGTH_1 Bits */
|
|
/* AESADV_C_LENGTH_1[DATA] Bits */
|
|
#define AESADV_C_LENGTH_1_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_C_LENGTH_1_DATA_MASK ((uint32_t)0x1FFFFFFFU) /* !< Bits [60:0] of the crypto length
|
|
registers (LSW and MSW) store the
|
|
cryptographic data length in bytes
|
|
for all modes. Once processing with
|
|
this context is started, this length
|
|
decrements to zero. Data lengths up
|
|
to (261-1) bytes are allowed. For
|
|
GCM, any value up to 236-32 bytes can
|
|
be used. This is because a 32-bit
|
|
counter mode is used; the maximum
|
|
number of 128-bit blocks is 232-2,
|
|
resulting in a maximum number of
|
|
bytes of 236-32. A write to this
|
|
register triggers the engine to start
|
|
using this context. This is valid for
|
|
all modes except GCM and CCM. Note
|
|
that for the combined modes, this
|
|
length does not include the
|
|
authentication only data; the
|
|
authentication length is specified in
|
|
the AES_AAD_LENGTH register below.
|
|
All modes must have a length > 0. For
|
|
the combined modes, it is allowed to
|
|
have one of the lengths equal to
|
|
zero. For the basic encryption modes
|
|
(ECB/CBC/CTR/ICM/CFB/OFB) it is
|
|
allowed to program zero to the length
|
|
field; in that case the length is
|
|
assumed infinite. All data must be
|
|
byte (8-bit) aligned for stream
|
|
cipher modes; bit aligned data
|
|
streams are not supported. For block
|
|
cipher modes, the data length must be
|
|
programmed in multiples of the block
|
|
cipher size, 16 bytes. */
|
|
|
|
/* AESADV_AAD_LENGTH Bits */
|
|
/* AESADV_AAD_LENGTH[DATA] Bits */
|
|
#define AESADV_AAD_LENGTH_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_AAD_LENGTH_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Bits [31:0] of the authentication
|
|
length register store the
|
|
authentication data length in bytes
|
|
for combined modes only (GCM or CCM)
|
|
Supported AAD-lengths for CCM are
|
|
from 0 to (216-28) bytes. For GCM any
|
|
value up to (232-1) bytes can be
|
|
used. Once processing with this
|
|
context is started, this length
|
|
decrements to zero. A write to this
|
|
register triggers the engine to start
|
|
using this context for GCM and CCM. */
|
|
|
|
/* AESADV_DATA0 Bits */
|
|
/* AESADV_DATA0[DATA] Bits */
|
|
#define AESADV_DATA0_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_DATA0_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Data */
|
|
|
|
/* AESADV_DATA1 Bits */
|
|
/* AESADV_DATA1[DATA] Bits */
|
|
#define AESADV_DATA1_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_DATA1_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Data */
|
|
|
|
/* AESADV_DATA2 Bits */
|
|
/* AESADV_DATA2[DATA] Bits */
|
|
#define AESADV_DATA2_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_DATA2_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Data */
|
|
|
|
/* AESADV_DATA3 Bits */
|
|
/* AESADV_DATA3[DATA] Bits */
|
|
#define AESADV_DATA3_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_DATA3_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Data */
|
|
|
|
/* AESADV_TAG0 Bits */
|
|
/* AESADV_TAG0[DATA] Bits */
|
|
#define AESADV_TAG0_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_TAG0_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< For a CPU read operation, these
|
|
registers contain the last 128-bit
|
|
TAG output of the engine; the TAG is
|
|
available until the next context is
|
|
written. This register will only
|
|
contain valid data if the TAG is
|
|
available, when the
|
|
saved_context_ready or get_digest bit
|
|
from AES_CTRL register is set. In
|
|
case of get_digest, the output will
|
|
be an intermediate TAG for CCM or GCM
|
|
operation continuation. During
|
|
processing or for operations/modes
|
|
that do not return a TAG, reads from
|
|
this register returns data from the
|
|
IV register. For operations that do
|
|
return a TAG in the IV register, the
|
|
IV register must be accessed
|
|
directly. */
|
|
|
|
/* AESADV_TAG1 Bits */
|
|
/* AESADV_TAG1[DATA] Bits */
|
|
#define AESADV_TAG1_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_TAG1_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< For a CPU read operation, these
|
|
registers contain the last 128-bit
|
|
TAG output of the engine; the TAG is
|
|
available until the next context is
|
|
written. This register will only
|
|
contain valid data if the TAG is
|
|
available, when the
|
|
saved_context_ready or get_digest bit
|
|
from AES_CTRL register is set. In
|
|
case of get_digest, the output will
|
|
be an intermediate TAG for CCM or GCM
|
|
operation continuation. During
|
|
processing or for operations/modes
|
|
that do not return a TAG, reads from
|
|
this register returns data from the
|
|
IV register. For operations that do
|
|
return a TAG in the IV register, the
|
|
IV register must be accessed
|
|
directly. */
|
|
|
|
/* AESADV_TAG2 Bits */
|
|
/* AESADV_TAG2[DATA] Bits */
|
|
#define AESADV_TAG2_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_TAG2_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< For a CPU read operation, these
|
|
registers contain the last 128-bit
|
|
TAG output of the engine; the TAG is
|
|
available until the next context is
|
|
written. This register will only
|
|
contain valid data if the TAG is
|
|
available, when the
|
|
saved_context_ready or get_digest bit
|
|
from AES_CTRL register is set. In
|
|
case of get_digest, the output will
|
|
be an intermediate TAG for CCM or GCM
|
|
operation continuation. During
|
|
processing or for operations/modes
|
|
that do not return a TAG, reads from
|
|
this register returns data from the
|
|
IV register. For operations that do
|
|
return a TAG in the IV register, the
|
|
IV register must be accessed
|
|
directly. */
|
|
|
|
/* AESADV_TAG3 Bits */
|
|
/* AESADV_TAG3[DATA] Bits */
|
|
#define AESADV_TAG3_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_TAG3_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< For a CPU read operation, these
|
|
registers contain the last 128-bit
|
|
TAG output of the engine; the TAG is
|
|
available until the next context is
|
|
written. This register will only
|
|
contain valid data if the TAG is
|
|
available, when the
|
|
saved_context_ready or get_digest bit
|
|
from AES_CTRL register is set. In
|
|
case of get_digest, the output will
|
|
be an intermediate TAG for CCM or GCM
|
|
operation continuation. During
|
|
processing or for operations/modes
|
|
that do not return a TAG, reads from
|
|
this register returns data from the
|
|
IV register. For operations that do
|
|
return a TAG in the IV register, the
|
|
IV register must be accessed
|
|
directly. */
|
|
|
|
/* AESADV_STATUS Bits */
|
|
/* AESADV_STATUS[KEYWR] Bits */
|
|
#define AESADV_STATUS_KEYWR_OFS (0) /* !< KEYWR Offset */
|
|
#define AESADV_STATUS_KEYWR_MASK ((uint32_t)0x00000001U) /* !< Key write status. 0 - user write to
|
|
KEY register is allowed. 1 - user
|
|
write to KEY register is ignored. In
|
|
order to allow user write, perform a
|
|
module reset. */
|
|
#define AESADV_STATUS_KEYWR_ENABLED ((uint32_t)0x00000000U) /* !< User write to KEY MMR is allowed */
|
|
#define AESADV_STATUS_KEYWR_DISABLED ((uint32_t)0x00000001U) /* !< User write to KEY MMR is disabled.
|
|
Writing has no effect. */
|
|
|
|
/* AESADV_DATA_IN Bits */
|
|
/* AESADV_DATA_IN[DATA] Bits */
|
|
#define AESADV_DATA_IN_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_DATA_IN_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Data input word */
|
|
|
|
/* AESADV_DATA_OUT Bits */
|
|
/* AESADV_DATA_OUT[DATA] Bits */
|
|
#define AESADV_DATA_OUT_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_DATA_OUT_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Data output word */
|
|
|
|
/* AESADV_FORCE_IN_AV Bits */
|
|
/* AESADV_FORCE_IN_AV[DATA] Bits */
|
|
#define AESADV_FORCE_IN_AV_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_FORCE_IN_AV_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Any write to this register forces
|
|
the input data buffer to valid and
|
|
will force the engine to start
|
|
processing this data. The data
|
|
written here is not used. The core
|
|
must be configured to have input and
|
|
output data acknowledge be I/O
|
|
register based */
|
|
|
|
/* AESADV_CCM_ALN_WRD Bits */
|
|
/* AESADV_CCM_ALN_WRD[DATA] Bits */
|
|
#define AESADV_CCM_ALN_WRD_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_CCM_ALN_WRD_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< This register provides a means to
|
|
access an internal register that
|
|
stores alignment data bytes during
|
|
the AAD phase of AES-CCM processing.
|
|
This register needs to be read and
|
|
stored when an AES-CCM operation is
|
|
interrupted during the AAD phase.
|
|
This value needs to be restored by
|
|
writing this register, when resuming
|
|
that AES-CCM operation in a later
|
|
session. */
|
|
|
|
/* AESADV_BLK_CNT0 Bits */
|
|
/* AESADV_BLK_CNT0[DATA] Bits */
|
|
#define AESADV_BLK_CNT0_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_BLK_CNT0_DATA_MASK ((uint32_t)0xFFFFFFFFU) /* !< Internal block counter for AES GCM
|
|
and CCM operations. These bits read
|
|
the block count value that represents
|
|
the number of blocks to go. This
|
|
value is valid with
|
|
saved_context_ready after a request
|
|
for an intermediate GCM/CCM digest.
|
|
Writing these registers will restore
|
|
the internal block counter to the
|
|
programmed value. This only needs to
|
|
be done to prepare the engine to
|
|
continue processing of an interrupted
|
|
GCM or CCM operation. Also refer to
|
|
the get_digest and gcm_ccm_continue
|
|
bits in AES_CTRL register. */
|
|
|
|
/* AESADV_BLK_CNT1 Bits */
|
|
/* AESADV_BLK_CNT1[DATA] Bits */
|
|
#define AESADV_BLK_CNT1_DATA_OFS (0) /* !< DATA Offset */
|
|
#define AESADV_BLK_CNT1_DATA_MASK ((uint32_t)0x00FFFFFFU) /* !< Internal block counter for AES GCM
|
|
and CCM operations. These bits read
|
|
the block count value that represents
|
|
the number of blocks to go. This
|
|
value is valid with
|
|
saved_context_ready after a request
|
|
for an intermediate GCM/CCM digest.
|
|
Writing these registers will restore
|
|
the internal block counter to the
|
|
programmed value. This only needs to
|
|
be done to prepare the engine to
|
|
continue processing of an interrupted
|
|
GCM or CCM operation. Also refer to
|
|
the get_digest and gcm_ccm_continue
|
|
bits in AES_CTRL register. */
|
|
|
|
/* AESADV_DMA_HS Bits */
|
|
/* AESADV_DMA_HS[DMA_DATA_ACK] Bits */
|
|
#define AESADV_DMA_HS_DMA_DATA_ACK_OFS (0) /* !< DMA_DATA_ACK Offset */
|
|
#define AESADV_DMA_HS_DMA_DATA_ACK_MASK ((uint32_t)0x00000001U) /* !< When this bit is 0b, input and
|
|
output data acknowledge is I/O
|
|
register based, as specified in the
|
|
description of the AES_DATA_IN_n /
|
|
AES_DATA_OUT_n registers. When this
|
|
bit is 1b, input and ouput data
|
|
acknowledge is based on DMA handshake
|
|
signals. */
|
|
#define AESADV_DMA_HS_DMA_DATA_ACK_DMA_DISABLE ((uint32_t)0x00000000U) /* !< Disable DMA based data handshake */
|
|
#define AESADV_DMA_HS_DMA_DATA_ACK_DMA_ENABLE ((uint32_t)0x00000001U) /* !< Enables DMA based handshake */
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* ti_devices_msp_peripherals_hw_aesadv__include */
|
|
|