属性 - 2023.2 简体中文

Vitis 统一软件平台文档 嵌入式软件开发 (UG1400)

Document ID
UG1400
Release Date
2023-12-13
Version
2023.2 简体中文

下表列出了 Bootgen 属性。每个属性都包含 1 个链接,此链接指向左侧列中的详细描述以及右侧列中的简短描述。架构名称用于指示使用该属性的 AMD 器件:

  • zynqZynq 7000 SoC 器件
  • zynqmpAMD Zynq™ UltraScale+™ MPSoC 器件
  • fpga:任意 7 系列和更高版本的器件
  • versalAMD Versal™ 自适应 SoC。
如需了解更多信息,请参阅 BIF 属性参考
表 1. Bootgen 属性和描述
选项/属性 描述 适用于
aarch32_mode 指定将以 32 位模式执行的二进制文件。
  • zynqmp
  • versal
aeskeyfile <aes_key_filepath> 指向 AES 密钥文件的路径。密钥文件包含用于加密分区的 AES 密钥。此密钥文件的内容需写入 eFUSE 或 BBRAM。如果指定路径内不存在密钥文件,则将由 Bootgen 生成新密钥用于加密。例如:如果针对 BIF 文件内的比特流选择了加密,那么输出即为已加密的比特流。
  • 全部
alignment <byte> 设置字节对齐。对此分区进行填充以对齐到该值的倍数。该属性不能配合偏移使用。
  • zynq
  • zynqmp
auth_params <options> 其他身份验证选项:
  • ppk_select:针对受支持的 2 个 PPK,0=1,1=2。
  • spk_id:32 位 ID,用于区分 SPK。
  • spk_select:用于区分 spk 和用户 eFUSE。默认值为 spk-efuse。
  • header_auth:在不对分区进行身份验证的情况下用于对头文件进行身份验证。
  • zynqmp
authentication <option> 指定要进行身份验证的分区。
  • Zynq 的身份验证是使用 RSA-2048 完成的。
  • Zynq UltraScale+ MPSoC 的身份验证是使用 RSA-4096 完成的。
  • Versal 自适应 SoC 是使用 RSA-4096、ECDSA-p384 和 ECDSA-p521 进行身份验证的。
实参包括:
  • none:分区未签名。
  • ecdsa-p384:分区已使用 ecdsa-p384 曲线签名
  • ecdsa-p521:分区已使用 ecdsa-p521 曲线签名
  • rsa:分区已使用 RSA 算法签名。
  • 全部

bbram_kek_iv <filename>

指定用于加密对应密钥的 IV。bbram_kek_iv 搭配 keysrc=bbram_blk_key 使用时即为有效。
  • versal

bh_kek_iv <filename>

指定用于加密对应密钥的 IV。bh_kek_iv 搭配 keysrc=bh_blk_key 使用时即为有效。
  • versal
bh_key_iv <filename>

解密模糊密钥或黑密钥时使用的初始化矢量。

  • zynqmp
bh_keyfile <filename>

将存储在启动头文件中的 256 位模糊密钥或黑密钥。仅当用于加密的 keysrcbh_gry_keybh_blk_key 时,此项才有效。

注释: Versal 器件不支持模糊密钥。
  • zynqmp
  • versal
bhsignature <filename> 将启动头文件签名导入身份验证证书。如果您不愿意共享私钥 PSK,则可使用此项。您可创建签名并将其提供给 Bootgen。文件格式为 bootheader.sha384.sig
  • zynqmp
  • versal
big_endian 指定二进制文件为大字节序格式。
  • zynqmp
  • versal
blocks <block sizes> 指定加密中的密钥滚动功能的块大小。每个模块均使用其专用密钥进行加密。初始密钥存储在器件上的密钥源中,而每个后续块的密钥则在前一个模块中进行加密(封装)。
  • zynqmp
  • versal
boot_config <options> 该属性可指定用于配置启动镜像的参数。
  • versal
