コマンド リファレンス

arch

構文

-arch [options]

説明

ブート イメージを作成する必要のあるザイリンクス ファミリ アーキテクチャ。

引数

  • zynq: Zynq®-7000 デバイス アーキテクチャ。これがブート イメージを作成する必要のあるファミリ アーキテクチャのデフォルト値です。
  • zynqmp: Zynq® UltraScale+™ MPSoC デバイス アーキテクチャ。
  • fpga: イメージはほかの FPGA アーキテクチャをターゲットとしています。

戻り値

なし

bootgen -arch zynq -image test.bif -o boot.bin

bif_help

構文

bootgen -bif_help
bootgen -bif_help aeskeyfile

説明

サポートされている BIF ファイルの属性をリストします。各 BIF 属性の詳細は、コマンド ラインで -bif_help の引数として属性名を指定すると説明が得られます。

dual_qspi_mode

構文

bootgen -dual_qspi_mode [parallel]|[stacked <size>

Dual QSPI コンフィギュレーションの場合は 2 つの出力ファイルを生成します。スタックド コンフィギュレーションの場合は、フラッシュのサイズ (MB) を指定する必要があります (16、32、64、または 128)。

次の例は、QSPI デュアル パラレル コンフィギュレーションの 2 つのフラッシュを個別にプログラムするため、2 つの出力ファイルを生成します。

bootgen -image test.bif -o -boot.bin -dual_qspi_mode parallel

次の例は、QSPI デュアル パラレル コンフィギュレーションの 2 つのフラッシュを個別にプログラムするため、2 つの出力ファイルを生成します。実際のイメージの最初の 64MB が 1 つ目のファイルに書き込まれ、残りは 2 つ目のファイルに書き込まれます。実際のイメージが 64MB 未満の場合は、1 つのファイルのみ生成されます。

bootgen -image test.bif -o -boot.bin -dual_qspi_mode stacked 64

引数

  • parallel
  • stacked <size>

dump_dir

構文

dump_dir <path>

説明

-dump コマンドの内容を書き込みディレクトリを指定します。

bootgen -arch versal -dump boot.bin -dump_dir <path>

efuseppkbits

構文


bootgen -image test.bif -o boot.bin -efuseppkbits efusefile.txt

引数

efusefile.txt

説明

このオプションは、PPK ハッシュを書き込む eFUSE ファイルの名前を指定します。また、パディングなしでダイレクト ハッシュを生成します。PPK キーのハッシュを含む efusefile.txt ファイルが生成されます。ハッシュ処理については、次のとおりです。

  • Zynq®-7000 は、ハッシュ処理に SHA2 プロトコルを使用します。
  • Zynq® UltraScale+™ MPSoC は、ハッシュ処理に SHA3 を使用します。

encrypt

構文

bootgen -image test.bif -o boot.bin -encrypt <efuse|bbram|>

説明

  • このオプションは、暗号化の実行方法とキーの格納場所を指定します。NKY キー ファイルは、BIF ファイルの aeskeyfile 属性で渡されます。コマンド ラインで指定されるのはキー ソースのみです。

引数

  • キー ソースの引数は次のとおりです。
  • efuse: AES キーは eFUSE に格納されます。これがデフォルト値です。
  • bbram: AES キーは BBRAM に格納されます。

encryption_dump

構文

bootgen -arch zynqmp -image test.bif -encryption_dump

説明

暗号ログ ファイル aes_log.txt を生成します。生成される aes_log.txt には、データの各ブロックの暗号化に使用される AES キー/IV ペアの詳細が含まれます。また、パーティションとそれを暗号化するために使用した AES キー ファイルもログに記録されます。

注記: このオプションは、Zynq® UltraScale+™ MPSoC でのみサポートされます。

all:
{
	[bootloader, encryption=aes, aeskeyfile=test.nky] fsbl.elf
	[encryption=aes, aeskeyfile=test1.nky] hello.elf
}

fill

構文

bootgen -arch zynq -image test.bif -fill 0xAB -o boot.bin

説明

このオプションは、パディング/予約されているメモリを <hex byte> フォーマットで埋めるために使用するバイトを指定します。

出力

0xAB バイトの boot.bin ファイル。

出力イメージは boot.bin という名前で生成されます。出力イメージのフォーマットは、-o オプションで指定するファイル拡張子に基づいて決まります。この例では、-fill: でパディングするバイトを指定します。0xFF ではなく <hex byte> がヘッダー テーブルにパディングされます。

bootgen -arch zynq -image test.bif -fill 0xAB -o boot.bin

generate_hashes

構文

bootgen -image test.bif -generate_hashes

説明

このオプションは、すべてのパーティションおよびその他のコンポーネントがブート ヘッダー、イメージ、およびパーティション ヘッダーと同様に署名されるようハッシュ ファイルを生成します。また、Zynq®-7000 フォーマット用に PKCS#1v1.5 のパディングされたハッシュを含むファイルを生成します。

表 1. Zynq: SHA-2 (256 バイト)
SHA-2 ハッシュ* T-パディング0x0 0xFF 0x01 0x00
バイト数 32 19 1 202 1 1

このオプションは、Zynq® UltraScale+™ MPSoC フォーマット用に PKCS#1v1.5 のパディングされたハッシュを含むファイルを生成します。

表 2. ZynqMP: SHA-3 (384 バイト)
0x0 0x1 0xFF 0xFF T-パディング SHA-3 ハッシュ
バイト数 1 1 314 1 19 48

test:
{                                            
      [pskfile] ppk.txt
      [sskfile] spk.txt
      [bootloader, authentication=rsa] fsbl.elf
      [authentication=rsa] hello.elf           
}
Bootgen は、指定された BIF で次のハッシュ ファイルを生成します。
  • ブート ヘッダー ハッシュ
  • spk ハッシュ
  • ヘッダー テーブル ハッシュ
  • fsbl.elf パーティション ハッシュ
  • hello.elf パーティション ハッシュ

generate_keys

構文

bootgen -image test.bif -generate_keys <rsa|pem|obfuscated>

説明

このオプションは、認証用のキーと暗号化に使用される難読化キーを生成します。

注記: 暗号化キーの生成の詳細は、キーの生成を参照してください。

認証キー生成の例

認証キー生成の例。この例では、BIF ファイルで指定したパスに認証キーを生成します。

image:
{  
	[ppkfile] <path/ppkgenfile.txt>
	[pskfile] <path/pskgenfile.txt>
	[spkfile] <path/spkgenfile.txt>
	[sskfile] <path/sskgenfile.txt>
}

難読化キー生成の例

この例では、familykey.txt と同じパスで難読化されたものを生成します。

コマンド

bootgen -image test.bif -generata_keys rsa

BIF ファイルの例を次に示します。

image:
{
	[aeskeyfile] aes.nky
	[bh_key_iv] bhkeyiv.txt
	[familykey] familykey.txt
}

引数

  • rsa
  • pem
  • obfuscated

image

構文

-image <BIF_filename> 

説明

このオプションは、入力する BIF ファイル名を指定します。BIF ファイルは、ブート イメージの各コンポーネントをブート順に指定し、オプションで各イメージ コンポーネントに属性を指定できるようにします。各イメージ コンポーネントは、通常 1 つのパーティションにマップされますが、1 つのイメージ コンポーネントがメモリ内で連続する場合は、1 つのイメージ コンポーネントが複数パーティションにマップされます。

引数

bif_filename

bootgen -arch zynq -image test.bif -o boot.bin

BIF ファイルの例を次に示します。

the_ROM_image: 
{ 
	[init] init_data.int 
	[bootloader] fsbl.elf 
	Partition1.bit 
	Partition2.elf 
} 

log

構文

bootgen -image test.bif -o -boot.bin -log trace

説明

ブート イメージの作成中にログを生成します。情報のレベルに応じてさまざまなオプションがあります。情報はコンソールに表示され、bootgen_log.txt という名前のログ ファイルが作業ディレクトリに生成されます。

引数

  • error: エラー情報のみ記録されます。
  • warning: 警告およびエラー情報が記録されます。これがデフォルト値です。
  • info: 一般的な情報および上記すべての情報が記録されます。
  • trace: より詳細な情報が上記の情報と共に記録されます。

nonbooting

構文

bootgen -arch zynq -image test.bif -o test.bin -nonbooting

説明

このオプションは、中間のブート イメージを作成するために使用されます。中間の test.bin イメージは、認証イメージの生成に必要な秘密キーがなくても出力として生成されます。この中間イメージはブートできません。

all:                                                           
{                                                              
	[ppkfile]primary.pub
	[spkfile]secondary.pub                                     
	[spksignature]secondary.pub.sha256.sig                        
	[bootimage,authentication=rsa,presign=fsbl_0.elf.0.sha256.sig]fsbl_e.bin  
} 

o

構文

bootgen -arch zynq -image test.bif -o boot.<bin|mcs>

説明

このオプションは、出力イメージ ファイルの名前 (拡張子) を .bin または .mcs で指定します。

出力

BIN または MCS フォーマットのフル ブート イメージ ファイル。

bootgen -arch zynq -image test.bif -o boot.mcs

ブート イメージは MCS フォーマットで出力されます。

p

構文

bootgen -image test.bif -o boot.bin -p xc7z020clg48 -encrypt efuse

説明

このオプションは、ザイリンクス デバイスのパーツ名を指定します。これは、暗号化キーを生成するために必要です。NKY ファイルの Device 行の *.nky ファイルにそのままコピーされます。これは、暗号化が有効な場合にのみ適用されます。BIF ファイルで指定されたパスにキー ファイルが存在しない場合、同じパスに新しい暗号化キーが生成され、nky ファイルの Device フィールドの横に xc7z020clg484 がコピーされます。生成されたイメージは暗号化されたイメージです。

padimageheader

構文

bootgen -image test.bif -w on -o boot.bin -padimageheader=<0|1>

説明

このオプションは、イメージ ヘッダー テーブルとパーティション ヘッダー テーブルを可能な限り数多くのパーティションにパディングし、続くパーティションを強制的に揃えます。この機能はデフォルトで有効になっています。0 を指定すると、無効になります。実際の boot.bin にはイメージ ヘッダー テーブルとパーティション ヘッダー テーブルがあり、余分なテーブルはパディングされていません。何も指定されていない場合、または -padimageheader=1 の場合、イメージ ヘッダー テーブルおよびパーティション ヘッダー テーブルの合計が最大数のパーティションにパディングされます。

引数

  • 1: ヘッダー テーブルを最大数のパーティションにパディングする。これがデフォルト値です。
  • 0: ヘッダー テーブルをパディングしない。

イメージ ヘッダーまたはパーティション ヘッダーの長さ

  • zynq: 最大数のパーティション - 14 パーティション
  • zynqmp: 最大数のパーティション - 32 パーティション

process_bitstream

構文

-process_bitstream <bin|mcs>

説明

BIF からのビットストリームのみを処理し、MCS ファイルまたは BIN ファイルとして出力します。たとえば、BIF ファイルのビットストリームに暗号化を選択した場合、出力は暗号化されたビットストリームとなります。

引数

  • bin: BIN フォーマットでの出力。
  • mcs: MCS フォーマットでの出力。

戻り値

生成される出力は、BIN フォーマットまたは MCS フォーマットのビットストリームで、ヘッダーが添付されていない処理済みファイルです。

read

構文

-read [options] <filename>

説明

オプションに基づいて、ブート ヘッダー、イメージ ヘッダー、およびパーティション ヘッダーを読み出すのに使用されます。

引数

  • bh: bootimage からブート ヘッダーを人間が読める形式で読み出します。
  • iht: bootimage からイメージ ヘッダー テーブルを読み出します。
  • ih: bootimage からイメージ ヘッダーを読み出します。
  • pht: bootimage からパーティション ヘッダーを読み出します。
  • ac: bootimage から認証証明を読み出します。
  • bootgen -arch zynqmp -read BOOT.bin

spksignature

構文

bootgen -image test.bif -w on -o boot.bin -spksignature spksignfile.txt

説明

このオプションは、SPK 署名ファイルの生成に使用します。これは、spkfile および pskfile が BIF で指定されている場合にのみ使用する必要があります。SPK 署名ファイル (spksignfile.txt) が生成されます。

オプション

生成する署名ファイルの名前を指定します。

split

構文

bootgen -arch zynq -image test.bif -split bin

説明

このオプションは、ヘッダーを含む各データ パーティションを MCS または BIN フォーマットの新しいファイルとして出力します。

出力

出力ファイルは次のとおりです。

  • ブート ヘッダー + イメージ ヘッダー + パーティション ヘッダー + Fsbl.elf
  • Partition1.bit
  • Partition2.elf

the_ROM_image:                                                 
{                                                              
	[bootloader] Fsbl.elf                                      
	Partition1.bit                                             
	Partition2.elf                                             
} 

verify

構文

bootgen -arch zynqmp -verify boot.bin

説明

このオプションは、ブート イメージの認証を検証するために使用します。ブート イメージ内の認証証明がすべて使用可能なパーティションに対して検証されます。検証は、次の手順で実行されます。
  1. ヘッダー認証証明の検証、SPK 署名の検証、およびヘッダー署名の検証。
  2. ヘッダー ブートローダー認証証明の検証、ブート ヘッダー署名の検証、SPK 署名の検証、およびブートローダー署名の検証。
  3. パーティション認証証明の検証、SPK 署名の検証、およびパーティション署名の検証。
これは、該当するブート イメージのすべてのパーティションで繰り返されます。

verify_kdf

構文

bootgen -arch zynqmp -verify_kdf testVec.txt

説明

testVec.txt ファイルのフォーマットは、次のとおりです。
L = 256
KI = d54b6fd94f7cf98fd955517f937e9927f9536caebe148fba1818c1ba46bba3a4
FixedInputDataByteLen = 60
FixedInputData = 94c4a0c69526196c1377cebf0a2ae0fb4b57797c61bea8eeb0518ca08652d14a5e1bd1b116b1794ac8a476acbdbbcd4f6142d7b8515bad09ec72f7af
Bootgen は、カウンターの Mode KDF を使用して、テスト ベクター ファイルの入力データに基づいて出力キー (KO) を生成します。この KO は、ユーザーが比較できるようにコンソールに表示されます。

w

構文

bootgen -image test.bif -w on -o boot.bin
or                
bootgen -image test.bif -w -o boot.bin

説明

このオプションは、既存のファイルを上書きするかどうかを指定します。boot.bin ファイルが既にパスに存在する場合は上書きされます。-w on オプションと -w オプションは同じように扱われます。-w オプションが指定されていない場合、ファイルはデフォルトで上書きされません。

引数

  • on: 引数ありの -w on コマンドまたは引数なしの -w で指定します。これがデフォルト値です。
  • off: 既存ファイルを上書きしないよう指定します。

zynqmpes1

構文

bootgen -arch zynqmp -image test.bif -o boot.bin -zynqmpes1

説明

生成されたイメージを ES1 (1.0) で使用することを指定します。このオプションは、認証イメージを生成する場合にのみ影響をおよぼします。それ以外は無視されます。デフォルトのパディング方式は、ES2 (2.0) 以降が対象です。

初期化ペアおよび INIT ファイルの属性

初期化ペアを使用すると、MIO マルチプレクサーおよびフラッシュ クロックのプロセッサ システム (PS) レジスタの初期化が容易になります。これにより、FSBL イメージを OCM にコピーする前、または XIP (eXecute in place) でフラッシュから実行する前に MIO マルチプレクサーを完全にコンフィギュレーションでき、フラッシュ デバイスのクロックを帯域幅が最大となるように設定できます。

ブート イメージ ヘッダーの固定部分の最後に 256 の初期化ペアがあります。1 つのペアは 32 ビットのアドレス値と 32 ビットのデータ値で構成されるため、初期化ペアはこれに従って指定されます。初期化が実行されない場合、アドレス値はすべて 0xFFFFFFFF となり、データ値はすべて 0x00000000 となります。これらの初期化ペアは、デフォルトでファイル拡張子が .int のテキスト ファイルで設定されますが、拡張子は変更できます。

このファイルは、ファイル名の前に [init] ファイル属性を使用することによって、BIF 内で INIT ファイルとして認識されます。データ フォーマットでは、動作指示子の後に次の情報が続きます。

  • アドレス値
  • = 文字
  • データ値
コマンド行は、セミコロン (;) で終わります。たとえば、次の場合、.set. operation directive; がコマンドです。
.set. 0xE0000018 = 0x00000411; // This is the 9600 uart setting.

Bootgen は、最大で 256 ペアまで、INT ファイルからのブート ヘッダー初期化データを埋めていきます。bootROM が実行されると、アドレス値を参照します。その値が 0xFFFFFFFF でなければ、bootROM はアドレス値に続く次の 32 ビット値を使用してアドレスの値を書き込みます。bootROM は、アドレス値が 0xFFFFFFFF になるまで、または 256 番目の初期化ペアに到達するまで、初期化ペアを順に設定し続けます。

Bootgen では、次のような演算子を含む式 (優先を強調するネストされたかっこを含む) を評価できます。

* = multiply/
 = divide
% = mod
an address value
ulo divide
+ = addition
- = subtraction
~ = negation
>> = shift right
<< = shift left
& = binary and
  = binary or
^ = binary nor

数値は 16 進数 (0x)、8 進数 (0o)、または 10 進数が可能です。数表現は、128 ビットの固定小数点整数として保持されます。読みやすいように、表現演算子の前後にスペースを入れることができます。