编程指南
29 May 2024
Read time: 1 minute(s)
开始之前
开始配置之前,确保 SPI ENC 模块已经初始化。初始化步骤如下:
- 根据系统配置,将 SPI ENC 模块连接到正确的 SPI 控制器。
通过设置 SPIE_CTL[13:12] 选择连接的 SPI 控制器。
- 设置密钥。默认使用 eFuse 中的密钥数据,也可通过 SPIE_DBGR、SPIE_KDBG 和 SPIE_NDBG 设置密钥。
- 通过设置 SPIE_ICR 寄存器使能相应中断。
关于此任务
SPI_ENC 模块的配置步骤如下:
过程
-
读写 SPI 存储,传输时确保 SPIE_CTL[0] = 0 (KEY_START = 0)。
读写 SPI 存储时,不需要对命令和 SPI 器件的 OTP 读写操作进行加解密。
-
设置以下参数进行 SPI 存储的加密数据传输。
- SPIE_ADDR:当前访问的数据地址
- SPIE_TWEAK:用于调整 Counter 值
- SPIE_CPOS, SPIE_CLEN:当前传输的密文数据位置
-
设置 SPIE_CTL[0] = 1 (KEY_START = 1) 值,开始计算分组密钥。
产生密钥 (SPIE_ISR[0])。
确保密钥已经产生。如密钥产生,则 SPI 控制器开始传输数据。
- 通过 SPIE_ISR 检查加解密是否完成,并查看读取的数据是否为空数据(全为 0xFF)。