堆叠硅片互联技术(SSI 技术)用于打破摩尔定律的限制,提供所需功能以满足最严苛的设计要求。
采用 SSI 技术的器件由多个超级逻辑区域 (SLR) 组成,其中每个 SLR 均为一颗裸片。SLR0 也称为 Master SLR(主 SLR),它是底部裸片。SLR1 是自下而上第二颗裸片,SLR2 是自下而上第三颗,以此类推。AMD Versal™ 自适应 SoC SSI 技术变体可包含最多 4 个 SLR。
每个 SLR 都有其自己的平台管理控制器 (PMC) 和可编程逻辑 (PL) 区域,就像单片器件 Versal 自适应 SoC 一样,但 slave SLR(从 SLR)没有 AI 引擎和处理器系统 (PS) 区域。
要在此器件上启动的最终 PDI 是所有 PDI 的 PDI。由于每个 SLR 都有其自己的 PMC 块,因此每个 SLR 都会随一个 PDI 一起启动,此 PDI 集成在主 PDI 内。
注释: 每个 SLR 中的 PLM elf 都应相同。
含 SSI 技术器件的 Versal 自适应 SoC 的 BIF 不同于其单片器件变体。以下是含 2 个 SLR 器件的 bif 示例。
注释: 以下整个 BIF 代码块都纳入单个文件。Bootgen 会读取多个 BIF 块,并基于 BIF 标签创建各自的 PDI。在主 BIF 中引用这些 BIF 标签,Bootgen 会基于主 BIF 将各 PDI 合并为主 PDI。此主 PDI 即足以启动 SSI 技术器件。
注释: 从 SLR 搭配指示下游连接的特殊 smap_width=0 选项一起使用,且不得更改。
适用于单从 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
}
}
}
适用于双从 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 }
}
}
注释: SSI 技术器件支持 MCS 格式启动镜像/PDI 生成。为从接口生成的中间 PDI 始终采用二进制格式。生成的最终 PDI 将采用 mcs 格式(前提是已选中此格式)。
适用于三从 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
}
}