@@ -182,6 +182,25 @@ config BR2_TARGET_ARM_TRUSTED_FIRMWARE_EDK2_AS_BL33
for the 'qemu_sbsa' platform. In this case, due to the EDK2
build system, the dependency between ATF and EDK is reversed.
+config BR2_TARGET_ARM_TRUSTED_FIRMWARE_LINUX_AS_BL33
+ bool "Linux kernel"
+ depends on BR2_LINUX_KERNEL
+ help
+ This option allows to embed the Linux kernel as the BL33 part
+ of the ARM Trusted Firmware.
+
+ Do not choose this option if you intend to use U-Boot or
+ another second-stage bootloader. With this option, TF-A starts
+ Linux directly.
+
+ With this option chosen, whenever the Linux zImage changes,
+ TF-A may need need to be re-built to create the latest FIP
+ file. Since Buildroot does not track package dependencies,
+ this has to be done manually by invoking `make
+ arm-trusted-firmware-rebuild`. The final boot medium image may
+ need to be re-generated as well to include the latest FIP file
+ version.
+
endchoice
if BR2_TARGET_ARM_TRUSTED_FIRMWARE_BAREBOX_AS_BL33
@@ -132,6 +132,12 @@ ARM_TRUSTED_FIRMWARE_MAKE_OPTS += BL33=$(BINARIES_DIR)/$(ARM_TRUSTED_FIRMWARE_UB
ARM_TRUSTED_FIRMWARE_DEPENDENCIES += uboot
endif
+ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_LINUX_AS_BL33),y)
+ARM_TRUSTED_FIRMWARE_MAKE_OPTS += BL33=$(BINARIES_DIR)/zImage
+ARM_TRUSTED_FIRMWARE_MAKE_OPTS += BL33_CFG=$(BINARIES_DIR)/$(LINUX_DTBS)
+ARM_TRUSTED_FIRMWARE_DEPENDENCIES += linux
+endif
+
ifeq ($(BR2_TARGET_VEXPRESS_FIRMWARE),y)
ARM_TRUSTED_FIRMWARE_MAKE_OPTS += SCP_BL2=$(BINARIES_DIR)/scp-fw.bin
ARM_TRUSTED_FIRMWARE_DEPENDENCIES += vexpress-firmware
Arm Trusted Firmware (TF-A) can be used to load U-Boot or another bootloader, which in turn loads the Linux kernel. However, TF-A is capable of loading the kernel directly. To this end, we need to define the BL33 and BL33_CFG compile options containing, respectively, the zImage and the DTB. This config introduces a new config option, BR2_TARGET_ARM_TRUSTED_FIRMWARE_LINUX_AS_BL33, which sets the BL33 and BL33_CFG parameters, and ensures that the kernel is built before the TF-A by having linux as a _DEPENDENCY of the TF-A. Signed-off-by: Jakob Kastelic <jkastelic@thinksrs.com> --- boot/arm-trusted-firmware/Config.in | 19 +++++++++++++++++++ .../arm-trusted-firmware.mk | 6 ++++++ 2 files changed, 25 insertions(+)