Hi,
I would suggest looking into the platform ports:
https://trustedfirmware-a.readthedocs.io/en/latest/plat/arm/fvp/fvp-specific... https://trustedfirmware-a.readthedocs.io/en/latest/plat/rpi3.html#build-inst... RPI3_DIRECT_LINUX_BOOT https://trustedfirmware-a.readthedocs.io/en/latest/plat/qemu.html#qemu-virt-... ARM_LINUX_KERNEL_AS_BL33
Regards, Olivier.
________________________________ From: Joita Mitra joita.m@delopt.co.in Sent: 11 June 2026 09:19 To: tf-a-owner@lists.trustedfirmware.org tf-a-owner@lists.trustedfirmware.org Subject: Guidance on direct Linux boot from TF-A (bypassing U-Boot) on ARM64
Hi, I am working on an RZ/G2L based platform and exploring the possibility of booting Linux directly from TF-A without using U-Boot as BL33. Current boot flow:
BL2 -> BL31 -> U-Boot (BL33) -> Linux
Target boot flow:
BL2 -> BL31 -> Linux
I have been studying the TF-A image loading framework, including:
* desc_image_load.h * bl2_image_load_v2.c * bl2_plat_mem_params_desc.c * bl31_main.c * bl31_prepare_next_image_entry()
My understanding is that BL2 loads images according to the image descriptors and passes entry point information to BL31 through the BL33 descriptor. I modified the BL33 descriptor to point to the Linux kernel entry address instead of U-Boot and attempted to transfer execution directly to Linux from BL31. However, Linux does not start successfully, which suggests that additional preparation normally performed by U-Boot may be missing. I would appreciate guidance on the following:
1. Is using the BL33 descriptor to describe the Linux kernel the correct architectural approach when bypassing U-Boot? 2. How should the Linux kernel Image and DTB be loaded from BL2? * Should Linux be treated as BL33? * Should the DTB be loaded as a separate image descriptor? * Is there an existing TF-A mechanism intended for this use case? 3. Which TF-A components are typically modified to support direct Linux boot? * BL2 image loading descriptors? * BL31 handoff logic? * Platform-specific image loading code? 4. Are there any reference implementations or platforms in TF-A that directly boot Linux without U-Boot? 5. Are there any ARM64 Linux boot protocol requirements that TF-A must satisfy before transferring control to Linux?
Any guidance or examples would be greatly appreciated. Thank you.
[cid:19da2837-2e52-4337-8b03-1cc393171495]http://www.delopt.co.in/
Joita Mitra
Embedded Software Engineer
[cid:7d7fa5b9-a852-48ac-a797-7ed0723558b3] +91-7985313796
Fortune Serene, 3rd Floor, Plot No: 89/B, 90/A, West Avenue 9, Electronic City Phase 1,Bangalore 560100
tf-a@lists.trustedfirmware.org