SSIT のサポート - 2023.2 日本語

Bootgen ユーザー ガイド (UG1283)

Document ID
UG1283
Release Date
2023-10-18
Version
2023.2 日本語

スタックド シリコン インターコネクト テクノロジ (SSI テクノロジ) は、ムーアの法則の限界を打ち破り、最も厳しいデザイン要件に応える性能を実現します。

SSI テクノロジ デバイスは、各 SLR が 1 つのダイである複数の SLR (Super Logic Region) で構成されています。SLR0 (マスター SLR とも言う) は最下部のダイです。SLR1 は下から 2 番目、SLR2 は下から 3 番目のように続きます。AMD Versal™ アダプティブ SoC SSI テクノロジの中には、最大 4 つの SLR を含めることが可能なものもあります。

各 SLR には、モノリシック Versal アダプティブ SoC のように独自のプラットフォーム管理コントローラー (PMC) とプログラマブル ロジック (PL) 領域がありますが、スレーブ SLR には AI エンジン 領域とプロセッシング システム (PS) 領域はありません。

このデバイスで起動する最終的な PDI は複数の PDI をまとめた 1 つのイメージです。各 SLR には独自の PMC ブロックがあるため、SLR はそれぞれメイン PDI に統合された PDI で起動します。
注記: 各 SLR の PLM ELF は同じである必要があります。
SSI テクノロジを使用した Versal アダプティブ SoC の BIF は、モノリシックのバリアントとは異なります。次に、2 つの SLR デバイスを使用した場合の BIF の例を示します。
注記: 次の BIF コード ブロック全体が 1 つのファイルにまとめられます。Bootgen は複数の BIF ブロックを読み出して、BIF ラベルに基づいてそれぞれの PDI を作成します。これらの BIF ブロック ラベルは、Bootgen がどの個別 PDI をマスター PDI にマージするかに基づいて、マスター BIF で参照されます。このマスター PDI だけで、SSI テクノロジ デバイスを起動できます。
注記: スレーブ SLR は、ダウンストリーム接続を示す特別なオプション smap_width=0 を使用するので、変更しないでください。

1 スレーブ SLR デバイスの SSI テクノロジの非セキュア BIF の例

例 - HBM デバイス

bitstream_boot_1:
{
 id_code = 0x04d28093
 extended_id_code = 0x01
 id = 0xb
 boot_config {smap_width=0}
 image
 {
  name = pmc_subsys
  id = 0x1c000001
  partition
  {
   id = 0xb01
   type = bootloader
   file = gen_files/plm.elf
  }
  partition
  {
   id = 0xb0A
   type = pmcdata, load = 0xf2000000
   file = gen_files/pmc_data_slr_1.cdo
  }
 }
 image
 {
  name = pl_noc
  id = 0x18700000
  partition
  {
   id = 0xb05
   type = cdo
   file = project_1_wrapper_boot_1.rnpi
  }
 }
}

bitstream_1:
{
 id_code = 0x04d28093
 extended_id_code = 0x01
 id = 0xc
 boot_config {smap_width=0}
 image
 {
  name = pl_cfi
  id = 0x18700000
  partition
  {
   id = 0xc03
   type = cdo
   file = project_1_wrapper_1.rcdo
  }
  partition
  {
   id = 0xc05
   type = cdo
   file = project_1_wrapper_1.rnpi
  }
 }
}

