822c34c301
U-Boot SPL configures pinmuxes, clocks and other low-level devices. On the Xilinx ZynqMP SoCs the code to do this resides in a file called psu_init_gpl.c which is initially generated by the Xilinx development tools. Add an option to pass these files from the outside (e.g. in the board files). For this to work properly, a patch to U-Boot is needed. However this patch must be applied by each defconfig using BR2_TARGET_UBOOT_ZYNQMP_PSU_INIT_DIR. If it were in boot/uboot/ to be applied unconditionally, it would break the build for configs using a U-Boot version where the patch is already applied. Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net> Cc: Joel Carlson <joelsoncarl@gmail.com> Reviewed-by: Joel Carlson <JoelsonCarl@gmail.com> Tested-by: Joel Carlson <JoelsonCarl@gmail.com> [Thomas: add comment about U-Boot version requirements to use this option.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
525 lines
16 KiB
Plaintext
525 lines
16 KiB
Plaintext
config BR2_TARGET_UBOOT
|
|
bool "U-Boot"
|
|
help
|
|
Build "Das U-Boot" Boot Monitor
|
|
|
|
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 "2018.07"
|
|
|
|
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"
|
|
default BR2_TARGET_UBOOT_CUSTOM_GIT_REPO_URL \
|
|
if BR2_TARGET_UBOOT_CUSTOM_GIT_REPO_URL != "" # legacy
|
|
|
|
config BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION
|
|
string "Custom repository version"
|
|
default BR2_TARGET_UBOOT_CUSTOM_GIT_VERSION \
|
|
if BR2_TARGET_UBOOT_CUSTOM_GIT_VERSION != "" # legacy
|
|
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 "2018.07" 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_PYLIBFDT
|
|
bool "U-Boot needs pylibfdt"
|
|
help
|
|
Select this option if your U-Boot board configuration
|
|
requires the Python libfdt library to be available.
|
|
|
|
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_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.
|
|
|
|
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_BIN
|
|
bool "u-boot-dtb.bin"
|
|
|
|
config BR2_TARGET_UBOOT_FORMAT_DTB_IMG
|
|
bool "u-boot-dtb.img"
|
|
|
|
config BR2_TARGET_UBOOT_FORMAT_DTB_IMX
|
|
bool "u-boot-dtb.imx"
|
|
|
|
config BR2_TARGET_UBOOT_FORMAT_IMG
|
|
bool "u-boot.img"
|
|
|
|
config BR2_TARGET_UBOOT_FORMAT_IMX
|
|
bool "u-boot.imx"
|
|
|
|
config BR2_TARGET_UBOOT_FORMAT_NAND_BIN
|
|
bool "u-boot-nand.bin"
|
|
|
|
config BR2_TARGET_UBOOT_FORMAT_KWB
|
|
bool "u-boot.kwb (Marvell)"
|
|
depends on BR2_arm
|
|
|
|
config BR2_TARGET_UBOOT_FORMAT_ELF
|
|
bool "u-boot.elf"
|
|
|
|
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_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_CUSTOM
|
|
bool "Custom (specify below)"
|
|
help
|
|
On some platforms, the standard U-Boot binary is not called
|
|
u-boot.bin, but u-boot<something>.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"
|
|
depends on !BR2_TARGET_XLOADER
|
|
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_ZYNQ_IMAGE
|
|
bool "Generate image for Xilinx Zynq"
|
|
depends on BR2_arm
|
|
depends on BR2_TARGET_UBOOT_SPL
|
|
depends on BR2_TARGET_UBOOT_FORMAT_DTB_IMG
|
|
help
|
|
Generate the BOOT.BIN file from U-Boot's SPL. The image
|
|
boots the Xilinx Zynq chip without any FPGA bitstream.
|
|
A bitstream can be loaded by the U-Boot. The SPL searchs
|
|
for u-boot-dtb.img file so this U-Boot format is required
|
|
to be set.
|
|
|
|
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.
|
|
|
|
If empty, the generated boot.bin will not contain a PMU
|
|
firmware.
|
|
|
|
This feature requires U-Boot >= 2018.07.
|
|
|
|
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.
|
|
|
|
menuconfig BR2_TARGET_UBOOT_ENVIMAGE
|
|
bool "Environment image"
|
|
help
|
|
Generate a valid binary environment image from a text file
|
|
describing the key=value pairs of the environment.
|
|
|
|
The environment image will be called uboot-env.bin.
|
|
|
|
if BR2_TARGET_UBOOT_ENVIMAGE
|
|
|
|
config BR2_TARGET_UBOOT_ENVIMAGE_SOURCE
|
|
string "Source files for environment"
|
|
help
|
|
Text files describing the environment. Files should have
|
|
lines of the form var=value, one per line. Blank lines and
|
|
lines starting with a # are ignored.
|
|
|
|
Multiple source files are concatenated in the order listed.
|
|
|
|
config BR2_TARGET_UBOOT_ENVIMAGE_SIZE
|
|
string "Size of environment"
|
|
help
|
|
Size of envronment, can be prefixed with 0x for hexadecimal
|
|
values.
|
|
|
|
config BR2_TARGET_UBOOT_ENVIMAGE_REDUNDANT
|
|
bool "Environment has two copies"
|
|
help
|
|
Some platforms define in their U-Boot configuration that the
|
|
U-Boot environment should be duplicated in two locations (for
|
|
extra safety). Check your U-Boot configuration for the
|
|
CONFIG_ENV_ADDR_REDUND and CONFIG_ENV_SIZE_REDUND settings to
|
|
see if this is the case for your platform.
|
|
|
|
If it is the case, then you should enable this option to
|
|
ensure that the U-Boot environment image generated by
|
|
Buildroot is compatible with the "redundant environment"
|
|
mechanism of U-Boot.
|
|
|
|
endif # BR2_TARGET_UBOOT_ENVIMAGE
|
|
|
|
config BR2_TARGET_UBOOT_BOOT_SCRIPT
|
|
bool "Generate a U-Boot boot script"
|
|
help
|
|
Generate a U-Boot boot script, given a file listing U-Boot
|
|
commands to be executed at boot time. The generated boot
|
|
script will be called 'boot.scr'.
|
|
|
|
if BR2_TARGET_UBOOT_BOOT_SCRIPT
|
|
|
|
config BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE
|
|
string "U-Boot boot script source"
|
|
help
|
|
Source file to generate the U-Boot boot script.
|
|
|
|
endif
|
|
|
|
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
|
|
|
|
endif # BR2_TARGET_UBOOT
|