boot_device <options> 指定辅助启动器件。指示分区所在的器件。选项包括:
  • qspi32
  • qspi24
  • nand
  • sd0
  • sd1
  • sd-ls
  • mmc
  • usb
  • ethernet
  • pcie
  • sata
  • ospi
  • smap
  • sbi
  • sd0-raw
  • sd1-raw
  • sd-ls-raw
  • mmc-raw
  • mmc0
  • mmc0-raw
注释: 针对 Bootgen 中的各种器件,支持使用这些选项。要获取辅助启动选项的列表,请参阅 Versal 自适应 SoC 系统软件开发者指南(UG1304) Zynq UltraScale+ MPSoC:软件开发指南(UG1137)。如需了解硬件/寄存器/接口信息和主启动模式,请参阅对应的 TRM,例如, Zynq UltraScale+ 器件技术参考手册(UG1085) Versal 自适应 SoC 技术参考手册(AM011) Versal 自适应 SoC 寄存器参考资料(AM012)
  • zynqmp
  • versal
bootimage <filename.bin> 指定所列示的输入文件是由 Bootgen 创建的启动镜像。
  • zynq
  • zynqmp
  • versal
bootloader <partition>

指定分区为启动加载程序 (FSBL/PLM)。该属性随其他分区 BIF 属性一起指定。

  • zynq
  • zynqmp
  • versal
bootvectors <vector_values> 指定就地执行 (XIP) 的矢量表。
  • zynqmp
checksum <options> 指定需进行校验和的分区。不支持将该选项与更安全的功能(如身份验证和加密)一起使用。校验和算法为:
  • none:不执行校验和操作。
  • md5:仅限 AMD Zynq™ 7000 SoC 器件。
  • sha3:仅限 AMD Zynq™ UltraScale+™ MPSoC 器件和 Versal 器件。
注释: Zynq 器件不支持对启动加载程序执行校验和。以下器件可支持对启动加载程序执行校验和操作:
  • Zynq UltraScale+ MPSoC
  • Versal 自适应 SoC
  • zynq
  • zynqmp
  • versal
copy <address> 该属性可指定将镜像复制到位于指定地址的内存。
  • versal
core <options> 该属性用于指定执行分区的核。AMD Versal™ 自适应 SoC 的选项包括:
  • a72-0
  • a72-1
  • r5-0
  • r5-1
  • psm
  • aie
  • r5-lockstep
  • versal
delay_handoff 该属性可指定延迟交接至子系统/镜像。
  • versal
delay_load 该属性可指定延迟加载子系统/镜像。
  • versal
delay_auth 表示在后续阶段执行身份验证。这有助于 Bootgen 在分区加密期间保留空间以供散列使用。
  • versal
destination_device <device_type> 指定分区目标为 PS 还是 PL。选项为:
  • ps:分区目标为 PS(默认值)。
  • pl:分区目标为 PL(适用于比特流)。
  • zynqmp
destination_cpu <device_core> 指定应执行分区的核。
  • a53-0
  • a53-1
  • a53-2
  • a53-3
  • r5-0 (default)
  • r5-1
  • pmu
  • r5-lockstep
  • zynqmp
early_handoff 此标志可确保加载分区后立即交接至关键应用;否则,将首先按顺序先加载所有分区,然后同样按顺序执行交接。
  • zynqmp
efuse_kek_iv <filename> 指定用于加密对应密钥的 IV。efuse_kek_iv 搭配 keysrc=efuse_blk_key 使用时即为有效。
  • versal
efuse_user_kek0_iv <filename> 指定用于加密对应密钥的 IV。efuse_user_kek0_iv 搭配 keysrc=efuse_user_blk_key0 使用时即为有效。
  • versal
efuse_user_kek1_iv <filename> 指定用于加密对应密钥的 IV。efuse_user_kek1_iv 搭配 keysrc=efuse_user_blk_key1 使用时即为有效。
  • versal
encryption <option> 指定要加密的分区。加密算法为:zynq 使用 AES-CBC,而 zynqmp 和 Versal 则使用 AES-GCM。
分区选项为:
  • none:分区不执行加密。
  • aes:分区使用 AES 算法执行加密。
  • 全部
exception_level <options> 核应配置为所示异常级别。

选项包括:

  • el-0
  • el-1
  • el-2
  • el-3
  • zynqmp
  • versal
