You can configure compilation flags for the FSBL project using the C/C++ build settings in the Vitis IDE.
Note: There is no need to modify the FSBL source or header files
to apply these flags.
Follow these steps to set the compilation flags:
- In the Explorer view, open the FSBL Project and locate the UserConfig.cmake file.
- Open UserConfig.cmake, navigate to Debugging section, and add the required compilation flags.
- Save the changes and build the project again to apply the updated flags.
Figure 1. FSBL Debug Flags
The following table lists the 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 the "I’m unable to build FSBL due to size issues, how can I reduce its footprint?" section in the FSBL Wiki page for more information.
Enabling Debug Prints
See the FSBL Wiki page for more information on debugging FSBL.