一,背景介绍
BEE 加密和 HAB 加密不同, HAB 加密是由 BootROM 的 HAB 将加密后的 image 解密后放到内部 RAM 再执行,所以不能支持 XIP,只能 Non-XIP。 BEE 加密可以支持 XIP动态解密, 它和 HAB 执行解密操作不同, 对于 XIP 是边解密边执行,如果是 NonXIP image 和 HAB 类似。
MCUBootUtility 工具可以实现 HAB 与 BEE 加密的烧录, 不过目前 release 的版本并不能够直接支持加密,还需要其他一些软件的配置, 现在为了方便需要 BEE 加密的同事使用,这里分享关于 BEE 单引擎使用用户自定义Key加密, MCUBootUtility 软件烧录实例讲解。
本文测试开发板为 MIMXRT1060-EVK。
二, RT1060 BEE 加密操作步骤
2.1 添加 image_enc2 文件
这一步对于 BEE 加密很重要,之前有网友因为没有这个文件,而导致没有 BEE加密成功。
下载 image_enc2.zip 链接:https://www.cnblogs.com/henjay724/p/10189602.htm
解压 image_enc2.zip, 拷贝到:NXP-MCUBootUtility-2.2.0\tools\image_enc2
2.2 测试步骤与结果
2.2.1 DEV unsigned image boot
为了检查板子是否工作, 以及检查原始的 fuse map,先做一次无加密下载检查功能。 板子进入 serial download 模式(SW7 1-OFF,2-OFF,3-OFF,4-ON) ,使用一根 USB 线连接 J9,同时短接J1 3-4。
测 试 下 载 app : SDK_2.6.1_EVK-MIMXRT1060\boards\evkmimxrt1060\driver_examples\gpio\led_output\mdk\flexspi_nor_debug\igpio_led_output.hex
从下载之后的 Image 和原始 image 一样。
下载后,断开连接,开关调节为 boot from internal 模式(SW7 1-OFF,2-OFF,3-ON,4-OFF) , 重新上电,查看 LED 是否闪烁,如果闪烁说明硬件没有问题,可以继续 BEE 操作。
2.2.2 BEE Encrypted Image Boot
板子进入 serial download 模式(SW7 1-OFF,2-OFF,3-OFF,4-ON) ,使用一根 USB 线连接 J9,同时短接J1 3-4。做 BEE 配置如下:
从下面可以看出 image 区域已经都是加密数据。
一切操作无误,开关调节为 boot from internal 模式(SW7 1-OFF,2-OFF,3-ON,4-OFF),并且将SW5[1]设为1'b1(使能Encrypted XIP),其余保持全0,重新上电便可以看到BEE encrypted image正常执行了。
注:BOOT_CFG[0]使能RT1020 Encrypted XIP;BOOT_CFG[1]使能RT1060 Encrypted XIP。
注:源代码包里的NXP-MCUBootUtility.exe是在Windows 10 x64环境下打包的,也仅在该环境下测试过
至此,RT1060 BEE 加密(用户自定义Key) MCUBootUtility 烧录实例讲解何其乐便介绍完毕了,掌声在哪里~~~