[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