Bootgen インターフェイスの使用

Bootgen には GUI とコマンド ラインの 2 つのオプションがあります。GUI オプションは、 Vitis でウィザードとして利用できます。GUI の機能は、ブート イメージを作成する際の最も標準的な機能に限定されています。一方、Bootgen コマン ドラインは、システムに対する複雑なブート イメージの作成を可能にする完全なコマンド セットです。

Bootgen GUI のオプション

Create Boot Image ウィザードでは、ブート イメージ生成に使用できる Bootgen オプションに制限があります。

GUI を使用してブート イメージを作成するには、次の手順に従います。

  1. Project Navigator または C/C++ Projects ビューでアプリケーション プロジェクトを選択し、Create Boot Image を右クリックします。または、Xilinx > Create Boot Image をクリックします。

    [Create Boot Image] ダイアログ ボックスが開き、選択した C プロジェクトのコンテキストからあらかじめ選択されているデフォルト値が取り込まれて表示されます。

    次の点に注意してください。

    • アプリケーションに対して [Create Boot Image] を初めて実行する場合、FSBL ELF ファイルへのパス、選択したハードウェアのビットストリーム (ハードウェア プロジェクトにある場合)、および選択したアプリケーションの ELF ファイルがダイアログ ボックスにあらかじめ入力されます。
    • 以前にアプリケーションのブート イメージが実行済で、BIF ファイルが存在する場合、ダイアログ ボックスには /bif フォルダーの値があらかじめ入力されます。
    • Zynq®-7000 SoC または Zynq® UltraScale+™ MPSoC アーキテクチャ用のブート イメージの作成が可能になりました。
      重要: ブート イメージ用に入力するデータは、オフセットが 0x4c の最大 76 バイト (Zynq-7000 SoC の場合)、およびオフセットが 0x70 の最大 40 バイト (Zynq UltraScale+ MPSoC の場合) である必要があります。これは Zynq アーキテクチャに基づく厳格な制限です。
  2. [Create Boot Image] ダイアログ ボックスに次の情報を入力します。
    1. Architecture ドロップダウンから、必要なアーキテクチャを選択します。
    2. Create a BIF file または Import an existing BIF file のいずれかをオンにします。
    3. [Basic] タブの Output BIF file path で、出力 BIF ファイルのパスを指定します。
    4. 該当する場合は、UDF data を指定します。このオプションの詳細は、udf_data を参照してください。
    5. Output path で出力パスを指定します。
  3. [Boot image partitions] で、Add をクリックしてその他のパーティション イメージを追加します。
  4. 必要に応じて、ブート イメージ内のパーティションのオフセット値、アラインメント値、および割り当て値を作成します。

    出力ファイルのパスは、選択したアプリケーション プロジェクト下の /bif フォルダーにデフォルトで設定されます。

  5. [Security] タブで、セキュア イメージを作成するための属性を指定できます。このセキュリティは、必要に応じて個々のパーティションに適用できます。
    1. パーティションの認証を有効にするには、Use Authentication をオンにし、[PPK]、[SPK]、[PSK]、および [SSK] の値を指定します。詳細は、認証を参照してください。
    2. パーティションの暗号化を有効にするには、[Encryption] タブを選択し、Use Encryption をオンにします。詳細は、暗号化の使用 を参照してください。
  6. ブートローダーから開始して、BIF ファイルのブート イメージを 1 つずつ作成またはインポートします。パーティション リストには、BIF ファイル内のパーティションの概要が表示されます。ファイル パス、暗号化設定、および認証設定が表示されます。この領域を使用して、パーティションの追加、削除、変更、並べ替えを実行します。また、暗号化、認証、チェックサムを有効にするための値を設定し、LoadAlignmentOffset など、一部のその他のパーティションに関連する値を指定することもできます。

コマンド ラインで Bootgen を使用

コマンド ラインで Bootgen オプションを指定すると、GUI で提供されるオプションよりも多くのオプションを利用できます。Vitis ソフトウェア プラットフォームの標準インストールでは、XSCT (ザイリンクス ソフトウェア コマンド ライン ツール) が対話型のコマンド ライン環境として入手可能で、これをスクリプト作成に使用することもできます。XSCT では、Bootgen コマンドを実行できます。XSCT は別のツールである Bootgen 実行ファイルにアクセスします。この Bootgen 実行ファイルは、Bootgen のインストールで説明したとおり、スタンドアロンでインストールできます。これは XSCT から呼び出されたツールと同じものなので、ここで開発されたスクリプトまたは XSCT で作成されたスクリプトはいずれももう一方のツールで動作します。

『ザイリンクス ソフトウェア コマンド ライン ツール (XSCT) リファレンス ガイド』 (UG1208) に、このツールの詳細を説明しています。XSCT で Bootgen コマンドを使用する例は、「XSCT ユース ケース」の章を参照してください。

