1- ==================
1+ ##################
22U-Boot Falcon Mode
3- ==================
3+ ##################
44
55U-Boot's falcon mode on |__PART_FAMILY_DEVICE_NAMES__ | bypasses the A-core SPL
66and U-Boot stage, which allows for booting straight to Linux kernel after OP-TEE
@@ -23,28 +23,28 @@ enabled before :ref:`building the SDK <building-the-sdk-with-yocto>` as follows:
2323 $ # build the SDK
2424 $ MACHINE=<machine> bitbake -k tisdk-default-image
2525
26- -------------------------------------
26+ *************************************
2727Changes made by *ti-falcon * override:
28- -------------------------------------
28+ *************************************
2929
3030ATF:
31- ----
31+ ====
3232
3333To meet the 2MiB alignment requirement for the Linux kernel's load address,
3434the ``K3_HW_CONFIG_BASE `` *(kernel address) * is modified to ``0x82000000 ``
3535and ``PRELOADED_BL33_BASE `` *(DTB address) * is modified from the K3 default to
3636``0x88000000 ``.
3737
3838TI-SPL:
39- -------
39+ =======
4040
4141Falcon mode makes use of a cut down variant of the tispl binary called
4242``tifalcon.bin `` with the Cortex-A SPL and it's corresponding DTB removed.
4343This file is deployed to the boot directory inside rootfs so it can be picked by
4444the R5 SPL at boot time.
4545
4646R5 SPL:
47- -------
47+ =======
4848
4949The R5 SPL is used for loading the kernel ``fitImage `` and ``tifalcon.bin ``
5050file, though the ``fitImage `` for falcon boot is signed by using an x509
@@ -57,21 +57,21 @@ This support depends on the U-Boot's ``k3_r5_falcon.config`` fragment, which is
5757built alongside the standard R5 defconfig when ``ti-falcon `` is enabled.
5858
5959fitImage:
60- ---------
60+ =========
6161
6262The resulting ``fitImage `` file in the boot directory of rootfs is produced
6363with the constituent binaries pre-signed with x509 certificates. This file is
6464authenticated from TIFS at boot time, which allows for a lower boot time than
6565authenticating on the R5 core.
6666
67- -------------------
67+ *******************
6868Extra Configuration
69- -------------------
69+ *******************
7070
7171.. ifconfig :: CONFIG_part_variant not in ('AM62AX')
7272
7373 OSPI boot:
74- ----------
74+ ==========
7575
7676 For OSPI boot, the ``tiboot3.bin `` and ``tifalcon.bin `` files should be
7777 flashed to the same addresses in flash as regular boot flow but the DTB and
@@ -90,7 +90,7 @@ Extra Configuration
9090 => sf update $loadaddr 0x80000 $filesize
9191
9292 eMMC Boot:
93- ----------
93+ ==========
9494
9595In eMMC boot mode, the ``tiboot3.bin `` file should be flashed to the hardware
9696boot partition whereas ``tifalcon.bin `` and the ``fitImage `` are read from
@@ -111,7 +111,7 @@ For more information check: :ref:`How to flash eMMC and boot with eMMC Boot
111111<how-to-emmc-boot>`.
112112
113113Custom fitImage creation:
114- -------------------------
114+ =========================
115115
116116Clone the `core-secdev-k3 source <https://git.ti.com/cgit/security-development-tools/core-secdev-k3 >`__:
117117
@@ -174,9 +174,9 @@ Sign the kernel and dtb with ``secure-binary-image.sh`` and create the
174174 $ ./scripts/secure-binary-image.sh falcon.dtb falcon.dtb.sec
175175 $ mkimage -f fitImage.its fitImage
176176
177- ----------------------
177+ **********************
178178Boot time comparisons:
179- ----------------------
179+ **********************
180180
181181Removing A-core SPL and U-Boot from the boot process leads to ~60% reduction in
182182time to kernel. Saving about 1-2 seconds during boot depending on the platform.
0 commit comments