USER GUIDE / SECURITY / SC AES / REGISTER DESCRIPTION
寄存器描述
AES Control Register (ASCR,0x0000)
ASCRBASE + 0x0000
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:28 | PS | PageSize,页面大小; 请勿配置此位,始终保持为默认值 0:don’tcare | RW |
| 27:21 | Reserved | 写入无影响,读取为零。 | R |
| 20 | EKEY_CLR | 配置为1可清除读取的user_key、os_key、chip_id以及 ASSR.EKEY_RSTD状态位 | RWC |
| 19 | EKEY_USE | 0:无影响; 1:使用user_key /os_key作为key进行AES加解密。 | RW |
| 18 | ID_FUSION | efuse中读取的oskey和user_key拼接规则为 {key_1st, key_2ed, key_3rd,key_4th},通过配置ID_FUSION可选择是否加扰: 0:无影响,ekey_fusion为{os_key, user_key}(共256bit) 1:使用EFUSE中读取的{os_key, user_key}和chip_id加扰模式 加扰的方式96bit的id和{os_key, user_key}异或, 加扰逻辑为{os_key, user_key} ^{ID1st,ID2ed,ID3rd, ID1st, ID1st, ID2ed,ID3rd,ID1st}得到ekey_fusion | RW |
| 17:16 | EKEY_MODE | 如果ASCR.KEYL ==2’b00: •2' b00使用ekey_fusion[127:0] •2' b01使用ekey_fusion[255:128] •2' b10使用ekey_fusion[255:128]|ekey_fusion[127:0] 如果ASCR.KEYL ==2’b01: 使用ekey_fusion[191:0] 如果ASCR.KEYL ==2’b10: •2' b00使用{ekey_fusion[127:0],reg_key} •2' b01使用{ekey_fusion[255:128],reg_key} •2' b10使用{ekey_fusion[255:128]| ekey_fusion[127:0],reg_key} •2' b11使用{ekey_fusion[255:128],ekey_fusion[127:0]} | RW |
| 15 | EID_RD | 0:无影响 1:使能读EFUSE chip_id, 如果读取完成, 该位会被硬件自动清0 | RW |
| 14 | EKEY_RD | 0:无影响 1:读取EFUSE中user_key,如果读取完成,该位会被硬件自动清0 | RW |
| 13 | DOUT_ENDIAN | 输出数据的大小端选择: | RW |
| 12 | DIN_ENDIAN | 输入数据的大小端选择: 0:大端输入 1:小端输入 | RW |
| 11 | Reserved | 写入无影响,读取为零。 | R |
| 10 | CLR | 清除IV和keys; 必须出于以下2个原因设置此位: (1)CBC模式解码之后; (2)出于安全考虑而想清除IV/密钥/输入数据/输出数据。 | RWC |
| 9 | DMAS | DMA开始 | RWC |
| 8 | DMAE | DMA使能 | RW |
| 7:6 | KEYL | 选择密钥的有效长度: 00:128bit 01:192bit 10:256bit | RW |
| 5 | MODE | AES模式选择位。 0:ECB模式 1:CBC模式 | RW |
| 4 | DECE | AES加解密选择位。 0:加密 1:解密 | RW |
| 3 | AESS | AES开始工作。 在IV数据和待加解密的数据都配置好之后再开始配置该位。 | RWC |
| 2 | KEYS | Key Expansion Start: 密钥扩展开始位 | RWC |
| 1 | INIT_IV | AES IV 初始完成。 当一个新的ASIV写好后,INIT_IV必须被置位,表明将开始一轮新的 CBC模式加解密。 | RWC |
| 0 | EN | AES使能位。 0:AES不使能 1:AES使能 | RW |
AES Status Register (ASSR,0x0004)
ASSRBASE + 0x0004
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:5 | Reserved | 写入无影响,读取为零。 | R |
| 4 | EKEY_RSTD | EFUSE user_key复位读完成 0:读取未完成 1:读取完成 配置ASCR.EKEY_CLR为1可复位该位 | RWC |
| 3 | EID_RDD | EFUSE chip_id使能读取完成 0:读取未完成 1:读取完成 读该寄存器后再向该位写1可复位该位 | RWC |
| 2 | EKEY_RDD | EFUSE user_key使能读取完成 0:读取未完成 1:读取完成 读该寄存器后再向该位写1可复位该位 | RWC |
| 1 | DMAD | DMA完成 0:DMA未完成 1:DMA完成 读完DMA完成之后再向该位写1可复位该位 | RWC |
| 0 | AESD | AES完成 0:AES加解密未完成 1:AES加解密完成 读完AES完成之后再向该位写1可复位该位 | RWC |
AES Interrupt Enable Register (ASINTEN,0x0008)
ASINTENBASE + 0x0008
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:4 | Reserved | 写入无影响,读取为零。 | R |
| 3 | EIDRD_INT_EN | EFUSE chip_id读取完成中断使能位 1:中断使能 0:中断屏蔽(默认) | RW |
| 2 | EKEYRD_INT_EN | EFUSE user_key读取完成中断使能位 1:中断使能 0:中断屏蔽(默认) | RW |
| 1 | DMA_INT_EN | DMA完成中断使能位 1:中断使能 0:中断屏蔽(默认) | RW |
| 0 | AES_INT_EN | AES完成中断使能位 1:中断使能 0:中断屏蔽(默认) | RW |
AES DMA Source Address (ASSA,0x000C)
ASSABASE + 0x000C
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | SA | 单次DMA模式的源地址 | RW |
AES Source Transfer Count (ASSTC,0x0010)
ASSTCBASE + 0x0010
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | STC | 单次DMA源地址传输数据量(单位:字),即配置1搬运1个字 | RW |
AES DMA Destination Address (ASDA,0x0014)
ASDABASE + 0x0014
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | DA | 单次DMA模式的目的地址 | RW |
AES Destination Transfer Count (ASDTC,0x0018)
ASDTCBASE + 0x0018
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | DTC | 单次DMA目的地址传输数据量(单位:字),即配置1搬运1个字 | RW |
AES Block Number (ASBNUM,0x001C)
ASBNUMBASE + 0x001C
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | BNUM | DMA传输的总block量(1block= 128bits) | RW |
AES Data Input Register (ASDI,0x0020)
只写寄存器。
ASDIBASE + 0x0020
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | DIN | 输入数据 加解密是对于128位数据进行的,所以最小的数据单元是128位,软 件应该保证输入的数据为n*128(bit)。 128位的数据由4个32位数据组成,4个数据的先后拼接关系为: { ASDI_1st, ASDI_2ed, ASDI_3rd, ASDI_4th},ASDI 仅可支持 32bit 数据写入。 | W |
AES Data Output Register (ASDO,0x0024)
只读寄存器。
ASDOBASE + 0x0024
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | DOUT | 输出数据 加解密是对于128位数据进行的,所以最小的数据单元是128位,软 件应该保证读取输出的数据为n*128(bit)。 128位的数据由4个32位数据组成,4个数据的先后拼接关系为: { ASDO_1st, ASDO_2ed, ASDO_3rd, ASDO_4th},ASDO 仅可支持 32bit数据读出。 | R |
AES KEY FIFO (ASKY,0x28)
只写寄存器。
ASKYBASE + 0x0028
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | ASKY | AES密钥 密钥支持128/192 /256bit,以128bit为例,128位的数据由4个32位 数据组成,4个数据的先后拼接关系为(192 /256以此类推): { ASKY_1st,ASKY_2ed, ASKY_3rd,ASKY_4th},ASKY仅可支持32bit 数据的写入。 | W |
AES IV FIFO (ASIV,0x2C)
只写寄存器。
ASIVBASE + 0x002C
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | ASIV | 初始向量IV 128位的数据由4个32位数据组成,4个数据的先后拼接关系为: { ASIV_1st,ASIV_2ed,ASIV_3rd,ASIV_4th},ASIV仅可支持32bit 数据的写入。 | W |