【Semidrive E3】USB 下载 Pac 包文件介绍

一、简介

芯驰 E3 系列 USB 下载程序时,需要将编译生的 bin 文件进行签名和打包,当用户下载时,是将编译后的产物,签名变成 BPT+bin 的一个 image 文件,放置在 PAC 包文件当中的 BOOT 位置,然后通过 USB 下载到芯片所搭载的外部 Flash 里面,如下图所示。

这里主要是介绍下图打包步骤 2 所形成的 Pac 文件的组成。

二、 Pac 包包含哪些文件

1、不同 Flash pac 文件所包含的文件一样,地址不同

2、pac 包所包含的文件

使用 SDFactory 打开 Pac 包可以看到文件的组成如下:


(1)FDA bin 文件

FDA.img 是 dloader 程序,该程序仅在下载时运行于 SF core,不占用系统的存储空间。在下载模式下(比如拨码至 USB 启动),ROM 启动后,工具先下载 dloader 程序至 RAM 中,ROM 接收完 dloader 程序并校验通过后在 RAM 中运行该程序,

dloader 会初始化通讯接口与存储设备,然后与上位机进行通讯,根据指令将各个 Boot Package、SFS、RFD 文件写入到存储设备中。

① 小结:

FDA bin 就是一段运行在 RAM 上的程序,初始化各个接口,把用户程序等,通过 USB 从上位机搬运到
E3 芯片外部 Flash .

② FDA bin 文件来源:

该程序位于 SDK 包中:ssdk\boards\e3_gateway\app_demo\dloader

③ FDA bin 文件使用:

编译出来将其放置替换到以下的位置即可,然后通过一键打包即可调用到形成的 Pac 包当中:

直接使用 sf.bin 替换 e3_gateway_norflash.bin (切记命名要更改为:e3_gateway_norflash.bin)

替换完成即可结束,直接敲命令行进行打包即可(打包介绍看这里)。替换的位置如下图所示:

如果 Dloder 工程有改动,当然也可以直接使用 SDFactory 工具替换原先的 FDA bin 。


(2)SFS 文件

sfs.img 仅存在于 NOR/Hyper Flash 的 pac 包中,用于存储 Flash 信息,供 ROM 启动时读取;

① SFS 文件来源:

这里需要更改打包时所用的 sfs 如下图,例如 E3430 使用 GD Flash ,我们打开编辑 pac_config_sf_norflash.json 文件(该文件路径:\ssdk\devices\E3430\pacconfig),将语句 mt35_ospi_fast_read.json 替换为 is25-1-1-4.json

SSDK在 tools\sdtools\sfs\ 路径下提供了几种SFS固件以供选择


② SFS 文件使用:

按照以上所介绍的,一键打包即可生成 Pac 包里面的 SFS 组成的文件。

(3)RFD 文件

rfd.img 仅存在于 NOR/Hyper Flashpac 包中,用于Flash加密启动;

① RFD 文件来源:

主要是通过命令行生成,这里直接默认使用即可,如下面简介的命令和生成的命令行截图:
之后会写一篇具体关于加密的介绍文档;

命令:
atb_signer xspi_wrap --rfd pvk0=AAAAAAAAAAAAAAAA5555555555555555 iv=555AAA start=0x69000 end=0x268000 --rfd pvk1=AAAAAAAAAAAAAAAA5555555555555555 iv=555AAA start=0x462000 end=0x661000 of=./new.rfd
 
atb_signer xspi_wrap --rfd pvk0=112233445566778899aabbccddeeff00 iv=abcdef start=0x69000 end=0x268000 --rfd pvk1=112233445566778899aabbccddeeff00 iv=abcdef start=0x462000 end=0x661000 of=./old.rfd

② RFD 文件使用:

可以直接使用 SDFactory 工具替换原先的 FDA bin 。


(4)Boot Package

Boot Package 是用户的镜像文件 + BPT 构成,BPT 包含公钥,签名,BPT 版本号,用户程序版本号, BPT 的生成使用签名工具签名,具体操作可以参考【Semidriver E3】BPT & 安全启动 & Secure Dubug

① Boot Package 文件来源:

可以参考以上所介绍的一键打包生成,然后使用 SDFactory 工具 分离得到,如下图:

另一个方法就是使用签名工具,对用户的 Bin 进行签名得到,单独对 Bin 签名,后续也会写一遍博文进行介绍,目前比较方面的是按照以上的方法得到 Boot Package。

② Boot Package 文件使用:

可以直接使用 SDFactory 工具替换原先的 Boot。

三、参考

四、后续博文

(1)【Semidrive E3】efuse 数据生成
(2)【Semidrive E3】image 加密介绍
等等

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论