aboutsummaryrefslogtreecommitdiff
path: root/boot/uboot
diff options
context:
space:
mode:
authorGravatar Jagan Teki <jagannadh.teki@gmail.com>2017-12-03 22:48:07 +0100
committerGravatar Peter Korsgaard <peter@korsgaard.com>2017-12-08 13:37:49 +0100
commit2c4809e6088660dc71de9de8cee0bba312aafbe4 (patch)
tree8ae62f54097551a4be8665a76987988fe26d7c88 /boot/uboot
parent968445911362642d4e353a4c5cdb8bc6fdaf6b92 (diff)
downloadbuildroot-2c4809e6088660dc71de9de8cee0bba312aafbe4.tar.gz
buildroot-2c4809e6088660dc71de9de8cee0bba312aafbe4.tar.bz2
uboot: add support for bundling ATF BL31 into U-Boot
Some ARM64 platforms (such as Allwinner A64/H5) have a boot process where U-Boot encapsulates the BL31 part of the ARM trusted firmware. For such platforms, we need to build ATF before U-Boot, and pass a BL31 variable pointing to ATF bl31.bin to the U-Boot build process. This commit introduces a BR2_TARGET_UBOOT_NEEDS_ATF_BL31 variable to achieve this. Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> [Thomas: - Rename option to BR2_TARGET_UBOOT_NEEDS_ATF_BL31 - Drop changes to arm-trusted-firmware.mk, they are taken care of by previous commits. - Improve Config.in help text - Add missing dependency on arm-trusted-firmware when BR2_TARGET_UBOOT_NEEDS_ATF_BL31 is enabled. - Use bl31.bin from $(BINARIES_DIR) instead of taking it from ATF's build dir.] [Peter: depend on toplevel atf option and select bl31 option. Ensure it cannot be enabled together with ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33 as that would cause circular dependencies] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Tested-by: Jagan Teki <jagan@amarulasolutions.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Diffstat (limited to 'boot/uboot')
-rw-r--r--boot/uboot/Config.in12
-rw-r--r--boot/uboot/uboot.mk5
2 files changed, 17 insertions, 0 deletions
diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in
index 0e109d0977..6331bcde08 100644
--- a/boot/uboot/Config.in
+++ b/boot/uboot/Config.in
@@ -158,6 +158,18 @@ config BR2_TARGET_UBOOT_NEEDS_OPENSSL
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
+ depend 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
diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
index a1fac7dcae..39175999ec 100644
--- a/boot/uboot/uboot.mk
+++ b/boot/uboot/uboot.mk
@@ -134,6 +134,11 @@ UBOOT_MAKE_OPTS += \
HOSTCC="$(HOSTCC) $(HOST_CFLAGS)" \
HOSTLDFLAGS="$(HOST_LDFLAGS)"
+ifeq ($(BR2_TARGET_UBOOT_NEEDS_ATF_BL31),y)
+UBOOT_DEPENDENCIES += arm-trusted-firmware
+UBOOT_MAKE_OPTS += BL31=$(BINARIES_DIR)/bl31.bin
+endif
+
ifeq ($(BR2_TARGET_UBOOT_NEEDS_DTC),y)
UBOOT_DEPENDENCIES += host-dtc
endif