If AES_MR.LOD = 1
This mode is optimized to process AES CBC-MAC operating mode.
The user must first wait for the DMA buffer transfer complete flag, then for the flag DATRDY to rise to ensure that the encryption/decryption is completed (see the following figure).
The DMA receive channel must not be used. Prior to reading the CBC-MAC result, AES_MR.SMOD must be written to ‘0’. To restart a CBC-MAC on a new buffer, AES_MR.SMOD must be written to ‘2’.
The output data are only available on AES_ODATARx.
The following table summarizes the different cases.
Sequence | Manual and Auto Modes | DMA Transfer | ||
---|---|---|---|---|
AES_MR.LOD = 0 | AES_MR.LOD = 1 | AES_MR.LOD = 0 | AES_MR.LOD = 1 | |
DATRDY Flag Clearing Condition(1) | At least one AES_ODATAR must be read | At least one AES_IDATAR must be written | Not used | Managed by the DMA |
End of Encryption/Decryption Notification | DATRDY | DATRDY | 2 DMA Buffer transfer complete flags (channel m and channel n) | DMA buffer transfer complete flag, then AES DATRDY flag |
Encrypted/Decrypted Data Result Location | In AES_ODATARx | In AES_ODATARx | At the address specified in the Channel Buffer Transfer Descriptor | In AES_ODATARx |
Note:
- Depending on the mode, there are other ways of clearing the DATRDY flag. See AES_ISR.
Warning: In DMA mode, reading
AES_ODATARx before the last data transfer may lead to unpredictable results.