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
表 10-6 列出了 AESADV 寄存器的存储器映射寄存器。表 10-6 中未列出的所有寄存器偏移地址都应视为保留的位置,并且不应修改寄存器内容。
| 偏移 | 首字母缩写词 | 寄存器名称 | 组 | 部分 |
|---|---|---|---|---|
| 480h | CPU_CONNECT_0 | CPU 连接 | 转到 | |
| 800h | PWREN | 电源使能 | 转到 | |
| 804h | RSTCTL | 复位控制 | 转到 | |
| 814h | STAT | 状态寄存器 | 转到 | |
| 1018h | PDBGCTL | 外设调试控制 | 转到 | |
| 1020h | IIDX | 中断索引寄存器 | 转到 | |
| 1028h | IMASK | 中断屏蔽 | 转到 | |
| 1030h | RIS | 原始中断状态 | 转到 | |
| 1038h | MIS | 已屏蔽中断状态 | 转到 | |
| 1040h | ISET | 中断设置 | 转到 | |
| 1048h | ICLR | 中断清除 | 转到 | |
| 1050h | IIDX | 中断索引寄存器 | DMA_TRIG_DATAIN | 转到 |
| 1058h | IMASK | 中断屏蔽 | DMA_TRIG_DATAIN | 转到 |
| 1060h | RIS | 原始中断状态 | DMA_TRIG_DATAIN | 转到 |
| 1068h | MIS | 已屏蔽中断状态 | DMA_TRIG_DATAIN | 转到 |
| 1070h | ISET | 中断设置 | DMA_TRIG_DATAIN | 转到 |
| 1078h | ICLR | 中断清除 | DMA_TRIG_DATAIN | 转到 |
| 1080h | IIDX | 中断索引寄存器 | DMA_TRIG_DATAOUT | 转到 |
| 1088h | IMASK | 中断屏蔽 | DMA_TRIG_DATAOUT | 转到 |
| 1090h | RIS | 原始中断状态 | DMA_TRIG_DATAOUT | 转到 |
| 1098h | MIS | 已屏蔽中断状态 | DMA_TRIG_DATAOUT | 转到 |
| 10A0h | ISET | 中断设置 | DMA_TRIG_DATAOUT | 转到 |
| 10A8h | ICLR | 中断清除 | DMA_TRIG_DATAOUT | 转到 |
| 10E0h | EVT_MODE | 事件模式 | 转到 | |
| 1100h | GCMCCM_TAG0 | CBC-MAC 第三密钥 (LSW)/GCM 和 CCM 中间 TAG (LSW) | 转到 | |
| 1104h | GCMCCM_TAG1 | CBC-MAC 第三密钥/GCM 和 CCM 中间 TAG | 转到 | |
| 1108h | GCMCCM_TAG2 | CBC-MAC 第三密钥/GCM 和 CCM 中间 TAG | 转到 | |
| 110Ch | GCMCCM_TAG3 | CBC-MAC 第三密钥 (MSW)/GCM 和 CCM 中间 TAG (MSW) | 转到 | |
| 1110h | GHASH_H0 | CCM 和 CBC-MAC 第二密钥 (LSW)/GCM 哈希密钥输入 (LSW) | 转到 | |
| 1114h | GHASH_H1 | CCM 和 CBC-MAC 第二密钥/GCM 哈希密钥输入 | 转到 | |
| 1118h | GHASH_H2 | CCM 和 CBC-MAC 第二密钥/GCM 哈希密钥输入 | 转到 | |
| 111Ch | GHASH_H3 | CCM 和 CBC-MAC 第二密钥 (MSW)/GCM 哈希密钥输入 (MSW) | 转到 | |
| 1120h | KEY0 | KEY (LSW) | 转到 | |
| 1124h | KEY1 | KEY | 转到 | |
| 1128h | KEY2 | KEY | 转到 | |
| 112Ch | KEY3 | KEY | 转到 | |
| 1130h | KEY4 | KEY | 转到 | |
| 1134h | KEY5 | KEY | 转到 | |
| 1138h | KEY6 | KEY | 转到 | |
| 113Ch | KEY7 | KEY (MSW) | 转到 | |
| 1140h | IV0 | IV (LSW) | 转到 | |
| 1144h | IV1 | IV | 转到 | |
| 1148h | IV2 | IV | 转到 | |
| 114Ch | IV3 | IV | 转到 | |
| 1150h | CTRL | 输入/输出缓冲器控制和模式选择 | 转到 | |
| 1154h | C_LENGTH_0 | 加密数据长度 (LSW) | 转到 | |
| 1158h | C_LENGTH_1 | 加密数据长度 (MSW) | 转到 | |
| 115Ch | AAD_LENGTH | AAD 数据长度 | 转到 | |
| 1160h | DATA0 | 数据输入 (LSW)/数据输出 (LSW) | 转到 | |
| 1164h | DATA1 | 数据输入/数据输出 | 转到 | |
| 1168h | DATA2 | 数据输入/数据输出 | 转到 | |
| 116Ch | DATA3 | 数据输入 (LSW)/数据输出 (MSW) | 转到 | |
| 1170h | TAG0 | 哈希结果 (LSW) | 转到 | |
| 1174h | TAG1 | 哈希结果 | 转到 | |
| 1178h | TAG2 | 哈希结果 | 转到 | |
| 117Ch | TAG3 | 哈希结果 (MSW) | 转到 | |
| 1180h | 状态 | 状态 | 转到 | |
| 1184h | DATA_IN | 别名寄存器中的数据 | 转到 | |
| 1188h | DATA_OUT | 数据输出别名寄存器 | 转到 | |
| 11D0h | FORCE_IN_AV | 用于输入数据的数据控制寄存器 | 转到 | |
| 11D4h | CCM_ALN_WRD | AES-CCM AAD 对齐数据字 | 转到 | |
| 11D8h | BLK_CNT0 | 内部块计数器 (LSW) | 转到 | |
| 11DCh | BLK_CNT1 | 内部块计数器 (MSW) | 转到 | |
| 11F4h | DMA_HS | 用于 DMA 握手的控制寄存器 | 转到 |
复杂的位访问类型经过编码可适应小型表单元。表 10-7 展示了适用于此部分中访问类型的代码。
| 访问类型 | 代码 | 说明 |
|---|---|---|
| 读取类型 | ||
| R | R | 读取 |
| 写入类型 | ||
| W | W | 写入 |
| WK | W K | 写入 受密钥保护的写入 |
| 复位或默认值 | ||
| -n | 复位后的值或默认值 | |
图 10-11 展示了 CPU_CONNECT_0,表 10-8 中对此进行了介绍。
返回到汇总表。
将外设发布者端口直接连接到应用处理器
| 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 | CPUSS0_CONN | RESERVED | |||||
| R-0h | R/W-0h | R-0h | |||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-2 | RESERVED | R | 0h | |
| 1 | CPUSS0_CONN | R/W | 0h | CPUSS0 连接位。 0h = CPU 未连接。 1h = CPU 已连接。 |
| 0 | RESERVED | R | 0h |
图 10-12 展示了 PWREN,表 10-9 中对此进行了介绍。
返回到汇总表。
用于控制电源状态的寄存器
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| KEY | |||||||
| W-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 | ENABLE | ||||||
| R-0h | R/WK-0h | ||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-24 | KEY | W | 0h | 允许电源状态更改的 KEY 26h = 允许对该寄存器进行写入访问的 KEY |
| 23-1 | RESERVED | R | 0h | |
| 0 | ENABLE | R/WK | 0h | 启用电源 必须将 KEY 设置为 26h 才能写入该位。 0h = 禁用电源 1h = 启用电源 |
图 10-13 展示了 RSTCTL,表 10-10 中对此进行了介绍。
返回到汇总表。
用于控制复位有效和无效的寄存器
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| KEY | |||||||
| W-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 | RESETSTKYCLR | RESETASSERT | |||||
| R-0h | WK-0h | WK-0h | |||||
图 10-14 展示了 STAT,表 10-11 中对此进行了介绍。
返回到汇总表。
外设启用和复位状态
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | RESETSTKY | ||||||
| R-0h | R-0h | ||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | |||||||
| R-0h | |||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-17 | RESERVED | R | 0h | |
| 16 | RESETSTKY | R | 0h | 该位指示自 RSTCTL 寄存器中的 RESETSTKYCLR 清除该位以来,外设是否复位 0h = 自 RSTCTL 寄存器中的 RESETSTKYCLR 上次清除该位以来,外设尚未复位 1h = 自从上次清除该位以来,外设已复位 |
| 15-0 | RESERVED | R | 0h |
图 10-15 展示了 PDBGCTL,表 10-12 中对此进行了介绍。
返回到汇总表。
当内核已暂停时,AES 不能暂停。为了使 AES 暂停,应暂停 DMA。
此操作可实现与 AES 中的暂停功能相同的效果:当 AES 提交下一个 DMA 触发器时,如果 DMA 暂停,则 AES 将自动暂停。
| 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 | 免费 | ||||||
| R-0h | R-0h | ||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-1 | RESERVED | R | 0h | |
| 0 | 免费 | R | 0h | 自由运行控制 1h = 外设忽略“内核暂停”输入的状态 |
图 10-16 展示了 IIDX,表 10-13 中对此进行了介绍。
返回到汇总表。
该寄存器提供了具有最高优先级的中断索引。值 0x00 表示没有事件挂起。中断 1 是最高优先级,IIDX 是第二高优先级、4、8、…IIDX^31 是最低优先级。也就是说,设置为 1 的最低位位置表示最高优先级的挂起中断。优先级顺序是固定的。但是,用户可以使用其他寄存器来实现自己的优先级方案,这些寄存器显示了已经发生的中断的完整集合。
每次读取时,仅指示一个中断。读取时,当前中断(最高优先级)由硬件自动清除,同时 [RIS] 和 [MIS] 中相应的中断标志也会被清除。从 CPU(不是从调试接口)读取后,必须使用下一个最高优先级中断更新该寄存器,如果没有中断挂起,则应显示 0x0。
| 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 | STAT | ||||||||||||||||||||||||||||||
| R-0h | R-0h | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-8 | RESERVED | R | 0h | |
| 7-0 | STAT | R | 0h | 中断索引状态 00h = 无中断挂起 1h = 这表示内核具有可供读取的输出。 如果使用了 DMA 握手(AES_DMA_HS.DMA_DATA_ACK 设置为 1),则不应使用该位 2h = 这表示引擎可以接受新的输入。 如果使用了 DMA 握手(AES_DMA_HS.DMA_DATA_ACK 设置为 1),则不应使用该位 3h = 该位表示有一个 AES 身份验证 TAG 和/或 IV 块可供 CPU 检索。 仅当“save_context”位设置为“1b”时才会将该位置为有效。该位与“context_ready”位互斥。 4h = 该位表示上下文数据寄存器可以被覆盖并且允许 CPU 写入新的上下文。 |
图 10-17 展示了 IMASK,表 10-14 中对此进行了介绍。
返回到汇总表。
中断屏蔽。如果设置了某个位,相应的中断会被取消屏蔽。取消屏蔽中断会导致原始中断显示在 IIDX 以及 MIS 中。
| 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 | CNTXTRDY | SAVEDCNTXTRDY | INPUTRDY | OUTPUTRDY | |||
| R-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | |||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-4 | RESERVED | R | 0h | |
| 3 | CNTXTRDY | R/W | 0h | 该位表示上下文数据寄存器可以被覆盖并且允许 CPU 写入下一个上下文。 0h = 清除中断屏蔽 1h = 设置中断屏蔽 |
| 2 | SAVEDCNTXTRDY | R/W | 0h | 该位表示有一个 AES 身份验证 TAG 和/或 IV 块可供 CPU 检索。仅当“save_context”位设置为“1b”时才会将该位置为有效。该位与“context_ready”位互斥。 0h = 清除中断屏蔽 1h = 设置中断屏蔽 |
| 1 | INPUTRDY | R/W | 0h | 这表示引擎可以接受新的输入。如果使用了 DMA 握手(AES_DMA_HS.DMA_DATA_ACK 设置为 1),则不应使用该位 0h = 清除中断屏蔽 1h = 设置中断屏蔽 |
| 0 | OUTPUTRDY | R/W | 0h | 这表示内核具有可供读取的输出。如果使用了 DMA 握手(AES_DMA_HS.DMA_DATA_ACK 设置为 1),则不应使用该位 0h = 清除中断屏蔽 1h = 设置中断屏蔽 |
图 10-18 展示了 RIS,表 10-15 中对此进行了介绍。
返回到汇总表。
原始中断状态。反映所有挂起的中断,而不管屏蔽与否。RIS 寄存器允许用户实施轮询方案。即使相应的 IMASK 位未启用,也可以通过向 ICLR 寄存器位写入 1 来清除该寄存器中设置的标志。
| 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 | CNTXTRDY | SAVEDCNTXTRDY | INPUTRDY | OUTPUTRDY | |||
| R-0h | R-0h | R-0h | R-0h | R-0h | |||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-4 | RESERVED | R | 0h | |
| 3 | CNTXTRDY | R | 0h | 该位表示上下文数据寄存器可以被覆盖并且允许 CPU 写入下一个上下文。 0h = 清除中断屏蔽 1h = 设置中断屏蔽 |
| 2 | SAVEDCNTXTRDY | R | 0h | 该位表示有一个 AES 身份验证 TAG 和/或 IV 块可供 CPU 检索。仅当“save_context”位设置为“1b”时才会将该位置为有效。该位与“context_ready”位互斥。 0h = 清除中断屏蔽 1h = 设置中断屏蔽 |
| 1 | INPUTRDY | R | 0h | 这表示引擎可以接受新的输入。如果使用了 DMA 握手(AES_DMA_HS.DMA_DATA_ACK 设置为 1),则不应使用该位 0h = 清除中断屏蔽 1h = 设置中断屏蔽 |
| 0 | OUTPUTRDY | R | 0h | 这表示内核具有可供读取的输出。如果使用了 DMA 握手(AES_DMA_HS.DMA_DATA_ACK 设置为 1),则不应使用该位 0h = 未发生中断 1h = 已发生中断 |
图 10-19 展示了 MIS,表 10-16 中对此进行了介绍。
返回到汇总表。
屏蔽中断状态。这是 IMASK 和 RIS 寄存器的与运算。
| 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 | CNTXTRDY | SAVEDCNTXTRDY | INPUTRDY | OUTPUTRDY | |||
| R-0h | R-0h | R-0h | R-0h | R-0h | |||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-4 | RESERVED | R | 0h | |
| 3 | CNTXTRDY | R | 0h | 该位表示上下文数据寄存器可以被覆盖并且允许 CPU 写入下一个上下文。 0h = 清除中断屏蔽 1h = 设置中断屏蔽 |
| 2 | SAVEDCNTXTRDY | R | 0h | 该位表示有一个 AES 身份验证 TAG 和/或 IV 块可供 CPU 检索。仅当“save_context”位设置为“1b”时才会将该位置为有效。该位与“context_ready”位互斥。 0h = 清除中断屏蔽 1h = 设置中断屏蔽 |
| 1 | INPUTRDY | R | 0h | 这表示引擎可以接受新的输入。如果使用了 DMA 握手(AES_DMA_HS.DMA_DATA_ACK 设置为 1),则不应使用该位 0h = 清除中断屏蔽 1h = 设置中断屏蔽 |
| 0 | OUTPUTRDY | R | 0h | 这表示内核具有可供读取的输出。如果使用了 DMA 握手(AES_DMA_HS.DMA_DATA_ACK 设置为 1),则不应使用该位 0h = 未发生中断 1h = 已发生中断 |
图 10-20 展示了 ISET,表 10-17 中对此进行了介绍。
返回到汇总表。
中断设置。允许通过软件设置中断(在诊断和安全检查中很有用)。向 ISET 中的某个位写入 1 将设置事件,因此相关的 RIS 位也会置位。如果通过屏蔽启用了中断,那么也会设置相应的 MIS 位。
| 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 | CNTXTRDY | SAVEDCNTXTRDY | INPUTRDY | OUTPUTRDY | |||
| R-0h | W-0h | W-0h | W-0h | W-0h | |||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-4 | RESERVED | R | 0h | |
| 3 | CNTXTRDY | W | 0h | 该位表示上下文数据寄存器可以被覆盖并且允许 CPU 写入下一个上下文。 0h = 清除中断屏蔽 1h = 设置中断屏蔽 |
| 2 | SAVEDCNTXTRDY | W | 0h | 该位表示有一个 AES 身份验证 TAG 和/或 IV 块可供 CPU 检索。仅当“save_context”位设置为“1b”时才会将该位置为有效。该位与“context_ready”位互斥。 0h = 清除中断屏蔽 1h = 设置中断屏蔽 |
| 1 | INPUTRDY | W | 0h | 这表示引擎可以接受新的输入。如果使用了 DMA 握手(AES_DMA_HS.DMA_DATA_ACK 设置为 1),则不应使用该位 0h = 清除中断屏蔽 1h = 设置中断屏蔽 |
| 0 | OUTPUTRDY | W | 0h | 这表示内核具有可供读取的输出。如果使用了 DMA 握手(AES_DMA_HS.DMA_DATA_ACK 设置为 1),则不应使用该位 0h = 写入 0 不产生影响 1h = 设置中断 |
图 10-21 展示了 ICLR,表 10-18 中对此进行了介绍。
返回到汇总表。
中断清除。写入 1 以清除相应的中断。
| 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 | CNTXTRDY | SAVEDCNTXTRDY | INPUTRDY | OUTPUTRDY | |||
| R-0h | W-0h | W-0h | W-0h | W-0h | |||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-4 | RESERVED | R | 0h | |
| 3 | CNTXTRDY | W | 0h | 该位表示上下文数据寄存器可以被覆盖并且允许 CPU 写入下一个上下文。 0h = 清除中断屏蔽 1h = 设置中断屏蔽 |
| 2 | SAVEDCNTXTRDY | W | 0h | 该位表示有一个 AES 身份验证 TAG 和/或 IV 块可供 CPU 检索。仅当“save_context”位设置为“1b”时才会将该位置为有效。该位与“context_ready”位互斥。 0h = 清除中断屏蔽 1h = 设置中断屏蔽 |
| 1 | INPUTRDY | W | 0h | 这表示引擎可以接受新的输入。如果使用了 DMA 握手(AES_DMA_HS.DMA_DATA_ACK 设置为 1),则不应使用该位 0h = 清除中断屏蔽 1h = 设置中断屏蔽 |
| 0 | OUTPUTRDY | W | 0h | 这表示内核具有可供读取的输出。如果使用了 DMA 握手(AES_DMA_HS.DMA_DATA_ACK 设置为 1),则不应使用该位 0h = 写入 0 不产生影响 1h = 清除中断 |
图 10-22 展示了 IIDX,表 10-19 中对此进行了介绍。
返回到汇总表。
该寄存器提供了具有最高优先级的中断索引。值 0x00 表示没有事件挂起。中断 1 是最高优先级,IIDX 是第二高优先级、4、8、…IIDX^31 是最低优先级。也就是说,设置为 1 的最低位位置表示最高优先级的挂起中断。优先级顺序是固定的。但是,用户可以使用其他寄存器来实现自己的优先级方案,这些寄存器显示了已经发生的中断的完整集合。
每次读取时,仅指示一个中断。读取时,当前中断(最高优先级)由硬件自动清除,同时 [RIS] 和 [MIS] 中相应的中断标志也会被清除。从 CPU(不是从调试接口)读取后,必须使用下一个最高优先级中断更新该寄存器,如果没有中断挂起,则应显示 0x0。
| 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 | STAT | ||||||||||||||||||||||||||||||
| R-0h | R-0h | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-8 | RESERVED | R | 0h | |
| 7-0 | STAT | R | 0h | 中断索引状态 00h = 无中断挂起 1h = AES 触发器 0 DMA(数据输入触发器) |
图 10-23 展示了 IMASK,表 10-20 中对此进行了介绍。
返回到汇总表。
中断屏蔽。如果设置了某个位,相应的中断会被取消屏蔽。取消屏蔽中断会导致原始中断显示在 IIDX 以及 MIS 中。
| 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 | TRIG0 | ||||||
| R-0h | R/W-0h | ||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-1 | RESERVED | R | 0h | |
| 0 | TRIG0 | R/W | 0h | TRIG0 事件屏蔽。 0h = 清除中断屏蔽 1h = 设置中断屏蔽 |
图 10-24 展示了 RIS,表 10-21 中对此进行了介绍。
返回到汇总表。
原始中断状态。反映所有挂起的中断,而不管屏蔽与否。RIS 寄存器允许用户实施轮询方案。即使相应的 IMASK 位未启用,也可以通过向 ICLR 寄存器位写入 1 来清除该寄存器中设置的标志。
| 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 | TRIG0 | ||||||
| R-0h | R-0h | ||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-1 | RESERVED | R | 0h | |
| 0 | TRIG0 | R | 0h | TRIG0 事件 0h = 未发生中断 1h = 已发生中断 |
图 10-25 展示了 MIS,表 10-22 中对此进行了介绍。
返回到汇总表。
屏蔽中断状态。这是 IMASK 和 RIS 寄存器的与运算。
| 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 | TRIG0 | ||||||
| R-0h | R-0h | ||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-1 | RESERVED | R | 0h | |
| 0 | TRIG0 | R | 0h | TRIG0 事件 0h = 未发生中断 1h = 已发生中断 |
图 10-26 展示了 ISET,表 10-23 中对此进行了介绍。
返回到汇总表。
中断设置。允许通过软件设置中断(在诊断和安全检查中很有用)。向 ISET 中的某个位写入 1 将设置事件,因此相关的 RIS 位也会置位。如果通过屏蔽启用了中断,那么也会设置相应的 MIS 位。
| 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 | TRIG0 | ||||||
| R-0h | W-0h | ||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-1 | RESERVED | R | 0h | |
| 0 | TRIG0 | W | 0h | TRIG0 0h = 写入 0 无效 1h = 设置中断 |
图 10-27 展示了 ICLR,表 10-24 中对此进行了介绍。
返回到汇总表。
中断清除。写入 1 以清除相应的中断。
| 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 | TRIG0 | ||||||
| R-0h | W-0h | ||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-1 | RESERVED | R | 0h | |
| 0 | TRIG0 | W | 0h | TRIG0 事件 0h = 写入 0 无效 1h = 清除中断 |
图 10-28 展示了 IIDX,表 10-25 中对此进行了介绍。
返回到汇总表。
该寄存器提供了具有最高优先级的中断索引。值 0x00 表示没有事件挂起。中断 1 是最高优先级,IIDX 是第二高优先级、4、8、…IIDX^31 是最低优先级。也就是说,设置为 1 的最低位位置表示最高优先级的挂起中断。优先级顺序是固定的。但是,用户可以使用其他寄存器来实现自己的优先级方案,这些寄存器显示了已经发生的中断的完整集合。
每次读取时,仅指示一个中断。读取时,当前中断(最高优先级)由硬件自动清除,同时 [RIS] 和 [MIS] 中相应的中断标志也会被清除。从 CPU(不是从调试接口)读取后,必须使用下一个最高优先级中断更新该寄存器,如果没有中断挂起,则应显示 0x0。
| 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 | STAT | ||||||||||||||||||||||||||||||
| R-0h | R-0h | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-8 | RESERVED | R | 0h | |
| 7-0 | STAT | R | 0h | 中断索引状态 00h = 无中断挂起 1h = AES DMA 触发器 1(数据输出触发器) |
图 10-29 展示了 IMASK,表 10-26 中对此进行了介绍。
返回到汇总表。
中断屏蔽。如果设置了某个位,相应的中断会被取消屏蔽。取消屏蔽中断会导致原始中断显示在 IIDX 以及 MIS 中。
| 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 | TRIG1 | ||||||
| R-0h | R/W-0h | ||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-1 | RESERVED | R | 0h | |
| 0 | TRIG1 | R/W | 0h | TRIG1 事件屏蔽。 0h = 清除中断屏蔽 1h = 设置中断屏蔽 |
图 10-30 展示了 RIS,表 10-27 中对此进行了介绍。
返回到汇总表。
原始中断状态。反映所有挂起的中断,而不管屏蔽与否。RIS 寄存器允许用户实施轮询方案。即使相应的 IMASK 位未启用,也可以通过向 ICLR 寄存器位写入 1 来清除该寄存器中设置的标志。
| 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 | TRIG1 | ||||||
| R-0h | R-0h | ||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-1 | RESERVED | R | 0h | |
| 0 | TRIG1 | R | 0h | TRIG1 事件 0h = 未发生中断 1h = 已发生中断 |
图 10-31 展示了 MIS,表 10-28 中对此进行了介绍。
返回到汇总表。
屏蔽中断状态。这是 IMASK 和 RIS 寄存器的与运算。
| 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 | TRIG1 | ||||||
| R-0h | R-0h | ||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-1 | RESERVED | R | 0h | |
| 0 | TRIG1 | R | 0h | TRIG1 事件 0h = 未发生中断 1h = 已发生中断 |
图 10-32 展示了 ISET,表 10-29 中对此进行了介绍。
返回到汇总表。
中断设置。允许通过软件设置中断(在诊断和安全检查中很有用)。向 ISET 中的某个位写入 1 将设置事件,因此相关的 RIS 位也会置位。如果通过屏蔽启用了中断,那么也会设置相应的 MIS 位。
| 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 | TRIG1 | ||||||
| R-0h | W-0h | ||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-1 | RESERVED | R | 0h | |
| 0 | TRIG1 | W | 0h | TRIG1 事件 0h = 写入 0 无效 1h = 设置中断 |
图 10-33 展示了 ICLR,表 10-30 中对此进行了介绍。
返回到汇总表。
中断清除。写入 1 以清除相应的中断。
| 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 | TRIG1 | ||||||
| R-0h | W-0h | ||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-1 | RESERVED | R | 0h | |
| 0 | TRIG1 | W | 0h | TRIG1 事件 0h = 写入 0 无效 1h = 清除中断 |
图 10-34 展示了 EVT_MODE,表 10-31 中对此进行了介绍。
返回到汇总表。
事件模式寄存器。它用于选择在软件模式(软件清除 RIS)或硬件模式(硬件清除 RIS)下是否禁用每条线路
| 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 | EVT2_CFG | EVT1_CFG | INT0_CFG | ||||
| R-0h | R-0h | R-0h | R-0h | ||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-6 | RESERVED | R | 0h | |
| 5-4 | EVT2_CFG | R | 0h | 对应于 INT_EVENT2 的事件的事件线路模式选择 0h = 中断或事件线路被禁用。 1h = 中断或事件线路处于软件模式。软件必须清除 RIS。 2h = 中断或事件线路处于硬件模式。硬件(另一个模块)会自动清除关联的 RIS 标志。 |
| 3-2 | EVT1_CFG | R | 0h | 对应于 INT_EVENT1 的事件的事件线路模式选择 0h = 中断或事件线路被禁用。 1h = 中断或事件线路处于软件模式。软件必须清除 RIS。 2h = 中断或事件线路处于硬件模式。硬件(另一个模块)会自动清除关联的 RIS 标志。 |
| 1-0 | INT0_CFG | R | 0h | 对应于 INT_EVENT0 的事件的事件线路模式选择 0h = 中断或事件线路被禁用。 1h = 中断或事件线路处于软件模式。软件必须清除 RIS。 2h = 中断或事件线路处于硬件模式。硬件(另一个模块)会自动清除关联的 RIS 标志。 |
图 10-35 展示了 GCMCCM_TAG0,表 10-32 中对此进行了介绍。
返回到汇总表。
CBC-MAC 第三密钥 (LSW)/GCM 和 CCM 中间 TAG (LSW)
对于 CBC-MAC:预计算的 CBC-MAC 第三密钥,用于对最后一个输入数据块执行最终异或运算。
对于 CCM:该寄存器在内部用于存储中间值。当写入一个新的 CCM 上下文时,该寄存器必须初始化为零。为了恢复中断的 CCM 操作,需要在该寄存器中加载中间 TAG。
对于 GCM:该寄存器在内部用于存储中间值。当写入一个新的 GCM 上下文时,该寄存器必须初始化为零。为了恢复中断的 GCM 操作,需要在该寄存器中加载中间 TAG。
| 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 | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 密钥数据 |
图 10-36 展示了 GCMCCM_TAG1,表 10-33 中对此进行了介绍。
返回到汇总表。
CBC-MAC 第三密钥/GCM 和 CCM 中间 TAG
对于 CBC-MAC:预计算的 CBC-MAC 第三密钥,用于对最后一个输入数据块执行最终异或运算。
对于 CCM:该寄存器在内部用于存储中间值。当写入一个新的 CCM 上下文时,该寄存器必须初始化为零。为了恢复中断的 CCM 操作,需要在该寄存器中加载中间 TAG。
对于 GCM:该寄存器在内部用于存储中间值。当写入一个新的 GCM 上下文时,该寄存器必须初始化为零。为了恢复中断的 GCM 操作,需要在该寄存器中加载中间 TAG。
| 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 | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 密钥数据 |
图 10-37 展示了 GCMCCM_TAG2,表 10-34 中对此进行了介绍。
返回到汇总表。
CBC-MAC 第三密钥/GCM 和 CCM 中间 TAG
对于 CBC-MAC:预计算的 CBC-MAC 第三密钥,用于对最后一个输入数据块执行最终异或运算。
对于 CCM:该寄存器在内部用于存储中间值。当写入一个新的 CCM 上下文时,该寄存器必须初始化为零。为了恢复中断的 CCM 操作,需要在该寄存器中加载中间 TAG。
对于 GCM:该寄存器在内部用于存储中间值。当写入一个新的 GCM 上下文时,该寄存器必须初始化为零。为了恢复中断的 GCM 操作,需要在该寄存器中加载中间 TAG。
| 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 | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 密钥数据 |
图 10-38 展示了 GCMCCM_TAG3,表 10-35 中对此进行了介绍。
返回到汇总表。
CBC-MAC 第三密钥 (MSW)/GCM 和 CCM 中间 TAG (MSW)
对于 CBC-MAC:预计算的 CBC-MAC 第三密钥,用于对最后一个输入数据块执行最终异或运算。
对于 CCM:该寄存器在内部用于存储中间值。当写入一个新的 CCM 上下文时,该寄存器必须初始化为零。为了恢复中断的 CCM 操作,需要在该寄存器中加载中间 TAG。
对于 GCM:该寄存器在内部用于存储中间值。当写入一个新的 GCM 上下文时,该寄存器必须初始化为零。为了恢复中断的 GCM 操作,需要在该寄存器中加载中间 TAG。
| 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 | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 密钥数据 |
图 10-39 展示了 GHASH_H0,表 10-36 中对此进行了介绍。
返回到汇总表。
CCM 和 CBC-MAC 第二密钥 (LSW)/GCM 哈希密钥输入 (LSW)
对于 CBC-MAC:预计算的 CBC-MAC 第二密钥,用于对最后一个输入数据块执行最终异或运算。
对于 GCM:哈希密钥;可以在内部计算或通过这些寄存器写入。仅用于 GHASH (GCM) 模式。
对于 CPU 写入操作,必须向这些寄存器写入随后要传输到引擎的新值。
| 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 | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 密钥数据 |
图 10-40 展示了 GHASH_H1,表 10-37 中对此进行了介绍。
返回到汇总表。
CCM 和 CBC-MAC 第二密钥/GCM 哈希密钥输入
对于 CBC-MAC:预计算的 CBC-MAC 第二密钥,用于对最后一个输入数据块执行最终异或运算。
对于 GCM:哈希密钥;可以在内部计算或通过这些寄存器写入。仅用于 GHASH (GCM) 模式。
对于 CPU 写入操作,必须向这些寄存器写入随后要传输到引擎的新值。
| 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 | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 密钥数据 |
图 10-41 展示了 GHASH_H2,表 10-38 中对此进行了介绍。
返回到汇总表。
CCM 和 CBC-MAC 第二密钥/GCM 哈希密钥输入
对于 CBC-MAC:预计算的 CBC-MAC 第二密钥,用于对最后一个输入数据块执行最终异或运算。
对于 GCM:哈希密钥;可以在内部计算或通过这些寄存器写入。仅用于 GHASH (GCM) 模式。
对于 CPU 写入操作,必须向这些寄存器写入随后要传输到引擎的新值。
| 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 | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 密钥数据 |
图 10-42 展示了 GHASH_H3,表 10-39 中对此进行了介绍。
返回到汇总表。
CCM 和 CBC-MAC 第二密钥 (MSW)/GCM 哈希密钥输入 (MSW)
对于 CBC-MAC:预计算的 CBC-MAC 第二密钥,用于对最后一个输入数据块执行最终异或运算。
对于 GCM:哈希密钥;可以在内部计算或通过这些寄存器写入。仅用于 GHASH (GCM) 模式。
对于 CPU 写入操作,必须向这些寄存器写入随后要传输到引擎的新值。
| 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 | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 密钥数据 |
图 10-43 展示了 KEY0,表 10-40 中对此进行了介绍。
返回到汇总表。
KEY (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 |
| DATA | |||||||||||||||||||||||||||||||
| W-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 密钥数据 |
图 10-44 展示了 KEY1,表 10-41 中对此进行了介绍。
返回到汇总表。
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 |
| DATA | |||||||||||||||||||||||||||||||
| W-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 密钥数据 |
图 10-45 展示了 KEY2,表 10-42 中对此进行了介绍。
返回到汇总表。
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 |
| DATA | |||||||||||||||||||||||||||||||
| W-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 密钥数据 |
图 10-46 展示了 KEY3,表 10-43 中对此进行了介绍。
返回到汇总表。
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 |
| DATA | |||||||||||||||||||||||||||||||
| W-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 密钥数据 |
图 10-47 展示了 KEY4,表 10-44 中对此进行了介绍。
返回到汇总表。
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 |
| DATA | |||||||||||||||||||||||||||||||
| W-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 密钥数据 |
图 10-48 展示了 KEY5,表 10-45 中对此进行了介绍。
返回到汇总表。
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 |
| DATA | |||||||||||||||||||||||||||||||
| W-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 密钥数据 |
图 10-49 展示了 KEY6,表 10-46 中对此进行了介绍。
返回到汇总表。
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 |
| DATA | |||||||||||||||||||||||||||||||
| W-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 密钥数据 |
图 10-50 展示了 KEY7,表 10-47 中对此进行了介绍。
返回到汇总表。
KEY (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 |
| DATA | |||||||||||||||||||||||||||||||
| W-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 密钥数据 |
图 10-51 展示了 IV0,表 10-48 中对此进行了介绍。
返回到汇总表。
IV (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 |
| DATA | |||||||||||||||||||||||||||||||
| W-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 密钥数据 |
图 10-52 展示了 IV1,表 10-49 中对此进行了介绍。
返回到汇总表。
IV
| 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 | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 密钥数据 |
图 10-53 展示了 IV2,表 10-50 中对此进行了介绍。
返回到汇总表。
IV
| 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 | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 密钥数据 |
图 10-54 展示了 IV3,表 10-51 中对此进行了介绍。
返回到汇总表。
IV
| 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 | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 密钥数据 |
图 10-55 展示了 CTRL,表 10-52 中对此进行了介绍。
返回到汇总表。
输入/输出缓冲器控制和模式选择。该寄存器的内容决定了引擎的运行模式。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| CNTXT_RDY | SAVED_CNTXT_RDY | SAVE_CNTXT | GCM_CONT | GET_DIGEST | OFB_GCM_CCM_CONT | RESERVED | CCMM |
| R-1h | R-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R-0h | R/W-0h |
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| CCMM | CCML | CCM | GCM | ||||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| CBCMAC | RESERVED | CFB | ICM | CTR_WIDTH | |||
| R/W-0h | R-0h | R/W-0h | R/W-0h | R/W-0h | |||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CTR_WIDTH | CTR | CBC | KEYSIZE | DIR | INPUT_RDY | OUTPUT_RDY | |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R-0h | R-0h | |
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31 | CNTXT_RDY | R | 1h | 如果为“1b”,该只读状态位表示上下文数据寄存器可以被覆盖并且允许 CPU 写入下一个上下文。 0h = 未就绪 1h = 就绪 |
| 30 | SAVED_CNTXT_RDY | R | 0h | 如果为“1b”,该只读状态位表示有一个 AES 身份验证 TAG 和/或 IV 块可供主机检索。仅当“save_context”位设置为“1b”时才会将该位置为有效。该位与“context_ready”位互斥。 0h = 未就绪 1h = 就绪 |
| 29 | SAVE_CNTXT | R/W | 0h | 该位用于指示需要将身份验证 TAG 或结果 IV 存储为结果上下文。如果设置了该位,当操作完成并且启用相关信号时,上下文输出 DMA 和/或中断将被置为有效。 通常,对于返回 TAG 的身份验证模式(CBC-MAC、GCM 和 CCM),或者对于需要未来继续使用当前结果 IV 的基本加密模式,必须设置该值。 如果设置了该位,引擎将保存其完整的上下文,直到读取 TAG 和/或 IV 寄存器。只有在读取 TAG 或 IV 后,新(输入)上下文的新 DMA 请求才会被置为有效。 如果未设置该位,引擎将在开始处理带有当前上下文的最后一个块后,直接将上下文输入 DMA 请求信号置为有效。 0h = 不产生影响 1h = 启用 |
| 28 | GCM_CONT | R/W | 0h | 在加密/有效载荷阶段继续处理中断的 AES-GCM 或 AES-CCM 操作。 将该只写信号设置为“1b”并提供用于 GCM 或 CCM 操作的常规模式位设置,以便从下一个完整块(128 位)边界继续处理。 在设置该位之前,必须已将用于恢复处理的所有适用上下文都加载到引擎中:密钥、IV、中间摘要/TAG 和块计数器。由于模式包含于同一寄存器中,因此可将模式与该位一起写入。 0h = 不产生影响 1h = 启用 |
| 27 | GET_DIGEST | R/W | 0h | 中断处理并在 AES-GCM 或 AES-CCM 操作期间生成中间摘要。 将该只写信号设置为“1b”可在下一个完整块(128 位)边界中断 GCM 或 CCM 处理。在加密/解密数据阶段或 AAD 阶段可请求中间摘要。 注意:中断只能在完整块(128 位)边界上进行。为了恢复并最终完成操作,最小剩余字节数量必须大于或等于 1。 0h = 不产生影响 1h = 启用 |
| 26 | OFB_GCM_CCM_CONT | R/W | 0h | 该位有两种用途,具体取决于 CCM/GCM 的选择,请参阅位 [18:16]。 如果未选择 CCM/GCM: 如果该位设置为“1b”,则会选择完整块 AES 输出反馈模式 (OFB-128)。 如果选择了 CCM/GCM: 在 AAD 阶段继续处理中断的 AES-GCM 或 AES-CCM 操作。 将该只写信号设置为“1b”并提供用于 GCM 或 CCM 操作的常规模式位设置,以便从下一个完整 AAD 块(128 位)边界继续处理。 在设置该位之前,必须已将用于恢复处理的所有适用上下文都加载到引擎中:密钥、IV、中间摘要/TAG、块计数器和 CCM 对齐数据字(后者仅用于 CCM 模式)。由于模式包含于同一寄存器中,因此可将模式与该位一起写入。 1h = 在 AAD 阶段继续 GCM/CCM 处理 |
| 25 | RESERVED | R | 0h | |
| 24-22 | CCMM | R/W | 0h | 定义“M”以指示用于 CCM 操作的身份验证字段的长度;身份验证字段长度等于两倍(CCM-M 的值加 1)。注意:引擎始终返回一个 128 位身份验证字段,其中有 M 个最低有效字节有效。支持所有值。 0h = 长度为 1 7h = 长度为 8 |
| 21-19 | CCML | R/W | 0h | 定义“L”以指示用于 CCM 操作的长度字段的宽度;长度字段(以字节为单位)等于 CMM-L 的值加 1。支持所有值。 0h = 长度为 1 7h = 长度为 8 |
| 18 | CCM | R/W | 0h | 如果设置为“1b”,则会选择 AES-CCM,这是一种组合模式,使用 AES 进行身份验证和加密。除了 CCM 位,还必须设置 CTR 模式位以启用 AES-CTR。其他与 CCM 的组合均无效。 0h = 禁用 CBC 模式 1h = 选择 CBC 模式 |
| 17-16 | GCM | R/W | 0h | 如果未设置为“00b”,则会选择 AES-GCM 模式,这是一种组合模式,使用伽罗瓦域乘法器 GF(2128) 进行身份验证,并使用 AES-CTR 模式进行加密,这些位指定 GCM 模式:01b = GHASH 且 H 已加载、Y0 加密值强制为零 10b = GHASH 且 H 已加载、Y0 加密值在内部计算 11b = 自主 GHASH(H 和 Y0 加密值均在内部计算)注意:除了 GCM 之外,还必须将 CTR 模式位设置为“1b”以便为 GCM 启用 AES-CTR;如果未设置 CTR 位,则执行仅 GHASH(身份验证)操作。仅当 GCM 模式设置为“01b”且方向位设置为“0b”时,才允许进行仅 GHASH 操作。其他模式不可与 GCM 结合使用。下面的表 14 显示了 GCM 和 CTR 模式位的有效组合,所有其他选项均无效且不得选择。 1h = GHASH 且 H 已加载、Y0 加密值强制为 0 2h = GHASH 且 H 已加载、Y0 加密值在内部计算 3h = 自主 GHASH(H 和 Y0 加密值均在内部计算) |
| 15 | CBCMAC | R/W | 0h | 如果设置为“1b”,则会选择 AES-CBC MAC,对于此模式,方向位必须设置为“1”。 0h = 禁用 CBC 模式 1h = 选择 CBC 模式 |
| 14-11 | RESERVED | R | 0h | |
| 10 | CFB | R/W | 0h | 如果设置为“1b”,则会选择 AES 密码反馈模式 CFB。使用 CTR_WIDTH 字段可以指定反馈宽度。 0h = 禁用 CBC 模式 1h = 选择 CBC 模式 |
| 9 | ICM | R/W | 0h | 当设置 CFB 位时,指定 CFB 模式反馈宽度: 0h = 禁用 CBC 模式 1h = 选择 CBC 模式 |
| 8-7 | CTR_WIDTH | R/W | 0h | 当设置 CTR 位时,指定 AES-CTR 模式的计数器宽度。 当设置 CFB 位时,指定 CFB 模式反馈宽度: 0h = CFB-128 模式 1h = CFB-1 模式 2h = CFB-8 模式 3h = 128 位计数器 |
| 6 | CTR | R/W | 0h | 如果设置为“1b”,则会选择 AES 计数器模式 (CTR)。注意:当需要加密/解密时,还必须为 GCM 和 CCM 设置该位。 0h = 禁用 CBC 模式 1h = 选择 CBC 模式 |
| 5 | CBC | R/W | 0h | 如果设置为“1b”,则会选择密码分组链接 (CBC) 模式。 0h = 禁用 CBC 模式 1h = 选择 CBC 模式 |
| 4-3 | KEYSIZE | R/W | 0h | 指定加密强度/密钥宽度 1h = 128 位密钥 3h = 256 位密钥 |
| 2 | DIR | R/W | 0h | 方向。如果设置为“1b”,则会执行加密操作。如果设置为“0b”,则会执行解密操作。注意:当选择了 CBC-MAC 时,必须向该位写入“1b”。 0h = 解密 1h = 加密 |
| 1 | INPUT_RDY | R | 0h | 输入就绪状态。如果为“1b”,该只读状态位表示 16 字节输入缓冲区为空并允许 CPU 写入下一个数据块。复位后,该位为“0”。写入上下文后,该位将变为“1b”。 0h = 未就绪 1h = 就绪 |
| 0 | OUTPUT_RDY | R | 0h | 输出就绪。如果为“1b”,该只读状态位表示有一个 AES 输出块可供 CPU 检索。 0h = 未就绪 1h = 就绪 |
图 10-56 展示了 C_LENGTH_0,表 10-53 中对此进行了介绍。
返回到汇总表。
加密数据长度 (LSW)。这些寄存器将缓冲进入引擎的长度值。处理期间,长度值递减至零。如果两个长度均为零,则表示数据流完成,并会请求新的上下文。对于基本 AES 模式 (ECB/CBC/CTR/ICM/CFB/OFB),如果上下文 DMA 被禁用,则可以写入加密长度“0”。写入零长度将导致连续的数据请求,直到写入新的上下文。对于其他模式(GCM 和 CCM),如果长度递减至零或等于零,则不会发出(新的)数据请求。
建议为每个数据包写入一个新长度。如果长度寄存器递减至零,则在写入新的上下文或长度值之前不会处理任何新数据。
如果在不写入长度寄存器的情况下写入新上下文,则会重复使用先前上下文的长度寄存器值。
| 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 | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 加密长度寄存器(LSW 和 MSW)的位 [60:0] 存储所有模式的加密数据长度(以字节为单位)。一旦开始使用此上下文进行处理,此长度将递减至零。允许的最大数据长度为 (261-1) 字节。 对于 GCM,可以使用不超过 236-32 字节的任何值。这是因为使用了 32 位计数器模式;128 位块的最大数量为 232-2,因此最大字节数为 236-32。 写入该寄存器会触发引擎开始使用此上下文。这对除 GCM 和 CCM 之外的所有模式都有效。 请注意,对于组合模式,该长度不包括仅身份验证数据;身份验证长度在下面的 AES_AAD_LENGTH 寄存器中指定。 所有模式的长度必须大于 0。对于组合模式,允许其中一个长度等于零。 对于基本加密模式 (ECB/CBC/CTR/ICM/CFB/OFB),允许将长度字段编程为零;在这种情况下,长度被认为是无穷大。 对于流密码模式,所有数据必须采用字节(8 位)对齐;不支持位对齐的数据流。对于分组密码模式,必须以 16 字节分组密码大小的倍数对数据长度进行编程。 |
图 10-57 展示了 C_LENGTH_1,表 10-54 中对此进行了介绍。
返回到汇总表。
加密数据长度 (MSW)。这些寄存器将缓冲进入引擎的长度值。处理期间,长度值递减至零。如果两个长度均为零,则表示数据流完成,并会请求新的上下文。对于基本 AES 模式 (ECB/CBC/CTR/ICM/CFB/OFB),如果上下文 DMA 被禁用,则可以写入加密长度“0”。写入零长度将导致连续的数据请求,直到写入新的上下文。对于其他模式(GCM 和 CCM),如果长度递减至零或等于零,则不会发出(新的)数据请求。
建议为每个数据包写入一个新长度。如果长度寄存器递减至零,则在写入新的上下文或长度值之前不会处理任何新数据。
如果在不写入长度寄存器的情况下写入新上下文,则会重复使用先前上下文的长度寄存器值。
| 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 | DATA | ||||||||||||||||||||||||||||||
| R-0h | W-0h | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-29 | RESERVED | R | 0h | |
| 28-0 | DATA | W | 0h | 加密长度寄存器(LSW 和 MSW)的位 [60:0] 存储所有模式的加密数据长度(以字节为单位)。一旦开始使用此上下文进行处理,此长度将递减至零。允许的最大数据长度为 (261-1) 字节。 对于 GCM,可以使用不超过 236-32 字节的任何值。这是因为使用了 32 位计数器模式;128 位块的最大数量为 232-2,因此最大字节数为 236-32。 写入该寄存器会触发引擎开始使用此上下文。这对除 GCM 和 CCM 之外的所有模式都有效。 请注意,对于组合模式,该长度不包括仅身份验证数据;身份验证长度在下面的 AES_AAD_LENGTH 寄存器中指定。 所有模式的长度必须大于 0。对于组合模式,允许其中一个长度等于零。 对于基本加密模式 (ECB/CBC/CTR/ICM/CFB/OFB),允许将长度字段编程为零;在这种情况下,长度被认为是无穷大。 对于流密码模式,所有数据必须采用字节(8 位)对齐;不支持位对齐的数据流。对于分组密码模式,必须以 16 字节分组密码大小的倍数对数据长度进行编程。 |
图 10-58 展示了 AAD_LENGTH,表 10-55 中对此进行了介绍。
返回到汇总表。
AAD 数据长度
| 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 | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 身份验证长度寄存器的位 [31:0] 仅存储组合模式(GCM 或 CCM)的身份验证数据长度(以字节为单位) 对于 CCM,支持的 AAD 长度为 0 至 (216-28) 字节。对于 GCM,可以使用不超过 232-1 字节的任何值。一旦开始使用此上下文进行处理,此长度将递减至零。 写入该寄存器会触发引擎开始为 GCM 和 CCM 使用此上下文。 |
图 10-59 展示了 DATA0,表 10-56 中对此进行了介绍。
返回到汇总表。
数据输入 (LSW)/数据输出 (LSW)。数据输入/输出寄存器用于缓冲进出引擎的输入/输出数据块。请注意,数据输入缓冲器 (AES_DATA_IN_n) 和数据输出缓冲器 (AES_DATA_OUT_n) 映射到相同的地址位置。向这些地址写入值将加载输入缓冲器,而读取操作将从输出缓冲器拉取值。因此,对于写入访问,写入的是数据输入缓冲器;对于读取访问,读取的是数据输出缓冲器。在开始操作之前必须向数据输入缓冲器写入值。数据输出缓冲器在操作完成时包含有效数据。在每个方向会独立跟踪这些寄存器的所有写入和读取。因此,任何 128 位数据块都可以分割成多次 32 位字传输,这些字传输可以与外部接口上的其他传输混合进行。
| 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/W-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | R/W | 0h | 数据 |
图 10-60 展示了 DATA1,表 10-57 中对此进行了介绍。
返回到汇总表。
数据输入/数据输出。数据输入/输出寄存器用于缓冲进出引擎的输入/输出数据块。请注意,数据输入缓冲器 (AES_DATA_IN_n) 和数据输出缓冲器 (AES_DATA_OUT_n) 映射到相同的地址位置。向这些地址写入值将加载输入缓冲器,而读取操作将从输出缓冲器拉取值。因此,对于写入访问,写入的是数据输入缓冲器;对于读取访问,读取的是数据输出缓冲器。在开始操作之前必须向数据输入缓冲器写入值。数据输出缓冲器在操作完成时包含有效数据。在每个方向会独立跟踪这些寄存器的所有写入和读取。因此,任何 128 位数据块都可以分割成多次 32 位字传输,这些字传输可以与外部接口上的其他传输混合进行。
| 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/W-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | R/W | 0h | 数据 |
图 10-61 展示了 DATA2,表 10-58 中对此进行了介绍。
返回到汇总表。
数据输入/数据输出。数据输入/输出寄存器用于缓冲进出引擎的输入/输出数据块。请注意,数据输入缓冲器 (AES_DATA_IN_n) 和数据输出缓冲器 (AES_DATA_OUT_n) 映射到相同的地址位置。向这些地址写入值将加载输入缓冲器,而读取操作将从输出缓冲器拉取值。因此,对于写入访问,写入的是数据输入缓冲器;对于读取访问,读取的是数据输出缓冲器。在开始操作之前必须向数据输入缓冲器写入值。数据输出缓冲器在操作完成时包含有效数据。在每个方向会独立跟踪这些寄存器的所有写入和读取。因此,任何 128 位数据块都可以分割成多次 32 位字传输,这些字传输可以与外部接口上的其他传输混合进行。
| 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/W-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | R/W | 0h | 数据 |
图 10-62 展示了 DATA3,表 10-59 中对此进行了介绍。
返回到汇总表。
数据输入 (MSW)/数据输出 (MSW)。数据输入/输出寄存器用于缓冲进出引擎的输入/输出数据块。请注意,数据输入缓冲器 (AES_DATA_IN_n) 和数据输出缓冲器 (AES_DATA_OUT_n) 映射到相同的地址位置。向这些地址写入值将加载输入缓冲器,而读取操作将从输出缓冲器拉取值。因此,对于写入访问,写入的是数据输入缓冲器;对于读取访问,读取的是数据输出缓冲器。在开始操作之前必须向数据输入缓冲器写入值。数据输出缓冲器在操作完成时包含有效数据。在每个方向会独立跟踪这些寄存器的所有写入和读取。因此,任何 128 位数据块都可以分割成多次 32 位字传输,这些字传输可以与外部接口上的其他传输混合进行。
| 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/W-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | R/W | 0h | 数据 |
图 10-63 展示了 TAG0,表 10-60 中对此进行了介绍。
返回到汇总表。
哈希结果 (LSW)。这些寄存器缓冲来自引擎的 TAG。这些寄存器与中间身份验证结果寄存器共享,但在处理完成之前无法读取。
| 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 | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | R | 0h | 对于 CPU 读取操作,这些寄存器包含引擎的最后 128 位 TAG 输出;在写入下一个上下文前,该 TAG 一直可用。 仅当设置了 AES_CTRL 寄存器中的“saved_context_ready”或“get_digest”位且 TAG 可用时,该寄存器才会包含有效数据。在 get_digest 的情况下,输出将是用于继续运行 CCM 或 GCM 的中间 TAG。在处理过程中或者对于不返回 TAG 的操作/模式,对该寄存器的读取将返回 IV 寄存器中的数据。如果操作返回 IV 寄存器中的 TAG,必须直接访问 IV 寄存器。 |
图 10-64 展示了 TAG1,表 10-61 中对此进行了介绍。
返回到汇总表。
哈希结果。这些寄存器缓冲来自引擎的 TAG。这些寄存器与中间身份验证结果寄存器共享,但在处理完成之前无法读取。
| 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 | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | R | 0h | 对于 CPU 读取操作,这些寄存器包含引擎的最后 128 位 TAG 输出;在写入下一个上下文前,该 TAG 一直可用。 仅当设置了 AES_CTRL 寄存器中的“saved_context_ready”或“get_digest”位且 TAG 可用时,该寄存器才会包含有效数据。在 get_digest 的情况下,输出将是用于继续运行 CCM 或 GCM 的中间 TAG。在处理过程中或者对于不返回 TAG 的操作/模式,对该寄存器的读取将返回 IV 寄存器中的数据。如果操作返回 IV 寄存器中的 TAG,必须直接访问 IV 寄存器。 |
图 10-65 展示了 TAG2,表 10-62 中对此进行了介绍。
返回到汇总表。
哈希结果。这些寄存器缓冲来自引擎的 TAG。这些寄存器与中间身份验证结果寄存器共享,但在处理完成之前无法读取。
| 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 | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | R | 0h | 对于 CPU 读取操作,这些寄存器包含引擎的最后 128 位 TAG 输出;在写入下一个上下文前,该 TAG 一直可用。 仅当设置了 AES_CTRL 寄存器中的“saved_context_ready”或“get_digest”位且 TAG 可用时,该寄存器才会包含有效数据。在 get_digest 的情况下,输出将是用于继续运行 CCM 或 GCM 的中间 TAG。在处理过程中或者对于不返回 TAG 的操作/模式,对该寄存器的读取将返回 IV 寄存器中的数据。如果操作返回 IV 寄存器中的 TAG,必须直接访问 IV 寄存器。 |
图 10-66 展示了 TAG3,表 10-63 中对此进行了介绍。
返回到汇总表。
哈希结果 (MSW)。这些寄存器缓冲来自引擎的 TAG。这些寄存器与中间身份验证结果寄存器共享,但在处理完成之前无法读取。
| 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 | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | R | 0h | 对于 CPU 读取操作,这些寄存器包含引擎的最后 128 位 TAG 输出;在写入下一个上下文前,该 TAG 一直可用。 仅当设置了 AES_CTRL 寄存器中的“saved_context_ready”或“get_digest”位且 TAG 可用时,该寄存器才会包含有效数据。在 get_digest 的情况下,输出将是用于继续运行 CCM 或 GCM 的中间 TAG。在处理过程中或者对于不返回 TAG 的操作/模式,对该寄存器的读取将返回 IV 寄存器中的数据。如果操作返回 IV 寄存器中的 TAG,必须直接访问 IV 寄存器。 |
图 10-67 展示了 STATUS,表 10-64 中对此进行了介绍。
返回到汇总表。
状态寄存器
| 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 | KEYWR | ||||||
| R-0h | R-0h | ||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-1 | RESERVED | R | 0h | |
| 0 | KEYWR | R | 0h | 密钥写入状态。0 - 允许用户对 KEY 寄存器的写入。1 - 忽略用户对 KEY 寄存器的写入。 为了允许用户写入,需执行模块复位。 0h = 允许用户写入 KEY MMR 1h = 禁用用户写入 KEY MMR。 写入不产生影响。 |
图 10-68 展示了 DATA_IN,表 10-65 中对此进行了介绍。
返回到汇总表。
Data-in 寄存器:用作单一地址的 DATA0/1/2/3 的别名以便于 DMA 寻址
| 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 | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 数据输入字 |
图 10-69 展示了 DATA_OUT,表 10-66 中对此进行了介绍。
返回到汇总表。
Data-out 寄存器:用作单一地址的 DATA0/1/2/3 的别名以便于 DMA 寻址
| 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 | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | R | 0h | 数据输出字 |
图 10-70 展示了 FORCE_IN_AV,表 10-67 中对此进行了介绍。
返回到汇总表。
用于输入数据的数据控制寄存器。该只写寄存器提供了一种方法来强制引擎的输入数据缓冲器可用。
| 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 | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 对该寄存器的任何写入都会强制输入数据缓冲器有效,并会强制引擎开始处理此数据。此处写入的数据不会被使用。必须将内核配置为使输入和输出数据确认基于 I/O 寄存器 |
图 10-71 展示了 CCM_ALN_WRD,表 10-68 中对此进行了介绍。
返回到汇总表。
AES-CCM AAD 对齐数据字。该寄存器可用于访问在 AES-CCM 处理的 AAD 阶段存储了对齐数据字节的内部寄存器。当 AES-CCM 操作在 AAD 阶段中断时,需要读取和存储该寄存器。在以后的会话中恢复 AES-CCM 操作时,需要写入该寄存器来恢复这个值。
| 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 | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | W | 0h | 该寄存器可用于访问在 AES-CCM 处理的 AAD 阶段存储了对齐数据字节的内部寄存器。当 AES-CCM 操作在 AAD 阶段中断时,需要读取和存储该寄存器。在以后的会话中恢复 AES-CCM 操作时,需要写入该寄存器来恢复这个值。 |
图 10-72 展示了 BLK_CNT0,表 10-69 中对此进行了介绍。
返回到汇总表。
内部块计数器 (LSW)。该寄存器与 BLK_CNT1 寄存器一起提供对引擎内部数据块计数器的访问。此计数器用于在 AES-CCM 和 AES-GCM 操作期间跟踪数据块的数量。读取和写入此计数器允许中断和恢复长时间的 CCM 或 GCM 操作。请注意,块计数器在内部用于 AAD 数据以及加密/解密数据。中断和恢复仅在加密/解密数据阶段受支持,在 AAD 期间不受支持。
| 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/W-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | DATA | R/W | 0h | 用于 AES GCM 和 CCM 操作的内部块计数器。 这些位的读数是表示要存储的块数的块计数值。在请求中间 GCM/CCM 摘要后,此值对于 saved_context_ready 有效。 写入这些寄存器会将内部块计数器恢复到编程值。只有为了准备引擎以继续处理中断的 GCM 或 CCM 操作时,才需要执行此操作。 另请参阅 AES_CTRL 寄存器中的 get_digest 和 gcm_ccm_continue 位。 |
图 10-73 展示了 BLK_CNT1,表 10-70 中对此进行了介绍。
返回到汇总表。
内部块计数器 (MSW)。该寄存器与 BLK_CNT0 寄存器一起提供对引擎内部数据块计数器的访问。此计数器用于在 AES-CCM 和 AES-GCM 操作期间跟踪数据块的数量。读取和写入此计数器允许中断和恢复长时间的 CCM 或 GCM 操作。请注意,块计数器在内部用于 AAD 数据以及加密/解密数据。中断和恢复仅在加密/解密数据阶段受支持,在 AAD 期间不受支持。
| 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 | DATA | ||||||||||||||||||||||||||||||
| R-0h | R/W-0h | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-24 | RESERVED | R | 0h | |
| 23-0 | DATA | R/W | 0h | 用于 AES GCM 和 CCM 操作的内部块计数器。 这些位的读数是表示要存储的块数的块计数值。在请求中间 GCM/CCM 摘要后,此值对于 saved_context_ready 有效。 写入这些寄存器会将内部块计数器恢复到编程值。只有为了准备引擎以继续处理中断的 GCM 或 CCM 操作时,才需要执行此操作。 另请参阅 AES_CTRL 寄存器中的 get_digest 和 gcm_ccm_continue 位。 |
图 10-74 展示了 DMA_HS,表 10-71 中对此进行了介绍。
返回到汇总表。
用于 DMA 握手的控制寄存器
| 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_DATA_ACK | ||||||
| R-0h | R/W-0h | ||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-1 | RESERVED | R | 0h | |
| 0 | DMA_DATA_ACK | R/W | 0h | 当该位为 0b 时,输入和输出数据确认基于 I/O 寄存器,如 AES_DATA_IN_n/AES_DATA_OUT_n 寄存器的说明中所述。 当该位为 1b 时,输入和输出数据确认基于 DMA 握手信号。 0h = 禁用基于 DMA 的数据握手 1h = 启用基于 DMA 的握手 |