我想用OTFAD加密镜像在FlexSPI NOR上运行。然后使用了SBL工程,且打开了Remap功能,我发现在SBL中如果image校验失败有一个update_key_context()的函数,是读取image 0x100偏移处的Key然后写入SBL的0x40处,0x40应该是第二个OTFAD Key blob。我有以下几个疑问,希望能您有空能为我解答:
1、OTFAD中的8字节的硬件计数器是做什么的,可以随便设置吗
1、SBL中打开了Remap功能,这里的update_key_context意思是说每个固件都可以设置不同的IEK吗?
3、假如我要更新固件,然后生成了不带header未加密的原始固件。
(1)如何设置新固件的IEK,然后得到OTFAD Key blob;MCUOTASBLSFWUG.pdf中好像没有提供写入OTFAD Key blob到镜像0x100偏移处的指令例子,有相关命令吗,还是要自行添加
(2)原始image如何通过IEK进行加密,MCUBootUtility中在gen/bootable_image中的ivt_evkmimxrt1170_xx_otfad_encrypted.bin好像只是添加了OTFAD CSF字段,0x2000处的镜像没有加密
已解决! 转到解答。
Hi @jake111 ,
楼主你好!
关于加密的情况,建议你看看相关的应用笔记:
AN13250:
https://www.nxp.com/webapp/Download?colCode=AN13250&location=null
RT1170SRM:
AN13198:
https://www.nxp.com/docs/en/application-note/AN13198.pdf
1、OTFAD中的8字节的硬件计数器是做什么的,可以随便设置吗
=>Hardware support for 4 independent decryption segments (called memory “contexts”).
不建议你自行随便设置。
2. SBL中打开了Remap功能,这里的update_key_context意思是说每个固件都可以设置不同的IEK吗?
=》是的
3、假如我要更新固件,然后生成了不带header未加密的原始固件。
=》其实如果你不想用加密,可以关掉加密。
(1)如何设置新固件的IEK,然后得到OTFAD Key blob;MCUOTASBLSFWUG.pdf中好像没有提供写入OTFAD Key blob到镜像0x100偏移处的指令例子,有相关命令吗,还是要自行添加
(2)原始image如何通过IEK进行加密,MCUBootUtility中在gen/bootable_image中的ivt_evkmimxrt1170_xx_otfad_encrypted.bin好像只是添加了OTFAD CSF字段,0x2000处的镜像没有加密
=》你有没有直接跑自带的SBL和SFW,可以再那个基础上自己使用自己的APP。
如果更深入的加密问题,建议你使用公司邮箱建贴,这样我们会分配更多工作时间,并且寻找相关专家帮你解答,谢谢!
Best Regards,
Kerry