Setting FSBL Compilation Flags - 2021.1 English

Zynq UltraScale+ MPSoC Software Developer Guide (UG1137)

Document ID
UG1137
Release Date
2021-07-13
Version
2021.1 English

You can set compilation flags using the C/C++ settings in the Vitis FSBL project, as shown in the following figure:

Note: There is no need to change any of the FSBL source files or header files to include these flags.
Figure 1. FSBL Debug Flags

The following table lists the FSBL compilation flags.

Table 1. FSBL Compilation Flags
Flag Description
FSBL_DEBUG Prints basic information and error prints, if any.
FSBL_DEBUG_INFO Enables debug information in addition to the basic information.
FSBL_DEBUG_DETAILED Prints information with all data exchanged.
FSBL_NAND_EXCLUDE Excludes NAND support code.
FSBL_QSPI_EXCLUDE Excludes QSPI support code.
FSBL_SD_EXCLUDE Excludes SD support code.
SBL_SECURE_EXCLUDE Excludes authentication code and encryption code but not checksum code.
FSBL_BS_EXCLUDE Excludes bitstream code.
FSBL_EARLY_HANDOFF_EXCLUDE Excludes early handoff related code.
FSBL_WDT_EXCLUDE Excludes WDT support code.
FSBL_PERF_EXCLUDE_VAL Excludes performance prints.
FSBL_A53_TCM_ECC_EXCLUDE_VAL Excludes TCM ECC Init for A53.
FSBL_PL_CLEAR_EXCLUDE_VAL Excludes PL clear unless boot.bin contains bitstream.

FSBL_PROT_BYPASS_EXCLUDE_VAL

Excludes isolation configurations.
8FSBL_PARTITION_LOAD_EXCLUDE_VAL Excluded partition loading.
FSBL_USB_EXCLUDE_VAL Excludes USB code.

This is set to 1 by default.

Set this value to 0 to enable USB boot mode.

FSBL_FORCE_ENC_EXCLUDE_VAL Excludes forcing encryption of all partitions when ENC_ONLY fuse is programmed. By default, this is set to 0.

FSBL forces to enable encryption for all the partitions when ENC_ONLY is programmed.

FSBL_DDR_SR_EXCLUDE_VAL DDR Excludes self refresh code.
FSBL_TPM_EXCLUDE_VAL Excludes TPM related code.
FSBL_PL_LOAD_FROM_OCM_EXCLUDE_VAL Excludes the code to load bitstream in chunks from OCM.
FSBL_UNPROVISIONED_AUTH_SIGN_EXCLUDE_VAL Excludes the code to load authenticated partitions as non-secure when EFUSEs are not programmed and when boot header is not authenticated.

See "I’m unable to build FSBL due to size issues, how can I reduce its footprint?" section in FSBL wiki page for more information.

Enabling Debug Prints

See FSBL wiki page for more information on debugging FSBL.