属性 - 2022.1 日本語

Bootgen ユーザー ガイド (UG1283)

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

次の表に、Bootgen の属性を示します。この表では簡単な説明を記載しており、詳細は各属性のリンクをクリックすると参照できます。アーキテクチャ名は、属性を使用するザイリンクス デバイスを示します。

  • zynq: Zynq-7000 SoC デバイス
  • zynqmp: Zynq® UltraScale+™ MPSoC デバイス
  • fpga: 7 シリーズ およびそれ以上のデバイス
  • versal: Versal® ACAP
詳細は、BIF 属性の参照 を参照してください。
表 1. Bootgen の属性と説明
オプション/属性 説明 属性を使用するデバイス
aarch32_mode 32 ビット モードで実行されるバイナリ ファイルを指定します。
  • zynqmp
  • versal
aeskeyfile <aes_key_filepath> AES キー ファイルへのパスです。キー ファイルには、パーティションの暗号化に使用される AES キーが含まれます。ファイルの内容は eFUSE または BBRAM に書き込む必要があります。キー ファイルが指定されたパスに存在しない場合、Bootgen が暗号化に使用される新しいキーを生成します。たとえば BIF ファイルでビットストリームの暗号化を選択した場合、出力は暗号化されたビットストリームとなります。
  • すべて
alignment <byte> バイト アライメントを設定します。パーティションは、この値の倍数値に揃えられるまでパディングされます。この属性はオフセットと共に使用することはできません。
  • zynq
  • zynqmp
auth_params <options> 認証の追加オプションは次のとおりです。
  • ppk_select: 0 = 2 つの PPK のうち 1 つをサポート、1 = 2 つの PPK のうち 1 つをサポート。
  • spk_id: SPK を識別するための 32 ビット ID。
  • spk_select: SPK とユーザー eFUSE を識別。デフォルトは spk-efuse。
  • header_auth: パーティションが認証されていない場合のヘッダーを認証。
  • zynqmp
authentication <option> 認証されるパーティションを指定します。
  • Zynq の認証は、RSA-2048 を使用して実行されます。
  • Zynq UltraScale+ MPSoC の認証は、RSA-4096 を使用して実行されます。
  • Versal ACAP の認証には、RSA-4096、ECDSA-p384、および ECDSA-p521 が使用されます。
引数は次のとおりです。
  • none: パーティションは署名されません。
  • ecdsa-p384: パーティションは ecdsa-p384 を使用して署名されます。
  • ecdsa-p521: パーティションは ecdsa-p521 を使用して署名されます。
  • rsa: パーティションは RSA アルゴリズムを使用して署名されます。
  • すべて

bbram_kek_iv <filename>

該当するキーを暗号化するために使用する IV を指定します。bbram_kek_ivkeysrc=bbram_blk_key を指定すると有効になります。
  • versal

bh_kek_iv <filename>

該当するキーを暗号化するために使用する IV を指定します。bh_kek_ivkeysrc=bh_blk_key を指定すると有効になります。
  • versal
bh_key_iv <filename>

難読化キーまたはブラック キーを復号化する際に使用する初期化ベクター。

  • zynqmp
bh_keyfile <filename>

ブート ヘッダーに格納される 256 ビットの難読化キーまたはブラック キー。これは、暗号化の keysrcbh_gry_key または bh_blk_key の場合にのみ有効です。

注記: 難読化キーは、Versal デバイスではサポートされません。
  • zynqmp
  • versal
bhsignature <filename> ブート ヘッダーの署名を認証証明にインポートします。これは、秘密キー PSK を共有しない場合に使用できます。署名を作成して Bootgen に供給できます。ファイル フォーマットは bootheader.sha384.sig です。
  • zynqmp
  • versal
big_endian バイナリ ファイルをビッグ エンディアン形式に指定します。
  • zynqmp
  • versal
blocks <block sizes> 暗号化の際のキー ローリング機能のブロック サイズを指定します。各モジュールは独自のキーを使用して暗号化されます。最初のキーはデバイスのキー ソースで格納され、後続の各ブロックのキーは直前のモジュール内で暗号化 (ラップ) されます。
  • zynqmp
  • versal
boot_config <options> ブート イメージのコンフィギュレーションに使用するパラメーターを指定します。
  • versal
boot_device <options> セカンダリ ブート デバイスを指定します。パーティションが存在するデバイスを示します。オプションは次のとおりです。
  • qspi32
  • qspi24
  • nand
  • sd0
  • sd1
  • sd-ls
  • mmc
  • usb
  • ethernet
  • pcie
  • sata
  • ospi
  • smap
  • sbi
  • sd0-raw
  • sd1-raw
  • sd-ls-raw
  • mmc-raw
  • mmc0
  • mmc0-raw
