Realtek Rtl8197G Secure boot 設定說明

Realtek Rtl8197G Secure boot 操作說明

若要開發具有Secure boot 的案子,首先須向Realtek 申請secure boot tool,開發環境建議使用ubuntu 18~22 的版本,CentOS 7 執行secure_boot_tool的腳本會無法產出AES_file.txt 導致 terminal 無法打印dev_pri_key。

secure_boot_tool tar 開後資料夾結構如下圖1:
 
先將原本開發的SDK 底下boot code source 的boot.img copy 到tool 下方btcode 的資料夾。
 
 
                                                            圖1 secure_boot_tool tar 開後資料夾結構

secure_boot_tool 是主要工作目錄,資料夾結構如下。
 
 
                                                圖2 secure_boot_tool 是主要工作目錄,資料夾結構。
 
        執行gen_img.sh腳本後生成的金鑰會放在keys 的資料夾下,生成加密image 會放在image 的資料夾下。

這裡須注意若keys 的資料夾下方已有金鑰,執行gen_img.sh腳本並不會產生新的金鑰而是直接利用原本的金鑰對image 加密。

反之若keys 的資料夾下方無資料,執行gen_img.sh腳本會生成新的金鑰,並用新的金鑰對image 加密。

keys 的金鑰很重要,放錯金鑰所產出的加密boot code 會因key 對不上導致無法開機。
 
1. Encrypt image
 
對image 加密會用到以下工具。
  • Encrypt image --> curve 25519
  • Sign image --> ED 25519
  • Key pairs -- Generate gy curve_25519_KeyGen  

透過gen_img.sh腳本後生成的金鑰,會用到以下3 對keys  :

a. User (for curve 25519 )

usr_pri_key.txt (私鑰 private key)
usr_pub_key.txt (公鑰 public key)
 
b.  Device (for curve 25519 )

dev_pri_key.txt (透過腳本產出,如下圖3。這把key 要燒到efuse)

 

        圖3 打印在terminal 上的dev_pri_key 包含 check sum 4 byte

dev_pub_key.txt
 
c. Sign (for ED 25519 )

ed_pri_key.txt
ed_pub_key (透過腳本產出,如下圖4。這把key 要燒到efuse)

 

        圖4 打印在terminal 上的ed_pub_key 包含 check sum 4 byte

透過gen_img.sh 生成必要的keys,生成後可在keys 的forder 下找到如下圖5,務必保管好。

path : bootcode_rtl8197f/secure_boot_tool/keys/

 

          圖5 透過腳本產出的金鑰

2. Burn Keys into Efuse
 
RTL8197G 板子上電開機,並在console 敲"u" 進入boot mode,
敲入 command "dbgmsg 4" 如下圖6。
 
 

           圖6  command "dbgmsg 4" 

在<RealTek> 下敲入腳本產出的"dev_pri_key.txt", "ed_pub_key.txt", 這兩把key 在執行gen_img.sh腳本後會打印在terminal 上。

若成功如下圖7。

 

                                                                         圖7 Efuse write success 

失敗如下圖8,請在敲一次key 直到成功為止。

 

                                                                         圖8 Efuse write faill 

最後敲入"bs" 來enable secure boot,請參考下圖9,也是要看到succ 才可以,否則須重下"bs"。

 

                                                              圖9 enable secure boot success
 
enable secure boot 後,還有以下保護設定,視需求來啟動。

bj : disable jtag

bu : disable uart (設定後 RTL8197G console 就無法打印。)
 
enable secure boot 後,進入RTL8197G boot mode 會顯示<password>,不再是先前的<RealTek>。
 
以上就是 Realtek RTL8197G Secure boot 的操作,希望對第一次操作的使用者有幫助。

Reference:

rtl8197G_Secure_Boot_Application_Note_SPI_NOR.pdf

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

參考來源

評論