[PATCH v4 0/8] Add falcon support for am62a, 62p and 62x

Anshul Dalal anshuld at ti.com
Thu Apr 17 10:30:15 CEST 2025


On Wed Apr 16, 2025 at 1:15 PM IST, Anshul Dalal wrote:
> This patch set adds support for falcon boot on AM62a, 62p and 62x by
> bypassing A53 SPL and U-boot.
>
> Existing Boot flow:
> R5 SPL -> ATF -> A53 SPL -> U-Boot -> Linux Kernel
>
> Updated flow:
> R5 SPL -> ATF -> Linux Kernel
>
> U-boot's falcon flow expects the jump from SPL to kernel to happen on
> the same core which is not directly applicable for our heterogeneous
> platforms since ATF, OPTEE and other non SPL binaries from tispl.bin
> should be loaded before the kernel by the R5 SPL.
>
> So we have to use a non std flow to bypass A53 SPL and U-Boot, we first
> load the newly added tispl_falcon.bin instead of tispl.bin which lacks
> u-boot-spl.bin (A53's SPL) and the corresponding fdt. This sets up dm,
> tifs, optee and atf. Once loaded, we load the kernel and the dtb (with
> fixups) at ATF's PRELOADED_BL33_BASE and K3_HW_CONFIG_BASE.
>
> NOTE:
> Since we're now using the SPL to load the kernel and kernel expects a
> 2MiB aligned load address, the existing PRELOADED_BL33_BASE has to be
> changed for ATF to 0x80200000.
>
> This patch depends on:
>
>  * [PATCH v1] k3: migrate SPL_TEXT_BASE to new address [1]
>
> [1]: https://lore.kernel.org/u-boot/20250416073058.1441001-1-anshuld@ti.com/
>

Forgot to add that the patch also depends on:

 * [PATCH v6 1/4] spl: remove usage of CMD_BOOTx from image parsing:
https://lore.kernel.org/u-boot/20250403215522.1284502-1-anshuld@ti.com/

> Signed-off-by: Anshul Dalal <anshuld at ti.com>
> ---
> Changes in v4:
>  * Move emmc boot fixes to saperate patch
>  * Update load address for kernel to 0x82200000
>  * Add jump_stub config
> v3: https://lore.kernel.org/u-boot/20250403215910.1292922-1-anshuld@ti.com/
> Changes in v3:
>  * Make tifs load and entry address consistent with tispl for am62a and 62p
>  * Update loadables order to be same as tispl.bin
>  * Use rootfs for boot instead of boot partition
>  * Disable SPL_HAS_BOOTZ to save space
>  * Add default dtbs for each board in Kconfig
>  * Fix fdt totalsize in the header before applying fixups
>  * Update Makefile to clean tispl_falcon.bin on `make clean`
> v2: https://lore.kernel.org/u-boot/20250311095758.3383047-1-anshuld@ti.com/
> Changes in v2:
>  * Move to CONFIG_SYS_SPI_* as per [2]
>  * Remove the need for CMD_BOOTI as per [3]
> v1: https://lore.kernel.org/u-boot/20250307075541.2571104-1-anshuld@ti.com/
> ---
>
> Anshul Dalal (8):
>   spl: Kconfig: allow K3 devices to use falcon mode
>   mach-k3: fix reading size and addr from fdt on R5
>   arch: arm: k3-binman: add fit for falcon boot
>   mach-k3: sysfw-loader: update img_hdr for falcon
>   config: add falcon boot config fragment for am62x
>   board: ti: add default dtb for am62[axp] in falcon mode
>   mach-k3: common: add falcon support for 62[axp]
>   Makefile: update tispl regex to also clean falcon spl
>
>  Makefile                             |   2 +-
>  arch/arm/dts/k3-am625-sk-binman.dtsi |  64 ++++++++++++++++
>  arch/arm/dts/k3-am62a-sk-binman.dtsi |  64 ++++++++++++++++
>  arch/arm/dts/k3-am62p-sk-binman.dtsi |  51 +++++++++++++
>  arch/arm/dts/k3-binman.dtsi          |  69 +++++++++++++++++
>  arch/arm/mach-k3/common.c            | 107 +++++++++++++++++++++++++++
>  arch/arm/mach-k3/common_fdt.c        |   4 +-
>  arch/arm/mach-k3/r5/sysfw-loader.c   |   6 +-
>  board/ti/am62ax/Kconfig              |   3 +
>  board/ti/am62px/Kconfig              |   3 +
>  board/ti/am62x/Kconfig               |   3 +
>  common/spl/Kconfig                   |   3 +-
>  configs/am62x_r5_falcon.config       |  42 +++++++++++
>  13 files changed, 417 insertions(+), 4 deletions(-)
>  create mode 100644 configs/am62x_r5_falcon.config



More information about the U-Boot mailing list