From 82aa8db471dabdc4614f1669211d4b90011c7fa7 Mon Sep 17 00:00:00 2001 From: Max Krummenacher Date: Tue, 22 Oct 2024 09:52:46 +0200 Subject: mali-imx: import recipe from meta-imx mali-imx at 6.6.36-2.1.0 NXP BSP release. Provides precompiled binaries for the GPU used e.g. on a i.MX 95 SoC plus the related helpers, headers. Signed-off-by: Max Krummenacher --- recipes-graphics/mali/mali-imx.inc | 107 ++++++++++++++++++++++++++++++++ recipes-graphics/mali/mali-imx_r50.0.bb | 25 ++++++++ 2 files changed, 132 insertions(+) create mode 100644 recipes-graphics/mali/mali-imx.inc create mode 100644 recipes-graphics/mali/mali-imx_r50.0.bb diff --git a/recipes-graphics/mali/mali-imx.inc b/recipes-graphics/mali/mali-imx.inc new file mode 100644 index 000000000..e4fafeb0b --- /dev/null +++ b/recipes-graphics/mali/mali-imx.inc @@ -0,0 +1,107 @@ +SUMMARY = "Graphics libraries and driver for i.MX Mali GPU" +SECTION = "libs" +DEPENDS = " \ + libdrm \ + vulkan-loader \ + wayland \ + wayland-protocols" +PROVIDES = " \ + virtual/egl \ + virtual/libgbm \ + virtual/libgles1 \ + virtual/libgles2 \ + virtual/libgles3" + +# The packaged binaries have been stripped of debug info, so disable +# operations accordingly. +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" +INHIBIT_PACKAGE_STRIP = "1" +INHIBIT_SYSROOT_STRIP = "1" + +PACKAGES =+ " \ + ${PN}-libegl ${PN}-libegl-dev \ + ${PN}-libgbm ${PN}-libgbm-dev \ + ${PN}-libgles1 ${PN}-libgles1-dev \ + ${PN}-libgles2 ${PN}-libgles2-dev \ + ${PN}-libgles3 ${PN}-libgles3-dev \ + ${PN}-libvulkan \ + ${PN}-opencl-icd ${PN}-opencl-icd-dev" + +# Since libmali.so is loaded by dlopen, include it in the main package +FILES:${PN} += " \ + ${libdir}/libmali.so \ + ${nonarch_base_libdir}/firmware" +FILES_SOLIBSDEV = "" +INSANE_SKIP:${PN} = "dev-so" +FILES:${PN}-libegl = " \ + ${libdir}/libEGL${SOLIBS}" +FILES:${PN}-libgbm = " \ + ${libdir}/libgbm${SOLIBS}" +FILES:${PN}-libgles1 = " \ + ${libdir}/libGLESv1_CM${SOLIBS}" +FILES:${PN}-libgles2 = " \ + ${libdir}/libGLESv2${SOLIBS}" +FILES:${PN}-opencl-icd = " \ + ${sysconfdir}/OpenCL" +FILES:${PN}-libvulkan = " \ + ${sysconfdir}/vulkan" + +FILES:${PN}-dev = " \ + ${bindir}/malisc" +FILES:${PN}-libegl-dev = " \ + ${includedir}/EGL \ + ${includedir}/KHR \ + ${libdir}/libEGL${SOLIBSDEV} \ + ${libdir}/pkgconfig/egl.pc" +FILES:${PN}-libgbm-dev = " \ + ${includedir}/gbm.h \ + ${libdir}/libgbm${SOLIBSDEV} \ + ${libdir}/pkgconfig/gbm.pc" + +# Consolidate GLES dev packages +PACKAGES =+ "${PN}-libgles-dev" +FILES:${PN}-libgles-dev = " \ + ${includedir}/GLES* \ + ${libdir}/libGLES*${SOLIBSDEV} \ + ${libdir}/pkgconfig/gles*.pc" +DEBIAN_NOAUTONAME:${PN}-libgles-dev = "1" +RREPLACES:${PN}-libgles-dev = "libgles-dev" +RPROVIDES:${PN}-libgles-dev = "libgles-dev" +RCONFLICTS:${PN}-libgles-dev = "libgles-dev" +ALLOW_EMPTY:${PN}-libgles1-dev = "1" +ALLOW_EMPTY:${PN}-libgles2-dev = "1" +ALLOW_EMPTY:${PN}-libgles3-dev = "1" +RDEPENDS:${PN}-libgles1-dev = "${PN}-libgles-dev" +RDEPENDS:${PN}-libgles2-dev = "${PN}-libgles-dev" +RDEPENDS:${PN}-libgles3-dev = "${PN}-libgles-dev" + +FILES:${PN}-opencl-icd-dev = " \ + ${bindir}/mali_clcc" + +python __anonymous() { + + # Avoid Debian-renaming + for p in (("libegl", "libegl1" ), + ("libgbm", "libgbm1" ), + ("libgles1", "libglesv1-cm1"), + ("libgles2", "libglesv2-2" ), + ("libgles3", )): + fullp = "${PN}-" + p[0] + pkgs = "".join(' %s' % i for i in p) + d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1") + d.appendVar("RREPLACES:" + fullp, pkgs) + d.appendVar("RPROVIDES:" + fullp, pkgs) + d.appendVar("RCONFLICTS:" + fullp, pkgs) + # libmali.so is loaded with dlopen, so an explicit runtime dependency is necessary + d.appendVar("RDEPENDS:" + fullp, "${PN}") + + # For -dev, the first element is both the Debian and original name + fullp += "-dev" + pkgs = p[0] + "-dev" + d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1") + d.appendVar("RREPLACES:" + fullp, pkgs) + d.appendVar("RPROVIDES:" + fullp, pkgs) + d.appendVar("RCONFLICTS:" + fullp, pkgs) +} + +COMPATIBLE_MACHINE = "(mx95-nxp-bsp)" diff --git a/recipes-graphics/mali/mali-imx_r50.0.bb b/recipes-graphics/mali/mali-imx_r50.0.bb new file mode 100644 index 000000000..3d30f4685 --- /dev/null +++ b/recipes-graphics/mali/mali-imx_r50.0.bb @@ -0,0 +1,25 @@ +require mali-imx.inc + +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://COPYING;md5=ca53281cc0caa7e320d4945a896fb837" + +SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}-${IMX_SRCREV_ABBREV}.bin;fsl-eula=true" +SRC_URI[sha256sum] = "a787a3285c3e288eedacf1a746de2bc9f5fdc15f35cf8b6147deb436183baf6f" +IMX_SRCREV_ABBREV = "39604c3" + +S = "${WORKDIR}/${BPN}-${PV}-${IMX_SRCREV_ABBREV}" + +inherit fsl-eula-unpack + +do_install () { + install -d ${D} + cp -r ${S}/etc ${S}/usr ${D} + + # Move firmware to nonarch_base_libdir + if [ "${base_libdir}" != "${nonarch_base_libdir}" ]; then + install -d ${D}${nonarch_base_libdir} + mv ${D}${base_libdir}/firmware ${D}${nonarch_base_libdir} + fi +} + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" -- cgit v1.2.3-54-g00ecf