KW45:基于 spsdk 的安全启动脚本
这是用于 KW45 安全启动的安全配置 SDK (spsdk) 脚本包,包括生成密钥、编程保险丝、签名图像、生成 sb3 文件、调试身份验证和推进生命周期。
https://spsdk.readthedocs.io/
主板:KW45B41Z-EVK、KW45B41Z-LOC、FRDM-MCXW71、MCX-W71-EVK
类别:无线连接、安全配置、工具、安全
外设:UART、蓝牙
工具链:MCUXpresso IDE
目录
1.软件
Python:3.9+
spsdk:2.6.0
J-Link 指挥官:8.10+
2.硬件
KW45B41Z-EVK/定制板
如果测试的是定制板:
J-Link
USB串行适配器
3. 设置
如果您使用的是 KW45B41Z-EVK,这很简单,只需将 EVK 的 USB 端口(J14)连接到计算机即可。
如果您使用自己的定制板,请将 KW45 UART1 连接到 USB-UART 适配器,对于某些脚本,需要 J-Link。
要进入 ISP 模式,KW45 的 PTA4 引脚(BOOT_CONFIG)在重置期间需要处于逻辑高电平。
如果使用KW45B41Z-EVK,复位时按下按钮SW4(PTA4),KW45将进入ISP模式。
安装 spsdk
python -m pip install --upgrade pip
pip install spsdk
spsdk –version
进入目录“script”,双击脚本运行。
4.结果
4.1 步骤 1
检查生命周期和密钥
enter ISP mode
0.read_version_and_lifecycle.cmd
默认生命周期应为 7(OEM_Open)。
EVK上的KW45的保险丝在生产时已经编程,并且保险丝是一次性编程,不允许再次编程。
KW45B41Z-EVK 上的 KW45 默认按键:
KW45出厂默认按键:
4.2 步骤 2
生成密钥并将 sb3kdk 和 RoTHTH 放入脚本“2.programkeysto_device.cmd”
1.generate_keys.cmd
如果使用 KW45B41Z-EVK,则无需此步骤,请将 evk 默认密钥从“.how to import keys to SPSDK or SPTkw45evk_keys”复制到“.workspacekeys”
4.3 步骤 3
将密钥编程到设备
警告!!!
脚本执行破坏性操作(对熔丝进行编程),请确保脚本已使用有效数据更新。请注意,熔丝是一次性编程。
2.program_keys_to_device.cmd
4.4 步骤 4
将生命周期提前至 OEM_Closed
3.advance LC to OEM_Closed.cmd
4.5 步骤 5
签署主要核心图像
将主核心镜像复制到根目录,然后在配置文件中更改inputImageFile。
4.create_signed_app_maincore.cmd
4.6 步骤 6
为主核和/或 NBU 生成 sb3 文件
5.create_sb3_app_maincore.cmd
OR generate sb3 file for NBU
OR 5.create_sb3_app_maincore_nbu.cmd
如果涉及NBU,请将NBU的签名镜像(*.xip)从“SDKmiddlewarewirelessble_controllerbin”复制到根目录下。
4.7 步骤 7
将主核和/或 NBU 的固件上传到设备
6.upload_sb3_to_device_maincore.cmd
OR 6.upload_sb3_to_device_maincore_nbu.cmd
OR 6.upload_sb3_to_device_nbu.cmd
4.8 步骤 8
调试身份验证
注意:需要 J-Link
7.generate_debug_auth_dc.cmd
8.debug_auth.cmd
如果成功,则可以使用 J-Link 指挥官来调试 KW45。
注意某些 IDE 可能会重置 KW45,KW45 将失去身份验证状态。
推荐的 IDE 是 Ozone。
4.9 步骤 9
将生命周期推进至 OEM_Return
注意:需要调试授权
9.create_signed_OEM_Return_Bin.cmd
10.advance LC to OEM_Return.cmd
5. 常见问题解答
- 无法读取保险丝 0x20,因为该保险丝不可读
- 如何使用ISK?
- 在生命周期OMEOpen和OEMReturn时,主核的固件可以通过写Flash直接写入,但NBU的固件任何时候只能通过SB3上传。
- 已知问题:由于 spsdk,目前不支持将生命周期推进到 OEM_Retrun
6. 支持
rm885660-KW45 安全参考手册(6.0).pdf
AN13838 KW45 和 K32W 的安全启动
AN13883 使用 SPSDK 通过 ISP 更新 KW45 无线电固件
AN13931 管理 KW45 和 K32W148 的生命周期
AN14109 KW45 和 K32W148 使用 SEC 工具进行安全启动
AN14158 KW45/K32W148 上的调试身份验证
AN14003 在量产过程中通过串行线调试对应用程序和无线电固件的 KW45 闪存进行编程
AN13859 KW45B41Z 和 K32W148 在系统编程实用程序
项目元数据
来源:恩智浦appcodehub
908
