summaryrefslogtreecommitdiff
path: root/configs
diff options
context:
space:
mode:
authorTom Rini <[email protected]>2025-11-06 17:41:28 -0600
committerTom Rini <[email protected]>2025-11-06 17:41:28 -0600
commit9e2bce78fd5ea59161b91b0885cfccb6fdf3b96f (patch)
treeac4e35082848fbfe133547d1e165c94a76161c27 /configs
parentf05576620c54f7465a2dd0ff5c3d8d56744ef31c (diff)
parent489ec1ee14a87afa6c8a1a996878c5ac58b6827c (diff)
Merge patch series "Allow falcon boot from R5 SPL on TI's AM62 devices"
Anshul Dalal <[email protected]> says: 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 mode 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 different 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 0x82000000 with K3_HW_CONFIG_BASE set to 0x88000000 for the DTB. Link: https://lore.kernel.org/r/[email protected]
Diffstat (limited to 'configs')
-rw-r--r--configs/k3_r5_falcon.config39
1 files changed, 39 insertions, 0 deletions
diff --git a/configs/k3_r5_falcon.config b/configs/k3_r5_falcon.config
new file mode 100644
index 00000000000..b6762b35f74
--- /dev/null
+++ b/configs/k3_r5_falcon.config
@@ -0,0 +1,39 @@
+# Enable falcon mode
+CONFIG_SPL_OS_BOOT=y
+CONFIG_SPL_OS_BOOT_SECURE=y
+
+# We use envs for setting bootargs
+CONFIG_SPL_ENV_SUPPORT=y
+
+# Allows for the SPL to detect UUID for kernel's rootfs
+CONFIG_SPL_PARTITION_UUIDS=y
+
+# Perform FDT fixups from SPL
+CONFIG_OF_SYSTEM_SETUP=y
+
+# We use the rootfs (i.e partition 2) for booting which is ext4 not FAT
+CONFIG_SYS_MMCSD_FS_BOOT=y
+CONFIG_SYS_MMCSD_FS_BOOT_PARTITION=2
+CONFIG_SPL_FS_EXT4=y
+
+# Loading tifalcon instead of tispl which has FDT and A53 SPL saves time
+CONFIG_SPL_FS_LOAD_PAYLOAD_NAME="boot/tifalcon.bin"
+CONFIG_SPL_FS_LOAD_KERNEL_NAME="boot/fitImage"
+CONFIG_SPL_LOAD_FIT=y
+
+# Used as the 2MiB aligned load address for kernel
+CONFIG_SYS_LOAD_ADDR=0x82000000
+CONFIG_SPL_STACK_R_ADDR=0x88000000
+CONFIG_SPL_LOAD_FIT_ADDRESS=0x82000000
+CONFIG_SPL_PAYLOAD_ARGS_ADDR=0x88000000
+CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x2700000
+
+# Disable all unsupported boot media to save space
+# CONFIG_SPL_SYS_MMCSD_RAW_MODE is not set
+# CONFIG_SPL_SPI_FLASH_SUPPORT is not set
+# CONFIG_SPL_YMODEM_SUPPORT is not set
+# CONFIG_SUPPORT_EMMC_BOOT is not set
+# CONFIG_SPL_NAND_SUPPORT is not set
+# CONFIG_SPL_NOR_SUPPORT is not set
+# CONFIG_SPL_RAM_DEVICE is not set
+# CONFIG_SPL_FS_FAT is not set