On Tue Mar 11, 2025 at 3:27 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 v3] spl: return header size to spl_load in os boot [1] > * [PATCH v2] config: falcon: move CFG_SYS_SPI_* to Kconfig [2] > * [PATCH v1] spl: remove usage of CMD_(BOOTI|BOOTZ) from image parsing [3] > > [1]: https://lore.kernel.org/u-boot/20250311093546.3371193-1-ansh...@ti.com/ > [2]: https://lore.kernel.org/u-boot/20250311044414.3155688-1-ansh...@ti.com/ > [3]: https://lore.kernel.org/u-boot/20250311093709.3372104-1-ansh...@ti.com/ > > Signed-off-by: Anshul Dalal <ansh...@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-ansh...@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 > 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 > 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 +- > common/spl/Kconfig | 3 +- > configs/am62x_r5_falcon.config | 36 +++++++++ > 12 files changed, 395 insertions(+), 3 deletions(-) > create mode 100644 configs/am62x_r5_falcon.config
Superseded by v3: https://lore.kernel.org/u-boot/20250403215910.1292922-1-ansh...@ti.com/ Anshul