LPC55S6xx 1Bバージョンで作業中にSBファイルの読み込み エラーInjectコマンド「receive-sb-file」 に遭遇したお客様はすでに何人かいます 。LPC55S6xx 1Bバージョンと0Aバージョンでは、セキュアブートに大幅な変更があります。この問題を解決するには、まず理解する必要があります。
1 SB2.1 vs. SB2.0
SB2コンテナについては、elftosbユーザーズガイドで説明されています。SBファイル設定ファイルには、SB2ファイルがデバイスにロードされた後に処理される設定コマンドが含まれています。イメージの場所は "sources" .bd に記載されています。file セクション。テキストファイル内のSBキーは、elftosbコマンドラインツールでの暗号化に使用されます。
LPC55S6xx シリコンの 0A バージョンは、SB イメージ形式のバージョン 2.0 をサポートします。
LPC55S6xx シリコンの 1B バージョンは、SB イメージ形式のバージョン 2.1 をサポートします。
バージョン 2.0 とバージョン 2.1 の主な違いは、デジタル署名の使用方法です。
SB 2.0は暗号化され 、SB2.1 は 暗号化 + 署名されます。
2.SBファイルの準備と使用方法
使用例(暗号化SB2):
ELFTOSB -F LPC55xx -K "sbkek.txt"-c「commandFile.bd」-o "output.sb2"「input.bin」
ここで、
-f = ファミリ LPC55xx
-k = KEKファイル(SBKEK)へのパス
-c = 処理するコマンドファイルへのパス:
オプション {
フラグ= 0x4;0x8暗号化+署名付き、0x4暗号化
ビルド番号 = 0x1;
productVersion = "1.00.00";
componentVersion = "1.00.00";
}
ソース {
inputFile = extern(0);
}
セクション (0) {
erase 0x0..0x40000;
inputFile > 0x0を読み込みます。
}
-o = 出力ファイルへのパス
files... = ファイル(通常は画像ファイル)へのパス、コマンドファイルで定義されたプレースホルダーを置き換える場合、パスはコマンドファイルにハードコードされ、入力として挿入されません
使用例(暗号化+署名付きSB):
1つのルートキー
elftosb.exe -f LPC55xx -K "sbkek.txt"-c「commandFile.bd」-o "output.sb2"-s 「selfsign_privatekey_rsa2048.pem」-S
"selfsign_v3.der.crt"-R "selfsign_v3.der.crt"-h "RKTH.bin"「input.bin」
4つのルートキー
elftosb.exe -f LPC55xx -K "sbkek.txt"-c「commandFile.bd」-o "output.sb2"-s private_key_1_2048.pem -S certificate_1_2048.der.crt -R certificate_1_2048.der.crt -R certificate_2_2048.der.crt -R certificate_3_2048.der.crt -R certificate_4_2048.der.crt -h "RHKT.bin"「input.bin」
ここで、
-f = ファミリ LPC55xx
-k = KEKファイル(SBKEK)へのパス
c = 処理するコマンドファイルへのパス
オプション {
フラグ= 0x8;0x8暗号化+署名付き、0x4暗号化
ビルド番号 = 0x1;
productVersion = "1.00.00";
componentVersion = "1.00.00";
}
ソース {
inputFile = extern(0);
}
セクション (0) {
erase 0x0..0x40000;
inputFile > 0x0を読み込みます。
}
-o = 出力ファイルへのパス
-s = 署名に使用した証明書の秘密鍵へのパス
-S = 証明書チェーン内の証明書へのパス、チェーン内の各証明書は、チェーンの作成方法順 (ルート証明書が最初に) に新しい -S スイッチで指定する必要があります。
-R = ルート証明書へのパス、1-4 のルート証明書を指定可能、各ルート証明書は新しい -R スイッチで指定する必要があります。ルート証明書の 1 つは -S スイッチで指定した最初の証明書である必要があります
-h = elftosb によって生成された出力バイナリファイルのパスと名前で、デバイスレジスタにアップロードする必要があるすべてのルート証明書 (RKTH) のハッシュが含まれています。
files... = ファイル(通常は画像ファイル)へのパス、コマンドファイルで定義されたプレースホルダーを置き換える場合、パスはコマンドファイルにハードコードされ、入力として挿入されません
更新されたバイナリイメージで作成されたSB2.0ファイルは、ISPコマンドハンドラとコマンド「receive-sb-file」を使用してデバイスにロードできます
blhost -p COMxx receive-sb-file <保護されたバイナリ (.sb2) へのパス>
更新されたバイナリイメージで作成されたSB2.1ファイルは、ISPコマンドハンドラのコマンド「receive-sb-file」を使用してデバイスにロードできますが、SB2.1ファイルをデバイスに送信する前に、CMPAにすでにRKTHが存在する必要があり(AN12283章5.5CMPA準備を参照)、CFPAページアドレス0x9DE18のROTKH_REVOKEフィールドでRoTキーが有効になっている必要があることに注意してください(第AN12283章5.4CFPA準備を参照)。
blhost -p COMxx receive-sb-file <保護されたバイナリ (.sb2) へのパス>
SB2 ファイルが正常に読み込まれると、SB 設定ファイル (.bd ファイル) で設定されたとおりに実行されます。上の図は、SB設定ファイルの例を示しています。ファイルを実行すると、0x0から0x40000までの内部フラッシュアドレスが消去されます。フラッシュ消去操作後、sources パラメータに記載されているイメージがアドレス 0x0 にロードされます。
これらの操作後にデバイスをリセットします。内部フラッシュにロードされた更新された画像が実行を開始します。
この記事の英語版と中国語版はどちらも添付されています。