familykey <key file> 指定族密钥。
  • zynqmp
  • fpga
file <path/to/file> 该属性可指定用于创建分区的文件。
  • versal
fsbl_config <options> 指定用于配置启动镜像的子属性。这些子属性包括:
  • bh_auth_enable:启动镜像的 RSA 身份验证是在不对 PPK 散列和 SPK ID 进行身份验证的情况下完成的。
  • auth_only:启动镜像仅使用 RSA 签名。FSBL 不应进行解密。
  • opt_key:使用运行密钥进行 block-0 解密。安全头文件具有运行密钥。
  • pufhd_bh:PUF 帮助程序数据存储在启动头文件中(默认值为 efuse)。
  • 使用 [puf_file] 选项将 PUF 帮助程序数据文件传递到 Bootgen。
  • puf4kmode:PUF 调整为在 4k 位配置内使用。
  • shutter = <value>:32 位 PUF_SHUT 寄存器值,用于配置 PUF 的快门偏移时间和快门打开时间。
    注释: 此快门值必须与 PUF 寄存期间使用的快门值相匹配。
  • zynqmp
headersignature <signature_file> 将头文件签名导入身份验证证书。如果您不想共享私钥,则可使用此项。您可创建签名并将其提供给 Bootgen。
  • zynq
  • zynqmp
  • versal
hivec 指定异常矢量表的位置为 hivec(高矢量)。默认值为 lovec(低矢量)。这仅适用于 A53(32 位)和 R5 核。
  • hivec:异常矢量表位于 0xFFFF0000
  • lovec:异常矢量表位于 0x00000000
  • zynqmp
id <id> 该属性可基于其定义位置来指定以下 ID:
  • pdi id - 在最外层/PDI 括号内
  • image id - 在镜像括号内
  • partition id - 在分区括号内
  • versal
image 定义子系统/镜像。
  • versal
init <filename> 位于启动加载程序末尾的寄存器初始化块,通过解析启动 (.int) 文件规格来构建。允许最多 256 个地址/值对。启动文件具有特定格式。
  • zynq
  • zynqmp
  • versal
keysrc 指定 Versal 自适应 SoC 的加密的密钥源。可针对各分区单独指定 keysrc。
  • efuse_red_key
  • efuse_blk_key
  • bbram_red_key
  • bbram_blk_key
  • bh_blk_key
  • user_key0
  • user_key1
  • user_key2
  • user_key3
  • user_key4
  • user_key5
  • user_key6
  • user_key7
  • efuse_user_key0
  • efuse_user_blk_key0
  • efuse_user_key1
  • efuse_user_blk_key1
  • versal
keysrc_encryption 指定加密的密钥源。密钥包括:
  • efuse_gry_key:eFUSE 中存储的灰(模糊)密钥。请参阅 灰密钥/模糊密钥
  • bh_gry_key:启动头文件中存储的灰(模糊)密钥。
  • bh_blk_key:启动头文件中存储的黑密钥。请参阅 黑密钥/PUF 密钥
  • efuse_blk_key:eFUSE 中存储的黑密钥。
  • kup_key:用户密钥。
  • efuse_red_key:eFUSE 中存储的红密钥。请参阅 密钥滚动
  • bbram_red_key:BBRAM 中存储的红密钥。
  • zynq
  • zynqmp
load <address> 为存储器内的分区设置期望的加载地址。
  • zynq
  • zynqmp
  • versal
metaheader 该属性用于定义 meta 头文件的加密和身份验证属性,例如,密钥、密钥源等。
  • versal
name <name> 该属性可指定镜像/子系统的名称。
  • versal
offset <offset> 用于设置启动镜像中的分区的绝对偏移。
  • zynq
  • zynqmp
  • versal
parent_id 该属性可指定父 PDI 的 ID。用于识别部分 PDI 与其对应启动 PDI 之间的关系。
  • versal
partition 该属性用于定义分区。这是可选属性,用于简化 BIF 并使其可读。
  • versal
partition_owner 和 owner <option> 负责加载分区的分区的所有者。选项包括:
对于 Zynq/Zynq UltraScale+ MPSoC
  • fsbl:分区由 FSBL 加载。
  • uboot:分区由 U-Boot 加载。
