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-ansh...@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-ansh...@ti.com/ > Signed-off-by: Anshul Dalal <ansh...@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-ansh...@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-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 > 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