【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次,發文人進小黑屋喔~

評論