上位机操作流程

上位机界面

上位机通过UART串口连接设备,可以将编译应用程序生成的固件配置密钥、验签和Secure Boot等配置后进行一键打包并生成eFuse Program配置文件,同时支持自动生成打包配置文件,在DFU界面将打包后的可执行二进制文件和eFuse Program配置文件烧写到设备。上位机还支持自动打包与下载、保存默认配置参数、恢复打包参数、配置Secure Boot、配置Flash打包头等功能。

upper_main

界面各区域功能介绍:

  1. 标记1:菜单栏,可选择生成打包配置文件、Download配置文件以及查看上位机版本信息等功能。

  2. 标记2:连接 Uart 串口,配置串口的各个参数。

  3. 标记3:DFU 以及 eFuse Program。

  4. 标记4:模式选择、固件加密模式选择、签名算法选择配置区域。

  5. 标记5:加载固件、设置打包固件存放路径以及配置固件版本、安全版本、启动地址。

  6. 标记6:frtdec xip 模式参数配置。

  7. 标记7:加载或随机生成对称加密Key、IV、DEK以及配置密钥存放。

  8. 标记8:加载非对称公钥或私钥或直接生成随机密钥对。

  9. 标记9:输出上位机操作日志、DFU交互信息等。

固件打包流程

打包固件并生成eFuse Program配置文件或生成自动打包及下载的配置文件

其流程包括:

  1. 编译应用程序获取原始可执行二进制文件(固件/镜像);

  2. 加载固件及设置打包固件存放路径;

  3. 加载或随机生成对称加密key、iv、DEK,以及配置密钥key存放的eFuse group;

  4. 勾选和设置签名算法,并加载或随机生成签名所需的密钥对;

  5. 设置固件加密模式:可选模式包括 AES_128_CBC、AES_256_CBC、SM4_CBC,以及 FRTDEC_XIP 的 AES_128_CTR 和 SM4_CTR;

  6. 配置固件版本、安全版本、固件启动运行地址(支持64位);

  7. 打包固件下载存储介质选择;

  8. 若为frtdec xip模式,还需勾选该模式,并配置frtdec头信息;

  9. 勾选eFuse Write File Configuration页面的 Secure Boot 使能安全启动,单击“package”按钮一键打包,生成打包后的固件及eFuse program配置文件; 通过串口DFU的eFuse write模式,加载该eFuse program配置文件可完成对称密钥及不对称公钥的eFuse写入,并使能安全启动。

  10. 生成自动打包、下载的配置文件,单击菜单栏File->Generate Package Configuration File并选择文件存放路径。

    注意:

    1. 加载或随机生成对称加密DEK前需提前选好加密模式,否则可能模式与DEK长度不匹配;

    2. 以上操作流程除流程步骤(1)和(9或10)分别为第一步后最后一步外,其他无先后顺序。

编译程序生成可执行二进制文件

非frtdec xip模式,选择ilm模式编译应用程序并生成可执行二进制文件,frtdec xip模式则用flashxip模式编译生成可执行二进制文件。

加载固件文件

加载固件等待打包、设置打包固件存放路径

  1. 标记1的“Load”,单击该按键加载固件;

  2. 标记2的“Assign”,单击该按键选择打包后固件的存放路径,可设置文件名;

  3. 标记3为操作的提示信息

    load_firmware

生成eFuse配置文件

加载或随机生成对称加密key、iv、DEK,以及配置密钥存放的eFuse group

  1. 标记1的“Load”和“Generate”按键,单击可加载或生成对称加密key;

  2. 标记2的“Load”和“Generate”按键,单击可加载或生成对称加密iv;

  3. 标记3的“Load”和“Generate”按键,单击可加载或生成对称加密DEK;

  4. 标记4的下拉框可选择eFuse group,当标记5处下拉选择“SM”(表示系统厂商host端)时,可选择group3~5,选择“CM”(表示芯片厂商hsm端)时,可选择group0

    存放key、iv和DEK的文本是以hex字符串格式来存放的:

    hex_string

    同时也可以直接将hex字符串格式的key、iv和DEK直接填入到对应的文本框。

    load_symm_key

签名算法和密钥对配置

勾选和设置签名算法,并加载或随机生成签名所需的密钥对

  1. 标记1勾选“FirmwareSign”(勾选后,安全启动时会进行验签),以及下拉选择签名验签算法,包括 ED25519、SM2、RSA_2048bits 和 RSA_4096bits;

  2. 标记2单击对应的“Load”按键加载公钥和私钥,对于 SM2 算法,需先加载公钥,再加载私钥,ED25519 算法无先后顺序,公钥和私钥文件格式可以是 txt,也可以是 pem 格式或 der 格式。而 RSA_2048bits 和 RSA_4096bits 选择 pem 格式或 der 模式(需选择*.pem 或*.der)只需加载私钥,而 txt 格式需先加载公钥(模数n)、再加载私钥(私钥指数d);

  3. 标记3的“Generate”按键,单击可随机生成公私钥对,而标记4可下拉选择生成的格式,txt、pem、der 格式。

    签名算法所需公私钥加载,2 和 3 选其一即可。

    asymm_key_pem

    load_asymm_key

配置固件加密模式

不勾选“Frtdec XIP Mode”,支持的加密模式包括:AES_128_CBC、AES_256_CBC和SM4_CBC;勾选“Frtdec XIP Mode”,支持的加密模式包括:AES_128_CTR和SM4_CTR。

cryp_mode

配置固件版本、安全版本和启动地址

Firmware Version设置固件版本;Secure Version设置安全版本,用于防回滚;Enter Address设置启动地址(支持64位),需与编译模式链接脚本的起始地址保持一致。

version_addr

配置打包固件下载存储介质

可忽略此处配置,已默认配置为Flashxip,无需选择存储介质

package_downto

frtdec xip模式参数配置

  1. 标记1勾选“Frtdec XIP Mode”,必须勾选,Download to 默认为Flashxip(此处无需选择);

  2. 标记2下拉选择Frtdec支持的在线解密模式,支持SM4_CTR和AES_128_CTR;

  3. 标记3下拉选择Ftrdec在线解密用到的region(0~3);

  4. 标记4单击“Load”加载或”Generate”生成Frtdec密钥;

  5. 标记5配置Frtdec 参数,包括Nonce0、Nonce1、Start Address和End Address;

  6. 标记6下拉选择Region(0~3),并单击“Configure”完成所选Region的参数配置(标记4加载的密钥以及标记5配置的参数)。

    frtdec_config

配置Secure Boot并打包

勾选Secure Boot使能安全启动并一键打包

  1. Second Image勾选使能备份镜像,Address Offset 设置备份镜像的编译地址(此处配置的值是偏移地址)

  2. Lock Bootloader 勾选用于锁定 bootloader

  3. Life Cycle 批量生产模式勾选

  4. Plaint Check 勾选后,安全启动会校验解密的固件明文

    secure_bootenabled

单击”Package”按钮完成打包,除了生成打包好的镜像文件,还会生成一份eFuse program 配置文件,用于DFU eFuse program 烧写对称密钥、不对称公钥和使能安全启动等启动配置(对称密钥位置由eFuse group 指定,不对称公钥默认使用 public key0)。单击“Clear”可以清除配置数据。

one_key_package

自动生成打包配置文件

生成自动打包及下载的配置文件

cfg_gen

以上1-7步配置好后,单击菜单栏File->Generate Package Configuration File 生成配置文件。

cfg_gen_info0 cfg_gen_info1 cfg_gen_info2