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

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

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

BIF ファイルは、ブート イメージの各コンポーネントをブート順に指定し、オプションで各イメージ コンポーネントに属性を適用できるようにします。イメージ コンポーネントがメモリ内で連続していない場合、コンポーネントは複数のパーティションにマップできます。たとえば、ELF ファイルに複数のロード可能な非連続のセクションが含まれる場合、各セクションを個別のパーティションにできます。BIF ファイルの構文は次の形式となります。

new_bif:
{
  id = 0x5
  id_code = 0x04ca8093
  extended_id_code = 0x01
  image
  {
      name = pmc_subsys, id = 0x1c000001
      partition
      { 
          id = 0x11, type = bootloader,
          file = /path/to/plm.elf
      }
      partition
      {
         type = pmcdata, load = 0xf2000000,
         file = /path/to/pmc_cdo.bin
      }
  }
}
注記: 上記の形式は、 Versal® デバイスにのみ使用できます。
<image_name>:
{
	// common attributes
	[attribute1] <argument1>   
	 
	// partition attributes
	[attribute2, attribute3=<argument>] <elf>
	[attribute2, attribute3=<argument>, attibute4=<argument] <bit>
	[attribute3] <elf>
	<bin>
}  
  • <image_name> と {...} (グループ化) を使用し、ROM 内のパーティションに分類するファイルをまとめます。
  • {...} には 1 つまたは複数のデータ ファイルがリストされます。
  • 各パーティションのデータ ファイルには、ファイル名の前に構文 [attribute, attribute=<argument>] を使用して、オプションの属性を指定できます。
  • 属性によって、データ ファイルに何らかの特性が適用されます。
  • 複数の属性がある場合は、カンマ (,) で区切って並べることができます。その場合の順序は重要ではありません。属性は、1 つのキーワードまたはクォーテーションで囲んだ複数のキーワードとなります。
  • 現在のディレクトリにファイルがない場合は、ファイル名を含むファイル パスを追加できます。ファイルのリスト方法は自由形式で、1 行にすべてをリスト (スペースで区切る、最低 1 スペースは必要) しても、1 つずつと改行してもかまいません。
  • スペースは無視されるため、読みやすいように追加しても問題ありません。
  • C 形式のブロック コメント /*...*/、または C++ 形式の行コメント // を使用できます。

次に、読みやすいように空白と改行を追加した BIF の例を示します。

<bootimage_name>:
{
	/* 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 でサポートされるファイルを示します。

表 1. Bootgen でサポートされるファイル
サポートされるデバイス 拡張子 説明 注記
すべてのデバイスでサポート .bin バイナリ 未処理のバイナリ ファイル。
.dtb バイナリ 未処理のバイナリ ファイル。
image.gz バイナリ 未処理のバイナリ ファイル。
.elf 実行可能リンク ファイル (ELF) シンボルとヘッダーを除く。
.int レジスタ初期化ファイル  
.nky AES キー  
.pub/.pem RSA キー  
.sig 署名ファイル Bootgen または HSM によって生成される署名ファイル。
Versal .rcdo CFI ファイル Versal デバイスのみ。
.cdo/.npi/ .rnpi CDO ファイル コンフィギュレーション データ オブジェクト ファイル。Versal デバイスのみ。
.bin/.pdi ブート イメージ Bootgen を使用して生成したブート イメージ。
Zynq-7000/Zynq UltraScale+ MPSoC/FPGA .bit/.rbt ビットストリーム BIT ファイル ヘッダーを除く。