一,背景介紹
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 燒錄實例講解何其樂便介紹完畢了,掌聲在哪里~~~