ZHCUAN6E October 2022 – May 2025 MSPM0L1105 , MSPM0L1106 , MSPM0L1116 , MSPM0L1117 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1
表 12-1 列出了 KEYSTORECTL 寄存器的存储器映射寄存器。表 12-1 中未列出的所有寄存器偏移地址都应视为保留的位置,并且不应修改寄存器内容。
| 偏移 | 首字母缩写词 | 寄存器名称 | 组 | 部分 |
|---|---|---|---|---|
| 1100h | CFG | 密钥库配置 | 转到 | |
| 1104h | KEYWR | 密钥写入配置 | 转到 | |
| 1108h | KEYRD | 密钥读取配置 | 转到 | |
| 110Ch | 状态 | 状态 | 转到 | |
| 1110h | KEYIN | 输入密钥 | 转到 | |
| 1114h | KEYLOCK | 密钥锁 | 转到 |
复杂的位访问类型经过编码可适应小型表单元。表 12-2 展示了适用于此部分中访问类型的代码。
| 访问类型 | 代码 | 说明 |
|---|---|---|
| 读取类型 | ||
| R | R | 读取 |
| 写入类型 | ||
| W | W | 写入 |
| 复位或默认值 | ||
| -n | 复位后的值或默认值 | |
图 12-1 展示了 CFG,表 12-3 中对此进行了介绍。
返回到汇总表。
密钥库配置寄存器。
| 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 | ||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-4 | RESERVED | R | 0h | |
| 3-0 | NK256 | R/W | 1h | 要在密钥库中保存的 256 位密钥数量。 不能超过硬件中存在的槽位总数 / 2。 例如,如果 SYS_N_SLOTS = 4,则最多可以在密钥库中保存 2 个 256 位密钥。 该字段的错误设置将通过 STATUS 寄存器报告 0h = 无 256 位密钥 1h = 一个 256 位密钥 2h = 两个 256 位密钥 3h = 三个 256 位密钥 4h = 四个 256 位密钥 |
图 12-2 展示了 KEYWR,表 12-4 中对此进行了介绍。
返回到汇总表。
用于配置密钥写入操作的寄存器
| 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 | |||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-8 | RESERVED | R | 0h | |
| 7-4 | KEYSLOTSEL | R/W | 0h | 选择要写入密钥的密钥槽。 注意:软件需要确保写入正确的槽位。槽位编号从 0 到 SYS_N_SLOTS-1。 每个槽位为 128 位槽位。因此,在写入 256 位密钥时,需要预算两个槽位。 256 位密钥所选的槽位需要是偶数槽位(0 或 2)。 此外,所有 256 位密钥都需要存储在编号较小的槽位中,128 位密钥需要存储在编号较高的槽位中。 0h = 槽位 0 1h = 槽位 1 2h = 槽位 2 3h = 槽位 3 4h = 槽位 4 5h = 槽位 5 6h = 槽位 6 7h = 槽位 7 |
| 3 | RESERVED | R | 0h | |
| 2-0 | KEYSZSEL | R/W | 0h | 密钥大小选择。选择 128 位或 256 位密钥 0h = 256 位密钥 1h = 128 位密钥 |
图 12-3 展示了 KEYRD,表 12-5 中对此进行了介绍。
返回到汇总表。
用于配置密钥传输操作(从密钥库传输到加密引擎)的寄存器
| 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 | |||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-10 | RESERVED | R | 0h | |
| 9-8 | CRYPTOSEL | R/W | 0h | 加密引擎选择器 |
| 7-4 | KEYSLOTSEL | R/W | 0h | 选择要从中读取密钥的密钥槽。 注意:软件需要确保从正确的槽位读取。槽位编号从 0 到 SYS_N_SLOTS-1。 每个槽位为 128 位槽位。因此,当读取 256 位密钥时,将读取两个相邻的槽位。 对于 256 位密钥,必须指定偶数槽位索引。 |
| 3 | RESERVED | R | 0h | |
| 2-0 | KEYSZSEL | R/W | 0h | 密钥大小选择。选择 128 位或 256 位密钥 0h = 256 位密钥 1h = 128 位密钥 |
图 12-4 展示了 STATUS,表 12-6 中对此进行了介绍。
返回到汇总表。
状态寄存器
| 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 | 有效 | ||||||
| R-0h | R-0h | ||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 有效 | STAT | ||||||
| R-0h | R-1h | ||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-18 | RESERVED | R | 0h | |
| 17-16 | NKEYSLOTS | R | 2h | 密钥存储大小:128 位密钥槽的数量 0h = 两个槽位 1h = 三个槽位 2h = 四个槽位 |
| 15-12 | RESERVED | R | 0h | |
| 11-4 | 有效 | R | 0h | 有效位的位矢量,用于指示已配置哪些槽位 |
| 3-0 | STAT | R | 1h | 状态信息 0h = 有效配置 1h = 尚未配置密钥库。尚未设置 NK256。 2h = CFG 中的 NK256 字段的值无效。 3h = 正在忙于接收存入的密钥 4h = 正在忙于将密钥发送到加密引擎 5h = 选择要写入的密钥槽无效 6h = 选择要读取的密钥槽无效 |