Zynq-7000 SoC のブート ヘッダー - 2022.1 日本語

Vitis 統合ソフトウェア プラットフォームの資料: エンベデッド ソフトウェア開発 (UG1400)

Document ID
UG1400
Release Date
2022-04-26
Version
2022.1 日本語

Bootgen は、ブート イメージの先頭にブート ヘッダーを追加します。ブート ヘッダー テーブルは、FSBL などのプライマリ ブートローダーのブートに関連する情報を含む構造です。ブート イメージには、このような構造が 1 つだけあります。bootROM はこのテーブルを解析して、FSBL がフラッシュのどこに格納されていて、OCM のどこにロードする必要があるかを判断します。一部の暗号化および認証に関連するパラメーターもここに格納されます。その他のブート イメージ コンポーネントは次のとおりです。

ブート ヘッダーには、Zynq-7000 SoC のレジスタ初期化テーブル も含まれます。bootROM は、ブート ヘッダーを使用して、FSBL の位置と長さ、および FSBL に制御を渡す前にシステムを初期化するために必要なその他の情報を検索します。

次の表に、 Zynq®-7000 SoC ブート ヘッダーのアドレス オフセット、パラメーター、および説明を示します。

表 1. Zynq-7000 SoC ブート ヘッダー
アドレス オフセット パラメーター 説明
0x00 ~ 0x1F Arm® ベクター テーブル Bootgen によりダミー ベクター テーブルが挿入されます (Arm オペ コード 0xEAFFFFFE、初期化されていないベクターの検出を目的とした分岐-セルフ間の無限ループ)。
0x20 幅検出ワード QSPI フラッシュがシングル/デュアル スタック モードであるか、デュアル パラレル モードであるかを識別します (必須)。これは、リトル エンディアン フォーマットでは 0xAA995566 です。
0x24 ヘッダー署名 4 バイト X、N、L、X をバイト順で含みます。これは、リトル エンディアン フォーマットでは 0x584c4e58 です。
0x28 キー ソース デバイス内の暗号化キーの場所:
  • 0x3A5C3C5A: BBRAM に格納されている暗号化キー。
  • 0xA5C3C5A3: eFUSE に格納されている暗号化キー。
  • 0x00000000: 暗号化なし。
0x2C ヘッダー バージョン 0x01010000
0x30 ソース オフセット このイメージ ファイル内の FSBL (ブートローダー) の場所。
0x34 FSBL イメージの長さ 復号化後の FSBL の長さ。
0x38 FSBL ロード アドレス (RAM) デスティネーション RAM アドレス。このアドレスに FSBL をコピーします。
0x3C FSBL 実行アドレス (RAM) FSBL 実行のエントリ ベクター。
0x40 FSBL イメージ全体の長さ 暗号化後の FSBL の合計サイズ、認証証明 (ある場合) およびパディングを含みます。
0x44 QSPI コンフィギュレーション ワード 0x00000001 にハードコード化されます。
0x48 ブート ヘッダー チェックサム オフセット 0x200x44 のワードの合計。ワードはリトル エンディアンと見なされます。
0x4c ~ 0x97 ユーザー定義フィールド 76 バイト
0x98 イメージ ヘッダー テーブル オフセット イメージ ヘッダー テーブルを指すポインター
0x9C パーティション ヘッダー テーブル オフセット パーティション ヘッダー テーブルを指すポインター