bitstream_master:
{
 id_code = 0x04d28093
 extended_id_code = 0x01
 id = 0x2
 image
 {
  name = pmc_subsys
  id = 0x1c000001
  partition
  {
   id = 0x01
   type = bootloader
   slr = 0
   file = gen_files/plm.elf
  }
  partition
  {
   id = 0x09
   type = pmcdata, load = 0xf2000000
   slr = 0
   file = gen_files/pmc_data.cdo
  }
 }
 image
 {
  name = SUB_SYSTEM_BOOT_MASTER
  id = 0x18700000
  type = slr-boot
  partition
  {
   id = 0x05
   type = cdo
   slr = 0
   file = project_1_wrapper_boot_0.rnpi
  }
  partition
  {
   id = 0xb15
   slr = 1
   section = bitstream_boot_1
  }
  partition
  {
   id = 0x02
   type = cdo
   file = noc_pll.rnpi
  }
 }
 image
 {
  name = lpd
  id = 0x4210002
  partition
  {
   id = 0x0C
   type = cdo
   slr = 0
   file = gen_files/lpd_data.cdo
  }
  partition
  {
   id = 0x0B
   core = psm
   slr = 0
   file = static_files/psm_fw.elf
  }
 }
 image
 {
  name = fpd
  id = 0x420c003
  partition
  {
   id = 0x08
   type = cdo
   slr = 0
   file = gen_files/fpd_data.cdo
  }
 }
 image
 {
  name = CONFIG_MASTER
  id = 0x18700000
  type = slr-config
  partition
  {
   id = 0xc16
   slr = 1
   section = bitstream_1
  }
  partition
  {
   id = 0x13
   type = cdo
   slr = 0
   file = project_1_wrapper_master_config.rcdo
  }
 }
}

2 スレーブ SLR デバイスの SSI テクノロジの非セキュア BIF の例

// For generating SLR1 – boot PDI
bitstream_boot_1:
{
  id_code = 0x04d10093
  extended_id_code = 0x01
  id = 0xb
  boot_config {smap_width=0}
  image
  {
    name = pmc_subsys, id = 0x1c000001
    partition { id = 0xb01, type = bootloader, file = gen_files/plm.elf }
    partition { id = 0xb0A, type = pmcdata, load = 0xf2000000, file = gen_files/pmc_data_slr_1.cdo }
  }
  image
  {
    name = pl_noc, id = 0x18700000
    partition { id = 0xb05, type = cdo, file = boot_1.rnpi }
  }
}

// For generating SLR2 – boot PDI
bitstream_boot_2:
{
  id_code = 0x04d10093
  extended_id_code = 0x01
  id = 0xb
  boot_config {smap_width=0}
  image
  {
    name = pmc_subsys, id = 0x1c000001
    partition { id = 0xb01, type = bootloader, file = gen_files/plm.elf }
    partition { id = 0xb0A, type = pmcdata, load = 0xf2000000, file = gen_files/pmc_data_slr_2.cdo }
  }
  image
  {
    name = pl_noc, id = 0x18700000
    partition { id = 0xb05, type = cdo, file = boot_2.rnpi }
  }
}

// For generating SLR1 – partial config PDI
bitstream_1:
{
  id_code = 0x04d10093
  extended_id_code = 0x01
  id = 0xc
  boot_config {smap_width=0}
  image
  {
    name = pl_cfi, id = 0x18700000
    partition { id = 0xc03, type = cdo, file = config_1.rcdo }
    partition { id = 0xc05, type = cdo, file = config_1.rnpi }
  }
}

// For generating SLR2 – partial config PDI
bitstream_2:
{
  id_code = 0x04d10093
  extended_id_code = 0x01
  id = 0xc
  boot_config {smap_width=0}
  image
  {
    name = pl_cfi, id = 0x18700000
    partition { id = 0xc03, type = cdo, file = config_2.rcdo }
    partition { id = 0xc05, type = cdo, file = config_2.rnpi }
  }
}

// For generating final PDI – by combining above generated PDIs.
bitstream_master:
{
  id_code = 0x04d10093
  extended_id_code = 0x01
  id = 0x2
  image
  {
    name = pmc_subsys, id = 0x1c000001
    partition { id = 0x01, type = bootloader, slr = 0, file = gen_files/plm.elf }
    partition { id = 0x09, type = pmcdata, load = 0xf2000000, slr = 0, file = gen_files/pmc_data.cdo }
  }
  image
  {
    name = SUB_SYSTEM_BOOT_MASTER, id = 0x18700000, type = slr-boot
    partition { id = 0x05, type = cdo, slr = 0, file = boot_0.rnpi }
    partition { id = 0xb15, slr = 1, section = bitstream_boot_1 }
    partition { id = 0xb15, slr = 2, section = bitstream_boot_2 }
    partition { id = 0x02, type = cdo, file = gen_files/bd_70da_pspmc_0_0_noc_clock.cdo }
  }
  image
  {
    name = lpd, id = 0x4210002
    partition { id = 0x0C, type = cdo, slr = 0, file = gen_files/lpd_data.cdo }
    partition { id = 0x0B, core = psm, slr = 0, file = static_files/psm_fw.elf }
  }
  image
  {
    name = fpd, id = 0x420c003
    partition { id = 0x08, type = cdo, slr = 0, file = gen_files/fpd_data.cdo }
  }
  image
  {
    name = CONFIG_MASTER, id = 0x18700001, type = slr-config
    partition { id = 0xc16, slr = 1, section = bitstream_1 }
    partition { id = 0xc16, slr = 2, section = bitstream_2 }
    partition { id = 0x13, type = cdo, slr = 0, file = master_config.rcdo }
  }
}
注記: MCS 形式の bootimage/PDI 生成は、SSI テクノロジ デバイスでサポートされます。スレーブ用に生成される中間 PDI は、常にバイナリ形式です。最終的に生成される PDI は、選択した場合は、MCS 形式になります。

