diff mbox series

[meta-ti,scarthgap] ti-img-rogue-*: Migrate GPU driver version 24.2 -> 25.2

Message ID 20251112174942.3548570-1-a-christidis@ti.com
State New
Headers show
Series [meta-ti,scarthgap] ti-img-rogue-*: Migrate GPU driver version 24.2 -> 25.2 | expand

Commit Message

Antonios Christidis Nov. 12, 2025, 5:49 p.m. UTC
From: Antonios Christidis <a-christidis@ti.com>

New recipes for GPU DDK 25.2. Update DSP configuration files with new
preferred recipe versions.

Recipes regarding DDK 24.2 will still stay present, as scarthgap
supports kernel 6.6 and DDK 24.2 is the latest support.

Signed-off-by: Antonios Christidis <a-christidis@ti.com>
---
 .../conf/machine/include/beagle-bsp.inc       |   2 +-
 meta-ti-bsp/conf/machine/include/ti-bsp.inc   |   2 +-
 .../ti-img-rogue-driver_25.2.6850647.bb       |  40 +++++
 .../ti-img-rogue-umlibs_25.2.6850647.bb       | 155 ++++++++++++++++++
 4 files changed, 197 insertions(+), 2 deletions(-)
 create mode 100644 meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_25.2.6850647.bb
 create mode 100644 meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_25.2.6850647.bb

Comments

PRC Automation Nov. 12, 2025, 5:55 p.m. UTC | #1
meta-ti / na / 20251112174942.3548570-1-a-christidis

PRC Results: PASS

=========================================================
  check-yocto-patches: PASS
=========================================================
Patches
----------------------------------------
WARN - [meta-ti][scarthgap][PATCH] ti-img-rogue-*: Migrate GPU driver version 24.2 -> 25.2
    WARN: Commit message does not include file/recipe name: ti-img-rogue-*: Migrate GPU driver version 24.2 -> 25.2. (COMMIT-MESSAGE-2)
        patch



=========================================================
  apply-yocto-patch: PASS
=========================================================
scarthgap
=====================
Summary:
- Patch Series: [meta-ti][scarthgap][PATCH] ti-img-rogue-*: Migrate GPU driver version 24.2 -> 25.2
- Submitter: From: <a-christidis@ti.com>
From: Antonios Christidis <a-christidis@ti.com>
- Date: Date: Wed, 12 Nov 2025 11:49:42 -0600
- Num Patches: 1
- Mailing List (public inbox) Commit SHA: 93199e9cdcd66d40a1bd0bb739b37b8524bf5899

Applied to:
- Repository: lcpd-prc-meta-ti
- Base Branch: scarthgap-wip
- Commit Author: LCPD Automation Script <lcpdbld@list.ti.com>
- Commit Subject: CI/CD Auto-Merger: cicd.scarthgap.202511070802
- Commit SHA: 5b095d968eb225b72e44dc164683aa9157ec2b93

Patches
----------------------------------------
All patches applied



=========================================================
  check-yocto-repo: PASS
=========================================================
scarthgap
=====================
PASS
Denys Dmytriyenko Nov. 12, 2025, 6:18 p.m. UTC | #2
Please send it as a diff between 24 and 25 recipes so it's easier to review.
You need to pass --find-copies/-C and maybe --find-copies-harder flags.


