下表列出了 Bootgen 属性。每个属性都包含 1 个链接,此链接指向左侧列中的详细描述以及右侧列中的简短描述。架构名称用于指示使用该属性的赛灵思器件。
-
zynq
:Zynq-7000 SoC 器件 -
zynqmp
: Zynq® UltraScale+™ MPSoC 器件 -
fpga
:任意 7 系列和更高版本的器件 -
versal
: Versal® ACAP
选项/属性 | 描述 | 使用该属性的器件 |
---|---|---|
aarch32_mode | 指定将以 32 位模式执行的二进制文件。 |
|
aeskeyfile <aes_key_filepath> | 指向 AES 密钥文件的路径。密钥文件包含用于加密分区的 AES 密钥。此密钥文件的内容需写入 eFUSE 或 BBRAM。如果指定路径内不存在密钥文件,则将由 Bootgen 生成新密钥用于加密。例如:如果针对 BIF 文件内的比特流选择了加密,那么输出即为已加密的比特流。 |
|
alignment <byte> | 设置字节对齐。将对此分区进行填充以对齐到该值的倍数。该属性不能配合偏移使用。 |
|
auth_params <options> | 其它身份验证选项:
|
|
authentication <option> | 指定要进行身份验证的分区。
|
|
bbram_kek_iv <filename> |
指定用于加密对应密钥的 IV。bbram_kek_iv 搭配 keysrc=bbram_blk_key 使用时即为有效。 |
|
bh_kek_iv <filename> |
指定用于加密对应密钥的 IV。bh_kek_iv 搭配 keysrc=bh_blk_key 使用时即为有效。 |
|
bh_key_iv <filename> |
解密模糊密钥或黑密钥时使用的初始化矢量。 |
|
bh_keyfile <filename> |
将存储在启动头文件中的 256 位模糊密钥或黑密钥。仅当用于加密的 注释:
Versal 器件不支持模糊密钥。
|
|
bhsignature <filename> | 将启动头文件签名导入身份验证证书。如果您不愿意共享私钥 PSK,则可使用此项。您可创建签名并将其提供给 Bootgen。文件格式为 bootheader.sha384.sig。 |
|
big_endian | 指定二进制文件为大字节序格式。 |
|
blocks <block sizes> | 指定加密中的密钥滚动功能的块大小。每个模块均使用其专用密钥进行加密。初始密钥存储在器件上的密钥源中,而每个后续块的密钥则在前一个模块中进行加密(封装)。 |
|
boot_config <options> | 该属性可指定用于配置启动镜像的参数。 |
|
boot_device <options> | 指定辅助启动器件。指示分区所在的器件。选项包括:
|
|
bootimage <filename.bin> | 指定所列示的输入文件是由 Bootgen 创建的启动镜像。 |
|
bootloader <partition> |
指定分区为启动加载程序 (FSBL/PLM)。该属性随其它分区 BIF 属性一起指定。 |
|
bootvectors <vector_values> | 指定就地执行 (XIP) 的矢量表。 |
|
checksum <options> | 指定需进行校验和的分区。不支持将该选项与更安全的功能(如身份验证和加密)一起使用。校验和算法为:
注释:
Zynq 器件不支持对启动加载程序执行校验和。以下器件可支持对启动加载程序执行校验和操作:
|
|
copy <address> | 该属性可指定将镜像复制到位于指定地址的内存。 |
|
core <options> | 该属性用于指定执行分区的核。
Versal®
ACAP 的选项包括:
|
|
delay_handoff | 该属性可指定延迟交接至子系统/镜像。 |
|
delay_load | 该属性可指定延迟加载子系统/镜像。 |
|
destination_device <device_type> | 指定分区目标为 PS 还是 PL。选项为:
|
|
destination_cpu <device_core> | 指定应执行分区的核。
|
|
early_handoff | 此标记可确保加载分区后立即交接至关键应用;否则,将首先按顺序先加载所有分区,然后同样按顺序执行交接。 |
|
efuse_kek_iv <filename> | 指定用于加密对应密钥的 IV。efuse_kek_iv 搭配 keysrc=efuse_blk_key 使用时即为有效。 |
|
efuse_user_kek0_iv <filename> | 指定用于加密对应密钥的 IV。efuse_user_kek0_iv 搭配 keysrc=efuse_user_blk_key0 使用时即为有效。 |
|
efuse_user_kek1_iv <filename> | 指定用于加密对应密钥的 IV。efuse_user_kek1_iv 搭配 keysrc=efuse_user_blk_key1 使用时即为有效。 |
|
encryption <option> | 指定要加密的分区。加密算法为:zynq 使用 AES-CBC,而 zynqmp 和 Versal 则使用 AES-GCM。
分区选项为:
|
|
exception_level <options> | 应配置核的异常级别。 选项包括:
|
|
familykey <key file> | 指定族密钥。 |
|
file <path/to/file> | 该属性可指定用于创建分区的文件。 |
|
fsbl_config <options> | 指定用于配置启动镜像的子属性。这些子属性包括:
|
|
headersignature <signature_file> | 将头文件签名导入身份验证证书。如果用户不想共享私钥,则可使用此项。用户可创建签名并将其提供给 Bootgen。 |
|
hivec | 指定异常矢量表的位置为 hivec(高矢量)。默认值为 lovec(低矢量)。这仅适用于 A53(32 位)和 R5 核。
|
|
id <id> | 该属性可基于其定义位置来指定以下 ID:
|
|
image | 定义子系统/镜像。 |
|
init <filename> | 位于启动加载程序末尾的寄存器初始化块,通过解析启动 (.int) 文件规格来构建。允许最多 256 个地址/值对。启动文件具有特定格式。 |
|
keysrc | 指定 Versal ACAP 的加密的密钥源。可针对各分区单独指定 keysrc。
|
|
keysrc_encryption | 指定加密的密钥源。密钥包括:
|
|
load <partition_address> | 为内存内的分区设置加载地址。 |
|
metaheader | 该属性用于定义 meta 头文件的加密和身份验证属性,例如,密钥、密钥源等。 |
|
name <name> | 该属性可指定镜像/子系统的名称。 |
|
offset <offset> | 用于设置启动镜像中的分区的绝对偏移。 |
|
parent_id | 该属性可指定父 PDI 的 ID。用于识别部分 PDI 与其对应启动 PDI 之间的关系。 |
|
partition | 该属性用于定义分区。这是可选属性,用于简化 BIF 并使其可读。 |
|
partition_owner 和 owner <option> | 负责加载分区的分区的所有者。选项包括: 对于 Zynq/Zynq UltraScale+ MPSoC:
对于 Versal:
|
|
pid <ID> | 指定分区 ID。PID 可为 32 位值(0 到 0xFFFFFFFF)。 |
|
pmufw_image <image_name> | PMU 固件镜像将由 BootROM 加载(在加载 FSBL 前)。 |
|
ppkfile <key filename> | 主公钥 (PPK)。用于对启动镜像中的分区进行身份验证。 如需了解更多信息,请参阅 使用身份验证。 |
|
presign <sig_filename> | 分区签名 (.sig) 文件。 |
|
pskfile <key filename> | 主私钥 (PSK)。用于对启动镜像中的分区进行身份验证。 如需了解更多信息,请参阅使用身份验证。 |
|
puf_file <filename> | PUF 帮助程序数据文件。PUF 配合黑密钥用作为加密密钥源。PUF 帮助程序数据为 1544 个字节。其中 1536 个字节用于 PUF HD + 4 个字节用于 HASH + 3 个字节用于 AUX + 1 个字节用于对齐。 |
|
reserve <size in bytes> | 保留内存,分区后填充。 |
|
spk_select <SPK_ID> | 指定用户 eFUSE 中的 SPK ID。 |
|
spkfile <filename> | 用于对启动镜像中的分区进行身份验证的密钥。如需了解更多信息,请参阅 使用身份验证。 |
|
spksignature <signature_file> | 将 SPK 签名导入身份验证证书。请参阅 使用身份验证。用户不愿意共享私钥 PSK 时可使用此项。用户可以创建签名并将其提供给 Bootgen。 |
|
split <options> | 根据模式将镜像拆分为多个部分。拆分选项包括:
除拆分模式外,输出格式还可指定为 bin 或 mcs。 注释: 选项拆分模式 normal 与命令行选项 split 相同。此命令行选项已被弃用。仅限 Zynq UltraScale+ MPSoC 才支持 Split ulaveboot。
|
|
sskfile <key filename> | 辅助私钥 (SSK) 用于对启动镜像中的分区进行身份验证。主密钥用于对辅助密钥进行身份验证;辅助密钥用于对分区进行身份验证。 |
|
startup <address> | 加载分区后,设置其输入地址。针对不执行的分区忽略此项。 |
|
trustzone <option> |
TrustZone 选项为:
|
|
type <options> | 该属性用于指定分区类型。选项为:
|
|
udf_bh <data_file> | 将要复制的数据文件导入启动头文件的用户定义字段 (UDF)。UDF 通过十六进制字符串格式的文本文件来提供。UDF 中的字节总数为:zynq = 76 个字节;zynqmp= 40 个字节。 |
|
udf_data <data_file> | 将包含最多 56 字节数据的文件导入身份验证证书的用户定义字段 (UDF)。 |
|
userkeys <filename> | 指向用户密钥文件的路径。 |
|
xip_mode | 指示直接从 QSPI 闪存执行 FSBL 的 eXecute In Place (XIP)。 |
|