1
0
mirror of https://git.yoctoproject.org/meta-ti synced 2026-04-20 19:53:43 +00:00

conf/machine, ti-bsp: add support for multiple BSP providers

This adds a facility to define multiple supported BSPs with their own
preferences for individual components, as well as lets machine configs
specify conditional configurations for different BSPs.

Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
This commit is contained in:
Denys Dmytriyenko
2024-06-14 17:57:18 -04:00
committed by Ryan Eatmon
parent e85ae1d830
commit 7394a1b438
20 changed files with 131 additions and 43 deletions

View File

@@ -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"

View File

@@ -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 \

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -1,3 +1 @@
PREFERRED_PROVIDER_virtual/kernel ?= "linux-bb.org"
TI_PREFERRED_BSP ?= "bb_org"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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}"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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}"

View File

@@ -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

View File

@@ -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"

View File

@@ -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"