SWRU543B January 2019 – June 2025 CC3230S , CC3230SF , CC3235MODS , CC3235MODSF , CC3235S , CC3235SF
Table 18-7 lists the memory-mapped DES registers. All register offset addresses not listed in Table 18-7 should be considered as reserved locations and the register contents should not be modified.
The DES module comprises registers that exist at an offset relative to the DES module base address 0x4403 8000, and a small set of DES μDMA registers that exist at an offset relative to DTHE module base address 0x4403.0000.
The DES registers are limited to 32-bit data accesses; 8- and 16-bit accesses are not allowed, and can corrupt register contents.
| Offset | Acronym | Register Name | Section |
|---|---|---|---|
| 830h | DTHE_DES_IM | DES Interrupt Mask Set Register | Section 18.5.1 |
| 834h | DTHE_DES_RIS | DES Interrupt Raw Interrupt Status Register | Section 18.5.2 |
| 838h | DTHE_DES_MIS | DES Interrupt Masked Interrupt Status Register | Section 18.5.3 |
| 83Ch | DTHE_DES_IC | DES Interrupt Clear Interrupt Status Register | Section 18.5.4 |
| 1000h | DES_KEY3_L | DES Key 3 LSW for 192-Bit Key | Section 18.5.5 |
| 1004h | DES_KEY3_H | DES Key 3 MSW for 192-Bit Key | Section 18.5.6 |
| 1008h | DES_KEY2_L | DES Key 2 LSW for 128-Bit Key | Section 18.5.7 |
| 100Ch | DES_KEY2_H | DES Key 2 MSW for 128-Bit Key | Section 18.5.8 |
| 1010h | DES_KEY1_L | DES Key 1 LSW for 64-Bit Key | Section 18.5.9 |
| 1014h | DES_KEY1_H | DES Key 1 MSW for 64-Bit Key | Section 18.5.10 |
| 1018h | DES_IV_L | DES Initialization Vector | Section 18.5.11 |
| 101Ch | DES_IV_H | DES Initialization Vector | Section 18.5.12 |
| 1020h | DES_CTRL | DES Control | Section 18.5.13 |
| 1024h | DES_LENGTH | DES Cryptographic Data Length | Section 18.5.14 |
| 1028h | DES_DATA_L | DES LSW Data RW | Section 18.5.15 |
| 102Ch | DES_DATA_H | DES MSW Data RW | Section 18.5.16 |
| 1034h | DES_SYSCONFIG | DES System Configuration | Section 18.5.17 |
| 103Ch | DES_IRQSTATUS | DES Interrupt Status | Section 18.5.18 |
| 1040h | DES_IRQENABLE | DES Interrupt Enable | Section 18.5.19 |
DTHE_DES_IM is shown in Figure 18-8 and described in Table 18-8.
Return to Summary Table.
The interrupt mask set register lets the user control which interrupt source should interrupt the processor.
| 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 | Dout | Din | RESERVED | Cin | |||
| R-0h | R/W-1h | R/W-1h | R-0h | R/W-1h | |||
| LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-4 | RESERVED | R | 0h | |
| 3 | Dout | R/W | 1h | Data out: this interrupt is raised when the DMA finishes writing the last word of the process result. |
| 2 | Din | R/W | 1h | Data in: this interrupt is raised when the DMA writes the last word of input data to the internal FIFO of the engine. |
| 1 | RESERVED | R | 0h | |
| 0 | Cin | R/W | 1h | Context in: this interrupt is raised when the DMA completes context write to the internal register. |
DTHE_DES_RIS is shown in Figure 18-9 and described in Table 18-9.
Return to Summary Table.
Raw Interrupt Status register
| 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 | Dout | Din | RESERVED | Cin | |||
| R-0h | R-0h | R-0h | R-0h | R-0h | |||
| LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-4 | RESERVED | R | 0h | |
| 3 | Dout | R | 0h | Output Data movement is done. |
| 2 | Din | R | 0h | Input Data movement is done. |
| 1 | RESERVED | R | 0h | |
| 0 | Cin | R | 0h | Context input is done. |
DTHE_DES_MIS is shown in Figure 18-10 and described in Table 18-10.
Return to Summary Table.
Masked Interrupt Status register
| 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 | Dout | Din | RESERVED | Cin | |||
| R-0h | R-0h | R-0h | R-0h | R-0h | |||
| LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-4 | RESERVED | R | 0h | |
| 3 | Dout | R | 0h | Output Data movement is done. |
| 2 | Din | R | 0h | Input Data movement is done. |
| 1 | RESERVED | R | 0h | |
| 0 | Cin | R | 0h | Context input is done. |
DTHE_DES_IC is shown in Figure 18-11 and described in Table 18-11.
Return to Summary Table.
Interrupt Acknowledge register. Writing 1 to these bits clears the status flag in the IRIS and IMIS registers. Always reads zero.
| 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 | Dout | Din | RESERVED | Cin | |||
| R-0h | R-0h | R-0h | R-0h | R-0h | |||
| LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-4 | RESERVED | R | 0h | |
| 3 | Dout | R | 0h | Clear “output data movement done” flag. |
| 2 | Din | R | 0h | Clear “input data movement done” flag. |
| 1 | RESERVED | R | 0h | |
| 0 | Cin | R | 0h | Clear “context input done” flag. |
DES_KEY3_L is shown in Figure 18-12 and described in Table 18-12.
Return to Summary Table.
KEY3 (LSW) for 192-bit key.
| 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_L | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | KEY3_L | R/W | 0h | Data for key3 |
DES_KEY3_H is shown in Figure 18-13 and described in Table 18-13.
Return to Summary Table.
KEY3 (MSW) for 192-bit key.
| 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_H | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | KEY3_H | R/W | 0h | Data for key3 |
DES_KEY2_L is shown in Figure 18-14 and described in Table 18-14.
Return to Summary Table.
KEY2 (LSW) for 192-bit key.
| 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_L | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | KEY2_L | R/W | 0h | Data for key2 |
DES_KEY2_H is shown in Figure 18-15 and described in Table 18-15.
Return to Summary Table.
KEY2 (MSW) for 192-bit key.
| 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_H | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | KEY2_H | R/W | 0h | Data for key2 |
DES_KEY1_L is shown in Figure 18-16 and described in Table 18-16.
Return to Summary Table.
KEY1 (LSW) for 192-bit key.
| 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 |
| KEY1_L | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | KEY1_L | R/W | 0h | Data for key1 |
DES_KEY1_H is shown in Figure 18-17 and described in Table 18-17.
Return to Summary Table.
KEY1 (MSW) for 192-bit key.
| 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 |
| KEY1_H | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | KEY1_H | R/W | 0h | Data for key1 |
DES_IV_L is shown in Figure 18-18 and described in Table 18-18.
Return to Summary Table.
Initialization vector 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 |
| IV_L | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | IV_L | R/W | 0h | Initialization vector for CBC, CFB modes. |
DES_IV_H is shown in Figure 18-19 and described in Table 18-19.
Return to Summary Table.
Initialization vector MSW
| 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_H | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | IV_H | R/W | 0h | Initialization vector for CBC, CFB modes. |
DES_CTRL is shown in Figure 18-20 and described in Table 18-20.
Return to Summary Table.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| CONTEXT | RESERVED | ||||||
| RO-1h | RO-0h | ||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| RO-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| RO-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | MODE | TDES | DIRECTION | INPUT_READY | OUTPUT_READY | ||
| RO-0h | R/W-0h | R/W-0h | R/W-0h | RO-0h | RO-0h | ||
| LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31 | CONTEXT | RO | 1h | If 1, this read-only status bit indicates that the context data registers can be overwritten and the host is permitted to write the next context. |
| 30-6 | RESERVED | RO | 0h | |
| 5-4 | MODE | R/W | 0h | Select CBC, ECB or CFB mode. 0h = ECB mode 1h = CBC mode 2h = CFB mode 3h = Reserved |
| 3 | TDES | R/W | 0h | Select DES or triple DES encryption or decryption. 0h = DES mode 1h = TDES mode |
| 2 | DIRECTION | R/W | 0h | Select encryption or decryption. 0h = Decryption is selected 1h = Encryption is selected |
| 1 | INPUT_READY | RO | 0h | When 1, ready to encrypt or decrypt data. |
| 0 | OUTPUT_READY | RO | 0h | When 1, data decrypted or encrypted ready. |
DES_LENGTH is shown in Figure 18-21 and described in Table 18-21.
Return to Summary Table.
| 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 |
| LENGTH | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | LENGTH | R/W | 0h | Indicates the cryptographic data length in bytes for all modes. Once processing is started with this context, this length decrements to zero. Data lengths up to (232 – 1) bytes are allowed. A write to this register triggers the engine to start using this context. For a host read operation, these registers return all zeroes. |
DES_DATA_L is shown in Figure 18-22 and described in Table 18-22.
Return to Summary Table.
Data register (LSW) to read/write encrypted or decrypted data.
| 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_L | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | DATA_L | R/W | 0h | Data for encryption or decryption |
DES_DATA_H is shown in Figure 18-23 and described in Table 18-23.
Return to Summary Table.
Data register (MSW) to read/write encrypted or decrypted data.
| 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_H | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | DATA_H | R/W | 0h | Data for encryption or decryption |
DES_SYSCONFIG is shown in Figure 18-24 and described in Table 18-24.
Return to Summary Table.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| RO-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| RO-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| RO-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DMA_REQ_CONTEXT_IN_EN | DMA_REQ_DATA_OUT_EN | DMA_REQ_DATA_IN_EN | RESERVED | ||||
| R/W-0h | R/W-0h | R/W-0h | RO-0h | ||||
| LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-8 | RESERVED | RO | 0h | |
| 7 | DMA_REQ_CONTEXT_IN_EN | R/W | 0h | If set to 1, the DMA context request is enabled. 0h = DMA disabled 1h = DMA enabled |
| 6 | DMA_REQ_DATA_OUT_EN | R/W | 0h | If set to 1, the DMA output request is enabled. 0h = DMA disabled 1h = DMA enabled |
| 5 | DMA_REQ_DATA_IN_EN | R/W | 0h | If set to 1, the DMA input request is enabled. 0h = DMA disabled 1h = DMA enabled |
| 4-0 | RESERVED | RO | 0h |
DES_IRQSTATUS is shown in Figure 18-25 and described in Table 18-25.
Return to Summary Table.
This register indicates the interrupt status. If one of the interrupt bits is set, the interrupt output is asserted.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| RO-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| RO-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| RO-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | DATA_OUT | DATA_IN | CONTEX_IN | ||||
| RO-0h | R/W-0h | R/W-0h | R/W-0h | ||||
| LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-3 | RESERVED | RO | 0h | |
| 2 | DATA_OUT | R/W | 0h | This bit indicates data output interrupt is active and triggers the interrupt output. |
| 1 | DATA_IN | R/W | 0h | This bit indicates data input interrupt is active and triggers the interrupt output. |
| 0 | CONTEX_IN | R/W | 0h | This bit indicates context interrupt is active and triggers the interrupt output. |
DES_IRQENABLE is shown in Figure 18-26 and described in Table 18-26.
Return to Summary Table.
This register contains an enable bit for each unique interrupt generated by the module. It matches the layout of DES_IRQSTATUS register. An interrupt is enabled when the bit in this register is set to 1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| RO-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| RO-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| RO-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | M_DATA_OUT | M_DATA_IN | M_CONTEX_IN | ||||
| RO-0h | R/W-0h | R/W-0h | R/W-0h | ||||
| LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-3 | RESERVED | RO | 0h | |
| 2 | M_DATA_OUT | R/W | 0h | If this bit is set to 1, the data output interrupt is enabled. |
| 1 | M_DATA_IN | R/W | 0h | If this bit is set to 1, the data input interrupt is enabled. |
| 0 | M_CONTEX_IN | R/W | 0h | If this bit is set to 1, the context interrupt is enabled. |