From e9ed788e1882ea24c0f349789370e89003c4d019 Mon Sep 17 00:00:00 2001 From: Randolph Sapp Date: Thu, 1 Feb 2024 10:36:15 -0600 Subject: ti-img-rogue-*: version bump to 23.3.6512818 Migrate to version 23.3.6512818, this includes the stability updates released in 23.2 as well as some additional modifications to help with userspace application support, namely Chromium. We're also dropping the x11 window system extensions from the Vulkan libraries for now. Ideally, both x11 and wayland extensions will be provided by mesa's vulkan-wsi-layer in the future, but currently x11 isn't supported and this just added extra complexity to the package in Yocto. Signed-off-by: Randolph Sapp Tested-by: Darren Etheridge Signed-off-by: Ryan Eatmon --- ...ld-kbuild-Makefile.template-use-SECONDARY.patch | 35 ----- .../ti-img-rogue-driver_23.2.6460340.bb | 44 ------- .../ti-img-rogue-driver_23.3.6512818.bb | 42 ++++++ .../ti-img-rogue-umlibs_23.2.6460340.bb | 145 --------------------- .../ti-img-rogue-umlibs_23.3.6512818.bb | 145 +++++++++++++++++++++ 5 files changed, 187 insertions(+), 224 deletions(-) delete mode 100644 meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver/0001-build-kbuild-Makefile.template-use-SECONDARY.patch delete mode 100644 meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_23.2.6460340.bb create mode 100644 meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_23.3.6512818.bb delete mode 100644 meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_23.2.6460340.bb create mode 100644 meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_23.3.6512818.bb diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver/0001-build-kbuild-Makefile.template-use-SECONDARY.patch b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver/0001-build-kbuild-Makefile.template-use-SECONDARY.patch deleted file mode 100644 index 0989116e..00000000 --- a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver/0001-build-kbuild-Makefile.template-use-SECONDARY.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 738dfc1b33a83e9995ed7f65ec41ebe2fc6a90ed Mon Sep 17 00:00:00 2001 -From: Ryan Eatmon -Date: Wed, 1 Nov 2023 10:04:29 -0500 -Subject: [PATCH] build: kbuild: Makefile.template: use SECONDARY - -For some reason on master we are seeing an error: - -| make[5]: *** .NOTINTERMEDIATE and .SECONDARY are mutually exclusive. Stop. - -Flip this back to .SECONDARY to fix this build issue. - -Signed-off-by: Ryan Eatmon - -Upstream-Status: Pending - ---- - build/linux/kbuild/Makefile.template | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/build/linux/kbuild/Makefile.template b/build/linux/kbuild/Makefile.template -index aa19d66..31e37fb 100644 ---- a/build/linux/kbuild/Makefile.template -+++ b/build/linux/kbuild/Makefile.template -@@ -54,7 +54,7 @@ - - include $(OUT)/config_kernel.mk - --.NOTINTERMEDIATE: -+.SECONDARY: - - define symlink-source-file - @if [ ! -e $(dir $@) ]; then mkdir -p $(dir $@); fi --- -2.17.1 - diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_23.2.6460340.bb b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_23.2.6460340.bb deleted file mode 100644 index 7b274312..00000000 --- a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_23.2.6460340.bb +++ /dev/null @@ -1,44 +0,0 @@ -DESCRIPTION = "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" - -MACHINE_KERNEL_PR:append = "b" -PR = "${MACHINE_KERNEL_PR}" - -PACKAGE_ARCH = "${MACHINE_ARCH}" - -COMPATIBLE_MACHINE = "j721e|j721s2|j784s4|am62xx|am62pxx|j722s" - -DEPENDS = "virtual/kernel" - -BRANCH = "linuxws/kirkstone/k6.1/${PV}" - -SRC_URI = "git://git.ti.com/git/graphics/ti-img-rogue-driver.git;protocol=https;branch=${BRANCH}" - -SRC_URI:append = " file://0001-build-kbuild-Makefile.template-use-SECONDARY.patch" - -S = "${WORKDIR}/git" - -SRCREV = "2595524729c5acbabcbdee2185de64e7fcd6b36a" - -TARGET_PRODUCT:j721e = "j721e_linux" -TARGET_PRODUCT:j721s2 = "j721s2_linux" -TARGET_PRODUCT:j784s4 = "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-bsp/powervr-drivers/ti-img-rogue-driver_23.3.6512818.bb b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_23.3.6512818.bb new file mode 100644 index 00000000..bc59816a --- /dev/null +++ b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_23.3.6512818.bb @@ -0,0 +1,42 @@ +DESCRIPTION = "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" + +MACHINE_KERNEL_PR:append = "b" +PR = "${MACHINE_KERNEL_PR}" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +COMPATIBLE_MACHINE = "j721e|j721s2|j784s4|am62xx|am62pxx|j722s" + +DEPENDS = "virtual/kernel" + +BRANCH = "linuxws/kirkstone/k6.1/${PV}" + +SRC_URI = "git://git.ti.com/git/graphics/ti-img-rogue-driver.git;protocol=https;branch=${BRANCH}" + +S = "${WORKDIR}/git" + +SRCREV = "41a494accb30aa2f247e6a4e123a4954982f2a88" + +TARGET_PRODUCT:j721e = "j721e_linux" +TARGET_PRODUCT:j721s2 = "j721s2_linux" +TARGET_PRODUCT:j784s4 = "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_23.2.6460340.bb b/meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_23.2.6460340.bb deleted file mode 100644 index 5ad32d41..00000000 --- a/meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_23.2.6460340.bb +++ /dev/null @@ -1,145 +0,0 @@ -DESCRIPTION = "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" - -inherit bin_package - -INHIBIT_DEFAULT_DEPS = "" - -PACKAGE_ARCH = "${MACHINE_ARCH}" -COMPATIBLE_MACHINE = "j721e|j721s2|j784s4|am62xx|am62pxx|j722s" - -PR = "r3" - -BRANCH = "linuxws/kirkstone/k6.1/${PV}" -SRC_URI = "git://git.ti.com/git/graphics/ti-img-rogue-umlibs.git;protocol=https;branch=${BRANCH}" -SRCREV = "c2671c6eaf85ec6a1183c023bbb4d6e9e288fc10" -S = "${WORKDIR}/git/targetfs/${TARGET_PRODUCT}/${PVR_WS}/${PVR_BUILD}" - -TARGET_PRODUCT:j721e = "j721e_linux" -TARGET_PRODUCT:j721s2 = "j721s2_linux" -TARGET_PRODUCT:j784s4 = "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 x11 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('S')}/" - 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) - -do_install:prepend() { - 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 ${S}/lib/firmware ]; then - mv ${S}/lib/firmware ${S}${nonarch_base_libdir} - fi - fi - - # clean up any empty directories - find "${S}" -empty -type d -delete -} - -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") - 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 libx11-xcb 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" - -# optional tools and tests -FILES:${PN}-tools = "${bindir}/" -RDEPENDS:${PN}-tools = "python3-core ${PN}" - -# required firmware -FILES:${PN}-firmware = "${base_libdir}/firmware/*" -INSANE_SKIP:${PN}-firmware += "arch" - -RRECOMMENDS:${PN} += " \ - ${PN}-tools \ -" - -INSANE_SKIP:${PN} += "already-stripped dev-so" diff --git a/meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_23.3.6512818.bb b/meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_23.3.6512818.bb new file mode 100644 index 00000000..288eb52b --- /dev/null +++ b/meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_23.3.6512818.bb @@ -0,0 +1,145 @@ +DESCRIPTION = "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" + +inherit bin_package + +INHIBIT_DEFAULT_DEPS = "" + +PACKAGE_ARCH = "${MACHINE_ARCH}" +COMPATIBLE_MACHINE = "j721e|j721s2|j784s4|am62xx|am62pxx|j722s" + +PR = "r3" + +BRANCH = "linuxws/kirkstone/k6.1/${PV}" +SRC_URI = "git://git.ti.com/git/graphics/ti-img-rogue-umlibs.git;protocol=https;branch=${BRANCH}" +SRCREV = "0b9e64254269be2fa95c4f3e1dd925d6e4d58199" +S = "${WORKDIR}/git/targetfs/${TARGET_PRODUCT}/${PVR_WS}/${PVR_BUILD}" + +TARGET_PRODUCT:j721e = "j721e_linux" +TARGET_PRODUCT:j721s2 = "j721s2_linux" +TARGET_PRODUCT:j784s4 = "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('S')}/" + 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) + +do_install:prepend() { + 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 ${S}/lib/firmware ]; then + mv ${S}/lib/firmware ${S}${nonarch_base_libdir} + fi + fi + + # clean up any empty directories + find "${S}" -empty -type d -delete +} + +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") + 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" + +# optional tools and tests +FILES:${PN}-tools = "${bindir}/" +RDEPENDS:${PN}-tools = "python3-core ${PN}" + +# required firmware +FILES:${PN}-firmware = "${base_libdir}/firmware/*" +INSANE_SKIP:${PN}-firmware += "arch" + +RRECOMMENDS:${PN} += " \ + ${PN}-tools \ +" + +INSANE_SKIP:${PN} += "already-stripped dev-so" -- cgit v1.2.3-54-g00ecf