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 the patch 'spl: return header size to spl_load in
os boot'[0].

[0]: https://lore.kernel.org/u-boot/20250225142522.9069-1-ansh...@ti.com/

Signed-off-by: Anshul Dalal <ansh...@ti.com>
---
Anshul Dalal (10):
  spl: Kconfig: allow K3 devices to use falcon mode
  cmd: Kconfig: enable CMD_BOOTI for ARCH_K3
  mach-k3: fix reading size and addr from fdt on R5
  arm: dts: am62a: allow booting from eMMC
  arch: arm: k3-binman: add fit for falcon boot
  mach-k3: add eMMC FS boot support for am62[ap]
  mach-k3: sysfw-loader: update img_hdr for falcon
  configs: ti_armv7_common: add cfgs for SPI falcon boot
  config: add falcon boot config fragment for am62x
  mach-k3: common: add falcon support for 62[axp]

 arch/arm/dts/k3-am625-sk-binman.dtsi  |  64 ++++++++++++++++
 arch/arm/dts/k3-am62a-sk-binman.dtsi  |  64 ++++++++++++++++
 arch/arm/dts/k3-am62a7-sk-u-boot.dtsi |   4 +
 arch/arm/dts/k3-am62p-sk-binman.dtsi  |  51 +++++++++++++
 arch/arm/dts/k3-binman.dtsi           |  53 +++++++++++++
 arch/arm/mach-k3/am62ax/am62a7_init.c |   4 +
 arch/arm/mach-k3/am62px/am62p5_init.c |   4 +
 arch/arm/mach-k3/common.c             | 105 ++++++++++++++++++++++++++
 arch/arm/mach-k3/common_fdt.c         |   4 +-
 arch/arm/mach-k3/r5/sysfw-loader.c    |   6 +-
 cmd/Kconfig                           |   2 +-
 common/spl/Kconfig                    |   3 +-
 configs/am62x_r5_falcon.config        |  30 ++++++++
 include/configs/ti_armv7_common.h     |   6 ++
 14 files changed, 396 insertions(+), 4 deletions(-)
 create mode 100644 configs/am62x_r5_falcon.config

-- 
2.43.0

Reply via email to