コマンドおよび説明

次の表に、Bootgen コマンド オプションを示します。各オプションは、一番左の列にあるリンクから詳細な説明を参照できます。その右側の列には簡単な説明を記載しています。アーキテクチャ名は、コマンドを使用するザイリンクス デバイスを示します。

  • zynq: Zynq®-7000 SoC デバイス
  • zynqmp: Zynq® UltraScale+™ MPSoC デバイス
  • fpga: Any 7 シリーズおよびそれ以上のデバイス
表 1. Bootgen コマンドおよび説明
コマンド 説明およびオプション コマンドを使用するデバイス
arch <type> ザイリンクス デバイス アーキテクチャ: オプションは次のとおりです。
  • zynq (デフォルト)
  • zynqmp
  • fpga
  • すべて
bif_help BIF ヘルプ サマリをプリントアウトします。
  • すべて
dual_qspi_mode <configuration> Dual QSPI コンフィギュレーションの場合は 2 つの出力ファイルを生成します。
  • parallel
  • stacked <size>
  • zynq
  • zynqmp
efuseppkbits <PPK_filename> eFUSE 用の PPK ハッシュを生成します。
  • zynq
  • zynqmp
encrypt <options> デバイス内での AES キーの格納場所。オプションは次のとおりです。
  • bbram (デフォルト)
  • eFuse
  • zynq
  • fpga
encryption_dump 暗号ログ ファイル aes_log.txt を生成します。
  • zynqmp
fill <hex_byte> パディング用に使用するバイトを指定します。
  • zynq
  • zynqmp
generate_hashes PKCS#1v1.5 フォーマットのパディング付き SHA2/SHA3 ハッシュ ファイルを出力します。
  • zynq
  • zynqmp
generate_keys <key_type> 認証キーを生成します。オプションは次のとおりです。
  • pem
  • rsa
  • obfuscatedkey
  • zynq
  • zynqmp
h、help ヘルプ サマリをプリントアウトします。
  • すべて
image <filename(.bif)> ブート イメージ フォーマット (BIF) ファイル名を提供します。
  • すべて
log<level_type> 現在の作業ディレクトリに次のメッセージ タイプのログ ファイルを生成します。
  • error
  • warning (デフォルト)
  • info
  • debug
  • trace
  • すべて
nonbooting 中間のブート イメージを作成します。
  • zynq
  • zynqmp
o <filename> 出力ファイルを指定します。ファイル フォーマットは、ファイル名の拡張子によって決まります。有効な拡張子は次のとおりです。
  • .bin (デフォルト)
  • .mcs
  • .pdi
  • すべて
p <partname> 暗号化キーの生成に使用するパーツ名を指定します。
  • すべて
padimageheader <option> イメージ ヘッダーをパディングして、続くパーティションを強制的に揃えます。オプションは次のとおりです。
  • 0
  • 1 (デフォルト)
  • zynq
  • zynqmp
process_bitstream <option> ビットストリームを .bin と .mcs ファイルのいずれかで処理および出力するかを指定します。
  • たとえば BIF ファイルのビットストリームに暗号化を選択した場合、出力は暗号化されたビットストリームとなります。
  • zynq
  • zynqmp
read <options> オプションに基づいて、ブート ヘッダー、イメージ ヘッダー、およびパーティション ヘッダーを読み出すのに使用されます。
  • bh: bootimage からブート ヘッダーを人間が読める形式で読み出します。
  • iht: bootimage からイメージ ヘッダー テーブルを読み出します。
  • ih: bootimage からイメージ ヘッダーを読み出します。
  • pht: bootimage からパーティション ヘッダーを読み出します。
  • ac: bootimage から認証証明を読み出します。
  • zynq
  • zynqmp
split <options> ブート イメージをパーティションに分割し、ファイルを .bin または .mcs として出力します。
  • ブート ヘッダー + イメージ ヘッダー + パーティション ヘッダー + Fsbl.elf
  • Partition1.bit
  • Partition2.elf
  • zynq
  • zynqmp
spksignature <filename> SPK 署名ファイルを生成します。
  • zynq
  • zynqmp
verify このオプションは、ブート イメージの認証を検証するために使用します。ブート イメージ内の認証証明がすべて使用可能なパーティションに対して検証されます。
  • zynq
  • zynqmp
verify_kdf このオプションは、AES キーを生成するために Bootgen で使用される Counter Mode KDF を検証するために使用します。 zynqmp
w <option> 出力ファイルを上書きするかどうかを指定します。
  • on (デフォルト)
  • off
注記: オプションのない -w は、–w on として解釈されます。
  • すべて
zynqmpes1 ES1 (1.0) 用のブート イメージを生成します。デフォルトのパディング方式は ES2 (2.0) です。
  • zynqmp