On Wed, Nov 12, 2025 at 11:49:42AM -0600, Antonios Christidis via lists.yoctoproject.org wrote:
> From: Antonios Christidis <a-christidis@ti.com>
> 
> New recipes for GPU DDK 25.2. Update DSP configuration files with new
> preferred recipe versions.
> 
> Recipes regarding DDK 24.2 will still stay present, as scarthgap
> supports kernel 6.6 and DDK 24.2 is the latest support.
> 
> Signed-off-by: Antonios Christidis <a-christidis@ti.com>
> ---
>  .../conf/machine/include/beagle-bsp.inc       |   2 +-
>  meta-ti-bsp/conf/machine/include/ti-bsp.inc   |   2 +-
>  .../ti-img-rogue-driver_25.2.6850647.bb       |  40 +++++
>  .../ti-img-rogue-umlibs_25.2.6850647.bb       | 155 ++++++++++++++++++
>  4 files changed, 197 insertions(+), 2 deletions(-)
>  create mode 100644 meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_25.2.6850647.bb
>  create mode 100644 meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_25.2.6850647.bb
> 
> diff --git a/meta-beagle/conf/machine/include/beagle-bsp.inc b/meta-beagle/conf/machine/include/beagle-bsp.inc
> index 448e2086..e7788bd5 100644
> --- a/meta-beagle/conf/machine/include/beagle-bsp.inc
> +++ b/meta-beagle/conf/machine/include/beagle-bsp.inc
> @@ -19,7 +19,7 @@ KERNEL_DEVICETREE_PREFIX:bsp-bb_org-6_12 = ""
>  BSP_SGX_DRIVER_PROVIDER:bsp-bb_org-6_12 = "ti-sgx-ddk-km"
>  BSP_SGX_DRIVER_VERSION:bsp-bb_org-6_12 = "1.17%"
>  BSP_ROGUE_DRIVER_PROVIDER:bsp-bb_org-6_12 = "ti-img-rogue-driver"
> -BSP_ROGUE_DRIVER_VERSION:bsp-bb_org-6_12 = "24%"
> +BSP_ROGUE_DRIVER_VERSION:bsp-bb_org-6_12 = "25%"
>  BSP_MESA_PVR_VERSION:bsp-bb_org-6_12 = "24%"
>  
>  # GC320 support requires out-of-tree drivers not yet available in bb.org 6.12
> diff --git a/meta-ti-bsp/conf/machine/include/ti-bsp.inc b/meta-ti-bsp/conf/machine/include/ti-bsp.inc
> index dc0473de..fb36cbea 100644
> --- a/meta-ti-bsp/conf/machine/include/ti-bsp.inc
> +++ b/meta-ti-bsp/conf/machine/include/ti-bsp.inc
> @@ -45,7 +45,7 @@ BSP_BOOTLOADER_VERSION:bsp-ti-6_12 = "2025.01%"
>  BSP_SGX_DRIVER_PROVIDER:bsp-ti-6_12 = "ti-sgx-ddk-km"
>  BSP_SGX_DRIVER_VERSION:bsp-ti-6_12 = "1.17%"
>  BSP_ROGUE_DRIVER_PROVIDER:bsp-ti-6_12 = "ti-img-rogue-driver"
> -BSP_ROGUE_DRIVER_VERSION:bsp-ti-6_12 = "24%"
> +BSP_ROGUE_DRIVER_VERSION:bsp-ti-6_12 = "25%"
>  BSP_MESA_PVR_VERSION:bsp-ti-6_12 = "24%"
>  
>  # ==========
> diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_25.2.6850647.bb b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_25.2.6850647.bb
> new file mode 100644
> index 00000000..0f50026a
> --- /dev/null
> +++ b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_25.2.6850647.bb
> @@ -0,0 +1,40 @@
> +SUMMARY =  "Kernel drivers for the PowerVR Rogue GPU found in the TI SoCs"
> +HOMEPAGE = "http://git.ti.com/graphics/ti-img-rogue-driver"
> +LICENSE = "MIT | GPL-2.0-only"
> +LIC_FILES_CHKSUM = "file://README;beginline=14;endline=19;md5=0403c7dea01a2b8232261e805325fac2"
> +
> +inherit module
> +
> +PROVIDES = "virtual/gpudriver"
> +
> +PACKAGE_ARCH = "${MACHINE_ARCH}"
> +
> +COMPATIBLE_MACHINE = "j721e|j721s2|j784s4|j742s2|am62xx|am62pxx|j722s"
> +
> +DEPENDS = "virtual/kernel"
> +
> +BRANCH = "linuxws/scarthgap/k6.12/${PV}"
> +
> +SRC_URI = "git://git.ti.com/git/graphics/ti-img-rogue-driver.git;protocol=https;branch=${BRANCH}"
> +
> +S = "${WORKDIR}/git"
> +
> +SRCREV = "a838ac0074db640ebd1b64be6364417b1bbca3cd"
> +
> +TARGET_PRODUCT:j721e = "j721e_linux"
> +TARGET_PRODUCT:j721s2 = "j721s2_linux"
> +TARGET_PRODUCT:j784s4 = "j784s4_linux"
> +TARGET_PRODUCT:j742s2 = "j784s4_linux"
> +TARGET_PRODUCT:am62xx = "am62_linux"
> +TARGET_PRODUCT:am62pxx = "am62p_linux"
> +TARGET_PRODUCT:j722s = "j722s_linux"
> +PVR_BUILD = "release"
> +PVR_WS = "lws-generic"
> +
> +EXTRA_OEMAKE += 'KERNELDIR="${STAGING_KERNEL_DIR}" BUILD=${PVR_BUILD} PVR_BUILD_DIR=${TARGET_PRODUCT} WINDOW_SYSTEM=${PVR_WS}'
> +
> +do_install() {
> +    make -C ${STAGING_KERNEL_DIR} M=${B}/binary_${TARGET_PRODUCT}_${PVR_WS}_${PVR_BUILD}/target_aarch64/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install
> +}
> +
> +RRECOMMENDS:${PN} += "ti-img-rogue-umlibs"
> diff --git a/meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_25.2.6850647.bb b/meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_25.2.6850647.bb
> new file mode 100644
> index 00000000..6dba5d7e
> --- /dev/null
> +++ b/meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_25.2.6850647.bb
> @@ -0,0 +1,155 @@
> +SUMMARY = "Userspace libraries for PowerVR Rogue GPU on TI SoCs"
> +HOMEPAGE = "http://git.ti.com/graphics/ti-img-rogue-umlibs"
> +LICENSE = "TI-TFL"
> +LIC_FILES_CHKSUM = "file://${WORKDIR}/git/LICENSE;md5=7232b98c1c58f99e3baa03de5207e76f"
> +
> +PACKAGE_ARCH = "${MACHINE_ARCH}"
> +COMPATIBLE_MACHINE = "j721e|j721s2|j784s4|j742s2|am62xx|am62pxx|j722s"
> +
> +PR = "r0"
> +
> +BRANCH = "linuxws/scarthgap/k6.12/${PV}"
> +SRC_URI = "git://git.ti.com/git/graphics/ti-img-rogue-umlibs.git;protocol=https;branch=${BRANCH}"
> +SRCREV = "adcbb5c620ff172da4152c02a2fee8f42dc4c472"
> +S = "${WORKDIR}/git"
> +
> +TARGET_PRODUCT:j721e = "j721e_linux"
> +TARGET_PRODUCT:j721s2 = "j721s2_linux"
> +TARGET_PRODUCT:j784s4 = "j784s4_linux"
> +TARGET_PRODUCT:j742s2 = "j784s4_linux"
> +TARGET_PRODUCT:am62xx = "am62_linux"
> +TARGET_PRODUCT:am62pxx = "am62p_linux"
> +TARGET_PRODUCT:j722s = "j722s_linux"
> +PVR_BUILD = "release"
> +PVR_WS = "lws-generic"
> +
> +RDEPENDS:${PN} = " \
> +    libdrm \
> +    ti-img-rogue-driver \
> +    ${PN}-firmware \
> +"
> +
> +PACKAGECONFIG ?= " \
> +    ${@bb.utils.contains('DISTRO_FEATURES', 'vulkan wayland', 'vulkan', '', d)} \
> +    ${@bb.utils.filter('DISTRO_FEATURES', 'opengl opencl', d)} \
> +"
> +
> +PACKAGECONFIG[opengl] = ",,,,${GLES_PACKAGES}"
> +PACKAGECONFIG[vulkan] = ",,,,${VULKAN_PACKAGES}"
> +PACKAGECONFIG[opencl] = ",,,,${OPENCL_PACKAGES}"
> +
> +def get_file_list(package_list_var, d):
> +    file_list = []
> +    package_list = d.getVar(package_list_var)
> +    prefix = f"{d.getVar('D')}/"
> +    if package_list:
> +        for package in package_list.split():
> +            package_file_string = d.getVar(f"FILES:{package}")
> +            if package_file_string:
> +                for package_file in package_file_string.split():
> +                    file_list.append(f"{prefix}{package_file}")
> +    return " ".join(file_list)
> +
> +EXTRA_OEMAKE += 'BUILD=${PVR_BUILD} TARGET_PRODUCT=${TARGET_PRODUCT} WINDOW_SYSTEM=${PVR_WS}'
> +
> +do_configure[noexec] = "1"
> +do_compile[noexec] = "1"
> +do_install() {
> +    oe_runmake 'DESTDIR=${D}' install
> +    if ${@bb.utils.contains('PACKAGECONFIG', 'opengl', 'false', 'true', d)}; then
> +        for file in ${@get_file_list('GLES_PACKAGES',  d)}; do
> +            rm -rf ${file}
> +        done
> +    fi
> +    if ${@bb.utils.contains('PACKAGECONFIG', 'vulkan', 'false', 'true', d)}; then
> +        for file in ${@get_file_list('VULKAN_PACKAGES', d)}; do
> +            rm -rf ${file}
> +        done
> +    fi
> +    if ${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'false', 'true', d)}; then
> +        for file in ${@get_file_list('OPENCL_PACKAGES', d)}; do
> +            rm -rf ${file}
> +        done
> +    fi
> +    if ${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', 'true', 'false', d)}; then
> +        if [ -e ${D}/lib/firmware ]; then
> +            mv ${D}/lib/firmware ${D}${nonarch_base_libdir}
> +        fi
> +    fi
> +
> +    # clean up any empty directories
> +    find "${D}" -empty -type d -delete
> +
> +    # fix permissions
> +    chown -R root:root "${D}"
> +}
> +
> +GLES_PACKAGES = "libgles1-rogue libgles2-rogue libgles3-rogue"
> +VULKAN_PACKAGES = "libvk-rogue"
> +OPENCL_PACKAGES = "libopencl-rogue libopencl-rogue-tools"
> +
> +PACKAGES = " \
> +    ${@bb.utils.contains('PACKAGECONFIG', 'opengl', d.getVar('GLES_PACKAGES'), '', d)} \
> +    ${@bb.utils.contains('PACKAGECONFIG', 'vulkan', d.getVar('VULKAN_PACKAGES'), '', d)} \
> +    ${@bb.utils.contains('PACKAGECONFIG', 'opencl', d.getVar('OPENCL_PACKAGES'), '', d)} \
> +    ${PN}-tools \
> +    ${PN}-firmware \
> +    ${PN} \
> +"
> +
> +# Inject variables so that packages don't get Debian-renamed (which would
> +# remove the -rogue suffix), but don't RPROVIDEs/RCONFLICTs on the generic
> +# libgl name to prevent colliding with swrast libs
> +python __anonymous() {
> +    suffix = ""
> +    if "-native" in d.getVar("PN"):
> +        suffix = "-native"
> +    for p in (("vulkan", "libvk",),
> +              ("gles", "libgles1", "libglesv1-cm1"),
> +              ("gles", "libgles2", "libglesv2-2"),
> +              ("gles", "libgles3",),
> +              ("opencl", "libopencl",)):
> +        mlprefix = d.getVar("MLPREFIX")
> +        fullp = mlprefix + p[1] + "-rogue" + suffix
> +        mlprefix = d.getVar("MLPREFIX")
> +        pkgs = " " + " ".join(mlprefix + x + suffix for x in p[1:])
> +        d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1")
> +        d.setVar("INSANE_SKIP:" + fullp, "dev-so ldflags")
> +        d.appendVar("RRECOMMENDS:" + fullp, " ${MLPREFIX}ti-img-rogue-umlibs" + suffix)
> +}
> +
> +# gles specific shared objects
> +FILES:libgles1-rogue = "${libdir}/libGLESv1*.so*"
> +FILES:libgles2-rogue = "${libdir}/libGLESv2*.so*"
> +RDEPENDS:libgles1-rogue += "mesa-megadriver"
> +RDEPENDS:libgles2-rogue += "mesa-megadriver"
> +
> +# vulkan specific shared objects and configs
> +FILES:libvk-rogue = "${libdir}/libVK_IMG.so* ${datadir}/vulkan"
> +RDEPENDS:libvk-rogue += "vulkan-loader wayland libdrm"
> +
> +# opencl specific shared objects and configs
> +FILES:libopencl-rogue = "${libdir}/libPVROCL.so* ${sysconfdir}/OpenCL"
> +RDEPENDS:libopencl-rogue += "opencl-icd-loader"
> +RRECOMMENDS:libopencl-rogue += "libopencl-rogue-tools"
> +FILES:libopencl-rogue-tools += "${bindir}/ocl*"
> +DEBIAN_NOAUTONAME:libopencl-rogue-tools = "1"
> +INSANE_SKIP:libopencl-rogue-tools = "ldflags"
> +
> +# optional tools and tests
> +FILES:${PN}-tools = "${bindir}/"
> +RDEPENDS:${PN}-tools = "python3-core libdrm ${PN}"
> +INSANE_SKIP:${PN}-tools = "ldflags"
> +
> +# required firmware
> +FILES:${PN}-firmware = "${base_libdir}/firmware/*"
> +INSANE_SKIP:${PN}-firmware += "arch"
> +
> +# common libraries
> +FILES:${PN} = "${libdir}"
> +
> +RRECOMMENDS:${PN} += " \
> +    ${PN}-tools \
> +"
> +
> +INSANE_SKIP:${PN} += "already-stripped dev-so ldflags"
> -- 
> 2.34.1
Antonios Christidis Nov. 12, 2025, 7:20 p.m. UTC | #3
Dear Denys,

