@@ -4,9 +4,6 @@
require conf/machine/include/k3r5.inc
-PREFERRED_PROVIDER_virtual/bootloader = "u-boot-bb.org"
-PREFERRED_PROVIDER_u-boot = "u-boot-bb.org"
-
SYSFW_SOC = "am62x"
SYSFW_CONFIG = "evm"
SYSFW_SUFFIX = "gp"
@@ -11,7 +11,7 @@ MACHINE_FEATURES += "screen gpu"
SERIAL_CONSOLES = "115200;ttyS2"
require conf/machine/include/mesa-pvr.inc
-PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
+PREFERRED_PROVIDER_virtual/gpudriver ?= "${BSP_ROGUE_DRIVER_PROVIDER}"
TFA_BOARD = "lite"
TFA_K3_SYSTEM_SUSPEND = "1"
@@ -25,9 +25,6 @@ UBOOT_MACHINE = "am62x_evm_a53_defconfig"
# under meta-ti-bsp/recipes-bsp/u-boot/ for more details.
UBOOT_CONFIG_FRAGMENTS = "am625_beagleplay_a53.config"
-PREFERRED_PROVIDER_virtual/bootloader = "u-boot-bb.org"
-PREFERRED_PROVIDER_u-boot = "u-boot-bb.org"
-
KERNEL_DEVICETREE_PREFIX = " \
ti/k3-am625 \
ti/k3-am62x-sk \
@@ -4,7 +4,7 @@ SOC_FAMILY:append = ":am62pxx"
MACHINE_FEATURES += "screen gpu"
require conf/machine/include/mesa-pvr.inc
-PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
+PREFERRED_PROVIDER_virtual/gpudriver ?= "${BSP_ROGUE_DRIVER_PROVIDER}"
# Default tiboot3.bin on AM62Px is for HS-FS
IMAGE_BOOT_FILES += "tiboot3-am62px-hs-fs-evm.bin"
@@ -4,7 +4,7 @@ SOC_FAMILY:append = ":am62xx"
MACHINE_FEATURES += "screen gpu"
require conf/machine/include/mesa-pvr.inc
-PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
+PREFERRED_PROVIDER_virtual/gpudriver ?= "${BSP_ROGUE_DRIVER_PROVIDER}"
# Default tiboot3.bin on AM62x is for HS-FS
IMAGE_BOOT_FILES += "tiboot3-am62x-hs-fs-evm.bin"
@@ -4,7 +4,7 @@ SOC_FAMILY:append = ":am65xx"
MACHINE_FEATURES += "screen touchscreen gpu"
require conf/machine/include/mesa-pvr.inc
-PREFERRED_PROVIDER_virtual/gpudriver ?= ""
+PREFERRED_PROVIDER_virtual/gpudriver ?= "${BSP_SGX_DRIVER_PROVIDER}"
KERNEL_DEVICETREE_PREFIX = "ti/k3-am654"
@@ -4,7 +4,7 @@ SOC_FAMILY:append = ":j721s2"
MACHINE_FEATURES += "screen gpu"
require conf/machine/include/mesa-pvr.inc
-PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
+PREFERRED_PROVIDER_virtual/gpudriver ?= "${BSP_ROGUE_DRIVER_PROVIDER}"
# Default tiboot3.bin on AM68 is for SR1.0 HS-FS
IMAGE_BOOT_FILES += "tiboot3-j721s2-hs-fs-evm.bin"
@@ -4,7 +4,7 @@ SOC_FAMILY:append = ":j784s4"
MACHINE_FEATURES += "screen gpu"
require conf/machine/include/mesa-pvr.inc
-PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
+PREFERRED_PROVIDER_virtual/gpudriver ?= "${BSP_ROGUE_DRIVER_PROVIDER}"
# Default tiboot3.bin on AM69 is for SR1.0 HS-FS
IMAGE_BOOT_FILES += "tiboot3-j784s4-hs-fs-evm.bin"
@@ -1,3 +1 @@
-
-PREFERRED_PROVIDER_virtual/kernel ?= "linux-bb.org"
-
+TI_PREFERRED_BSP ?= "bb_org"
@@ -4,7 +4,7 @@ SOC_FAMILY:append = ":j721e"
MACHINE_FEATURES += "screen gpu"
require conf/machine/include/mesa-pvr.inc
-PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
+PREFERRED_PROVIDER_virtual/gpudriver ?= "${BSP_ROGUE_DRIVER_PROVIDER}"
IMAGE_BOOT_FILES += "sysfw.itb"
@@ -4,7 +4,7 @@ SOC_FAMILY:append = ":j721s2"
MACHINE_FEATURES += "screen gpu"
require conf/machine/include/mesa-pvr.inc
-PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
+PREFERRED_PROVIDER_virtual/gpudriver ?= "${BSP_ROGUE_DRIVER_PROVIDER}"
# Default tiboot3.bin on J721S2 is for GP
IMAGE_BOOT_FILES += "tiboot3-j721s2-gp-evm.bin"
@@ -4,7 +4,7 @@ SOC_FAMILY:append = ":j722s"
MACHINE_FEATURES += "screen gpu"
require conf/machine/include/mesa-pvr.inc
-PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
+PREFERRED_PROVIDER_virtual/gpudriver ?= "${BSP_ROGUE_DRIVER_PROVIDER}"
# Default tiboot3.bin on J722S is for HS-FS
IMAGE_BOOT_FILES += "tiboot3-j722s-hs-fs-evm.bin"
@@ -4,7 +4,7 @@ SOC_FAMILY:append = ":j784s4"
MACHINE_FEATURES += "screen gpu"
require conf/machine/include/mesa-pvr.inc
-PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
+PREFERRED_PROVIDER_virtual/gpudriver ?= "${BSP_ROGUE_DRIVER_PROVIDER}"
# Default tiboot3.bin on J784S4 is for GP
IMAGE_BOOT_FILES += "tiboot3-j784s4-gp-evm.bin"
@@ -10,9 +10,7 @@ BBMULTICONFIG += "k3r5"
# Increase this everytime you change something in the kernel
MACHINE_KERNEL_PR = "r0"
-PREFERRED_PROVIDER_virtual/kernel ?= "linux-ti-staging"
-PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-ti-staging"
-PREFERRED_PROVIDER_u-boot ?= "u-boot-ti-staging"
+require conf/machine/include/ti-bsp.inc
KERNEL_IMAGETYPE = "Image"
KERNEL_IMAGETYPES = "Image fitImage"
@@ -11,9 +11,9 @@ require conf/machine/include/arm/armv7a/tune-cortexa8.inc
# https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/doc/board/ti/j721e_evm.rst
# https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/doc/board/ti/am62x_sk.rst
# https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/doc/board/ti/k3.rst
+
+require conf/machine/include/ti-bsp.inc
PREFERRED_PROVIDER_virtual/kernel = "linux-dummy"
-PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-ti-staging"
-PREFERRED_PROVIDER_u-boot ?= "u-boot-ti-staging"
SPL_SUFFIX = "bin"
SPL_BINARY = "tiboot3-${SYSFW_SOC}-${SYSFW_SUFFIX}-${SYSFW_CONFIG}.${SPL_SUFFIX}"
@@ -7,13 +7,11 @@ require conf/machine/include/arm/armv7a/tune-cortexa15.inc
# Increase this everytime you change something in the kernel
MACHINE_KERNEL_PR = "r7"
-PREFERRED_PROVIDER_virtual/kernel ?= "linux-ti-staging"
-PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-ti-staging"
-PREFERRED_PROVIDER_u-boot ?= "u-boot-ti-staging"
+require conf/machine/include/ti-bsp.inc
# Graphics providers and variables
require conf/machine/include/mesa-pvr.inc
-PREFERRED_PROVIDER_virtual/gpudriver ?= ""
+PREFERRED_PROVIDER_virtual/gpudriver ?= "${BSP_SGX_DRIVER_PROVIDER}"
PVR_DISPLAY_CONTROLLER_ALIAS ?= "omapdrm"
KERNEL_IMAGETYPE = "zImage"
@@ -5,9 +5,7 @@ require conf/machine/include/arm/armv5/tune-arm926ejs.inc
KERNEL_IMAGETYPE = "zImage"
-PREFERRED_PROVIDER_virtual/kernel ?= "linux-ti-staging"
-PREFERRED_PROVIDER_virtual/bootloader = "u-boot-ti-staging"
-PREFERRED_PROVIDER_u-boot = "u-boot-ti-staging"
+require conf/machine/include/ti-bsp.inc
EXTRA_IMAGEDEPENDS += "virtual/bootloader"
new file mode 100644
@@ -0,0 +1,109 @@
+# Support multiple BSP providers
+# The main input is TI_PREFERRED_BSP, which translates into default
+# preferences for kernel, bootloader and graphics components, as
+# well as a dedicated machine override.
+
+# Supported options are: mainline, ti-6_6, ti-6_1, bb_org
+TI_PREFERRED_BSP ??= "ti-6_6"
+
+# Use bsp-* namespace for overrides
+MACHINEOVERRIDES =. "bsp-${TI_PREFERRED_BSP}:"
+
+# ==========
+# mainline
+# latest upstream/mainline kernel, u-boot
+# ==========
+BSP_KERNEL_PROVIDER:bsp-mainline = "linux-ti-mainline"
+BSP_KERNEL_VERSION:bsp-mainline = "%"
+BSP_BOOTLOADER_PROVIDER:bsp-mainline = "u-boot-ti-mainline"
+BSP_BOOTLOADER_VERSION:bsp-mainline = "%"
+
+# GPU support requires out-of-tree SGX and Rogue drivers not available
+# in mainline, usually present in TI staging or derivative like BB.org
+MACHINE_FEATURES:remove:bsp-mainline = "gpu"
+
+# ==========
+# ti-6_6
+# TI staging kernel 6.6, u-boot 2024.04
+# ==========
+BSP_KERNEL_PROVIDER:bsp-ti-6_6 = "linux-ti-staging"
+BSP_KERNEL_VERSION:bsp-ti-6_6 = "6.6%"
+BSP_BOOTLOADER_PROVIDER:bsp-ti-6_6 = "u-boot-ti-staging"
+BSP_BOOTLOADER_VERSION:bsp-ti-6_6 = "2024%"
+
+# Only Rogue is enabled so far, SGX falls back to SW rendering
+BSP_ROGUE_DRIVER_PROVIDER:bsp-ti-6_6 = "ti-img-rogue-driver"
+BSP_ROGUE_DRIVER_VERSION:bsp-ti-6_6 = "24%"
+BSP_ROGUE_UMLIBS_VERSION:bsp-ti-6_6 = "24%"
+BSP_MESA_PVR_VERSION:bsp-ti-6_6 = "23%"
+
+# ==========
+# ti-6_1
+# TI staging kernel 6.1, u-boot 2023.04
+# ==========
+BSP_KERNEL_PROVIDER:bsp-ti-6_1 = "linux-ti-staging"
+BSP_KERNEL_VERSION:bsp-ti-6_1 = "6.1%"
+BSP_BOOTLOADER_PROVIDER:bsp-ti-6_1 = "u-boot-ti-staging"
+BSP_BOOTLOADER_VERSION:bsp-ti-6_1 = "2023%"
+
+BSP_SGX_DRIVER_PROVIDER:bsp-ti-6_1 = "ti-sgx-ddk-km"
+BSP_SGX_DRIVER_VERSION:bsp-ti-6_1 = "1.17%"
+BSP_SGX_UMLIBS_VERSION:bsp-ti-6_1 = "1.17%"
+BSP_ROGUE_DRIVER_PROVIDER:bsp-ti-6_1 = "ti-img-rogue-driver"
+BSP_ROGUE_DRIVER_VERSION:bsp-ti-6_1 = "23%"
+BSP_ROGUE_UMLIBS_VERSION:bsp-ti-6_1 = "23%"
+BSP_MESA_PVR_VERSION:bsp-ti-6_1 = "22%"
+
+# ==========
+# bb_org
+# BeagleBoard.org kernel 6.1, u-boot 2023.04
+# based on TI staging trees with extra Beagle-specific features
+# but may not be up-to-date with TI version
+# ==========
+BSP_KERNEL_PROVIDER:bsp-bb_org = "linux-bb.org"
+BSP_KERNEL_VERSION:bsp-bb_org = "%"
+BSP_BOOTLOADER_PROVIDER:bsp-bb_org = "u-boot-bb.org"
+BSP_BOOTLOADER_VERSION:bsp-bb_org = "%"
+
+BSP_SGX_DRIVER_PROVIDER:bsp-bb_org = "ti-sgx-ddk-km"
+BSP_SGX_DRIVER_VERSION:bsp-bb_org = "1.17%"
+BSP_SGX_UMLIBS_VERSION:bsp-bb_org = "1.17%"
+BSP_ROGUE_DRIVER_PROVIDER:bsp-bb_org = "ti-img-rogue-driver"
+BSP_ROGUE_DRIVER_VERSION:bsp-bb_org = "23%"
+BSP_ROGUE_UMLIBS_VERSION:bsp-bb_org = "23%"
+BSP_MESA_PVR_VERSION:bsp-bb_org = "22%"
+
+# ==========
+# sane fallback defaults
+# if specific values are not defined or bsp is set incorrectly
+# use default preference TI staging and SW-rendering graphics
+# ==========
+BSP_KERNEL_PROVIDER ?= "linux-ti-staging"
+BSP_KERNEL_VERSION ?= "%"
+BSP_BOOTLOADER_PROVIDER ?= "u-boot-ti-staging"
+BSP_BOOTLOADER_VERSION ?= "%"
+
+BSP_SGX_DRIVER_PROVIDER ?= ""
+BSP_SGX_DRIVER_VERSION ?= ""
+BSP_ROGUE_DRIVER_PROVIDER ?= ""
+BSP_ROGUE_DRIVER_VERSION ?= ""
+BSP_SGX_UMLIBS_VERSION ?= ""
+BSP_ROGUE_UMLIBS_VERSION ?= ""
+BSP_MESA_PVR_VERSION ?= ""
+
+# ==========
+# global preferences
+# ==========
+PREFERRED_PROVIDER_virtual/kernel ?= "${BSP_KERNEL_PROVIDER}"
+PREFERRED_VERSION_${BSP_KERNEL_PROVIDER} ?= "${BSP_KERNEL_VERSION}"
+PREFERRED_PROVIDER_virtual/bootloader ?= "${BSP_BOOTLOADER_PROVIDER}"
+PREFERRED_PROVIDER_u-boot ?= "${BSP_BOOTLOADER_PROVIDER}"
+PREFERRED_VERSION_${BSP_BOOTLOADER_PROVIDER} ?= "${BSP_BOOTLOADER_VERSION}"
+
+# GPU provider gets set in machine configs, as some machines are headless
+# Select default preferred versions here
+PREFERRED_VERSION_ti-sgx-ddk-km ?= "${BSP_SGX_DRIVER_VERSION}"
+PREFERRED_VERSION_ti-sgx-ddk-um ?= "${BSP_SGX_UMLIBS_VERSION}"
+PREFERRED_VERSION_ti-img-rogue-driver ?= "${BSP_ROGUE_DRIVER_VERSION}"
+PREFERRED_VERSION_ti-img-rogue-umlibs ?= "${BSP_ROGUE_UMLIBS_VERSION}"
+PREFERRED_VERSION_mesa-pvr ?= "${BSP_MESA_PVR_VERSION}"
@@ -1,9 +1,8 @@
# This is a generic TI SOC family. It is a superset of all other SOCs
# and platforms defined in meta-ti to allow BSP-level overrides.
SOC_FAMILY = "ti-soc"
+require conf/machine/include/soc-family.inc
# TI platforms all use devicetrees with overlays
MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "kernel-devicetree"
KERNEL_DTB_OVERLAY_SUPPORT ?= "1"
-
-require conf/machine/include/soc-family.inc
@@ -7,14 +7,11 @@ require conf/machine/include/arm/armv7a/tune-cortexa8.inc
# Increase this everytime you change something in the kernel
MACHINE_KERNEL_PR = "r22"
-# Default providers, may need to override for specific machines
-PREFERRED_PROVIDER_virtual/kernel ?= "linux-ti-staging"
-PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-ti-staging"
-PREFERRED_PROVIDER_u-boot ?= "u-boot-ti-staging"
+require conf/machine/include/ti-bsp.inc
# Graphics providers and variables
require conf/machine/include/mesa-pvr.inc
-PREFERRED_PROVIDER_virtual/gpudriver ?= ""
+PREFERRED_PROVIDER_virtual/gpudriver ?= "${BSP_SGX_DRIVER_PROVIDER}"
PVR_DISPLAY_CONTROLLER_ALIAS ?= "tilcdc"
KERNEL_IMAGETYPE = "zImage"
@@ -7,14 +7,11 @@ require conf/machine/include/arm/armv7a/tune-cortexa9.inc
# Increase this everytime you change something in the kernel
MACHINE_KERNEL_PR = "r3"
-# Default providers, may need to override for specific machines
-PREFERRED_PROVIDER_virtual/kernel ?= "linux-ti-staging"
-PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-ti-staging"
-PREFERRED_PROVIDER_u-boot ?= "u-boot-ti-staging"
+require conf/machine/include/ti-bsp.inc
# Graphics providers and variables
require conf/machine/include/mesa-pvr.inc
-PREFERRED_PROVIDER_virtual/gpudriver ?= ""
+PREFERRED_PROVIDER_virtual/gpudriver ?= "${BSP_SGX_DRIVER_PROVIDER}"
PVR_DISPLAY_CONTROLLER_ALIAS ?= "omapdrm"
KERNEL_IMAGETYPE = "zImage"