こんにちは、
iMX8 Miniをベースにしたカスタムハードウェアプラットフォームでセキュアブートを有効にしようとしています。
入手可能なドキュメントに従って、正しい署名を持つブートイメージを作成することができました。hab_statusコマンドでhabイベントが表示されず、イメージ検証ツールでもエラーが表示されなかったことから、その点は確信しています。
デバイスを閉じるために、SRK_HASHヒューズとSEC_CONFIGヒューズをプログラムしましたが、この手順の後、ボードが起動しなくなり、シリアルコンソールにも何も表示されなくなりました。
SRK_HASHは正しくプログラムされていると確信していますが、SEC_CONFIGについては疑問があります。セキュアブートを有効にするには、以下のコマンドを使用する必要があったはずです。
ヒューズプログラム 1 3 0x02000000
これはビット25を設定します。
しかし、変更を行う前にSEC_CONFIGの内容を読み取ったところ、以下の値が表示されていました。
ヒューズ読み取り1 3
0x8000000
そこで、ビット27が1に設定されているのを見て、以下のコマンドを使うという素晴らしいアイデアを思いつきました。
ヒューズプログラム 1 3 0x0A000000
ビット27を保持し、ビット25を設定する。
質問:
上記のコマンドによってSEC_CONFIGが無効な値に設定され、ROMブートローダーがSPLを起動すらしないという事態は起こり得るでしょうか?
もしそうであれば、基板を復元する方法はありますか?
よろしくお願いいたします。
予約ビットの書き込み後にチップが故障した場合、ヒューズ操作は一度限りの不可逆的なプロセスであるため、チップを復元することは不可能です。
こんにちは、
ご回答ありがとうございます。これは現在の挙動と一致しています。
最後に一つだけ質問があります。
ロックビットをプログラムしていないのですが、ハードウェアデバッガを使えば基板を復元できると思いますか?
よろしくお願いいたします。
ビット27は予約ビットであり、お客様がプログラムすることはできません。このコマンド(fuse prog 1 3 0x0A000000)がsec_configを無効にするかどうかよりも、チップ全体の動作が予測不能になる可能性の方が高い。
こんにちは、
残念ながら、ヒューズをクリアしても変更することはできません。eFuseは一度だけプログラム可能です。一度吹き飛ばされたsec_config、それを「アンブロー」することはできません