AES Accelerator Operation
736
SLAU356I – March 2015 – Revised June 2019
Copyright © 2015–2019, Texas Instruments Incorporated
AES256 Accelerator
16.2.9 Using the AES Accelerator With Low-Power Modes
The AES accelerator module provides automatic clock activation for MCLK for use with low-power modes.
When the AES accelerator is busy, it automatically activates MCLK, regardless of the control-bit settings
for the clock source. The clock remains active until the AES accelerator completes its operation.
The interrupt flag AESRDYIFG is reset after a Hard Reset or with AESSWRST = 1. AESRDYIE is reset
after a Hard Reset but is not reset by AESSWRST = 1.
16.2.10 AES Accelerator Interrupts
The AESRDYIFG interrupt flag is set when the AES module completes the selected operation on the
provided data. An interrupt request is generated if AESRDYIE is set. AESRDYIFG is automatically reset if
the AES interrupt is serviced, if AESADOUT is read, or if AESADIN or AESAKEY are written. AESRDYIFG
is reset after a Hard Reset or with AESSWRST = 1. AESRDYIE is reset after a Hard Reset but is not reset
by AESSWRST = 1.
16.2.11 DMA Operation and Implementing Block Cipher Modes
DMA operation, meaning the implementation of the ciphermodes Electronic code book (ECB), Cipher
block chaining (CBC), Output feedback (OFB), and Cipher feedback (CFB) using the DMA, supports easy
and fast encryption and decryption of more than 128 bits.
When DMA ciphermode support is enabled by setting the AESCMEN bit, the AES256 module triggers
'AES trigger 0', 'AES trigger 1', and 'AES trigger 2' (also called 'AES trigger 0-2') in a certain order to
execute different block cipher modes together with the DMA module.
For example, when using ECB encryption with AESCMEN = 1, 'AES trigger 0' is triggered eight times for
DMA half-word access to read out AESADOUT, and then 'AES trigger 1' is triggered eight times to fill the
next data into AESADIN.
shows the behavior of the 'AES trigger 0-2' for the different ciphermodes selected by AESCMx.
Table 16-2. 'AES trigger 0-2' Operation When AESCMEN = 1
AESCMx
AESOPx
'AES trigger 0'
'AES trigger 1'
'AES trigger 2'
00
ECB
00
encryption
Set after encryption ready, set
again until 128 bit are read
from AESADOUT
Set to load the first block and
set after 'AES trigger 0' was
served the last time, set again
until 128 bit are written to
AESADIN
not set
01 or 11
decryption
Set after decryption ready, set
again until 128 bit are read
from AESADOUT
Set to load the first block and
set after 'AES trigger 0' was
served the last time, set again
until 128 bit are written to
AESADIN
not set
01
CBC
00
encryption
Set after encryption ready, set
again until 128 bit are read
from AESADOUT
Set after 'AES trigger 0' was
served the last time, set again
until 128 bit are written to
AESAXDIN
not set
01 or 11
decryption
Set after decryption ready, set
again until 128 bit are written
to from AESAXIN
Set after 'AES trigger 0' was
served the last time, set again
until 128 bit read from
AESADOUT
Set after 'AES trigger 1' was
served the last time, set again
until 128 bit are written to
AESADIN
10
OFB
00
encryption
Set after encryption ready, set
again until 128 bit are written
to AESAXIN
Set after 'AES trigger 0' was
served the last time, set again
until 128 bit are read from
AESADOUT
Set after 'AES trigger 1' was
served the last time, set again
until 128 bit are written to
AESAXDIN
01 or 11
decryption
Set after decryption ready, set
again until 128 bit are written
to AESAXIN
Set after 'AES trigger 0' was
served the last time, set again
until 128 bit are read from
AESADOUT
Set after 'AES trigger 1' was
served the last time, set again
until 128 bit are written to
AESAXDIN