软件星级:4分
NXP MCU Boot Utility免费版是一款非常实用的工具,专门为MCU芯片设计的配套工具,用于安全加密启动。它为用户提供了多种模式,用于不同的情况下加密。只需要连接上设备就可以了。
NXP-MCUBootUtility是一个专为NXP MCU安全加密启动而设计的工具,其特性与NXP MCU里BootROM功能相对应,目前主要支持i.MXRT系列MCU芯片,与NXP官方的标准安全加密配套工具集(OpenSSL, CST, sdphost, blhost, elftosb, BD, MfgTool2)相比,NXP-MCUBootUtility是一个真正的一站式工具,一个工具包含NXP官方所有加密配套工具的功能,并且是全图形用户界面操作。借助于NXP-MCUBootUtility,你可以轻松上手NXP MCU安全加密启动。
1、支持i.MXRT全系列MCU,包含i.MXRT1021、i.MXRT1051/1052、i.MXRT1061/1062、i.MXRT1064 SIP
2、支持UART和USB-HID两种串行下载方式(COM端口/USB设备自动识别)
3、支持五种常用格式(elf/axf/srec/hex/bin)裸源image文件输入并检查其链接地址的合法性
4、支持将裸源image文件自动转换成i.MXRT能启动的Bootable image
5、支持下载Bootable image进主动启动设备 - FlexSPI NOR、SEMC NAND接口Flash
6、支持下载Bootable image进备份启动设备 - LPSPI接口NOR/EEPROM Flash
7、支持DCD配置功能,可用于加载image进SDRAM执行
8、支持基于HAB实现的安全加密启动(单签名,签名和加密),证书自动备份
9、支持基于BEE实现的安全加密启动(唯一SNVS key,用户自定义key)
10、支持MCU芯片内部eFuse的回读和烧写操作(即专用eFuse烧写器)
11、支持外部启动设备的任意读写擦操作(即通用Flash编程器)
1、设置目标设备
在使用NXP-MCUBootUtility时首先需要配置目标设备,目标设备包括MCU Device和Boot Device。以NXP官方开发板EVK-MIMXRT1060为例,该开发板主芯片为i.MXRT1062DVL6A,所以【MCU Device】应设为i.MXRT106x。且以最常用的FlexSPI NOR启动为例,【Boot Device】设为FLEXSPI NOR,开发板上对应的外部存储芯片为IS25WP064AJBLE,其是一颗常用的四线QSPI NOR Flash,我们需要在软件里进一步配置该Boot Device,单击【Boot Device Configuration】按钮可弹出如下新的配置页面:
在弹出的名为FlexSPI NOR Device Configuration页面里可以看到很多描述Multi-IO SPI NOR Flash特性的选项,比如Device Type、Query Pads等,这些选项都需要被正确地设置,以与开发板上的外部存储芯片相匹配。
除此以外,页面上还有一个名为【Use Typical Device Model】的选项,NXP-MCUBootUtility软件预先定义了一些常用的Multi-IO SPI NOR Flash型号模型,如果开发板上的外部存储芯片恰好在软件预定义的型号列表里,那么你可以直接在【Use Typical Device Model】选择对应型号,而不必在Nor Option里逐一配置。
EVK-MIMXRT1060开发板上的IS25WP064AJBLE芯片属于ISSI - IS25LP064A大类,因此我们只需要在【Use Typical Device Model】选择ISSI - IS25LP064A并点击【Ok】即完成了目标设备的设置。
2、连接目标设备
设置好目标设备之后,下一步便是连接目标设备,以USB-HID接口连接为例,给EVK-MIMXRT1060板子供电,并用USB Cable将PC与J9口连接起来,如果一切正常,应该可以在设备管理器找到vid,pid为0x1fc9,0x0135的HID-compliant vendor-defined device设备被枚举。如果没有发现该HID设备,请仔细检查板子SW7拨码开关是否将Boot Mode设为2'b01即Serial Downloader模式。
确认HID设备存在之后,在【Port Setup】选中USB-HID,然后直接点击【Connect to ROM】按钮,此时软件便会自动完成目标设备连接全过程(使用sdphost连接ROM,获取一些MCU内部寄存器信息,使用sdphost加载Flashloader并跳转过去,使用blhost连接Flashloader,获取一些eFuse信息,使用blhost去配置boot device并获取boot device meomry信息),这个过程需要大概5s的时间,如果目标设备连接正常,你可以看到指示灯变蓝,并且【Connect to ROM】按钮标签变为【Reset Device】。如果目标设备连接失败,指示灯会变红,并且【Connect to ROM】按钮标签变为【Reconnect】。
目标设备连接成功后可以在目标设备状态信息栏看到一些有用的设备状态信息,比如MCU芯片的UUID值、HAB状态、与启动相关的重要Fuse值,Boot Device的Page/Sector/Block大小等。
3、安全加密启动
确保菜单栏Tools/Generate .sb file选项勾选的是"No",目标设备连接成功后便可以开始最核心的安全加密启动操作
4、生成.sb格式文件
便可以开始最核心的安全加密启动操作,在做安全加密启动之前先来介绍安全加密启动主界面分布:
在菜单栏Tools/Generate .sb file选项里勾选"Yes",此时点击【All-In-One Action】按钮便会在\NXP-MCUBootUtility\gen\sb_image\目录下生成.sb格式的文件,该文件可用于MfgTool或者RT-Flash工具中。注意此时【All-In-One Action】按钮并不会在MCU上真正地执行3.3节里的各种操作,而只是将所有命令操作记录在\NXP-MCUBootUtility\gen\bd_file\imx_application_sb_gen.bd里,最终用于生成.sb格式文件。
NXP-MCUBootUtility是一个是纯绿色免安装的工具,下载了源代码包之后,直接双击\NXP-MCUBootUtility\bin\NXP-MCUBootUtility.exe即可使用。使用NXP-MCUBootUtility没有任何软件依赖,不需要额外安装任何软件。
在NXP-MCUBootUtility.exe图形界面显示之前,会首先弹出一个控制台窗口,该控制台会伴随着NXP-MCUBootUtility.exe图形界面一起工作,很多图形界面的操作都会在控制台窗口看到对应的底层命令执行,保留控制台主要是为了便于定位NXP-MCUBootUtility.exe的问题,目前NXP-MCUBootUtility尚处于早期阶段,等后期软件成熟会考虑移除控制台。