SLAU847F October 2022 – March 2026 MSPM0L1105 , MSPM0L1106 , MSPM0L1116 , MSPM0L1116-Q1 , MSPM0L1117 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2116 , MSPM0L2117 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1
Table 12-1 lists the memory-mapped registers for the KEYSTORECTL registers. All register offset addresses not listed in Table 12-1 should be considered as reserved locations and the register contents should not be modified.
| Offset | Acronym | Register Name | Group | Section |
|---|---|---|---|---|
| 1100h | CFG | Keystore configuration | Go | |
| 1104h | KEYWR | Key write configuration | Go | |
| 1108h | KEYRD | Key read configuration | Go | |
| 110Ch | STATUS | Status | Go | |
| 1110h | KEYIN | Input key | Go | |
| 1114h | KEYLOCK | Keylock | Go |
Complex bit access types are encoded to fit into small table cells. Table 12-2 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 |
| Reset or Default Value | ||
| -n | Value after reset or the default value | |
CFG is shown in Figure 12-1 and described in Table 12-3.
Return to the Summary Table.
Key-store configuration register.
| 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 | NK256 | ||||||||||||||
| R-0h | R/W-1h | ||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-4 | RESERVED | R | 0h | |
| 3-0 | NK256 | R/W | 1h | Number of 256 bit keys to be held in the key-store. Can not exceed the total number of slots present in the hardware / 2. For example, if SYS_N_SLOTS = 4, then at most 2 256-bit keys can be held in the key-store. Incorrect setting of this field will be reported via STATUS register 0h = No 256-bit keys 1h = One 256-bit key 2h = Two 256-bit keys 3h = Three 256-bit keys 4h = Four 256-bit keys |
KEYWR is shown in Figure 12-2 and described in Table 12-4.
Return to the Summary Table.
Register to configure a key write operation
| 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 |
| KEYSLOTSEL | RESERVED | KEYSZSEL | |||||
| R/W-0h | R-0h | R/W-0h | |||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-8 | RESERVED | R | 0h | |
| 7-4 | KEYSLOTSEL | R/W | 0h | Select the key slot to write the key into. NOTE: SW needs to ensure that it is writing to the correct slots. The slot numbering is from 0 through SYS_N_SLOTS-1. Each slot is a 128-bit slot. Therefore, when writing a 256-bit key, two slots will need to budgeted. The selected slot for the 256-bit key needs to be an even numbered slot (0 or 2). Also all the 256-bit keys need to be stored in lower numbered slots and 128-bit keys stored in higher numbered slots. 0h = Slot 0 1h = Slot 1 2h = Slot 2 3h = Slot 3 4h = Slot 4 5h = Slot 5 6h = Slot 6 7h = Slot 7 |
| 3 | RESERVED | R | 0h | |
| 2-0 | KEYSZSEL | R/W | 0h | Key size selection. Selection of 128 or 256 bit keys
0h = 256 bit key 1h = 128 bit key |
KEYRD is shown in Figure 12-3 and described in Table 12-5.
Return to the Summary Table.
Register to configure a key transfer operation - transfer from keystore into a crypto engine
| 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 | CRYPTOSEL | ||||||
| R-0h | R/W-0h | ||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| KEYSLOTSEL | RESERVED | KEYSZSEL | |||||
| R/W-0h | R-0h | R/W-0h | |||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-10 | RESERVED | R | 0h | |
| 9-8 | CRYPTOSEL | R/W | 0h | Crypto engine selector |
| 7-4 | KEYSLOTSEL | R/W | 0h | Select the key slot to read the key from. NOTE: SW needs to ensure that it is reading from the correct slots. The slot numbering is from 0 through SYS_N_SLOTS-1. Each slot is a 128-bit slot. Therefore, when reading a 256-bit key, two adjacent slots will be read. For a 256-bit key, an even numbered slot index must be specified. |
| 3 | RESERVED | R | 0h | |
| 2-0 | KEYSZSEL | R/W | 0h | Key size selection. Selection of 128 or 256 bit keys
0h = 256 bit key 1h = 128 bit key |
STATUS is shown in Figure 12-4 and described in Table 12-6.
Return to the Summary Table.
Status register
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | NKEYSLOTS | ||||||
| R-0h | R-2h | ||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | VALID | ||||||
| R-0h | R-0h | ||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| VALID | STAT | ||||||
| R-0h | R-1h | ||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-18 | RESERVED | R | 0h | |
| 17-16 | NKEYSLOTS | R | 2h | Size of key storage: Number of 128-bit key slots 0h = Two slots 1h = Three slots 2h = Four slots |
| 15-12 | RESERVED | R | 0h | |
| 11-4 | VALID | R | 0h | Bit vector of valid bits to indicate which slots have been configured |
| 3-0 | STAT | R | 1h | Status information 0h = Valid configuration 1h = Key-store has not been configured. NK256 has not been set. 2h = Invalid value for NK256 field in CFG. 3h = Busy receiving a key deposit 4h = Busy transmitting a key to a crypto engine 5h = Invalid key slot selection for writing 6h = Invalid key slot selection for reading |
KEYIN is shown in Figure 12-5 and described in Table 12-7.
Return to the Summary Table.
Write 32-bit key value by writing to this register. This is not readable.
| 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 | 32-bit key data |
KEYLOCK is shown in Figure 12-6 and described in Table 12-8.
Return to the Summary Table.
Writing 1 to this will lock the key access to the particular one hot encoded slot
| 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 | LOCKBIT | ||||||||||||||||||||||||||||||
| R-0h | R/W-0h | ||||||||||||||||||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-8 | RESERVED | R | 0h | |
| 7-0 | LOCKBIT | R/W | 0h | Bit vector of lock bits to lock certain slots from being used by application. |