config BR2_TARGET_UBOOT bool "U-Boot" help Build "Das U-Boot" Boot Monitor https://www.denx.de/wiki/U-Boot if BR2_TARGET_UBOOT choice prompt "Build system" default BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG if BR2_TARGET_UBOOT_LATEST_VERSION default BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY config BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG bool "Kconfig" help Select this option if you use a recent U-Boot version (2015.04 or newer), so that we use the Kconfig build system. config BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY bool "Legacy" help Select this option if you use an old U-Boot (older than 2015.04), so that we use the old build system. endchoice if BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY config BR2_TARGET_UBOOT_BOARDNAME string "U-Boot board name" help One of U-Boot supported boards to be built. This will be suffixed with _config to meet U-Boot standard naming. See boards.cfg in U-Boot source code for the list of available configurations. endif choice prompt "U-Boot Version" help Select the specific U-Boot version you want to use config BR2_TARGET_UBOOT_LATEST_VERSION bool "2022.04" config BR2_TARGET_UBOOT_CUSTOM_VERSION bool "Custom version" help This option allows to use a specific official versions config BR2_TARGET_UBOOT_CUSTOM_TARBALL bool "Custom tarball" config BR2_TARGET_UBOOT_CUSTOM_GIT bool "Custom Git repository" config BR2_TARGET_UBOOT_CUSTOM_HG bool "Custom Mercurial repository" config BR2_TARGET_UBOOT_CUSTOM_SVN bool "Custom Subversion repository" endchoice config BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE string "U-Boot version" depends on BR2_TARGET_UBOOT_CUSTOM_VERSION config BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION string "URL of custom U-Boot tarball" depends on BR2_TARGET_UBOOT_CUSTOM_TARBALL if BR2_TARGET_UBOOT_CUSTOM_GIT || BR2_TARGET_UBOOT_CUSTOM_HG || BR2_TARGET_UBOOT_CUSTOM_SVN config BR2_TARGET_UBOOT_CUSTOM_REPO_URL string "URL of custom repository" config BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION string "Custom repository version" help Revision to use in the typical format used by Git/Mercurial/Subversion E.G. a sha id, a tag, branch, .. endif config BR2_TARGET_UBOOT_VERSION string default "2022.04" if BR2_TARGET_UBOOT_LATEST_VERSION default BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE \ if BR2_TARGET_UBOOT_CUSTOM_VERSION default "custom" if BR2_TARGET_UBOOT_CUSTOM_TARBALL default BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION \ if BR2_TARGET_UBOOT_CUSTOM_GIT || BR2_TARGET_UBOOT_CUSTOM_HG || BR2_TARGET_UBOOT_CUSTOM_SVN config BR2_TARGET_UBOOT_PATCH string "Custom U-Boot patches" default BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR if BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR != "" # legacy help A space-separated list of patches to apply to U-Boot. Each patch can be described as an URL, a local file path, or a directory. In the case of a directory, all files matching *.patch in the directory will be applied. Most users may leave this empty if BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG choice prompt "U-Boot configuration" default BR2_TARGET_UBOOT_USE_DEFCONFIG config BR2_TARGET_UBOOT_USE_DEFCONFIG bool "Using an in-tree board defconfig file" config BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG bool "Using a custom board (def)config file" endchoice config BR2_TARGET_UBOOT_BOARD_DEFCONFIG string "Board defconfig" depends on BR2_TARGET_UBOOT_USE_DEFCONFIG help Name of the board for which U-Boot should be built, without the _defconfig suffix. config BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE string "Configuration file path" depends on BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG help Path to the U-Boot configuration file. config BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES string "Additional configuration fragment files" help A space-separated list of configuration fragment files, that will be merged to the main U-Boot configuration file. endif config BR2_TARGET_UBOOT_NEEDS_DTC bool "U-Boot needs dtc" select BR2_PACKAGE_HOST_DTC help Select this option if your U-Boot board configuration requires the Device Tree compiler to be available. config BR2_TARGET_UBOOT_NEEDS_PYTHON3 bool "U-Boot needs host python 3.x" help Select this option if U-Boot needs a host Python 3.x interpreter. This is the case for some U-Boot configurations, after U-Boot 2020.01. config BR2_TARGET_UBOOT_NEEDS_PYLIBFDT bool "U-Boot needs pylibfdt" select BR2_TARGET_UBOOT_NEEDS_PYTHON3 help Select this option if your U-Boot board configuration requires the Python libfdt library to be available. config BR2_TARGET_UBOOT_NEEDS_PYELFTOOLS bool "U-Boot needs pyelftools" select BR2_TARGET_UBOOT_NEEDS_PYTHON3 help Select this option if your U-Boot board configuration requires the Python pyelftools library to be available. This is used by some rockchip SOCs for elf parsing. For example: rk3399 soc boards. config BR2_TARGET_UBOOT_NEEDS_OPENSSL bool "U-Boot needs OpenSSL" help Select this option if your U-Boot board configuration requires OpenSSL to be available on the host. This is typically the case when the board configuration has CONFIG_FIT_SIGNATURE enabled. config BR2_TARGET_UBOOT_NEEDS_LZOP bool "U-Boot needs lzop" help Select this option if your U-Boot board configuration requires lzop to be available on the host. This is typically the case when the board configuration has CONFIG_SPL_LZO enabled. config BR2_TARGET_UBOOT_NEEDS_GNUTLS bool "U-Boot needs gnutls" help Select this option if your U-Boot board configuration requires gnutls to be available on the host. This is typically the case when the board configuration has CONFIG_TOOLS_MKEFICAPSULE enabled. config BR2_TARGET_UBOOT_NEEDS_UTIL_LINUX bool "U-Boot needs util-linux" help Select this option if your U-Boot board configuration requires util-linux (-luuid) to be available on the host. This is typically the case when the board configuration has CONFIG_TOOLS_MKEFICAPSULE enabled. config BR2_TARGET_UBOOT_NEEDS_XXD bool "U-Boot needs xxd" help Select this option if your U-Boot board configuration requires xxd to be available on the host. This is typically the case when the board configuration has CONFIG_USE_DEFAULT_ENV_FILE enabled. config BR2_TARGET_UBOOT_NEEDS_ATF_BL31 bool "U-Boot needs ATF BL31" depends on BR2_TARGET_ARM_TRUSTED_FIRMWARE depends on !BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33 select BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31 help Some specific platforms (such as Allwinner A64/H5) encapsulate the BL31 part of ATF inside U-Boot. This option makes sure ATF gets built prior to U-Boot, and that the BL31 variable pointing to ATF's BL31 binary, is passed during the Buildroot build. choice prompt "U-Boot ATF BL31 format" default BR2_TARGET_UBOOT_NEEDS_ATF_BL31_BIN depends on BR2_TARGET_UBOOT_NEEDS_ATF_BL31 config BR2_TARGET_UBOOT_NEEDS_ATF_BL31_BIN bool "bl31.bin" config BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF bool "bl31.elf" endchoice config BR2_TARGET_UBOOT_NEEDS_OPTEE_TEE bool "U-Boot needs OPTEE TEE" depends on BR2_TARGET_OPTEE_OS_CORE help Some platforms (such as Rockchip) encapsulate the TEE inside U-Boot. This option makes sure optee-os gets built prior to U-Boot, and that the TEE variable pointing to OPTEE's tee.elf, is passed during the Buildroot build. config BR2_TARGET_UBOOT_NEEDS_OPENSBI bool "U-Boot needs OpenSBI" depends on BR2_TARGET_OPENSBI help Some RISC-V platforms (such as SiFive HiFive Unleashed) encapsulate the OpenSBI firmware image inside U-Boot. This option makes sure OpenSBI gets built prior to U-Boot, and that the OpenSBI variable pointing to OpenSBI binary, is passed during the Buildroot build. config BR2_TARGET_UBOOT_NEEDS_IMX_FIRMWARE bool "U-Boot needs firmware-imx" depends on BR2_PACKAGE_FIRMWARE_IMX depends on BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW || \ BR2_PACKAGE_FIRMWARE_IMX_NEEDS_HDMI_FW help Some i.MX8 platforms (such as i.MX8 M, i.MX 8M Mini, i.MX 8M Nano) encapsulate NXP specific firmware (DDR, HDMI) inside U-Boot. This option makes sure that the i.MX firmwares are copied into the U-Boot source directory. menu "U-Boot binary format" config BR2_TARGET_UBOOT_FORMAT_AIS bool "u-boot.ais" help AIS (Application Image Script) is a format defined by TI. It is required to load code/data on OMAP-L1 processors. u-boot.ais contains U-Boot with the SPL support. config BR2_TARGET_UBOOT_FORMAT_BIN bool "u-boot.bin" default y config BR2_TARGET_UBOOT_FORMAT_DTB bool "u-boot.dtb" config BR2_TARGET_UBOOT_FORMAT_DTB_BIN bool "u-boot-dtb.bin" config BR2_TARGET_UBOOT_FORMAT_NAND_BIN bool "u-boot-nand.bin" config BR2_TARGET_UBOOT_FORMAT_ELF bool "u-boot" help Install the u-boot image, which is directly the ELF binary for the main U-Boot, potentially with debugging symbols. config BR2_TARGET_UBOOT_FORMAT_REMAKE_ELF bool "u-boot.elf" help Install the u-boot.elf image, which is produced when CONFIG_REMAKE_ELF=y. It is an ELF image (u-boot.elf) produced from the raw U-Boot binary (u-boot.bin), which may already have been statically relocated and may already have a device-tree appended to it. config BR2_TARGET_UBOOT_FORMAT_IMG bool "u-boot.img" config BR2_TARGET_UBOOT_FORMAT_DTB_IMG bool "u-boot-dtb.img" config BR2_TARGET_UBOOT_FORMAT_IMX bool "u-boot.imx" config BR2_TARGET_UBOOT_FORMAT_DTB_IMX bool "u-boot-dtb.imx" config BR2_TARGET_UBOOT_FORMAT_ITB bool "u-boot.itb" config BR2_TARGET_UBOOT_FORMAT_KWB bool "u-boot.kwb (Marvell)" depends on BR2_arm config BR2_TARGET_UBOOT_FORMAT_NAND bool "u-boot.nand (Freescale i.MX28)" depends on BR2_arm help This is Freescale i.MX28 BootStream format (.sb), with a header for booting from a NAND flash. U-Boot includes an mxsboot tool to generate this format, starting from 2011.12. There are two possibilities when preparing an image writable to NAND flash: 1) The NAND was not written at all yet or the BCB (Boot Control Blocks) is broken. In this case, the NAND image 'u-boot.nand' needs to written. 2) The NAND flash was already written with a good BCB. This applies after 'u-boot.nand' was correctly written. There is no need to write the BCB again. In this case, the bootloader can be upgraded by writing 'u-boot.sb'. To satisfy both cases, the 'u-boot.nand' image obtained from mxsboot as well as the U-Boot make target 'u-boot.sb' are copied to the binaries directory. See doc/README.mxs (or doc/README.mx28_common before 2013.07) if BR2_TARGET_UBOOT_FORMAT_NAND config BR2_TARGET_UBOOT_FORMAT_NAND_PAGE_SIZE int "NAND page size" default 2048 help The NAND page size of the targets NAND flash in bytes as a decimal integer value. The value provided here is passed to the -w option of mxsboot. config BR2_TARGET_UBOOT_FORMAT_NAND_OOB_SIZE int "NAND OOB size" default 64 help The NAND OOB size of the targets NAND flash in bytes as a decimal integer value. The value provided here is passed to the -o option of mxsboot. config BR2_TARGET_UBOOT_FORMAT_NAND_ERASE_SIZE int "NAND erase size" default 131072 help The NAND eraseblock size of the targets NAND flash in bytes as a decimal integer value. The value provided here is passed to the -e option of mxsboot. endif config BR2_TARGET_UBOOT_FORMAT_SB bool "u-boot.sb (Freescale i.MX28)" depends on BR2_arm config BR2_TARGET_UBOOT_FORMAT_SD bool "u-boot.sd (Freescale i.MX28)" depends on BR2_arm help This is Freescale i.MX28 SB format, with a header for booting from an SD card. U-Boot includes an mxsboot tool to generate this format, starting from 2011.12. See doc/README.mxs (or doc/README.mx28_common before 2013.07) config BR2_TARGET_UBOOT_FORMAT_STM32 bool "u-boot.stm32" depends on BR2_arm config BR2_TARGET_UBOOT_FORMAT_CUSTOM bool "Custom (specify below)" help On some platforms, the standard U-Boot binary is not called u-boot.bin, but u-boot.bin. If this is your case, you should select this option and specify the correct name(s) in BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME. config BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME string "U-Boot binary format: custom names" depends on BR2_TARGET_UBOOT_FORMAT_CUSTOM help In case the U-Boot binary for the target platform is not among the default names, one or more custom names can be listed here. Use space to separate multiple names. Example: u-boot_magic.bin endmenu config BR2_TARGET_UBOOT_OMAP_IFT bool "produce a .ift signed image (OMAP)" depends on BR2_TARGET_UBOOT_FORMAT_BIN depends on BR2_arm || BR2_armeb select BR2_PACKAGE_HOST_OMAP_U_BOOT_UTILS help Use gpsign to produce an image of u-boot.bin signed with a Configuration Header for booting on OMAP processors. This allows U-Boot to boot without the need for an intermediate bootloader (e.g. x-loader) if it is written on the first sector of the boot medium. This only works for some media, such as NAND. Check your chip documentation for details. You might also want to read the documentation of gpsign, the tool that generates the .ift image, at: https://github.com/nmenon/omap-u-boot-utils/blob/master/README if BR2_TARGET_UBOOT_OMAP_IFT config BR2_TARGET_UBOOT_OMAP_IFT_CONFIG string "gpsign Configuration Header config file" help The Configuration Header (CH) config file defines the desired content of the CH for the signed image. It usually contains external RAM settings and possibly other external devices initialization. The omap-u-boot-utils software contains example configuration files for some boards: https://github.com/nmenon/omap-u-boot-utils/tree/master/configs endif config BR2_TARGET_UBOOT_SPL bool "Install U-Boot SPL binary image" help Install the U-Boot SPL binary image to the images directory. SPL is a first stage bootloader loaded into internal memory in charge of enabling and configuring the external memory (DDR), and load the u-boot program into DDR. config BR2_TARGET_UBOOT_SPL_NAME string "U-Boot SPL/TPL binary image name(s)" default "spl/u-boot-spl.bin" depends on BR2_TARGET_UBOOT_SPL help A space-separated list of SPL/TPL binaries, generated during u-boot build. For most platform SPL name is spl/u-boot-spl.bin and TPL name is tpl/u-boot-tpl.bin but not always. SPL name is MLO on OMAP and SPL on i.MX6 for example. config BR2_TARGET_UBOOT_ZYNQMP bool "Boot on the Xilinx ZynqMP SoCs" depends on BR2_aarch64 help Enable options specific to the Xilinx ZynqMP family of SoCs. if BR2_TARGET_UBOOT_ZYNQMP config BR2_TARGET_UBOOT_ZYNQMP_PMUFW string "PMU firmware location" depends on BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG help Location of a PMU firmware binary. If not empty, instructs the U-Boot build process to generate a boot.bin (to be loaded by the ZynqMP boot ROM) containing both the U-Boot SPL and the PMU firmware in the Xilinx-specific boot format. The value can be an absolute or relative path, and will be used directly from where it is located, or an URI (e.g. http://...), and it will be downloaded and used from the download directory. The PMU firmware binary can be either in ELF or BIN format. If empty, the generated boot.bin will not contain a PMU firmware. This feature requires U-Boot >= 2018.07. config BR2_TARGET_UBOOT_ZYNQMP_PM_CFG string "PMU configuration location" depends on BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG help Location of a PMU configuration file. If not empty, Buildroot will convert the PMU configuration file into a loadable blob and pass it to U-Boot. The blob gets embedded into the U-Boot SPL and is used to configure the PMU during board initialization. Unlike the PMU firmware, the PMU configuration file is unique to each board configuration. A PMU configuration file can be generated by building your Xilinx SDK BSP. It can be found in the BSP source, for example at ./psu_cortexa53_0/libsrc/xilpm_v2_4/src/pm_cfg_obj.c Leave this option empty if your PMU firmware has a hard-coded configuration object or you are loading it by any other means. This feature requires U-Boot >= v2019.10. config BR2_TARGET_UBOOT_ZYNQMP_PSU_INIT_FILE string "Custom psu_init_gpl file" depends on BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG help On ZynqMP the booloader is responsible for some basic initializations, such as enabling peripherals and configuring pinmuxes. The psu_init_gpl.c file (and, optionally, psu_init_gpl.h) contains the code for such initializations. Although U-Boot contains psu_init_gpl.c files for some boards, each of them describes only one specific configuration. Users of a different board, or needing a different configuration, can generate custom files using the Xilinx development tools. Set this variable to the path to your psu_init_gpl.c file (e.g. "board/myboard/psu_init_gpl.c"). psu_init_gpl.h, if needed, should be in the same directory. U-Boot will build and link the user-provided file instead of the built-in one. Leave empty to use the files provided by U-Boot. This feature requires commit 6da4f67ad09cd8b311d77b2b04e557b7ef65b56c from upstream U-Boot, available from versions after 2018.07. endif config BR2_TARGET_UBOOT_ALTERA_SOCFPGA_IMAGE_CRC bool "CRC image for Altera SoC FPGA (mkpimage)" depends on BR2_arm depends on BR2_TARGET_UBOOT_SPL || BR2_TARGET_UBOOT_FORMAT_DTB_BIN help Pass the U-Boot image through the mkpimage tool to enable booting on the Altera SoC FPGA based platforms. On some platforms, it's the SPL that needs to be passed through mkpimage. On some other platforms there is no SPL because the internal SRAM is big enough to store the full U-Boot. In this case, it's directly the full U-Boot image that is passed through mkpimage. If BR2_TARGET_UBOOT_SPL is enabled then BR2_TARGET_UBOOT_SPL_NAME is converted by mkpimage using header version 0. Otherwise the full u-boot-dtb.bin is converted using mkpimage header version 1. In either case the resulting file will be given a .crc extension. if BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG config BR2_TARGET_UBOOT_CUSTOM_DTS_PATH string "Device Tree Source file paths" help Space-separated list of paths to device tree source files that will be copied to arch/ARCH/dts/ before starting the build. To use this device tree source file, the U-Boot configuration file must refer to it. endif config BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS string "Custom make options" help List of custom make options passed at build time. Can be used for example to pass a DEVICE_TREE= value. endif # BR2_TARGET_UBOOT