Ok will do, sending v2 shortly.
Only changes I made to the recipe are regarding PR and SRCREV.

Kind Regards,

Antonios

On 11/12/25 12:18 PM, Denys Dmytriyenko wrote:
> Please send it as a diff between 24 and 25 recipes so it's easier to 
> review. You need to pass --find-copies/-C and maybe 
> --find-copies-harder flags. On Wed, Nov 12, 2025 at 11: 49: 42AM 
> -0600, Antonios Christidis via lists. yoctoproject. org wrote: 
> ZjQcmQRYFpfptBannerStart
> This message was sent from outside of Texas Instruments.
> Do not click links or open attachments unless you recognize the source 
> of this email and know the content is safe.
> Report Suspicious
> <https://us-phishalarm-ewt.proofpoint.com/EWT/v1/G3vK!uJdqXRfP1k07CkZFPPKD3A7oOCBt5qxYDdV8ErObvlYmxWuuUSzDNu1eO6i0xLQxCulupu7rZbrx$> 
>
> ZjQcmQRYFpfptBannerEnd
> Please send it as a diff between 24 and 25 recipes so it's easier to review.
> You need to pass --find-copies/-C and maybe --find-copies-harder flags.
>
>
> On Wed, Nov 12, 2025 at 11:49:42AM -0600, Antonios Christidis via lists.yoctoproject.org wrote:
> > From: Antonios Christidis <a-christidis@ti.com>
> > 
> > New recipes for GPU DDK 25.2. Update DSP configuration files with new
> > preferred recipe versions.
> > 
> > Recipes regarding DDK 24.2 will still stay present, as scarthgap
> > supports kernel 6.6 and DDK 24.2 is the latest support.
> > 
> > Signed-off-by: Antonios Christidis <a-christidis@ti.com>
> > ---
> >  .../conf/machine/include/beagle-bsp.inc       |   2 +-
> >  meta-ti-bsp/conf/machine/include/ti-bsp.inc   |   2 +-
> >  .../ti-img-rogue-driver_25.2.6850647.bb       |  40 +++++
> >  .../ti-img-rogue-umlibs_25.2.6850647.bb       | 155 ++++++++++++++++++
> >  4 files changed, 197 insertions(+), 2 deletions(-)
> >  create mode 100644 meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_25.2.6850647.bb
> >  create mode 100644 meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_25.2.6850647.bb
> > 
> > diff --git a/meta-beagle/conf/machine/include/beagle-bsp.inc b/meta-beagle/conf/machine/include/beagle-bsp.inc
> > index 448e2086..e7788bd5 100644
> > --- a/meta-beagle/conf/machine/include/beagle-bsp.inc
> > +++ b/meta-beagle/conf/machine/include/beagle-bsp.inc
> > @@ -19,7 +19,7 @@ KERNEL_DEVICETREE_PREFIX:bsp-bb_org-6_12 = ""
> >  BSP_SGX_DRIVER_PROVIDER:bsp-bb_org-6_12 = "ti-sgx-ddk-km"
> >  BSP_SGX_DRIVER_VERSION:bsp-bb_org-6_12 = "1.17%"
> >  BSP_ROGUE_DRIVER_PROVIDER:bsp-bb_org-6_12 = "ti-img-rogue-driver"
> > -BSP_ROGUE_DRIVER_VERSION:bsp-bb_org-6_12 = "24%"
> > +BSP_ROGUE_DRIVER_VERSION:bsp-bb_org-6_12 = "25%"
> >  BSP_MESA_PVR_VERSION:bsp-bb_org-6_12 = "24%"
> >  
> >  # GC320 support requires out-of-tree drivers not yet available in bb.org 6.12
> > diff --git a/meta-ti-bsp/conf/machine/include/ti-bsp.inc b/meta-ti-bsp/conf/machine/include/ti-bsp.inc
> > index dc0473de..fb36cbea 100644
> > --- a/meta-ti-bsp/conf/machine/include/ti-bsp.inc
> > +++ b/meta-ti-bsp/conf/machine/include/ti-bsp.inc
> > @@ -45,7 +45,7 @@ BSP_BOOTLOADER_VERSION:bsp-ti-6_12 = "2025.01%"
> >  BSP_SGX_DRIVER_PROVIDER:bsp-ti-6_12 = "ti-sgx-ddk-km"
> >  BSP_SGX_DRIVER_VERSION:bsp-ti-6_12 = "1.17%"
> >  BSP_ROGUE_DRIVER_PROVIDER:bsp-ti-6_12 = "ti-img-rogue-driver"
> > -BSP_ROGUE_DRIVER_VERSION:bsp-ti-6_12 = "24%"
> > +BSP_ROGUE_DRIVER_VERSION:bsp-ti-6_12 = "25%"
> >  BSP_MESA_PVR_VERSION:bsp-ti-6_12 = "24%"
> >  
> >  # ==========
> > diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_25.2.6850647.bb b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_25.2.6850647.bb
> > new file mode 100644
> > index 00000000..0f50026a
> > --- /dev/null
> > +++ b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_25.2.6850647.bb
> > @@ -0,0 +1,40 @@
> > +SUMMARY =  "Kernel drivers for the PowerVR Rogue GPU found in the TI SoCs"
> > +HOMEPAGE = "http://git.ti.com/graphics/ti-img-rogue-driver "
> > +LICENSE = "MIT | GPL-2.0-only"
> > +LIC_FILES_CHKSUM = "file://README;beginline=14;endline=19;md5=0403c7dea01a2b8232261e805325fac2"
> > +
> > +inherit module
> > +
> > +PROVIDES = "virtual/gpudriver"
> > +
> > +PACKAGE_ARCH = "${MACHINE_ARCH}"
> > +
> > +COMPATIBLE_MACHINE = "j721e|j721s2|j784s4|j742s2|am62xx|am62pxx|j722s"
> > +
> > +DEPENDS = "virtual/kernel"
> > +
> > +BRANCH = "linuxws/scarthgap/k6.12/${PV}"
> > +
> > +SRC_URI = "git://git.ti.com/git/graphics/ti-img-rogue-driver.git;protocol=https;branch=${BRANCH}"
> > +
> > +S = "${WORKDIR}/git"
> > +
> > +SRCREV = "a838ac0074db640ebd1b64be6364417b1bbca3cd"
> > +
> > +TARGET_PRODUCT:j721e = "j721e_linux"
> > +TARGET_PRODUCT:j721s2 = "j721s2_linux"
> > +TARGET_PRODUCT:j784s4 = "j784s4_linux"
> > +TARGET_PRODUCT:j742s2 = "j784s4_linux"
> > +TARGET_PRODUCT:am62xx = "am62_linux"
> > +TARGET_PRODUCT:am62pxx = "am62p_linux"
> > +TARGET_PRODUCT:j722s = "j722s_linux"
> > +PVR_BUILD = "release"
> > +PVR_WS = "lws-generic"
> > +
> > +EXTRA_OEMAKE += 'KERNELDIR="${STAGING_KERNEL_DIR}" BUILD=${PVR_BUILD} PVR_BUILD_DIR=${TARGET_PRODUCT} WINDOW_SYSTEM=${PVR_WS}'
> > +
> > +do_install() {
> > +    make -C ${STAGING_KERNEL_DIR} M=${B}/binary_${TARGET_PRODUCT}_${PVR_WS}_${PVR_BUILD}/target_aarch64/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install
> > +}
> > +
> > +RRECOMMENDS:${PN} += "ti-img-rogue-umlibs"
> > diff --git a/meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_25.2.6850647.bb b/meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_25.2.6850647.bb
> > new file mode 100644
> > index 00000000..6dba5d7e
> > --- /dev/null
> > +++ b/meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_25.2.6850647.bb
> > @@ -0,0 +1,155 @@
> > +SUMMARY = "Userspace libraries for PowerVR Rogue GPU on TI SoCs"
> > +HOMEPAGE = "http://git.ti.com/graphics/ti-img-rogue-umlibs "
> > +LICENSE = "TI-TFL"
> > +LIC_FILES_CHKSUM = "file://${WORKDIR}/git/LICENSE;md5=7232b98c1c58f99e3baa03de5207e76f"
> > +
> > +PACKAGE_ARCH = "${MACHINE_ARCH}"
> > +COMPATIBLE_MACHINE = "j721e|j721s2|j784s4|j742s2|am62xx|am62pxx|j722s"
> > +
> > +PR = "r0"
> > +
> > +BRANCH = "linuxws/scarthgap/k6.12/${PV}"
> > +SRC_URI = "git://git.ti.com/git/graphics/ti-img-rogue-umlibs.git;protocol=https;branch=${BRANCH}"
> > +SRCREV = "adcbb5c620ff172da4152c02a2fee8f42dc4c472"
> > +S = "${WORKDIR}/git"
> > +
> > +TARGET_PRODUCT:j721e = "j721e_linux"
> > +TARGET_PRODUCT:j721s2 = "j721s2_linux"
> > +TARGET_PRODUCT:j784s4 = "j784s4_linux"
> > +TARGET_PRODUCT:j742s2 = "j784s4_linux"
> > +TARGET_PRODUCT:am62xx = "am62_linux"
> > +TARGET_PRODUCT:am62pxx = "am62p_linux"
> > +TARGET_PRODUCT:j722s = "j722s_linux"
> > +PVR_BUILD = "release"
> > +PVR_WS = "lws-generic"
> > +
> > +RDEPENDS:${PN} = " \
> > +    libdrm \
> > +    ti-img-rogue-driver \
> > +    ${PN}-firmware \
> > +"
> > +
> > +PACKAGECONFIG ?= " \
> > +    ${@bb.utils.contains('DISTRO_FEATURES', 'vulkan wayland', 'vulkan', '', d)} \
> > +    ${@bb.utils.filter('DISTRO_FEATURES', 'opengl opencl', d)} \
> > +"
> > +
> > +PACKAGECONFIG[opengl] = ",,,,${GLES_PACKAGES}"
> > +PACKAGECONFIG[vulkan] = ",,,,${VULKAN_PACKAGES}"
> > +PACKAGECONFIG[opencl] = ",,,,${OPENCL_PACKAGES}"
> > +
> > +def get_file_list(package_list_var, d):
> > +    file_list = []
> > +    package_list = d.getVar(package_list_var)
> > +    prefix = f"{d.getVar('D')}/"
> > +    if package_list:
> > +        for package in package_list.split():
> > +            package_file_string = d.getVar(f"FILES:{package}")
> > +            if package_file_string:
> > +                for package_file in package_file_string.split():
> > +                    file_list.append(f"{prefix}{package_file}")
> > +    return " ".join(file_list)
> > +
> > +EXTRA_OEMAKE += 'BUILD=${PVR_BUILD} TARGET_PRODUCT=${TARGET_PRODUCT} WINDOW_SYSTEM=${PVR_WS}'
> > +
> > +do_configure[noexec] = "1"
> > +do_compile[noexec] = "1"
> > +do_install() {
> > +    oe_runmake 'DESTDIR=${D}' install
> > +    if ${@bb.utils.contains('PACKAGECONFIG', 'opengl', 'false', 'true', d)}; then
> > +        for file in ${@get_file_list('GLES_PACKAGES',  d)}; do
> > +            rm -rf ${file}
> > +        done
> > +    fi
> > +    if ${@bb.utils.contains('PACKAGECONFIG', 'vulkan', 'false', 'true', d)}; then
> > +        for file in ${@get_file_list('VULKAN_PACKAGES', d)}; do
> > +            rm -rf ${file}
> > +        done
> > +    fi
> > +    if ${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'false', 'true', d)}; then
> > +        for file in ${@get_file_list('OPENCL_PACKAGES', d)}; do
> > +            rm -rf ${file}
> > +        done
> > +    fi
> > +    if ${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', 'true', 'false', d)}; then
> > +        if [ -e ${D}/lib/firmware ]; then
> > +            mv ${D}/lib/firmware ${D}${nonarch_base_libdir}
> > +        fi
> > +    fi
> > +
> > +    # clean up any empty directories
> > +    find "${D}" -empty -type d -delete
> > +
> > +    # fix permissions
> > +    chown -R root:root "${D}"
> > +}
> > +
> > +GLES_PACKAGES = "libgles1-rogue libgles2-rogue libgles3-rogue"
> > +VULKAN_PACKAGES = "libvk-rogue"
> > +OPENCL_PACKAGES = "libopencl-rogue libopencl-rogue-tools"
> > +
> > +PACKAGES = " \
> > +    ${@bb.utils.contains('PACKAGECONFIG', 'opengl', d.getVar('GLES_PACKAGES'), '', d)} \
> > +    ${@bb.utils.contains('PACKAGECONFIG', 'vulkan', d.getVar('VULKAN_PACKAGES'), '', d)} \
> > +    ${@bb.utils.contains('PACKAGECONFIG', 'opencl', d.getVar('OPENCL_PACKAGES'), '', d)} \
> > +    ${PN}-tools \
> > +    ${PN}-firmware \
> > +    ${PN} \
> > +"
> > +
> > +# Inject variables so that packages don't get Debian-renamed (which would
> > +# remove the -rogue suffix), but don't RPROVIDEs/RCONFLICTs on the generic
> > +# libgl name to prevent colliding with swrast libs
> > +python __anonymous() {
> > +    suffix = ""
> > +    if "-native" in d.getVar("PN"):
> > +        suffix = "-native"
> > +    for p in (("vulkan", "libvk",),
> > +              ("gles", "libgles1", "libglesv1-cm1"),
> > +              ("gles", "libgles2", "libglesv2-2"),
> > +              ("gles", "libgles3",),
> > +              ("opencl", "libopencl",)):
> > +        mlprefix = d.getVar("MLPREFIX")
> > +        fullp = mlprefix + p[1] + "-rogue" + suffix
> > +        mlprefix = d.getVar("MLPREFIX")
> > +        pkgs = " " + " ".join(mlprefix + x + suffix for x in p[1:])
> > +        d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1")
> > +        d.setVar("INSANE_SKIP:" + fullp, "dev-so ldflags")
> > +        d.appendVar("RRECOMMENDS:" + fullp, " ${MLPREFIX}ti-img-rogue-umlibs" + suffix)
> > +}
> > +
> > +# gles specific shared objects
> > +FILES:libgles1-rogue = "${libdir}/libGLESv1*.so*"
> > +FILES:libgles2-rogue = "${libdir}/libGLESv2*.so*"
> > +RDEPENDS:libgles1-rogue += "mesa-megadriver"
> > +RDEPENDS:libgles2-rogue += "mesa-megadriver"
> > +
> > +# vulkan specific shared objects and configs
> > +FILES:libvk-rogue = "${libdir}/libVK_IMG.so* ${datadir}/vulkan"
> > +RDEPENDS:libvk-rogue += "vulkan-loader wayland libdrm"
> > +
> > +# opencl specific shared objects and configs
> > +FILES:libopencl-rogue = "${libdir}/libPVROCL.so* ${sysconfdir}/OpenCL"
> > +RDEPENDS:libopencl-rogue += "opencl-icd-loader"
> > +RRECOMMENDS:libopencl-rogue += "libopencl-rogue-tools"
> > +FILES:libopencl-rogue-tools += "${bindir}/ocl*"
> > +DEBIAN_NOAUTONAME:libopencl-rogue-tools = "1"
> > +INSANE_SKIP:libopencl-rogue-tools = "ldflags"
> > +
> > +# optional tools and tests
> > +FILES:${PN}-tools = "${bindir}/"
> > +RDEPENDS:${PN}-tools = "python3-core libdrm ${PN}"
> > +INSANE_SKIP:${PN}-tools = "ldflags"
> > +
> > +# required firmware
> > +FILES:${PN}-firmware = "${base_libdir}/firmware/*"
> > +INSANE_SKIP:${PN}-firmware += "arch"
> > +
> > +# common libraries
> > +FILES:${PN} = "${libdir}"
> > +
> > +RRECOMMENDS:${PN} += " \
> > +    ${PN}-tools \
> > +"
> > +
> > +INSANE_SKIP:${PN} += "already-stripped dev-so ldflags"
> > -- 
> > 2.34.1
diff mbox series