注記: これらのオプションは、Bootgen のさまざまなデバイスでサポートされます。セカンダリ ブート オプションのリストは、 『Versal ACAP システム ソフトウェア開発者向けガイド』 (UG1304) または 『Zynq UltraScale+ MPSoC: ソフトウェア開発者向けガイド』 (UG1137) を参照してください。ハードウェア/レジスタ/インターフェイス情報およびプライマリ ブート モードについては、 『Zynq UltraScale+ デバイス テクニカル リファレンス マニュアル』 (UG1085) 『Versal ACAP テクニカル リファレンス マニュアル』 (AM011)、または 『Versal ACAP レジスタ リファレンス』 (AM012) など、該当するテクニカル リファレンス マニュアルを参照してください。
  • zynqmp
  • versal
bootimage <filename.bin> リストされた入力ファイルが Bootgen によって作成されたブート イメージであることを示します。
  • zynq
  • zynqmp
  • versal
bootloader <partition>

パーティションがブートローダー (FSBL/PLM) であることを指定します。この属性は、ほかのパーティションの BIF 属性と共に指定されます。

  • zynq
  • zynqmp
  • versal
bootvectors <vector_values> XIP (eXecute In Place) のベクター テーブルを指定します。
  • zynqmp
checksum <options> パーティションのチェックサムが必要であることを指定します。このオプションを認証や暗号化などのよりセキュアな機能と共に使用することはできません。チェックサム アルゴリズムは次のとおりです。
  • none: チェックサムなし。
  • md5: Zynq®-7000 SoC デバイスの場合。
  • sha3: Zynq® UltraScale+™ MPSoC および Versal デバイスの場合。
注記: Zynq デバイスでは、ブートローダーのチェックサムはサポートされません。次のデバイスはブートローダーのチェックサムをサポートします。
  • Zynq UltraScale+ MPSoC
  • Versal ACAP
  • zynq
  • zynqmp
  • versal
copy <address> イメージがメモリの指定したアドレスにコピーされます。
  • versal
core <options> パーティションをどのコアで実行するかを指定します。 Versal® ACAP のオプションは、次のとおりです。
  • a72-0
  • a72-1
  • r5-0
  • r5-1
  • psm
  • aie
  • r5-lockstep
  • versal
delay_handoff サブシステム/イメージへのハンドオフを遅延します。
  • versal
delay_load サブシステム/イメージの読み込みを遅延します。
  • versal
destination_device <device_type> パーティションのターゲットを PS または PL のいずれかに指定します。次のオプションがあります。
  • ps: パーティションのターゲットは PS (デフォルト)。
  • pl: パーティションのターゲットは PL (ビットストリームの場合)。
  • zynqmp
destination_cpu <device_core> パーティションを実行するコアを指定します。
  • a53-0
  • a53-1
  • a53-2
  • a53-3
  • r5-0 (default)
  • r5-1
  • pmu
  • r5-lockstep
  • zynqmp
early_handoff このフラグは、パーティションのロード直後に重要なアプリケーションへのハンドオフが確実に実行されるようにします。このオプションを使用しない場合は、最初にすべてのパーティションが順にロードされ、続いてハンドオフが順に実行されます。
  • zynqmp
efuse_kek_iv <filename> 該当するキーを暗号化するために使用する IV を指定します。efuse_kek_ivkeysrc=efuse_blk_key を指定すると有効になります。
  • versal
efuse_user_kek0_iv <filename> 該当するキーを暗号化するために使用する IV を指定します。efuse_user_kek0_ivkeysrc=efuse_user_blk_key0 を指定すると有効になります。
  • versal
efuse_user_kek1_iv <filename> 該当するキーを暗号化するために使用する IV を指定します。efuse_user_kek1_ivkeysrc=efuse_user_blk_key1 を指定すると有効になります。
  • versal
encryption <option> 暗号化するパーティションを指定します。使用される暗号化アルゴリズムは、zynq では AES-CBC、zynqmp および Versal では AES-GCM です。
パーティションのオプションは次のとおりです。
  • none: パーティションは暗号化されない。
  • aes: パーティションは AES アルゴリズムを使用して暗号化される。
  • すべて
exception_level <options> コアに設定する例外レベルを指定します。
オプションは次のとおりです。
  • el-0
  • el-1
  • el-2
  • el-3
  • zynqmp
  • versal
