diff --git a/meta-ti-bsp/conf/machine/include/k3.inc b/meta-ti-bsp/conf/machine/include/k3.inc index 6833789c..addc42c3 100644 --- a/meta-ti-bsp/conf/machine/include/k3.inc +++ b/meta-ti-bsp/conf/machine/include/k3.inc @@ -33,6 +33,11 @@ MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "kernel-image-image ti-kernel-fitimage" TFA_PLATFORM = "k3" +# Change the default memory location for all k3 devices. This requires an +# in layer config fragment for u-boot. +TFA_K3_PRELOADED_BL33 ?= "${@ '0x82000000' if d.getVar('BSP_TI_K3_TFA_MOVE') else ''}" +TFA_K3_HW_CONFIG_BASE ?= "${@ '0x88000000' if d.getVar('BSP_TI_K3_TFA_MOVE') else ''}" + # Use the expected value of the ubifs filesystem's volume name in the kernel # and u-boot. UBI_VOLNAME = "rootfs" diff --git a/meta-ti-bsp/conf/machine/include/ti-bsp.inc b/meta-ti-bsp/conf/machine/include/ti-bsp.inc index f7e2710c..fc4f1d1c 100644 --- a/meta-ti-bsp/conf/machine/include/ti-bsp.inc +++ b/meta-ti-bsp/conf/machine/include/ti-bsp.inc @@ -46,6 +46,8 @@ BSP_ROGUE_DRIVER_PROVIDER:bsp-ti-6_18 = "ti-img-rogue-driver" BSP_ROGUE_DRIVER_VERSION:bsp-ti-6_18 = "25%" BSP_MESA_PVR_VERSION:bsp-ti-6_18 = "24%" +BSP_TI_K3_TFA_MOVE:bsp-ti-6_18 = "1" + # ========== # ti-6_12 # TI staging kernel 6.12, u-boot 2025.01 @@ -95,6 +97,8 @@ BSP_ROGUE_DRIVER_PROVIDER ?= "" BSP_ROGUE_DRIVER_VERSION ?= "" BSP_MESA_PVR_VERSION ?= "" +BSP_TI_K3_TFA_MOVE ?= "" + # ========== # global preferences # ========== diff --git a/meta-ti-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-ti.inc b/meta-ti-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-ti.inc index 4525f9ea..403f4d88 100644 --- a/meta-ti-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-ti.inc +++ b/meta-ti-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-ti.inc @@ -28,5 +28,6 @@ TFA_INSTALL_TARGET:am62lxx = "bl31 bl1" EXTRA_OEMAKE += "${@ 'K3_USART=' + d.getVar('TFA_K3_USART') if d.getVar('TFA_K3_USART') else ''}" EXTRA_OEMAKE += "${@ 'BL32_BASE=' + d.getVar('TFA_K3_BL32_BASE') if d.getVar('TFA_K3_BL32_BASE') else ''}" EXTRA_OEMAKE += "${@ 'PRELOADED_BL33_BASE=' + d.getVar('TFA_K3_PRELOADED_BL33') if d.getVar('TFA_K3_PRELOADED_BL33') else ''}" +EXTRA_OEMAKE += "${@ 'K3_HW_CONFIG_BASE=' + d.getVar('TFA_K3_HW_CONFIG_BASE') if d.getVar('TFA_K3_HW_CONFIG_BASE') else ''}" EXTRA_OEMAKE += "${@ 'K3_PM_SYSTEM_SUSPEND=' + d.getVar('TFA_K3_SYSTEM_SUSPEND') if d.getVar('TFA_K3_SYSTEM_SUSPEND') else ''}" EXTRA_OEMAKE:append:ti-falcon = " PRELOADED_BL33_BASE=0x82000000 K3_HW_CONFIG_BASE=0x88000000" diff --git a/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc b/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc index c1959d11..317cfd93 100644 --- a/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc +++ b/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc @@ -25,6 +25,15 @@ UBOOT_GIT_PROTOCOL ?= "https" UBOOT_GIT_BRANCH ?= "branch=${BRANCH}" SRC_URI = "${UBOOT_GIT_URI};protocol=${UBOOT_GIT_PROTOCOL};${UBOOT_GIT_BRANCH};name=uboot" +# Match the meta-ti trusted-firmware-a specific changes to memory locations +# for bl33 and k3 hardware. +TI_K3_TFA_CFG_FILES = "\ + file://k3_tfa.cfg \ + file://0001-env-Make-the-env-based-on-KConfig-instead-of-hardcod.patch \ +" + +SRC_URI:append:k3 = " ${@ '${TI_K3_TFA_CFG_FILES}' if d.getVar('BSP_TI_K3_TFA_MOVE') else ''}" + SRCREV_FORMAT = "uboot" PV:append = "+git" diff --git a/meta-ti-bsp/recipes-bsp/u-boot/u-boot/0001-env-Make-the-env-based-on-KConfig-instead-of-hardcod.patch b/meta-ti-bsp/recipes-bsp/u-boot/u-boot/0001-env-Make-the-env-based-on-KConfig-instead-of-hardcod.patch new file mode 100644 index 00000000..091324b5 --- /dev/null +++ b/meta-ti-bsp/recipes-bsp/u-boot/u-boot/0001-env-Make-the-env-based-on-KConfig-instead-of-hardcod.patch @@ -0,0 +1,32 @@ +From 25569d2b31a4dcb73bb55cffe13c95afd9441987 Mon Sep 17 00:00:00 2001 +From: Ryan Eatmon +Date: Wed, 4 Feb 2026 14:07:39 -0600 +Subject: [PATCH] env: Make the env based on KConfig instead of hardcoded + +testing... + +Upstream-Status: Pending + +Signed-off-by: Ryan Eatmon +--- + include/env/ti/k3_dfu.env | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/include/env/ti/k3_dfu.env b/include/env/ti/k3_dfu.env +index 2ea8554d413..3a3eb959b94 100644 +--- a/include/env/ti/k3_dfu.env ++++ b/include/env/ti/k3_dfu.env +@@ -25,8 +25,8 @@ dfu_alt_info_ospi= + rootfs raw 0x800000 0x3800000 + + dfu_alt_info_ram= +- tispl.bin ram 0x80080000 0x200000; +- u-boot.img ram 0x81000000 0x400000 ++ tispl.bin ram CONFIG_SPL_TEXT_BASE 0x200000; ++ u-boot.img ram CONFIG_TEXT_BASE 0x400000 + + dfu_alt_info_ospi_nand= + ospi.tiboot3 part 1; +-- +2.43.0 + diff --git a/meta-ti-bsp/recipes-bsp/u-boot/u-boot/k3_tfa.cfg b/meta-ti-bsp/recipes-bsp/u-boot/u-boot/k3_tfa.cfg new file mode 100644 index 00000000..d0cf4367 --- /dev/null +++ b/meta-ti-bsp/recipes-bsp/u-boot/u-boot/k3_tfa.cfg @@ -0,0 +1,7 @@ +CONFIG_TEXT_BASE=0x82f80000 +CONFIG_BLOBLIST_ADDR=0x82c80000 +CONFIG_SPL_TEXT_BASE=0x82000000 +CONFIG_SPL_STACK_R_ADDR=0x83f80000 +CONFIG_SPL_BSS_START_ADDR=0x82c00000 +CONFIG_SPL_LOAD_FIT_ADDRESS=0x82f80000 +CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x82b00000