Patch

diff --git a/meta-beagle/conf/machine/include/beagle-bsp.inc b/meta-beagle/conf/machine/include/beagle-bsp.inc
index 448e2086..e7788bd5 100644
--- a/meta-beagle/conf/machine/include/beagle-bsp.inc
+++ b/meta-beagle/conf/machine/include/beagle-bsp.inc
@@ -19,7 +19,7 @@  KERNEL_DEVICETREE_PREFIX:bsp-bb_org-6_12 = ""
 BSP_SGX_DRIVER_PROVIDER:bsp-bb_org-6_12 = "ti-sgx-ddk-km"
 BSP_SGX_DRIVER_VERSION:bsp-bb_org-6_12 = "1.17%"
 BSP_ROGUE_DRIVER_PROVIDER:bsp-bb_org-6_12 = "ti-img-rogue-driver"
-BSP_ROGUE_DRIVER_VERSION:bsp-bb_org-6_12 = "24%"
+BSP_ROGUE_DRIVER_VERSION:bsp-bb_org-6_12 = "25%"
 BSP_MESA_PVR_VERSION:bsp-bb_org-6_12 = "24%"
 
 # GC320 support requires out-of-tree drivers not yet available in bb.org 6.12
diff --git a/meta-ti-bsp/conf/machine/include/ti-bsp.inc b/meta-ti-bsp/conf/machine/include/ti-bsp.inc
index dc0473de..fb36cbea 100644
--- a/meta-ti-bsp/conf/machine/include/ti-bsp.inc
+++ b/meta-ti-bsp/conf/machine/include/ti-bsp.inc
@@ -45,7 +45,7 @@  BSP_BOOTLOADER_VERSION:bsp-ti-6_12 = "2025.01%"
 BSP_SGX_DRIVER_PROVIDER:bsp-ti-6_12 = "ti-sgx-ddk-km"
 BSP_SGX_DRIVER_VERSION:bsp-ti-6_12 = "1.17%"
 BSP_ROGUE_DRIVER_PROVIDER:bsp-ti-6_12 = "ti-img-rogue-driver"