familykey <key file> ファミリ キーを指定します。
  • zynqmp
  • fpga
file <path/to/file> パーティションを作成するためのファイルを指定します。
  • versal
fsbl_config <options> ブート イメージのコンフィギュレーションに使用するサブ属性を指定します。サブ属性は次のとおりです。
  • bh_auth_enable: PPK ハッシュと SPK ID の検証を除くブート イメージの RSA 認証を実行します。
  • auth_only: ブート イメージの RSA 署名のみを実行します。FSBL の復号化は実行しません。
  • opt_key: block-0 の復号化に操作キーを使用します。操作キーはセキュア ヘッダーにあります。
  • pufhd_bh: PUF ヘルパー データをブート ヘッダーに格納します (デフォルトは efuse)。
  • PUF ヘルパー データ ファイルは、[puf_file] オプションを使用して Bootgen に渡されます。
  • puf4kmode: PUF を 4k ビット コンフィギュレーションでの使用に合わせて調整します (デフォルトは 12k ビット)。
  • shutter = <value>: <value> は 32 ビットの PUF_SHUT レジスタの値で、シャッター オフセット時間およびシャッター オープン時間を PUF に設定します。このシャッター値は、PUF 登録中に使用されたシャッター値と一致している必要があります。
  • zynqmp
headersignature <signature_file> ヘッダーの署名を認証証明にインポートします。これは、秘密キーを共有しない場合に使用できます。署名を作成して Bootgen に供給できます。
  • zynq
  • zynqmp
  • versal
hivec 例外ベクター テーブルの場所を hivec (Hi-Vector) として指定します。デフォルトは lovec (Low-Vector) です。これは、A53 (32 ビット) および R5 コアにのみ適用されます。
  • hivec: 0xFFFF0000 の例外ベクター テーブル。
  • lovec: 0x00000000 の例外ベクター テーブル。
  • zynqmp
id <id> 定義した場所に基づいて次の ID を指定します。
  • pdi id: 一番外側の PDI かっこ内
  • image id: イメージかっこ内
  • partition id: パーティションかっこ内
  • versal
image サブシステム/イメージを定義します。
  • versal
init <filename> ブートローダーの最後にあるレジスタ初期化ブロックであり、init (.int) ファイルの仕様を解析して構築されます。最大 256 のアドレスと値の初期化ペアが許可されます。init ファイルには特定のフォーマットがあります。
  • zynq
  • zynqmp
  • versal
keysrc Versal ACAP の暗号化のキー ソースを指定します。keysrc は、パーティションごとに指定できます。
  • efuse_red_key
  • efuse_blk_key
  • bbram_red_key
  • bbram_blk_key
  • bh_blk_key
  • user_key0
  • user_key1
  • user_key2
  • user_key3
  • user_key4
  • user_key5
  • user_key6
  • user_key7
  • efuse_user_key0
  • efuse_user_blk_key0
  • efuse_user_key1
  • efuse_user_blk_key1
  • versal
keysrc_encryption 暗号化に使用するキー ソースを指定します。キーは次のとおりです。
  • efuse_gry_key: eFUSE に格納されているグレー (難読化) キー。グレー/難読化キー を参照してください。
  • bh_gry_key: ブート ヘッダーに格納されているグレー (難読化) キー。
  • bh_blk_key: ブート ヘッダーに格納されているブラック キー。ブラック キー/PUF キー を参照してください。
  • efuse_blk_key: eFUSE に格納されているブラック キー。
  • kup_key: ユーザー キー。
  • efuse_red_key: eFUSE に格納されているレッド キー。詳細は、キーの差し替えを参照してください。
  • bbram_red_key: BBRAM に格納されているレッド キー。
  • zynq
  • zynqmp
load <partition_address> メモリ内のパーティションのロード アドレスを設定します。
  • zynq
  • zynqmp
  • versal
metaheader キー、キー ソースなどのメタ ヘッダーの暗号化および認証属性を定義するために使用します。
  • versal
name <name> イメージ/サブシステムの名前を指定します。
  • versal
offset <offset> ブート イメージ内のパーティションの絶対オフセットを設定します。
  • zynq
  • zynqmp
  • versal
parent_id 親 PDI の ID を指定します。親 PDI とそれに該当するブート PDI 間の関係を識別するために使用します。
  • versal
partition パーティションを定義します。BIF を短く読みやすくするためのオプションの属性です。
  • versal
partition_owner、owner <option> パーティションをロードするパーティション オーナー。オプションは次のとおりです。
Zynq/Zynq UltraScale+ MPSoC:
  • fsbl: パーティションは FSBL によってロードされます。
  • uboot: パーティションは U-Boot によってロードされます。