对于 Versal
  • plm:分区由 PLM 加载。
  • non-plm:分区并非由 PLM 加载,而是由其他实体(如 U-Boot)加载。
  • zynq
  • zynqmp
  • versal
pid <ID> 指定分区 ID。PID 可为 32 位值(0 到 0xFFFFFFFF)。
  • zynqmp
pmufw_image <image_name> PMU 固件镜像将由 BootROM 加载(在加载 FSBL 前)。
  • zynqmp
ppkfile <key filename> 主公钥 (PPK)。用于对启动镜像中的分区进行身份验证。

如需了解更多信息,请参阅 使用身份验证

  • zynq
  • zynqmp
  • versal
presign <sig_filename> 分区签名 (.sig) 文件。
  • zynq
  • zynqmp
  • fpga
pskfile <key filename> 主私钥 (PSK)。用于对启动镜像中的分区进行身份验证。

如需了解更多信息,请参阅 使用身份验证

  • zynq
  • zynqmp
  • versal
puf_file <filename> PUF 帮助程序数据文件。PUF 配合黑密钥用作为加密密钥源。PUF 帮助程序数据为 1544 字节。其中 1536 个字节用于 PUF HD + 4 字节用于 HASH + 3 字节用于 AUX + 1 字节用于对齐。
  • zynqmp
  • versal
reserve <size in bytes> 保留内存,分区后填充。
  • zynq
  • zynqmp
  • versal
spk_select <SPK_ID> 指定用户 eFUSE 中的 SPK ID。
  • zynqmp
spkfile <filename> 用于对启动镜像中的分区进行身份验证的密钥。如需了解更多信息,请参阅 使用身份验证
  • 全部
spksignature <signature_file> 将 SPK 签名导入身份验证证书。请参阅 使用身份验证。您不愿意共享私钥 PSK 时可使用此项。您可以创建签名并将其提供给 Bootgen。
  • zynq
  • zynqmp
  • versal
split <options> 根据模式将镜像拆分为多个部分。拆分选项包括:
  • Slaveboot:仅受 Zynq UltraScale+ MPSoC 支持。按如下方式拆分:
  • 启动头文件 + 启动加载程序
  • 镜像和分区头文件
  • 其他分区
  • normal:受 zynq、zynqmp 和 versal 支持。按如下方式拆分:
  • 启动头文件 + 镜像头文件 + 分区头文件 + 启动加载程序
  • Partition1
  • Partition2 以此类推

除拆分模式外,输出格式还可指定为 binmcs

注释: 选项拆分模式 normal 与命令行选项 split 相同。此命令行选项已被弃用。仅限 Zynq UltraScale+ MPSoC 才支持 Split ulaveboot。
  • zynq
  • zynqmp
  • versal
sskfile <key filename> 辅助私钥 (SSK) 用于对启动镜像中的分区进行身份验证。主密钥用于对辅助密钥进行身份验证;辅助密钥用于对分区进行身份验证。
  • 全部
startup <address> 加载分区后,设置其输入地址。针对不执行的分区忽略此项。
  • zynq
  • zynqmp
  • versal
trustzone <option>
TrustZone 选项为:
  • secure
  • nonsecure
  • zynqmp
  • versal
type <options> 该属性用于指定分区类型。选项为:
  • bootloader
  • pmcdata
  • cdo
  • cfi
  • cfi-gsc
  • bootimage
  • slr-boot
  • slr-config
  • versal
udf_bh <data_file> 将要复制的数据文件导入启动头文件的用户定义字段 (UDF)。UDF 通过十六进制字符串格式的文本文件来提供。UDF 中的字节总数为:zynq = 76 字节;zynqmp= 40 字节。
  • zynq
  • zynqmp
udf_data <data_file> 将包含最多 56 字节数据的文件导入身份验证证书的用户定义字段 (UDF)。
  • zynq
  • zynqmp
userkeys <filename> 指向用户密钥文件的路径。
  • versal
xip_mode 指示直接从 QSPI 闪存执行 FSBL 的 eXecute In Place (XIP)。
  • zynq
  • zynqmp