-BSP_ROGUE_DRIVER_VERSION:bsp-ti-6_12 = "24%"
+BSP_ROGUE_DRIVER_VERSION:bsp-ti-6_12 = "25%"
 BSP_MESA_PVR_VERSION:bsp-ti-6_12 = "24%"
 
 # ==========
diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_25.2.6850647.bb b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_25.2.6850647.bb
new file mode 100644
index 00000000..0f50026a
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_25.2.6850647.bb
@@ -0,0 +1,40 @@ 
+SUMMARY =  "Kernel drivers for the PowerVR Rogue GPU found in the TI SoCs"
+HOMEPAGE = "http://git.ti.com/graphics/ti-img-rogue-driver"
+LICENSE = "MIT | GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://README;beginline=14;endline=19;md5=0403c7dea01a2b8232261e805325fac2"
+
+inherit module
+
+PROVIDES = "virtual/gpudriver"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+COMPATIBLE_MACHINE = "j721e|j721s2|j784s4|j742s2|am62xx|am62pxx|j722s"
+
+DEPENDS = "virtual/kernel"
+
+BRANCH = "linuxws/scarthgap/k6.12/${PV}"
+
+SRC_URI = "git://git.ti.com/git/graphics/ti-img-rogue-driver.git;protocol=https;branch=${BRANCH}"
+
+S = "${WORKDIR}/git"
+
+SRCREV = "a838ac0074db640ebd1b64be6364417b1bbca3cd"
+
+TARGET_PRODUCT:j721e = "j721e_linux"
+TARGET_PRODUCT:j721s2 = "j721s2_linux"
+TARGET_PRODUCT:j784s4 = "j784s4_linux"
+TARGET_PRODUCT:j742s2 = "j784s4_linux"
+TARGET_PRODUCT:am62xx = "am62_linux"
+TARGET_PRODUCT:am62pxx = "am62p_linux"
+TARGET_PRODUCT:j722s = "j722s_linux"
+PVR_BUILD = "release"
+PVR_WS = "lws-generic"
+
+EXTRA_OEMAKE += 'KERNELDIR="${STAGING_KERNEL_DIR}" BUILD=${PVR_BUILD} PVR_BUILD_DIR=${TARGET_PRODUCT} WINDOW_SYSTEM=${PVR_WS}'
+
+do_install() {
+    make -C ${STAGING_KERNEL_DIR} M=${B}/binary_${TARGET_PRODUCT}_${PVR_WS}_${PVR_BUILD}/target_aarch64/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install
+}
+
+RRECOMMENDS:${PN} += "ti-img-rogue-umlibs"
diff --git a/meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_25.2.6850647.bb b/meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_25.2.6850647.bb
new file mode 100644
index 00000000..6dba5d7e
--- /dev/null
+++ b/meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_25.2.6850647.bb
@@ -0,0 +1,155 @@ 
+SUMMARY = "Userspace libraries for PowerVR Rogue GPU on TI SoCs"
+HOMEPAGE = "http://git.ti.com/graphics/ti-img-rogue-umlibs"
+LICENSE = "TI-TFL"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/git/LICENSE;md5=7232b98c1c58f99e3baa03de5207e76f"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+COMPATIBLE_MACHINE = "j721e|j721s2|j784s4|j742s2|am62xx|am62pxx|j722s"
+
+PR = "r0"
+
+BRANCH = "linuxws/scarthgap/k6.12/${PV}"
+SRC_URI = "git://git.ti.com/git/graphics/ti-img-rogue-umlibs.git;protocol=https;branch=${BRANCH}"
+SRCREV = "adcbb5c620ff172da4152c02a2fee8f42dc4c472"
+S = "${WORKDIR}/git"
+
+TARGET_PRODUCT:j721e = "j721e_linux"
+TARGET_PRODUCT:j721s2 = "j721s2_linux"
+TARGET_PRODUCT:j784s4 = "j784s4_linux"
+TARGET_PRODUCT:j742s2 = "j784s4_linux"
+TARGET_PRODUCT:am62xx = "am62_linux"
+TARGET_PRODUCT:am62pxx = "am62p_linux"
+TARGET_PRODUCT:j722s = "j722s_linux"
+PVR_BUILD = "release"
+PVR_WS = "lws-generic"
+
+RDEPENDS:${PN} = " \
+    libdrm \
+    ti-img-rogue-driver \
+    ${PN}-firmware \
+"
+
+PACKAGECONFIG ?= " \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'vulkan wayland', 'vulkan', '', d)} \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'opengl opencl', d)} \
+"
+
+PACKAGECONFIG[opengl] = ",,,,${GLES_PACKAGES}"
+PACKAGECONFIG[vulkan] = ",,,,${VULKAN_PACKAGES}"
+PACKAGECONFIG[opencl] = ",,,,${OPENCL_PACKAGES}"
+
+def get_file_list(package_list_var, d):
+    file_list = []
+    package_list = d.getVar(package_list_var)
+    prefix = f"{d.getVar('D')}/"
+    if package_list:
+        for package in package_list.split():
+            package_file_string = d.getVar(f"FILES:{package}")
+            if package_file_string:
+                for package_file in package_file_string.split():
+                    file_list.append(f"{prefix}{package_file}")
+    return " ".join(file_list)
+
+EXTRA_OEMAKE += 'BUILD=${PVR_BUILD} TARGET_PRODUCT=${TARGET_PRODUCT} WINDOW_SYSTEM=${PVR_WS}'
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+do_install() {
+    oe_runmake 'DESTDIR=${D}' install
+    if ${@bb.utils.contains('PACKAGECONFIG', 'opengl', 'false', 'true', d)}; then
+        for file in ${@get_file_list('GLES_PACKAGES',  d)}; do
+            rm -rf ${file}
+        done
+    fi
+    if ${@bb.utils.contains('PACKAGECONFIG', 'vulkan', 'false', 'true', d)}; then
+        for file in ${@get_file_list('VULKAN_PACKAGES', d)}; do
+            rm -rf ${file}
+        done
+    fi
+    if ${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'false', 'true', d)}; then
+        for file in ${@get_file_list('OPENCL_PACKAGES', d)}; do
+            rm -rf ${file}
+        done
+    fi
+    if ${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', 'true', 'false', d)}; then
+        if [ -e ${D}/lib/firmware ]; then
+            mv ${D}/lib/firmware ${D}${nonarch_base_libdir}
+        fi
+    fi
+
+    # clean up any empty directories
+    find "${D}" -empty -type d -delete
+
+    # fix permissions
+    chown -R root:root "${D}"
+}
+
+GLES_PACKAGES = "libgles1-rogue libgles2-rogue libgles3-rogue"
+VULKAN_PACKAGES = "libvk-rogue"
+OPENCL_PACKAGES = "libopencl-rogue libopencl-rogue-tools"
+
+PACKAGES = " \
+    ${@bb.utils.contains('PACKAGECONFIG', 'opengl', d.getVar('GLES_PACKAGES'), '', d)} \
+    ${@bb.utils.contains('PACKAGECONFIG', 'vulkan', d.getVar('VULKAN_PACKAGES'), '', d)} \
+    ${@bb.utils.contains('PACKAGECONFIG', 'opencl', d.getVar('OPENCL_PACKAGES'), '', d)} \
+    ${PN}-tools \
+    ${PN}-firmware \
+    ${PN} \
+"
+
+# Inject variables so that packages don't get Debian-renamed (which would
+# remove the -rogue suffix), but don't RPROVIDEs/RCONFLICTs on the generic
+# libgl name to prevent colliding with swrast libs
+python __anonymous() {
+    suffix = ""
+    if "-native" in d.getVar("PN"):
+        suffix = "-native"
+    for p in (("vulkan", "libvk",),
+              ("gles", "libgles1", "libglesv1-cm1"),
+              ("gles", "libgles2", "libglesv2-2"),
+              ("gles", "libgles3",),
+              ("opencl", "libopencl",)):
+        mlprefix = d.getVar("MLPREFIX")
+        fullp = mlprefix + p[1] + "-rogue" + suffix
+        mlprefix = d.getVar("MLPREFIX")
+        pkgs = " " + " ".join(mlprefix + x + suffix for x in p[1:])
+        d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1")
+        d.setVar("INSANE_SKIP:" + fullp, "dev-so ldflags")
+        d.appendVar("RRECOMMENDS:" + fullp, " ${MLPREFIX}ti-img-rogue-umlibs" + suffix)
+}
+
+# gles specific shared objects
+FILES:libgles1-rogue = "${libdir}/libGLESv1*.so*"
+FILES:libgles2-rogue = "${libdir}/libGLESv2*.so*"
+RDEPENDS:libgles1-rogue += "mesa-megadriver"
+RDEPENDS:libgles2-rogue += "mesa-megadriver"
+
+# vulkan specific shared objects and configs
+FILES:libvk-rogue = "${libdir}/libVK_IMG.so* ${datadir}/vulkan"
+RDEPENDS:libvk-rogue += "vulkan-loader wayland libdrm"
+
+# opencl specific shared objects and configs
+FILES:libopencl-rogue = "${libdir}/libPVROCL.so* ${sysconfdir}/OpenCL"
+RDEPENDS:libopencl-rogue += "opencl-icd-loader"
+RRECOMMENDS:libopencl-rogue += "libopencl-rogue-tools"
+FILES:libopencl-rogue-tools += "${bindir}/ocl*"
+DEBIAN_NOAUTONAME:libopencl-rogue-tools = "1"
+INSANE_SKIP:libopencl-rogue-tools = "ldflags"
+
+# optional tools and tests
+FILES:${PN}-tools = "${bindir}/"
+RDEPENDS:${PN}-tools = "python3-core libdrm ${PN}"
+INSANE_SKIP:${PN}-tools = "ldflags"
+
+# required firmware
+FILES:${PN}-firmware = "${base_libdir}/firmware/*"
+INSANE_SKIP:${PN}-firmware += "arch"
+
+# common libraries
+FILES:${PN} = "${libdir}"
+
+RRECOMMENDS:${PN} += " \
+    ${PN}-tools \
+"
+
+INSANE_SKIP:${PN} += "already-stripped dev-so ldflags"