• 検索結果がありません。

BIF 構文およびサポートされるファイルの種類

ドキュメント内 Bootgen ユーザー ガイド (ページ 44-59)

スペースは無視されるため、読みやすいように追加しても問題ありません。

• C 形式のブロック コメント /*...*/、または C++ 形式の行コメント // を使用できます。

{ /* common attributes */

[attribute1] <argument1>

/* bootloader */

[attribute2, attribute3,

attribute4=<argument>

] <elf>

/* pl bitstream */

[

attribute2, attribute3,

attribute4=<argument>, attibute=<argument>

] <bit>

/* another elf partition */

[

attribute3 ] <elf>

/* bin partition */

<bin>

}

Bootgen でサポートされるファイル

次の表に、Bootgen でサポートされるファイルを示します。

表 31: Bootgen でサポートされるファイル

サポートされるデバイス 拡張子 説明 注記

すべてのデバイスでサポート

.bin バイナリ 未処理のバイナリ ファイル。

.dtb バイナリ 未処理のバイナリ ファイル。

image.gz バイナリ 未処理のバイナリ ファイル。

.elf 実行可能リンク ファイル

(ELF) シンボルとヘッダーを除く。

.int レジスタ初期化ファイル

.nky AES キー

.pub/.pem RSA キー

.sig 署名ファイル Bootgen または HSM によっ て生成される署名ファイル。

Versal

.cfi/.rcfi CFI ファイル Versal デバイスのみ。

.cdo/.rcdo/.npi/ .rnpi CDO ファイル コンフィギュレーション デー

タ オブジェクト ファイル。

Versal デバイスのみ。

ブート イメージ Bootgen を使用して生成した

次の例に、パーティションをまとめて BIF を詳細に記述する方法を示します。BIF 構文は Versal ACAP 用に変更され ており、複数のパーティションをまとめて 1 つのイメージを形成するサブシステムのコンセプト (1 つのイメージ ヘ ッダーのサブシステムとも呼ばれる) がサポートされるようになっています。

new_bif:

{ id_code = 0x04ca8093 extended_id_code = 0x01 id = 0x2

image {

name = pmc_subsys id = 0x1c000001 partition

{

id = 0x01

type = bootloader

file = gen_files/executable.elf }

partition {

id = 0x09

type = pmcdata, load = 0xf2000000 file = topology_xcvc1902.v2.cdo file = gen_files/pmc_data.cdo }

} image {

name = lpd id = 0x4210002 partition {

id = 0x0C type = cdo

file = gen_files/lpd_data.cdo }

partition {

id = 0x0B core = psm

file = static_files/psm_fw.elf }

} image {

name = pl_cfi id = 0x18700000 partition

{

id = 0x03 type = cdo

file = system.rcdo }

partition {

id = 0x05 type = cdo

file = system.rnpi

name = fpd id = 0x420c003 partition {

id = 0x08 type = cdo

file = gen_files/fpd_data.cdo }

} }

次の例に、パーティションをまとめて BIF を簡潔に記述する方法を示します。

new_bif:

{ id_code = 0x04ca8093 extended_id_code = 0x01 id = 0x2

image {

name = pmc_subsys, id = 0x1c000001

{ id = 0x01, type = bootloader, file = gen_files/executable.elf } { id = 0x09, type = pmcdata, load = 0xf2000000, file =

topology_xcvc1902.v2.cdo, file = gen_files/pmc_data.cdo } }

image {

name = lpd, id = 0x4210002

{ id = 0x0C, type = cdo, file = gen_files/lpd_data.cdo } { id = 0x0B, core = psm, file = static_files/psm_fw.elf } }

image {

name = pl_cfi, id = 0x18700000

{ id = 0x03, type = cdo, file = system.rcdo } { id = 0x05, type = cdo, file = system.rnpi } }

image {

name = fpd, id = 0x420c003

{ id = 0x08, type = cdo, file = gen_files/fpd_data.cdo } }

}

属性

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

• zynq: Zynq-7000 SoC デバイス

表 32: Bootgen の属性と説明

オプション/属性 説明 属性を使用するデバイス

aarch32_mode 32 ビット モードで実行されるバイナリ ファイルを指定しま

す。 zynqmp

versal aeskeyfile <aes_key_filepath> AES キー ファイルへのパスです。キー ファイルには、パーテ

ィションの暗号化に使用される AES キーが含まれます。ファ イルの内容は eFUSE または BBRAM に書き込む必要があり ます。キー ファイルが指定されたパスに存在しない場合、

Bootgen が暗号化に使用される新しいキーを生成します。た とえば BIF ファイルでビットストリームの暗号化を選択した 場合、出力は暗号化されたビットストリームとなります。

すべて

a_hwrot 非対称ハードウェアの信頼のルート (A-HWRoT) ブート モー

ド。Bootgen で A-HWRoT ブート モードのデザイン ルール

がチェックされます。プロダクション PDI でのみ有効です。 versal

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 を使用して実行されま す。

引数は次のとおりです。

none: パーティションは署名されません。

ecdsa-p384: パーティションは ecdsa-p384 を使用して 署名されます。

ecdsa-p521: パーティションは ecdsa-p521 を使用して 署名されます。

rsa: パーティションは RSA アルゴリズムを使用して署 名されます。

すべて

bbram_kek_iv 該当するキーを暗号化するために使用する IV を指定します。

bbram_kek_iv は、keysrc=bbram_blk_key の場合にのみ有効

です。 versal

bh_kek_iv 該当するキーを暗号化するために使用する IV を指定します。

bh_kek_iv は、keysrc=bh_blk_key の場合にのみ有効です。 versal

bh_key_iv <filename> 難読化キーまたはブラック キーを復号化する際に使用する初

期化ベクター。 zynqmp

bh_keyfile <filename> ブート ヘッダーに格納される 256 ビットの難読化キーまた はブラック キー。これは、暗号化の keysrc が bh_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) を参照してください。ハードウェア/レジスタ/イン ターフェイス情報およびプライマリ ブート モードについて は、該当するテクニカル リファレンス マニュアルを参照して ください。

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 イメージがメモリの指定したアドレスにコピーされます。

versal

core <options> パーティションをどのコアで実行するかを指定します。次の

オプションがあります。

*a72-0 a72-1 r5-0 r5-1 psm aie

versal

delay_handoff <delay_handoff> サブシステム/イメージへのハンドオフを遅延します。

versal delay_load <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 (デフォルト) r5-1

pmu r5-lockstep

zynqmp

early_handoff このフラグは、パーティションのロード直後に重要なアプリ ケーションへのハンドオフが確実に実行されるようにしま す。このオプションを使用しない場合は、最初にすべてのパ ーティションが順にロードされ、続いてハンドオフが順に実 行されます。

zynqmp

efuse_kek_iv 該当するキーを暗号化するために使用する IV を指定します。

efuse_kek_iv は、keysrc=efuse_blk_key の場合にのみ有効で

す。 versal

efuse_user_kek0_iv 該当するキーを暗号化するために使用する IV を指定します。

efuse_user_kek0_iv は、keysrc=efuse_user_blk_key0 の場合

にのみ有効です。 versal

efuse_user_kek1_iv 該当するキーを暗号化するために使用する IV を指定します。

efuse_user_kek1_iv は、keysrc=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 ファミリ キーを指定します。

zynqmp fpga

file <path/to/file> パーティションを作成するためのファイルを指定します。

versal

ドキュメント内 Bootgen ユーザー ガイド (ページ 44-59)