Versal:
  • plm: パーティションは PLM によってロードされます。
  • non-plm: パーティションは PLM によってロードされませんが、U-Boot のような別のエンティティでロードされます。
  • zynq
  • zynqmp
  • versal
pid <ID> パーティション ID を指定します。PID は 32 ビット値 (0〜0xFFFFFFFF) に設定できます。
  • zynqmp
pmufw_image <image_name> FSBL をロードする前に bootROM によってロードされる PMU ファームウェア イメージです。
  • zynqmp
ppkfile <key filename> プライマリ公開キー (PPK)。ブート イメージ内のパーティションの認証に使用します。

詳細は、認証の使用 を参照してください。

  • zynq
  • zynqmp
  • versal
presign <sig_filename> パーティション署名 (.sig) ファイル。
  • zynq
  • zynqmp
  • fpga
pskfile <key filename> プライマリ秘密キー (PSK)。ブート イメージ内のパーティションの認証に使用します。

詳細は、認証の使用 を参照してください。

  • zynq
  • zynqmp
  • versal
puf_file <filename> PUF ヘルパー データ ファイル。PUF は、暗号化キー ソースとしてブラック キーと共に使用されます。PUF ヘルパー データは 1544 バイトです。1536 バイトの PUF HD + 4 バイトの HASH + 3 バイトの AUX + 1 バイト アライメント。
  • zynqmp
  • versal
reserve <size in bytes> パーティションのメモリ サイズを維持します。このサイズになるまでパーティションにパディングが追加されます。
  • zynq
  • zynqmp
  • versal
spk_select <SPK_ID> ユーザー eFUSE の SPK ID を指定します。
  • zynqmp
spkfile <filename> ブート イメージ内のパーティションの認証に使用するキーです。詳細は、認証の使用 を参照してください。
  • すべて
spksignature <signature_file> SPK の署名を認証証明にインポートします。詳細は、認証の使用を参照してください。これは、秘密キー PSK を共有しない場合に使用できます。署名を作成して Bootgen に供給できます。
  • zynq
  • zynqmp
  • versal
split <options> モードに基づいてイメージを分割します。split オプションは次のとおりです。
  • slaveboot: Zynq UltraScale+ MPSoC でのみサポートされています。次のように分割します。
  • ブート ヘッダー + ブートローダー
  • イメージ ヘッダーおよびパーティション ヘッダー
  • 残りのパーティション
  • normal: zynq、zynqmp、および versal でサポートされています。次のように分割します。
  • ブート ヘッダー + イメージ ヘッダー + パーティション ヘッダー + ブートローダー
  • Partition1
  • パーティション 2、以下同様

分割 (split) モードでは、出力フォーマットも bin または mcs に設定できます。

注記: オプションの split の normal モードは、コマンド ライン オプションの split と同じです。このコマンド ライン オプションは推奨されていません。split slaveboot は、Zynq UltraScale+ MPSoC でのみサポートされます。
  • zynq
  • zynqmp
  • versal
sskfile <key filename> セカンダリ秘密キー (SSK) は、ブート イメージ内のパーティションを認証するために使用されます。プライマリ キーはセカンダリ キーを認証し、セカンダリ キーはパーティションを認証します。
  • すべて
startup <address> ロード後のパーティションのエントリ アドレスを設定します。この識別子は、実行しないパーティションでは無視されます。
  • zynq
  • zynqmp
  • versal
TrustZone <option>
TrustZone オプションは次のとおりです。
  • secure
  • nonsecure
  • zynqmp
  • versal
type <options> パーティションのタイプを指定します。次のオプションがあります。
  • bootloader
  • pmcdata
  • cdo
  • cfi
  • cfi-gsc
  • bootimage
  • versal
udf_bh <data_file> ブート ヘッダーのユーザー定義フィールドにコピーされるデータのファイルをインポートします。UDF は、16 進数文字列フォーマットのテキスト ファイルで提供されます。UDF の総バイト数は、zynq = 76 バイトで、zynqmp = 40 バイトです。
  • zynq
  • zynqmp
udf_data <data_file> 最大 56 バイトのデータを含むファイルを認証証明のユーザー定義フィールド (UDF) にインポートします。
  • zynq
  • zynqmp
userkeys <filename> ユーザー キー ファイルへのパスです。
  • versal
xip_mode FSBL が QSPI フラッシュから直接実行されるよう XIP (eXecute-In-Place) を示します。
  • zynq
  • zynqmp