SWCU191 February 2022 CC1311P3 , CC1311R3 , CC2651P3 , CC2651R3 , CC2651R3SIPA
Table 13-18 lists the memory-mapped registers for the CRYPTO registers. All register offset addresses not listed in Table 13-18 should be considered as reserved locations and the register contents should not be modified.
Complex bit access types are encoded to fit into small table cells. Table 13-19 shows the codes that are used for access types in this section.
Access Type | Code | Description |
---|---|---|
Read Type | ||
R | R | Read |
Write Type | ||
W | W | Write |
W0C | W 0C | Write 0 to clear |
W1C | W 1C | Write 1 to clear |
Reset or Default Value | ||
-n | Value after reset or the default value | |
Register Array Variables | ||
i,j,k,l,m,n | When these variables are used in a register name, an offset, or an address, they refer to the value of a register array where the register is part of a group of repeating registers. The register groups form a hierarchical structure and the array is represented with a formula. | |
y | When this variable is used in a register name, an offset, or an address it refers to the value of a register array. |
DMACH0CTL is shown in Figure 13-3 and described in Table 13-20.
Return to the Summary Table.
DMA Channel 0 Control
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
RESERVED | |||||||
R-0h | |||||||
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
RESERVED | |||||||
R-0h | |||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
RESERVED | |||||||
R-0h | |||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | PRIO | EN | |||||
R-0h | R/W-0h | R/W-0h | |||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-2 | RESERVED | R | 0h | Reserved |
1 | PRIO | R/W | 0h | Channel priority: A channel with high priority will be served before a channel with low priority in cases with simultaneous access requests. If both channels have the same priority access of the channels to the external port is arbitrated using a Round Robin scheme. 0h = Priority low 1h = Priority high |
0 | EN | R/W | 0h | DMA Channel 0 Control
0h = Channel disabled 1h = Channel enabled |
DMACH0EXTADDR is shown in Figure 13-4 and described in Table 13-21.
Return to the Summary Table.
DMA Channel 0 External Address
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
ADDR | |||||||||||||||||||||||||||||||
R/W-0h | |||||||||||||||||||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-0 | ADDR | R/W | 0h | Channel external address value. Holds the last updated external address after being sent to the master interface. |
DMACH0LEN is shown in Figure 13-5 and described in Table 13-22.
Return to the Summary Table.
DMA Channel 0 Length
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | LEN | ||||||||||||||||||||||||||||||
R-0h | R/W-0h | ||||||||||||||||||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-16 | RESERVED | R | 0h | Reserved |
15-0 | LEN | R/W | 0h | DMA transfer length in bytes. During configuration, this register contains the DMA transfer length in bytes. During operation, it contains the last updated value of the DMA transfer length after being sent to the master interface. Note: Writing a non-zero value to this register field starts the transfer if the channel is enabled by setting DMACH0CTL.EN. |
DMASTAT is shown in Figure 13-6 and described in Table 13-23.
Return to the Summary Table.
DMA Controller Status
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
RESERVED | |||||||
R-0h | |||||||
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
RESERVED | PORT_ERR | RESERVED | |||||
R-0h | R-0h | R-0h | |||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
RESERVED | |||||||
R-0h | |||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | CH1_ACTIVE | CH0_ACTIVE | |||||
R-0h | R-0h | R-0h | |||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-18 | RESERVED | R | 0h | Reserved |
17 | PORT_ERR | R | 0h | Reflects possible transfer errors on the AHB port. |
16-2 | RESERVED | R | 0h | Reserved |
1 | CH1_ACTIVE | R | 0h | This register field indicates if DMA channel 1 is active or not. 0: Not active 1: Active |
0 | CH0_ACTIVE | R | 0h | This register field indicates if DMA channel 0 is active or not. 0: Not active 1: Active |
DMASWRESET is shown in Figure 13-7 and described in Table 13-24.
Return to the Summary Table.
DMA Controller Software Reset
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
RESERVED | |||||||
R-0h | |||||||
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
RESERVED | |||||||
R-0h | |||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
RESERVED | |||||||
R-0h | |||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | RESET | ||||||
R-0h | W0C-0h | ||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-1 | RESERVED | R | 0h | Reserved |
0 | RESET | W0C | 0h | Software reset enable 0: Disable 1: Enable (self-cleared to zero). Note: Completion of the software reset must be checked in DMASTAT.CH0_ACTIVE and DMASTAT.CH1_ACTIVE. |
DMACH1CTL is shown in Figure 13-8 and described in Table 13-25.
Return to the Summary Table.
DMA Channel 1 Control
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
RESERVED | |||||||
R-0h | |||||||
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
RESERVED | |||||||
R-0h | |||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
RESERVED | |||||||
R-0h | |||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | PRIO | EN | |||||
R-0h | R/W-0h | R/W-0h | |||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-2 | RESERVED | R | 0h | Reserved |
1 | PRIO | R/W | 0h | Channel priority: A channel with high priority will be served before a channel with low priority in cases with simultaneous access requests. If both channels have the same priority access of the channels to the external port is arbitrated using a Round Robin scheme. 0h = Priority low 1h = Priority high |
0 | EN | R/W | 0h | Channel enable: Note: Disabling an active channel will interrupt the DMA operation. The ongoing block transfer will be completed, but no new transfers will be requested. 0h = Channel disabled 1h = Channel enabled |
DMACH1EXTADDR is shown in Figure 13-9 and described in Table 13-26.
Return to the Summary Table.
DMA Channel 1 External Address
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
ADDR | |||||||||||||||||||||||||||||||
R/W-0h | |||||||||||||||||||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-0 | ADDR | R/W | 0h | Channel external address value. Holds the last updated external address after being sent to the master interface. |
DMACH1LEN is shown in Figure 13-10 and described in Table 13-27.
Return to the Summary Table.
DMA Channel 1 Length
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | LEN | ||||||||||||||||||||||||||||||
R-0h | R/W-0h | ||||||||||||||||||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-16 | RESERVED | R | 0h | Reserved |
15-0 | LEN | R/W | 0h | DMA transfer length in bytes. During configuration, this register contains the DMA transfer length in bytes. During operation, it contains the last updated value of the DMA transfer length after being sent to the master interface. Note: Writing a non-zero value to this register field starts the transfer if the channel is enabled by setting DMACH1CTL.EN. |
DMABUSCFG is shown in Figure 13-11 and described in Table 13-28.
Return to the Summary Table.
DMA Controller Master Configuration
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
RESERVED | |||||||
R-0h | |||||||
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
RESERVED | |||||||
R-0h | |||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
AHB_MST1_BURST_SIZE | AHB_MST1_IDLE_EN | AHB_MST1_INCR_EN | AHB_MST1_LOCK_EN | AHB_MST1_BIGEND | |||
R/W-2h | R/W-0h | R/W-1h | R/W-0h | R/W-0h | |||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | |||||||
R-0h | |||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-16 | RESERVED | R | 0h | Reserved |
15-12 | AHB_MST1_BURST_SIZE | R/W | 2h | Maximum burst size that can be performed on the AHB bus
2h = 4_BYTE : 4 bytes 3h = 8_BYTE : 8 bytes 4h = 16_BYTE : 16 bytes 5h = 32_BYTE : 32 bytes 6h = 64_BYTE : 64 bytes |
11 | AHB_MST1_IDLE_EN | R/W | 0h | Idle transfer insertion between consecutive burst transfers on AHB
0h = Do not insert idle transfers. 1h = Idle transfer insertion enabled |
10 | AHB_MST1_INCR_EN | R/W | 1h | Burst length type of AHB transfer
0h = Unspecified length burst transfers 1h = Fixed length bursts or single transfers |
9 | AHB_MST1_LOCK_EN | R/W | 0h | Locked transform on AHB
0h = Transfers are not locked 1h = Transfers are locked |
8 | AHB_MST1_BIGEND | R/W | 0h | Endianess for the AHB master
0h = Little Endian 1h = Big Endian |
7-0 | RESERVED | R | 0h | Reserved |
DMAPORTERR is shown in Figure 13-12 and described in Table 13-29.
Return to the Summary Table.
DMA Controller Port Error
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
RESERVED | |||||||
R-0h | |||||||
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
RESERVED | |||||||
R-0h | |||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
RESERVED | AHB_ERR | RESERVED | LAST_CH | RESERVED | |||
R-0h | R-0h | R-0h | R-0h | R-0h | |||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | |||||||
R-0h | |||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-13 | RESERVED | R | 0h | Reserved |
12 | AHB_ERR | R | 0h | A 1 indicates that the Crypto peripheral has detected an AHB bus error |
11-10 | RESERVED | R | 0h | Reserved |
9 | LAST_CH | R | 0h | Indicates which channel was serviced last (channel 0 or channel 1) by the AHB master port. |
8-0 | RESERVED | R | 0h | Reserved |
DMAHWVER is shown in Figure 13-13 and described in Table 13-30.
Return to the Summary Table.
DMA Controller Version
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
RESERVED | HW_MAJOR_VER | HW_MINOR_VER | HW_PATCH_LVL | ||||||||||||
R-0h | R-1h | R-0h | R-1h | ||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
VER_NUM_COMPL | VER_NUM | ||||||||||||||
R-2Eh | R-D1h | ||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-28 | RESERVED | R | 0h | Reserved |
27-24 | HW_MAJOR_VER | R | 1h | Major version number |
23-20 | HW_MINOR_VER | R | 0h | Minor version number |
19-16 | HW_PATCH_LVL | R | 1h | Patch level. |
15-8 | VER_NUM_COMPL | R | 2Eh | Bit-by-bit complement of the VER_NUM field bits. |
7-0 | VER_NUM | R | D1h | Version number of the DMA Controller (209) |
KEYWRITEAREA is shown in Figure 13-14 and described in Table 13-31.
Return to the Summary Table.
Key Write Area
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
RESERVED | |||||||
R-0h | |||||||
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
RESERVED | |||||||
R-0h | |||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
RESERVED | |||||||
R-0h | |||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RAM_AREA7 | RAM_AREA6 | RAM_AREA5 | RAM_AREA4 | RAM_AREA3 | RAM_AREA2 | RAM_AREA1 | RAM_AREA0 |
R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h |
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-8 | RESERVED | R | 0h | Reserved |
7 | RAM_AREA7 | R/W | 0h | Represents an area of 128 bits. Select the key store RAM area(s) where the key(s) needs to be written. Writing to multiple RAM locations is only possible when the selected RAM areas are sequential. 0h = This RAM area is not selected to be written 1h = This RAM area is selected to be written |
6 | RAM_AREA6 | R/W | 0h | Represents an area of 128 bits. Select the key store RAM area(s) where the key(s) needs to be written. Writing to multiple RAM locations is only possible when the selected RAM areas are sequential. 0h = This RAM area is not selected to be written 1h = This RAM area is selected to be written |
5 | RAM_AREA5 | R/W | 0h | Represents an area of 128 bits. Select the key store RAM area(s) where the key(s) needs to be written. Writing to multiple RAM locations is only possible when the selected RAM areas are sequential. 0h = This RAM area is not selected to be written 1h = This RAM area is selected to be written |
4 | RAM_AREA4 | R/W | 0h | Represents an area of 128 bits. Select the key store RAM area(s) where the key(s) needs to be written. Writing to multiple RAM locations is only possible when the selected RAM areas are sequential. 0h = This RAM area is not selected to be written 1h = This RAM area is selected to be written |
3 | RAM_AREA3 | R/W | 0h | Represents an area of 128 bits. Select the key store RAM area(s) where the key(s) needs to be written. Writing to multiple RAM locations is only possible when the selected RAM areas are sequential. 0h = This RAM area is not selected to be written 1h = This RAM area is selected to be written |
2 | RAM_AREA2 | R/W | 0h | Represents an area of 128 bits. Select the key store RAM area(s) where the key(s) needs to be written. Writing to multiple RAM locations is only possible when the selected RAM areas are sequential. 0h = This RAM area is not selected to be written 1h = This RAM area is selected to be written |
1 | RAM_AREA1 | R/W | 0h | Represents an area of 128 bits. Select the key store RAM area(s) where the key(s) needs to be written. Writing to multiple RAM locations is only possible when the selected RAM areas are sequential. 0h = This RAM area is not selected to be written 1h = This RAM area is selected to be written |
0 | RAM_AREA0 | R/W | 0h | Represents an area of 128 bits. Select the key store RAM area(s) where the key(s) needs to be written. Writing to multiple RAM locations is only possible when the selected RAM areas are sequential. 0h = This RAM area is not selected to be written 1h = This RAM area is selected to be written |
KEYWRITTENAREA is shown in Figure 13-15 and described in Table 13-32.
Return to the Summary Table.
Key Written Area Status
This register shows which areas of the key store RAM contain valid written keys.
When a new key needs to be written to the key store, on a location that is already occupied by a valid key, this key area must be cleared first. This can be done by writing this register before the new key is written to the key store memory.
Attempting to write to a key area that already contains a valid key is not allowed and will result in an error.
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
RESERVED | |||||||
R-0h | |||||||
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
RESERVED | |||||||
R-0h | |||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
RESERVED | |||||||
R-0h | |||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RAM_AREA_WRITTEN7 | RAM_AREA_WRITTEN6 | RAM_AREA_WRITTEN5 | RAM_AREA_WRITTEN4 | RAM_AREA_WRITTEN3 | RAM_AREA_WRITTEN2 | RAM_AREA_WRITTEN1 | RAM_AREA_WRITTEN0 |
R/W1C-0h | R/W1C-0h | R/W1C-0h | R/W1C-0h | R/W1C-0h | R/W1C-0h | R/W1C-0h | R/W1C-0h |
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-8 | RESERVED | R | 0h | Reserved |
7 | RAM_AREA_WRITTEN7 | R/W1C | 0h | On read this bit returns the key area written status. This bit can be reset by writing a 1. Note: This register will be reset on a soft reset initiated by writing to DMASWRESET.RESET. After a soft reset, all keys must be rewritten to the key store memory. 0h = This RAM area is not written with valid key information 1h = This RAM area is written with valid key information |
6 | RAM_AREA_WRITTEN6 | R/W1C | 0h | On read this bit returns the key area written status. This bit can be reset by writing a 1. Note: This register will be reset on a soft reset initiated by writing to DMASWRESET.RESET. After a soft reset, all keys must be rewritten to the key store memory. 0h = This RAM area is not written with valid key information 1h = This RAM area is written with valid key information |
5 | RAM_AREA_WRITTEN5 | R/W1C | 0h | On read this bit returns the key area written status. This bit can be reset by writing a 1. Note: This register will be reset on a soft reset initiated by writing to DMASWRESET.RESET. After a soft reset, all keys must be rewritten to the key store memory. 0h = This RAM area is not written with valid key information 1h = This RAM area is written with valid key information |
4 | RAM_AREA_WRITTEN4 | R/W1C | 0h | On read this bit returns the key area written status. This bit can be reset by writing a 1. Note: This register will be reset on a soft reset initiated by writing to DMASWRESET.RESET. After a soft reset, all keys must be rewritten to the key store memory. 0h = This RAM area is not written with valid key information 1h = This RAM area is written with valid key information |
3 | RAM_AREA_WRITTEN3 | R/W1C | 0h | On read this bit returns the key area written status. This bit can be reset by writing a 1. Note: This register will be reset on a soft reset initiated by writing to DMASWRESET.RESET. After a soft reset, all keys must be rewritten to the key store memory. 0h = This RAM area is not written with valid key information 1h = This RAM area is written with valid key information |
2 | RAM_AREA_WRITTEN2 | R/W1C | 0h | On read this bit returns the key area written status. This bit can be reset by writing a 1. Note: This register will be reset on a soft reset initiated by writing to DMASWRESET.RESET. After a soft reset, all keys must be rewritten to the key store memory. 0h = This RAM area is not written with valid key information 1h = This RAM area is written with valid key information |
1 | RAM_AREA_WRITTEN1 | R/W1C | 0h | On read this bit returns the key area written status. This bit can be reset by writing a 1. Note: This register will be reset on a soft reset initiated by writing to DMASWRESET.RESET. After a soft reset, all keys must be rewritten to the key store memory. 0h = This RAM area is not written with valid key information 1h = This RAM area is written with valid key information |
0 | RAM_AREA_WRITTEN0 | R/W1C | 0h | On read this bit returns the key area written status. This bit can be reset by writing a 1. Note: This register will be reset on a soft reset initiated by writing to DMASWRESET.RESET. After a soft reset, all keys must be rewritten to the key store memory. 0h = This RAM area is not written with valid key information 1h = This RAM area is written with valid key information |
KEYSIZE is shown in Figure 13-16 and described in Table 13-33.
Return to the Summary Table.
Key Size
This register defines the size of the keys that are written with DMA.
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
RESERVED | |||||||||||||||
R-0h | |||||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | SIZE | ||||||||||||||
R-0h | R/W-1h | ||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-2 | RESERVED | R | 0h | Reserved |
1-0 | SIZE | R/W | 1h | Key size When writing to this register, KEYWRITTENAREA will be reset. Note: For the Crypto peripheral this field is fixed to 128 bits. For software compatibility KEYWRITTENAREA will be reset when writing to this register. 1h = 128_BIT : 128 bits |
KEYREADAREA is shown in Figure 13-17 and described in Table 13-34.
Return to the Summary Table.
Key Read Area
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
BUSY | RESERVED | ||||||
R-0h | R-0h | ||||||
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
RESERVED | |||||||
R-0h | |||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
RESERVED | |||||||
R-0h | |||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | RAM_AREA | ||||||
R-0h | R/W-8h | ||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31 | BUSY | R | 0h | Key store operation busy status flag (read only) 0: operation is completed. 1: operation is not completed and the key store is busy. |
30-4 | RESERVED | R | 0h | Reserved |
3-0 | RAM_AREA | R/W | 8h | Selects the area of the key store RAM from where the key needs to be read that will be written to the AES engine. Only RAM areas that contain valid written keys can be selected. 0h = RAM Area 0 1h = RAM Area 1 2h = RAM Area 2 3h = RAM Area 3 4h = RAM Area 4 5h = RAM Area 5 6h = RAM Area 6 7h = RAM Area 7 8h = No RAM |
AESKEY2_y is shown in Figure 13-18 and described in Table 13-35.
Return to the Summary Table.
Clear AES_KEY2/GHASH Key
Offset = 500h + (y * 4h); where y = 0h to 3h
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
KEY2 | |||||||||||||||||||||||||||||||
W-0h | |||||||||||||||||||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-0 | KEY2 | W | 0h | AESKEY2.* bits 31+x:0+x or AES_GHASH_H.* bits 31+x:0+x, where x = 0, 32, 64, 96 ordered from the LSW entry of this 4-deep register array. The interpretation of this field depends on the crypto operation mode. |
AESKEY3_y is shown in Figure 13-19 and described in Table 13-36.
Return to the Summary Table.
Clear AES_KEY3
Offset = 510h + (y * 4h); where y = 0h to 3h
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
KEY3 | |||||||||||||||||||||||||||||||
W-0h | |||||||||||||||||||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-0 | KEY3 | W | 0h | AESKEY3.* bits 31+x:0+x or AESKEY2.* bits 159+x:128+x, where x = 0, 32, 64, 96 ordered from the LSW entry of this 4-deep register arrary. The interpretation of this field depends on the crypto operation mode. |
AESIV_y is shown in Figure 13-20 and described in Table 13-37.
Return to the Summary Table.
AES Initialization Vector
Offset = 540h + (y * 4h); where y = 0h to 3h
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
IV | |||||||||||||||||||||||||||||||
R/W-0h | |||||||||||||||||||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-0 | IV | R/W | 0h | The interpretation of this field depends on the crypto operation mode. |
AESCTL is shown in Figure 13-21 and described in Table 13-38.
Return to the Summary Table.
AES Input/Output Buffer Control
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
CONTEXT_RDY | SAVED_CONTEXT_RDY | SAVE_CONTEXT | RESERVED | CCM_M | |||
R-1h | R/W-0h | R/W-0h | R-0h | R/W-0h | |||
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
CCM_M | CCM_L | CCM | RESERVED | ||||
R/W-0h | R/W-0h | R/W-0h | R-0h | ||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
CBC_MAC | RESERVED | CTR_WIDTH | |||||
R/W-0h | R-0h | R/W-0h | |||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
CTR_WIDTH | CTR | CBC | KEY_SIZE | DIR | INPUT_RDY | OUTPUT_RDY | |
R/W-0h | R/W-0h | R/W-0h | R-0h | R/W-0h | R/W-0h | R/W-0h | |
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31 | CONTEXT_RDY | R | 1h | If 1, this status bit indicates that the context data registers can be overwritten and the Host is permitted to write the next context. Writing a context means writing either a mode, the crypto length or AESDATALEN1.LEN_MSW, AESDATALEN0.LEN_LSW length registers |
30 | SAVED_CONTEXT_RDY | R/W | 0h | If read as 1, this 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 SAVE_CONTEXT is set to 1. The bit is mutually exclusive with CONTEXT_RDY. Writing 1 clears the bit to zero, indicating the Crypto peripheral can start its next operation. This bit is also cleared when the 4th word of the output TAG and/or IV is read. Note: All other mode bit writes will be ignored when this mode bit is written with 1. Note: This bit is controlled automatically by the Crypto peripheral for TAG read DMA operations. For typical use, this bit does NOT need to be written, but is used for status reading only. In this case, this status bit is automatically maintained by the Crypto peripheral. |
29 | SAVE_CONTEXT | R/W | 0h | IV must be read before the AES engine can start a new operation. |
28-25 | RESERVED | R | 0h | Reserved |
24-22 | CCM_M | R/W | 0h | 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 Crypto peripheral always returns a 128-bit authentication field, of which the M least significant bytes are valid. All values are supported. |
21-19 | CCM_L | R/W | 0h | 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. |
18 | CCM | R/W | 0h | AES-CCM mode enable. AES-CCM is a combined mode, using AES for both authentication and encryption. Note: Selecting AES-CCM mode requires writing of AESDATALEN1.LEN_MSW and AESDATALEN0.LEN_LSW after all other registers. Note: The CTR mode bit in this register must also be set to 1 to enable AES-CTR selecting other AES modes than CTR mode is invalid. |
17-16 | RESERVED | R | 0h | Reserved |
15 | CBC_MAC | R/W | 0h | MAC mode enable. The DIR bit must be set to 1 for this mode. Selecting this mode requires writing the AESDATALEN1.LEN_MSW and AESDATALEN0.LEN_LSW registers after all other registers. |
14-9 | RESERVED | R | 0h | Reserved |
8-7 | CTR_WIDTH | R/W | 0h | Specifies the counter width for AES-CTR mode
0h = 32_BIT : 32 bits 1h = 64_BIT : 64 bits 2h = 96_BIT : 96 bits 3h = 128_BIT : 128 bits |
6 | CTR | R/W | 0h | AES-CTR mode enable This bit must also be set for CCM, when encryption/decryption is required. |
5 | CBC | R/W | 0h | CBC mode enable |
4-3 | KEY_SIZE | R | 0h | This field specifies the key size. The key size is automatically configured when a new key is loaded via the key store module. 00 = N/A - reserved 01 = 128 bits 10 = N/A - reserved 11 = N/A - reserved For the Crypto peripheral this field is fixed to 128 bits. |
2 | DIR | R/W | 0h | Direction. 0 : Decrypt operation is performed. 1 : Encrypt operation is performed. This bit must be written with a 1 when CBC-MAC is selected. |
1 | INPUT_RDY | R/W | 0h | If read as 1, this status bit indicates that the 16-byte AES input buffer is empty. The Host is permitted to write the next block of data. Writing a 0 clears the bit to zero and indicates that the AES engine can use the provided input data block. Writing a 1 to this bit will be ignored. Note: For DMA operations, this bit is automatically controlled by the Crypto peripheral. After reset, this bit is 0. After writing a context (note 1), this bit will become 1. For typical use, this bit does NOT need to be written, but is used for status reading only. In this case, this status bit is automatically maintained by the Crypto peripheral. |
0 | OUTPUT_RDY | R/W | 0h | If read as 1, this status bit indicates that an AES output block is available to be retrieved by the Host. Writing a 0 clears the bit to zero and indicates that output data is read by the Host. The AES engine can provide a next output data block. Writing a 1 to this bit will be ignored. Note: For DMA operations, this bit is automatically controlled by the Crypto peripheral. For typical use, this bit does NOT need to be written, but is used for status reading only. In this case, this status bit is automatically maintained by the Crypto peripheral. |
AESDATALEN0 is shown in Figure 13-22 and described in Table 13-39.
Return to the Summary Table.
Crypto Data Length LSW
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
LEN_LSW | |||||||||||||||||||||||||||||||
W-0h | |||||||||||||||||||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-0 | LEN_LSW | W | 0h | Used to write the Length values to the Crypto peripheral. This register contains bits [31:0] of the combined data length. |
AESDATALEN1 is shown in Figure 13-23 and described in Table 13-40.
Return to the Summary Table.
Crypto Data Length MSW
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
RESERVED | LEN_MSW | ||||||||||||||
R-0h | W-0h | ||||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
LEN_MSW | |||||||||||||||
W-0h | |||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-29 | RESERVED | R | 0h | Reserved |
28-0 | LEN_MSW | W | 0h | Bits [60:32] of the combined data length. Bits [60:0] of the crypto length registers AESDATALEN1 and AESDATALEN0 store the cryptographic data length in bytes for all modes. Once processing with this context starts, this length decrements to zero. Data lengths up to (261 - 1) bytes are allowed. A write to this register triggers the engine to start using this context. This is valid for all modes except CCM. For the combined modes (CCM), this length does not include the authentication only data the authentication length is specified in the AESAUTHLEN.LEN. 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) 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 by the Crypto peripheral. For block cipher modes, the data length must be programmed in multiples of the block cipher size, 16 bytes. |
AESAUTHLEN is shown in Figure 13-24 and described in Table 13-41.
Return to the Summary Table.
AES Authentication Length
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
LEN | |||||||||||||||||||||||||||||||
W-0h | |||||||||||||||||||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-0 | LEN | W | 0h | Authentication data length in bytes for combined mode, CCM only. Supported AAD-lengths for CCM are from 0 to (216 - 28) bytes. Once processing with this context is started, this length decrements to zero. Writing this register triggers the engine to start using this context for CCM. |
AESDATAOUT0 is shown in Figure 13-25 and described in Table 13-42.
Return to the Summary Table.
Data Input/Output
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
DATA | |||||||||||||||||||||||||||||||
R-0h | |||||||||||||||||||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-0 | DATA | R | 0h | Data register 0 for output block data from the Crypto peripheral. These bits = AES Output Data[31:0] of [127:0] For normal operations, this register is not used, since data input and output is transferred from and to the AES engine via DMA. For a Host read operation, these registers contain the 128-bit output block from the latest AES operation. Reading from a word-aligned offset within this address range will read one word (4 bytes) of data out the 4-word deep (16 bytes = 128-bits AES block) data output buffer. The words (4 words, one full block) should be read before the core will move the next block to the data output buffer. To empty the data output buffer, AESCTL.OUTPUT_RDY must be written. For the modes with authentication (CBC-MAC and CCM), the invalid (message) bytes/words can be written with any data. Note: The AAD / authentication only data is not copied to the output buffer but only used for authentication. |
AESDATAIN0 is shown in Figure 13-26 and described in Table 13-43.
Return to the Summary Table.
AES Data Input/Output 0
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
DATA | |||||||||||||||||||||||||||||||
W-0h | |||||||||||||||||||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-0 | DATA | W | 0h | Data registers for input block data to the Crypto peripheral. These bits = AES Input Data[31:0] of [127:0] For normal operations, this register is not used, since data input and output is transferred from and to the AES engine via DMA. For a Host write operation, these registers must be written with the 128-bit input block for the next AES operation. Writing at a word-aligned offset within this address range will store the word (4 bytes) of data into the corresponding position of 4-word deep (16 bytes = 128-bit AES block) data input buffer. This buffer is used for the next AES operation. If the last data block is not completely filled with valid data (see notes below), it is allowed to write only the words with valid data. Next AES operation is triggered by writing to AESCTL.INPUT_RDY. Note: AES typically operates on 128 bits block multiple input data. The CTR and CCM modes form an exception. The last block of a CTR-mode message may contain less than 128 bits (refer to [NIST 800-38A]): 0 < n <= 128 bits. For CCM, the last block of both AAD and message data may contain less than 128 bits (refer to [NIST 800-38D]). The Crypto peripheral automatically pads or masks misaligned ending data blocks with zeroes for CCM and CBC-MAC. For CTR mode, the remaining data in an unaligned data block is ignored. |
AESDATAOUT1 is shown in Figure 13-27 and described in Table 13-44.
Return to the Summary Table.
AES Data Input/Output 3
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
DATA | |||||||||||||||||||||||||||||||
R-0h | |||||||||||||||||||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-0 | DATA | R | 0h | Data registers for output block data from the Crypto peripheral. These bits = AES Output Data[63:32] of [127:0] For normal operations, this register is not used, since data input and output is transferred from and to the AES engine via DMA. For a Host read operation, these registers contain the 128-bit output block from the latest AES operation. Reading from a word-aligned offset within this address range will read one word (4 bytes) of data out the 4-word deep (16 bytes = 128-bits AES block) data output buffer. The words (4 words, one full block) should be read before the core will move the next block to the data output buffer. To empty the data output buffer, AESCTL.OUTPUT_RDY must be written. For the modes with authentication (CBC-MAC and CCM), the invalid (message) bytes/words can be written with any data. Note: The AAD / authentication only data is not copied to the output buffer but only used for authentication. |
AESDATAIN1 is shown in Figure 13-28 and described in Table 13-45.
Return to the Summary Table.
AES Data Input/Output 1
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
DATA | |||||||||||||||||||||||||||||||
W-0h | |||||||||||||||||||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-0 | DATA | W | 0h | Data registers for input block data to the Crypto peripheral. These bits = AES Input Data[63:32] of [127:0] For normal operations, this register is not used, since data input and output is transferred from and to the AES engine via DMA. For a Host write operation, these registers must be written with the 128-bit input block for the next AES operation. Writing at a word-aligned offset within this address range will store the word (4 bytes) of data into the corresponding position of 4-word deep (16 bytes = 128-bit AES block) data input buffer. This buffer is used for the next AES operation. If the last data block is not completely filled with valid data (see notes below), it is allowed to write only the words with valid data. Next AES operation is triggered by writing to AESCTL.INPUT_RDY. Note: AES typically operates on 128 bits block multiple input data. The CTR and CCM modes form an exception. The last block of a CTR-mode message may contain less than 128 bits (refer to [NIST 800-38A]): 0 < n <= 128 bits. For CCM, the last block of both AAD and message data may contain less than 128 bits (refer to [NIST 800-38D]). The Crypto peripheral automatically pads or masks misaligned ending data blocks with zeroes for CCM and CBC-MAC. For CTR mode, the remaining data in an unaligned data block is ignored. |
AESDATAOUT2 is shown in Figure 13-29 and described in Table 13-46.
Return to the Summary Table.
AES Data Input/Output 2
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
DATA | |||||||||||||||||||||||||||||||
R-0h | |||||||||||||||||||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-0 | DATA | R | 0h | Data registers for output block data from the Crypto peripheral. These bits = AES Output Data[95:64] of [127:0] For normal operations, this register is not used, since data input and output is transferred from and to the AES engine via DMA. For a Host read operation, these registers contain the 128-bit output block from the latest AES operation. Reading from a word-aligned offset within this address range will read one word (4 bytes) of data out the 4-word deep (16 bytes = 128-bits AES block) data output buffer. The words (4 words, one full block) should be read before the core will move the next block to the data output buffer. To empty the data output buffer, AESCTL.OUTPUT_RDY must be written. For the modes with authentication (CBC-MAC and CCM), the invalid (message) bytes/words can be written with any data. Note: The AAD / authentication only data is not copied to the output buffer but only used for authentication. |
AESDATAIN2 is shown in Figure 13-30 and described in Table 13-47.
Return to the Summary Table.
AES Data Input/Output 2
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
DATA | |||||||||||||||||||||||||||||||
W-0h | |||||||||||||||||||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-0 | DATA | W | 0h | Data registers for input block data to the Crypto peripheral. These bits = AES Input Data[95:64] of [127:0] For normal operations, this register is not used, since data input and output is transferred from and to the AES engine via DMA. For a Host write operation, these registers must be written with the 128-bit input block for the next AES operation. Writing at a word-aligned offset within this address range will store the word (4 bytes) of data into the corresponding position of 4-word deep (16 bytes = 128-bit AES block) data input buffer. This buffer is used for the next AES operation. If the last data block is not completely filled with valid data (see notes below), it is allowed to write only the words with valid data. Next AES operation is triggered by writing to AESCTL.INPUT_RDY. Note: AES typically operates on 128 bits block multiple input data. The CTR and CCM modes form an exception. The last block of a CTR-mode message may contain less than 128 bits (refer to [NIST 800-38A]): 0 < n <= 128 bits. For CCM, the last block of both AAD and message data may contain less than 128 bits (refer to [NIST 800-38D]). The Crypto peripheral automatically pads or masks misaligned ending data blocks with zeroes for CCM and CBC-MAC. For CTR mode, the remaining data in an unaligned data block is ignored. |
AESDATAOUT3 is shown in Figure 13-31 and described in Table 13-48.
Return to the Summary Table.
AES Data Input/Output 3
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
DATA | |||||||||||||||||||||||||||||||
R-0h | |||||||||||||||||||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-0 | DATA | R | 0h | Data registers for output block data from the Crypto peripheral. These bits = AES Output Data[127:96] of [127:0] For normal operations, this register is not used, since data input and output is transferred from and to the AES engine via DMA. For a Host read operation, these registers contain the 128-bit output block from the latest AES operation. Reading from a word-aligned offset within this address range will read one word (4 bytes) of data out the 4-word deep (16 bytes = 128-bits AES block) data output buffer. The words (4 words, one full block) should be read before the core will move the next block to the data output buffer. To empty the data output buffer, AESCTL.OUTPUT_RDY must be written. For the modes with authentication (CBC-MAC and CCM), the invalid (message) bytes/words can be written with any data. Note: The AAD / authentication only data is not copied to the output buffer but only used for authentication. |
AESDATAIN3 is shown in Figure 13-32 and described in Table 13-49.
Return to the Summary Table.
Data Input/Output
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
DATA | |||||||||||||||||||||||||||||||
W-0h | |||||||||||||||||||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-0 | DATA | W | 0h | Data registers for input block data to the Crypto peripheral. These bits = AES Input Data[127:96] of [127:0] For normal operations, this register is not used, since data input and output is transferred from and to the AES engine via DMA. For a Host write operation, these registers must be written with the 128-bit input block for the next AES operation. Writing at a word-aligned offset within this address range will store the word (4 bytes) of data into the corresponding position of 4-word deep (16 bytes = 128-bit AES block) data input buffer. This buffer is used for the next AES operation. If the last data block is not completely filled with valid data (see notes below), it is allowed to write only the words with valid data. Next AES operation is triggered by writing to AESCTL.INPUT_RDY. Note: AES typically operates on 128 bits block multiple input data. The CTR and CCM modes form an exception. The last block of a CTR-mode message may contain less than 128 bits (refer to [NIST 800-38A]): 0 < n <= 128 bits. For CCM, the last block of both AAD and message data may contain less than 128 bits (refer to [NIST 800-38D]). The Crypto peripheral automatically pads or masks misaligned ending data blocks with zeroes for CCM and CBC-MAC. For CTR mode, the remaining data in an unaligned data block is ignored. |
AESTAGOUT_y is shown in Figure 13-33 and described in Table 13-50.
Return to the Summary Table.
AES Tag Output
Offset = 570h + (y * 4h); where y = 0h to 3h
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
TAG | |||||||||||||||||||||||||||||||
R-0h | |||||||||||||||||||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-0 | TAG | R | 0h | This register contains the authentication TAG for the combined and authentication-only modes. |
ALGSEL is shown in Figure 13-34 and described in Table 13-51.
Return to the Summary Table.
Master Algorithm Select
This register configures the internal destination of the DMA controller.
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
TAG | RESERVED | ||||||
R/W-0h | R-0h | ||||||
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
RESERVED | |||||||
R-0h | |||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
RESERVED | |||||||
R-0h | |||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | AES | KEY_STORE | |||||
R-0h | R/W-0h | R/W-0h | |||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31 | TAG | R/W | 0h | If this bit is cleared to 0, the DMA operation involves only data. If this bit is set, the DMA operation includes a TAG (Authentication Result / Digest). |
30-2 | RESERVED | R | 0h | Reserved |
1 | AES | R/W | 0h | If set to 1, the AES data is loaded via DMA Both Read and Write maximum transfer size to DMA engine is set to 16 bytes |
0 | KEY_STORE | R/W | 0h | If set to 1, selects the Key Store to be loaded via DMA. The maximum transfer size to DMA engine is set to 32 bytes (however transfers of 16, 24 and 32 bytes are allowed) |
DMAPROTCTL is shown in Figure 13-35 and described in Table 13-52.
Return to the Summary Table.
Master Protection Control
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
RESERVED | |||||||||||||||
R-0h | |||||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | EN | ||||||||||||||
R-0h | R/W-0h | ||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-1 | RESERVED | R | 0h | Reserved |
0 | EN | R/W | 0h | Select AHB transfer protection control for DMA transfers using the key store area as destination. 0 : transfers use 'USER' type access. 1 : transfers use 'PRIVILEGED' type access. |
SWRESET is shown in Figure 13-36 and described in Table 13-53.
Return to the Summary Table.
Software Reset
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
RESERVED | |||||||
R-0h | |||||||
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
RESERVED | |||||||
R-0h | |||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
RESERVED | |||||||
R-0h | |||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | RESET | ||||||
R-0h | R/W1C-0h | ||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-1 | RESERVED | R | 0h | Reserved |
0 | RESET | R/W1C | 0h | If this bit is set to 1, the following modules are reset: - Master control internal state is reset. That includes interrupt, error status register and result available interrupt generation FSM. - Key store module state is reset. That includes clearing the Written Area flags therefore the keys must be reloaded to the key store module. Writing 0 has no effect. The bit is self cleared after executing the reset. |
IRQTYPE is shown in Figure 13-37 and described in Table 13-54.
Return to the Summary Table.
Control Interrupt Configuration
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
RESERVED | |||||||
R-0h | |||||||
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
RESERVED | |||||||
R-0h | |||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
RESERVED | |||||||
R-0h | |||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | LEVEL | ||||||
R-0h | R/W-0h | ||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-1 | RESERVED | R | 0h | Reserved |
0 | LEVEL | R/W | 0h | If this bit is 0, the interrupt output is a pulse. If this bit is set to 1, the interrupt is a level interrupt that must be cleared by writing the interrupt clear register. This bit is applicable for both interrupt output signals. |
IRQEN is shown in Figure 13-38 and described in Table 13-55.
Return to the Summary Table.
Interrupt Enable
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
RESERVED | |||||||
R-0h | |||||||
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
RESERVED | |||||||
R-0h | |||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
RESERVED | |||||||
R-0h | |||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | DMA_IN_DONE | RESULT_AVAIL | |||||
R-0h | R/W-0h | R/W-0h | |||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-2 | RESERVED | R | 0h | Reserved |
1 | DMA_IN_DONE | R/W | 0h | This bit enables IRQSTAT.DMA_IN_DONE as source for IRQ. |
0 | RESULT_AVAIL | R/W | 0h | This bit enables IRQSTAT.RESULT_AVAIL as source for IRQ. |
IRQCLR is shown in Figure 13-39 and described in Table 13-56.
Return to the Summary Table.
Interrupt Clear
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
DMA_BUS_ERR | KEY_ST_WR_ERR | KEY_ST_RD_ERR | RESERVED | ||||
W-0h | W-0h | W-0h | R-0h | ||||
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
RESERVED | |||||||
R-0h | |||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
RESERVED | |||||||
R-0h | |||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | DMA_IN_DONE | RESULT_AVAIL | |||||
R-0h | W-0h | W-0h | |||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31 | DMA_BUS_ERR | W | 0h | If 1 is written to this bit, IRQSTAT.DMA_BUS_ERR is cleared. |
30 | KEY_ST_WR_ERR | W | 0h | If 1 is written to this bit, IRQSTAT.KEY_ST_WR_ERR is cleared. |
29 | KEY_ST_RD_ERR | W | 0h | If 1 is written to this bit, IRQSTAT.KEY_ST_RD_ERR is cleared. |
28-2 | RESERVED | R | 0h | Reserved |
1 | DMA_IN_DONE | W | 0h | If 1 is written to this bit, IRQSTAT.DMA_IN_DONE is cleared. |
0 | RESULT_AVAIL | W | 0h | If 1 is written to this bit, IRQSTAT.RESULT_AVAIL is cleared. |
IRQSET is shown in Figure 13-40 and described in Table 13-57.
Return to the Summary Table.
Interrupt Set
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
RESERVED | |||||||
R-0h | |||||||
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
RESERVED | |||||||
R-0h | |||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
RESERVED | |||||||
R-0h | |||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | DMA_IN_DONE | RESULT_AVAIL | |||||
R-0h | W-0h | W-0h | |||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-2 | RESERVED | R | 0h | Reserved |
1 | DMA_IN_DONE | W | 0h | If 1 is written to this bit, IRQSTAT.DMA_IN_DONE is set. Writing 0 has no effect. |
0 | RESULT_AVAIL | W | 0h | If 1 is written to this bit, IRQSTAT.RESULT_AVAIL is set. Writing 0 has no effect. |
IRQSTAT is shown in Figure 13-41 and described in Table 13-58.
Return to the Summary Table.
Interrupt Status
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
DMA_BUS_ERR | KEY_ST_WR_ERR | KEY_ST_RD_ERR | RESERVED | ||||
R-0h | R-0h | R-0h | R-0h | ||||
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
RESERVED | |||||||
R-0h | |||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
RESERVED | |||||||
R-0h | |||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | DMA_IN_DONE | RESULT_AVAIL | |||||
R-0h | R-0h | R-0h | |||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31 | DMA_BUS_ERR | R | 0h | This bit is set when a DMA bus error is detected during a DMA operation. The value of this register is held until it is cleared via IRQCLR.DMA_BUS_ERR Note: This error is asserted if an error is detected on the AHB master interface during a DMA operation. Note: This is not an interrupt source. |
30 | KEY_ST_WR_ERR | R | 0h | This bit is set when a write error is detected during the DMA write operation to the key store memory. The value of this register is held until it is cleared via IRQCLR.KEY_ST_WR_ERR Note: This error is asserted if a DMA operation does not cover a full key area or more areas are written than expected. Note: This is not an interrupt source. |
29 | KEY_ST_RD_ERR | R | 0h | This bit will be set when a read error is detected during the read of a key from the key store, while copying it to the AES engine. The value of this register is held until it is cleared via IRQCLR.KEY_ST_RD_ERR. Note: This error is asserted if a key location is selected in the key store that is not available. Note: This is not an interrupt source. |
28-2 | RESERVED | R | 0h | Reserved |
1 | DMA_IN_DONE | R | 0h | This bit returns the status of DMA data in done interrupt. |
0 | RESULT_AVAIL | R | 0h | This bit is set high when the Crypto peripheral has a result available. |
HWVER is shown in Figure 13-42 and described in Table 13-59.
Return to the Summary Table.
CTRL Module Version
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
RESERVED | HW_MAJOR_VER | HW_MINOR_VER | HW_PATCH_LVL | ||||||||||||
R-0h | R-1h | R-1h | R-1h | ||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
VER_NUM_COMPL | VER_NUM | ||||||||||||||
R-87h | R-78h | ||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-28 | RESERVED | R | 0h | Reserved |
27-24 | HW_MAJOR_VER | R | 1h | Major version number |
23-20 | HW_MINOR_VER | R | 1h | Minor version number |
19-16 | HW_PATCH_LVL | R | 1h | Patch level, starts at 0 at first delivery of this version. |
15-8 | VER_NUM_COMPL | R | 87h | These bits simply contain the complement of VER_NUM (0x87), used by a driver to ascertain that the Crypto peripheral register is indeed read. |
7-0 | VER_NUM | R | 78h | The version number for the Crypto peripheral, this field contains the value 120 (decimal) or 0x78. |