Stacked Silicon Interconnect Technology (SSI technology) is used to break through the limitations of Moore’s law and deliver the capabilities to satisfy the most demanding design requirements.
A SSI Technology device consists of multiple super logic region (SLRs), where each SLR is one die. SLR0, also referred to as Master SLR, is the bottom die. SLR1 is second from bottom, SLR2 is third from bottom and so on. The AMD Versal™ adaptive SoC SSI technology variants can have a maximum of four SLRs.
Each SLR has its own platform management controller (PMC) and a programmable logic (PL) region like a monolithic Versal adaptive SoC, but the slave SLRs do not have AI Engine and processing system (PS) regions.
SSI technology Non Secure Bif Example for a Single Slave SLR Device:
Example- HBM Devices
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
}
}
}
SSI technology Non Secure Bif Example for a 2 Slave SLR Device:
// 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 technology Authentication Bif Example for a 3 Slave SLR Device:
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
}
}