3 スレーブ SLR デバイスの SSI テクノロジの認証 BIF の例

command : bootgen -arch versal -image all.bif -w on -o final_ref.bin -log error
 
bitstream_boot_1:
{
 id_code = 0x04d14093
 extended_id_code = 0x01
 id = 0xb
 
 boot_config {smap_width=0,bh_auth_enable}
 pskfile = PSK1.pem
 sskfile = SSK1.pem
 
 metaheader
 {
  authentication = rsa
 }
 image
 {
  name = pmc_subsys
  id = 0x1c000001
  partition
  {
   id = 0xb01
   type = bootloader
   authentication = rsa
   file = gen_files/plm.elf
  }
  partition
  {
   id = 0xb0A
   type = pmcdata, load = 0xf2000000
   file = gen_files/pmc_data_slr_1.cdo
  }
 }
 image
 {
  name = pl_noc
  id = 0x18700000
  partition
  {
   id = 0xb05
   type = cdo
   authentication = rsa
   file = project_1_wrapper_boot_1.rnpi
  }
 }
}
 
bitstream_boot_2:
{
 id_code = 0x04d14093
 extended_id_code = 0x01
 id = 0xb
 
 boot_config {smap_width=0,bh_auth_enable}
 pskfile = PSK2.pem
 sskfile = SSK2.pem
 
 metaheader
 {
  authentication = rsa
 }
 image
 {
  name = pmc_subsys
  id = 0x1c000001
  partition
  {
   id = 0xb01
   type = bootloader
   authentication = rsa
   file = gen_files/plm.elf
  }
  partition
  {
   id = 0xb0A
   type = pmcdata, load = 0xf2000000
   file = gen_files/pmc_data_slr_2.cdo
  }
 }
 image
 {
  name = pl_noc
  id = 0x18700000
  partition
  {
   id = 0xb05
   type = cdo
   authentication = rsa
   file = project_1_wrapper_boot_2.rnpi
  }
 }
}
 
bitstream_boot_3:
{
 id_code = 0x04d14093
 extended_id_code = 0x01
 id = 0xb
 
 boot_config {smap_width=0,bh_auth_enable}
 pskfile = PSK3.pem
 sskfile = SSK3.pem
 
 metaheader
 {
  authentication = rsa
 }
 image
 {
  name = pmc_subsys
  id = 0x1c000001
  partition
  {
   id = 0xb01
   type = bootloader
   authentication = rsa
   file = gen_files/plm.elf
  }
  partition
  {
   id = 0xb0A
   type = pmcdata, load = 0xf2000000
   file = gen_files/pmc_data_slr_3.cdo
  }
 }
 image
 {
  name = pl_noc
  id = 0x18700000
  partition
  {
   id = 0xb05
   type = cdo
   authentication = rsa
   file = project_1_wrapper_boot_3.rnpi
  }
 }
}
 
bitstream_1:
{
 id_code = 0x04d14093
 extended_id_code = 0x01
 id = 0xc
 
 pskfile = PSK1.pem
 sskfile = SSK1.pem
 boot_config {smap_width=0,bh_auth_enable}
 
 metaheader
 {
  authentication = rsa
 }
 image
 {
  name = pl_cfi
  id = 0x18700000
  partition
  {
   id = 0xc03
   type = cdo
   authentication = rsa
   file = project_1_wrapper_1.rcdo
  }
  partition
  {
   id = 0xc05
   type = cdo
   authentication = rsa
   file = project_1_wrapper_1.rnpi
  }
 }
}
 
