Which booti operations are essential when booting Linux directly from TF-A?
Tom Rini
trini at konsulko.com
Fri Jun 12 18:38:45 CEST 2026
On Thu, Jun 11, 2026 at 07:29:47AM +0000, Joita Mitra wrote:
> Hi,
> I am investigating a direct Linux boot flow where ARM Trusted Firmware (TF-A) transfers control directly to Linux instead of booting U-Boot first.
> Current flow:
>
> BL2 -> BL31 -> U-Boot -> Linux
>
> Target flow:
>
> BL2 -> BL31 -> Linux
>
> While studying the ARM64 boot flow in U-Boot, I examined:
>
> cmd/booti.c
> boot/bootm.c
> boot/bootm_os.c
>
> and observed that U-Boot performs significantly more work than simply jumping to the kernel entry point.
> To replicate the required functionality inside TF-A, I am trying to identify which steps are essential.
> Could you please clarify:
>
> 1. Which parts of the booti flow are mandatory before entering an ARM64 Linux kernel?
> 2.
> If Linux is already loaded at its final execution address, which parts of booti can safely be skipped?
> 3. Are there any minimal examples showing the required state that Linux expects when entered from firmware instead of U-Boot?
>
> My goal is to reproduce only the minimum required Linux preparation steps inside TF-A.
> At this stage, the most important unanswered question is not how to jump to Linux, but what exact environment U-Boot creates that Linux depends on.
> Any pointers to the relevant source files or functions would be greatly appreciated.
> Thank you.
What's required to boot the Linux kernel is documented by the linux
kernel. See
https://www.kernel.org/doc/html/latest/arch/arm64/booting.html for arm64
for example.
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20260612/4d67546e/attachment.sig>
More information about the U-Boot
mailing list