bitstream_2:
{
 id_code = 0x04d14093
 extended_id_code = 0x01
 id = 0xc
 
 pskfile = PSK2.pem
 sskfile = SSK2.pem
 boot_config {smap_width=0,bh_auth_enable}
 
 metaheader
 {
  authentication = rsa
 }
 image
 {
  name = pl_cfi
  id = 0x18700000
  partition
  {
   id = 0xc03
   type = cdo
   authentication = rsa
   file = project_1_wrapper_2.rcdo
  }
  partition
  {
   id = 0xc05
   type = cdo
   authentication = rsa
   file = project_1_wrapper_2.rnpi
  }
 }
}
 
bitstream_3:
{
 id_code = 0x04d14093
 extended_id_code = 0x01
 id = 0xc
 
 pskfile = PSK3.pem
 sskfile = SSK3.pem
 boot_config {smap_width=0,bh_auth_enable}
  
 metaheader
 {
  authentication = rsa
 }
 image
 {
  name = pl_cfi
  id = 0x18700000
  partition
  {
   id = 0xc03
   type = cdo
   authentication = rsa
   file = project_1_wrapper_3.rcdo
  }
  partition
  {
   id = 0xc05
   type = cdo
   authentication = rsa
   file = project_1_wrapper_3.rnpi
  }
 }
}
 
bitstream_master:
{
 id_code = 0x04d14093
 extended_id_code = 0x01
 id = 0x2
 
 boot_config { bh_auth_enable }
 pskfile = psk.pem
 sskfile = ssk.pem
 
 metaheader
 {
  authentication = rsa
 }
 image
 {
  name = pmc_subsys
  id = 0x1c000001
  partition
  {
   id = 0x01
   type = bootloader
   slr = 0
   authentication = rsa
   file = gen_files/plm.elf
  }
  partition
  {
   id = 0x09
   type = pmcdata, load = 0xf2000000
   slr = 0
   file = gen_files/pmc_data.cdo
  }
 }
 image
 {
  name = BOOT_MAS_AUTH
  id = 0x18700000
  type = slr-boot
  partition
  {
   id = 0x05
   type = cdo
   slr = 0
   authentication = rsa
   file = project_1_wrapper_boot_0.rnpi
  }
  partition
  {
   id = 0xb15
   slr = 1
   authentication = rsa
   section = bitstream_boot_1
  }
  partition
  {
   id = 0xb15
   slr = 2
   authentication = rsa
   section = bitstream_boot_2
  }
  partition
  {
   id = 0xb15
   slr = 3
   authentication = rsa
   section = bitstream_boot_3
  }
  partition
  {
   id = 0x02
   type = cdo
   authentication = rsa
   file = noc_pll.rnpi
  }
 }
 image
 {
  name = lpd
  id = 0x4210002
  partition
  {
   id = 0x0C
   type = cdo
   slr = 0
   authentication = rsa
   file = gen_files/lpd_data.cdo
  }
  partition
  {
   id = 0x0B
   core = psm
   slr = 0
   authentication = rsa
   file = static_files/psm_fw.elf
  }
 }
 image
 {
  name = fpd
  id = 0x420c003
  partition
  {
   id = 0x08
   type = cdo
   slr = 0
   authentication = rsa
   file = gen_files/fpd_data.cdo
  }
 }
 image
 {
  name = CONF_MAS_AUTH
  id = 0x18700000
  type = slr-config
  partition
  {
   id = 0xc16
   slr = 1
   authentication = rsa
   section = bitstream_1
  }
  partition
  {
   id = 0xc16
   slr = 2
   authentication = rsa
   section = bitstream_2
  }
  partition
  {
   id = 0xc16
   slr = 3
   authentication = rsa
   section = bitstream_3
  }
  partition
  {
   id = 0x13
   type = cdo
   slr = 0
   authentication = rsa
   file = project_1_wrapper_master_config.rcdo
  }
 }