From a41d386204e20ad2becd30e235a47565dcb6db5a Mon Sep 17 00:00:00 2001 From: Jose Diaz de Grenu Date: Mon, 15 Jan 2018 17:53:05 +0100 Subject: [PATCH] rocko migration: adapt layer for meta-freescale rocko Some packages are not updated in meta-freescale/rocko, so we do need to include some of these. The patches for gstreamer in the original commit are skipped, as poky/rocko uses a newer version. This partially reverts commits: * 52a10ff88dbbc6dc020ac0db42d981bb1dffea89. * b06c81b277bba2864d014588dac27f300be80fae https://jira.digi.com/browse/DEL-5518 Signed-off-by: Jose Diaz de Grenu --- .../firmware-imx/firmware-imx_6.0.bb | 13 + .../recipes-graphics/gtk+/gtk+3_%.bbappend | 5 + .../imx-gpu-g2d/imx-gpu-g2d_6.2.2.p0.bb | 36 ++ .../imx-gpu-viv/imx-gpu-viv-v6.inc | 327 ++++++++++++++++++ .../imx-gpu-viv_6.2.2.p0-aarch32.bb | 16 + .../recipes-graphics/mesa/mesa_%.bbappend | 44 +++ ...top-using-Git-to-write-local-version.patch | 87 +++++ .../xf86-video-imxfb-vivante/rc.autohdmi | 42 +++ .../xf86-video-imxfb-vivante_6.2.2.p0.bb | 24 ++ .../gstreamer/imx-gst1.0-plugin_4.3.1.bb | 86 +++++ .../imx-codec/imx-codec_4.2.1.bb | 11 + .../imx-parser/imx-parser_4.2.1.bb | 11 + 12 files changed, 702 insertions(+) create mode 100644 meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx_6.0.bb create mode 100644 meta-digi-dey/recipes-graphics/gtk+/gtk+3_%.bbappend create mode 100644 meta-digi-dey/recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.2.2.p0.bb create mode 100644 meta-digi-dey/recipes-graphics/imx-gpu-viv/imx-gpu-viv-v6.inc create mode 100644 meta-digi-dey/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.2.2.p0-aarch32.bb create mode 100644 meta-digi-dey/recipes-graphics/mesa/mesa_%.bbappend create mode 100644 meta-digi-dey/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante/Stop-using-Git-to-write-local-version.patch create mode 100644 meta-digi-dey/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante/rc.autohdmi create mode 100644 meta-digi-dey/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante_6.2.2.p0.bb create mode 100644 meta-digi-dey/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.3.1.bb create mode 100644 meta-digi-dey/recipes-multimedia/imx-codec/imx-codec_4.2.1.bb create mode 100644 meta-digi-dey/recipes-multimedia/imx-parser/imx-parser_4.2.1.bb diff --git a/meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx_6.0.bb b/meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx_6.0.bb new file mode 100644 index 000000000..c924c19ad --- /dev/null +++ b/meta-digi-arm/recipes-bsp/firmware-imx/firmware-imx_6.0.bb @@ -0,0 +1,13 @@ +# Copyright (C) 2012-2016 Freescale Semiconductor +# Copyright 2017 NXP + +require recipes-bsp/firmware-imx/firmware-imx.inc +LIC_FILES_CHKSUM = "file://COPYING;md5=6b552f505eedab4a11ab538cf3db743a" + +SRC_URI[md5sum] = "088fb08b565748b537f6481b1ad6c9d7" +SRC_URI[sha256sum] = "9fa7c204a6ff8a30f2b5e8f9002d8c5736791e455dc137b952fa725dc0c3aeb8" + +#BRCM firmware git +SRCREV = "951c1363abe95dd75ab3e9447f640d7807240236" + +COMPATIBLE_MACHINE = "(ccimx6)" diff --git a/meta-digi-dey/recipes-graphics/gtk+/gtk+3_%.bbappend b/meta-digi-dey/recipes-graphics/gtk+/gtk+3_%.bbappend new file mode 100644 index 000000000..be2bac75f --- /dev/null +++ b/meta-digi-dey/recipes-graphics/gtk+/gtk+3_%.bbappend @@ -0,0 +1,5 @@ +DEPENDS_append_imxgpu2d = " virtual/egl" + +PACKAGECONFIG_remove_imxgpu2d = " \ + ${@bb.utils.contains("DISTRO_FEATURES", "wayland", "x11", "", d)} \ +" diff --git a/meta-digi-dey/recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.2.2.p0.bb b/meta-digi-dey/recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.2.2.p0.bb new file mode 100644 index 000000000..8be05f93f --- /dev/null +++ b/meta-digi-dey/recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.2.2.p0.bb @@ -0,0 +1,36 @@ +# Copyright (C) 2016 Freescale Semiconductor +# Copyright 2017 NXP +# Released under the MIT license (see COPYING.MIT for the terms) + +DESCRIPTION = "GPU G2D library and apps for imx6" +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://COPYING;md5=08fd295cce89b0a9c74b9b83ed74f671" + +PROVIDES += "virtual/libg2d" + +SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true" + +S="${WORKDIR}/${PN}-${PV}" + +inherit fsl-eula-unpack + +SRC_URI[md5sum] = "64720dda9b96fd7af5be7e2c654ab72a" +SRC_URI[sha256sum] = "070a95aa9942bd67e8ba4012962df74143bffb9998301ac097dab5e1437000d8" + +do_install () { + + install -d ${D}${libdir} + install -d ${D}${includedir} + + cp ${S}/g2d/usr/lib/*.so* ${D}${libdir} + cp -Pr ${S}/g2d/usr/include/* ${D}${includedir} + cp -r ${S}/gpu-demos/opt ${D} +} + +RDEPENDS_${PN} = "libgal-imx" + +FILES_${PN} = "${libdir}/libg2d* /opt" +FILES_${PN}-dev = "${includedir}" +INSANE_SKIP_${PN} = "ldflags" + +COMPATIBLE_MACHINE = "(mx6|mx7ulp)" diff --git a/meta-digi-dey/recipes-graphics/imx-gpu-viv/imx-gpu-viv-v6.inc b/meta-digi-dey/recipes-graphics/imx-gpu-viv/imx-gpu-viv-v6.inc new file mode 100644 index 000000000..d7716601d --- /dev/null +++ b/meta-digi-dey/recipes-graphics/imx-gpu-viv/imx-gpu-viv-v6.inc @@ -0,0 +1,327 @@ +# Copyright (C) 2012-2016 Freescale Semiconductor +# Copyright (C) 2012-2016 O.S. Systems Software LTDA. +# Released under the MIT license (see COPYING.MIT for the terms) + +DESCRIPTION = "GPU driver and apps for imx" +SECTION = "libs" +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://COPYING;md5=08fd295cce89b0a9c74b9b83ed74f671" + +DEPENDS += " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', \ + bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11 libxdamage libxext libxfixes', \ + '', d), d)} \ +" +DEPENDS += "libdrm" + +# imx-gpu-viv does not provide everything it needs to for virtual/libgl +# on x11 backend or on Wayland backend with XWayland support. +# We depend on mesa to fill in what is missing. +DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'mesa', '', d)}" + +EXTRA_PROVIDES = "" +EXTRA_PROVIDES_append_imxgpu3d = " virtual/libgl virtual/libgles1 virtual/libgles2" +EXTRA_PROVIDES_append_mx6q = " virtual/opencl-icd opencl-headers" +EXTRA_PROVIDES_append_mx8 = " virtual/opencl-icd opencl-headers virtual/libopenvx" +PROVIDES += "imx-gpu-viv virtual/wayland-egl virtual/libgal-x11 virtual/egl virtual/libopenvg ${EXTRA_PROVIDES}" + +RPROVIDES_${PN}_imxgpu3d += "imx-gpu-viv" + +PE = "1" + +inherit fsl-eula-unpack + +SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true" + +# Note : If you add a package here, to prevent a naming conflict see the python_anonymous() futher below +PACKAGES =+ "libclc-imx libclc-imx-dev \ + libgl-imx libgl-imx-dev \ + libgles-imx libgles-imx-dev \ + libgles2-imx libgles2-imx-dev \ + libgles3-imx-dev \ + libglslc-imx libglslc-imx-dev \ + libopencl-imx libopencl-imx-dev \ + libopenvg-imx libopenvg-imx-dev \ + libvdk-imx libvdk-imx-dev \ + libegl-imx libegl-imx-dev \ + libgal-imx libgal-imx-dev \ + libvivante-dri-imx \ + libvsc-imx \ + libgbm-imx libgbm-imx-dev \ + libwayland-viv-imx libwayland-viv-imx-dev \ + libgc-wayland-protocol-imx libgc-wayland-protocol-imx-dev \ + libwayland-egl-imx-dev \ + imx-gpu-viv-tools \ + imx-gpu-viv-demos \ + libvulkan-imx libvulkan-imx-dev \ + libopenvx-imx libopenvx-imx-dev \ +" +python __anonymous () { + has_vivante_kernel_driver_support = (d.getVar('MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT', True) or '0') + if has_vivante_kernel_driver_support != '1': + raise bb.parse.SkipPackage('The kernel of machine needs to have Vivante kernel driver support for this recipe to be used.') +} + +USE_X11 = "${@bb.utils.contains("DISTRO_FEATURES", "x11", "yes", "no", d)}" +USE_WL = "${@bb.utils.contains("DISTRO_FEATURES", "wayland", "yes", "no", d)}" + +# Inhibit warnings about files being stripped. +INHIBIT_PACKAGE_STRIP = "1" +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" + +# FIXME: The provided binary doesn't provide soname. If in future BSP +# release the libraries are fixed, we can drop this hack. +REALSOLIBS := "${SOLIBS}" +SOLIBS = "${SOLIBSDEV}" + +# For the packages that make up the OpenGL interfaces, inject variables so that +# they don't get Debian-renamed (which would remove the -imx suffix). +# +# FIXME: All binaries lack GNU_HASH in elf binary but as we don't have +# the source we cannot fix it. Disable the insane check for now. +python __anonymous() { + packages = d.getVar('PACKAGES', True).split() + for p in packages: + d.appendVar("INSANE_SKIP_%s" % p, " ldflags") + + for p in (("libegl", "libegl1"), ("libgl", "libgl1"), + ("libgles1", "libglesv1-cm1"), ("libgles2", "libglesv2-2"), + ("libgles3",) , ("libvulkan",)): + fullp = p[0] + "-imx" + pkgs = " ".join(p) + d.setVar("DEBIAN_NOAUTONAME_" + fullp, "1") + d.appendVar("RREPLACES_" + fullp, pkgs) + d.appendVar("RPROVIDES_" + fullp, pkgs) + d.appendVar("RCONFLICTS_" + fullp, pkgs) + + # 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) +} + +IS_MX6SL = "0" +IS_MX6SL_mx6sl = "1" + +IS_MX8 = "0" +IS_MX8_mx8 = "1" + +do_install () { + install -d ${D}${libdir} + install -d ${D}${includedir} + install -d ${D}${bindir} + + cp -P ${S}/gpu-core/usr/lib/*.so* ${D}${libdir} + cp -r ${S}/gpu-core/usr/include/* ${D}${includedir} + cp -r ${S}/gpu-demos/opt ${D} + cp -r ${S}/gpu-tools/gmem-info/usr/bin/* ${D}${bindir} + + + install -d ${D}${libdir}/pkgconfig + + # The preference order, based in DISTRO_FEATURES, is Wayland (with or without X11), X11 and fb + if [ "${USE_WL}" = "yes" ]; then + + backend=wl + + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/egl_wayland.pc ${D}${libdir}/pkgconfig/egl.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv1_cm.pc ${D}${libdir}/pkgconfig/glesv1_cm.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv2.pc ${D}${libdir}/pkgconfig/glesv2.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/vg.pc ${D}${libdir}/pkgconfig/vg.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/gc_wayland_protocol.pc ${D}${libdir}/pkgconfig/gc_wayland_protocol.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/wayland-egl.pc ${D}${libdir}/pkgconfig/wayland-egl.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/wayland-viv.pc ${D}${libdir}/pkgconfig/wayland-viv.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/gbm.pc ${D}${libdir}/pkgconfig/gbm.pc + + if [ "${USE_X11}" = "yes" ]; then + + cp -r ${S}/gpu-core/usr/lib/dri ${D}${libdir} + + fi + + elif [ "${USE_X11}" = "yes" ]; then + + cp -r ${S}/gpu-core/usr/lib/dri ${D}${libdir} + + backend=x11 + + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/gl_x11.pc ${D}${libdir}/pkgconfig/gl.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/egl_x11.pc ${D}${libdir}/pkgconfig/egl.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv1_cm_x11.pc ${D}${libdir}/pkgconfig/glesv1_cm.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv2_x11.pc ${D}${libdir}/pkgconfig/glesv2.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/vg_x11.pc ${D}${libdir}/pkgconfig/vg.pc + + else + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv1_cm.pc ${D}${libdir}/pkgconfig/glesv1_cm.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv2.pc ${D}${libdir}/pkgconfig/glesv2.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/vg.pc ${D}${libdir}/pkgconfig/vg.pc + + # Regular framebuffer + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/egl_linuxfb.pc ${D}${libdir}/pkgconfig/egl.pc + + backend=fb + + fi + + # Install Vendor ICDs for OpenCL's installable client driver loader (ICDs Loader) + install -d ${D}${sysconfdir}/OpenCL/vendors/ + install -m 0644 ${S}/gpu-core/etc/Vivante.icd ${D}${sysconfdir}/OpenCL/vendors/Vivante.icd + + # We'll only have one backend here so we rename it to generic name + # and avoid rework in other packages, when possible + mv ${D}${libdir}/libGL.so.1.2 ${D}${libdir}/libGL.so.1.2.0 + ln -sf libGL.so.1.2.0 ${D}${libdir}/libGL.so.1.2 + ln -sf libGL.so.1.2.0 ${D}${libdir}/libGL.so.1 + ln -sf libGL.so.1.2.0 ${D}${libdir}/libGL.so + mv ${D}${libdir}/libEGL-${backend}.so ${D}${libdir}/libEGL.so.1.0 + ln -sf libEGL.so.1.0 ${D}${libdir}/libEGL.so.1 + ln -sf libEGL.so.1.0 ${D}${libdir}/libEGL.so + mv ${D}${libdir}/libGAL-${backend}.so ${D}${libdir}/libGAL.so + mv ${D}${libdir}/libVDK-${backend}.so ${D}${libdir}/libVDK.so + + # update libglesv2 as backend dependent + rm -rf ${D}${libdir}/libGLESv2* + cp ${S}/gpu-core/usr/lib/libGLESv2-${backend}.so ${D}${libdir}/libGLESv2.so.2.0.0 + ln -sf libGLESv2.so.2.0.0 ${D}${libdir}/libGLESv2.so.2 + ln -sf libGLESv2.so.2.0.0 ${D}${libdir}/libGLESv2.so + + if [ "${IS_MX8}" = "1" ]; then + # Install the vulkan driver in a sub-folder. When installed in the same + # folder as the vulkan loader layer library, an incorrect linkage is + # created from libvulkan.so.1 to our library instead of the loader + # layer library. + install -d ${D}${libdir}/vulkan + mv ${D}${libdir}/libvulkan-${backend}.so ${D}${libdir}/vulkan/libvulkan_VSI.so + fi + + # skip packaging wayland libraries if no support is requested + if [ "${USE_WL}" = "no" ]; then + rm ${D}${libdir}/libgc_wayland_protocol.* + rm ${D}${libdir}/libwayland-viv.* + fi + + for i in wl x11 fb dri; do + find ${D}${libdir} -name "*-$i.so" -exec rm '{}' ';' + find ${D}${libdir} -name "*.$i.so" -exec rm '{}' ';' + done + + # FIXME: MX6SL does not have 3D support; hack it for now + if [ "${IS_MX6SL}" = "1" ]; then + rm -rf ${D}${libdir}/libCLC* ${D}${includedir}/CL \ + \ + ${D}${libdir}/libGL* ${D}${includedir}/GL* ${D}${libdir}/pkgconfig/gl.pc \ + \ + ${D}${libdir}/libGLES* ${D}${libdir}/pkgconfig/gles*.pc \ + \ + ${D}${libdir}/libOpenCL* ${D}${includedir}/CL \ + \ + ${D}${libdir}/libOpenVG.3d.so \ + \ + ${D}${libdir}/libVivanteOpenCL.so \ + \ + ${D}/opt/viv_samples/vdk \ + ${D}/opt/viv_samples/es20 ${D}/opt/viv_samples/cl11 + + ln -sf libOpenVG.2d.so ${D}${libdir}/libOpenVG.so + fi + + find ${D}${libdir} -type f -exec chmod 644 {} \; + find ${D}${includedir} -type f -exec chmod 644 {} \; + + chown -R root:root "${D}" +} + +ALLOW_EMPTY_${PN} = "1" + +# FIXME: Remove the following lines after adding libopenvx package +INSANE_SKIP_imx-gpu-viv-dev += "dev-elf" +INSANE_SKIP_libclc-imx += "dev-deps" + +FILES_libclc-imx = "${libdir}/libCLC${SOLIBS}" +FILES_libclc-imx-dev = "${includedir}/CL ${libdir}/libCLC${SOLIBSDEV}" + +# libEGL.so is used by some demo apps from Freescale +INSANE_SKIP_libegl-imx += "dev-so" +FILES_libegl-imx = "${libdir}/libEGL${REALSOLIBS} ${libdir}/libEGL${SOLIBSDEV} " +FILES_libegl-imx-dev = "${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc" +RDEPENDS_libegl-imx += "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'libgc-wayland-protocol-imx libwayland-viv-imx libgc-wayland-protocol-imx', '', d)}" +RDEPENDS_libegl-imx-dev += "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'libwayland-egl-imx-dev', '', d)}" + +FILES_libgal-imx = "${libdir}/libGAL${SOLIBS} ${libdir}/libGAL_egl${SOLIBS}" +FILES_libgal-imx-dev = "${libdir}/libGAL${SOLIBSDEV} ${includedir}/HAL" +RDEPENDS_libgal-imx += "kernel-module-imx-gpu-viv" +RPROVIDES_libgal-imx += "libgal-imx" +INSANE_SKIP_libgal-imx += "build-deps" + +FILES_libvsc-imx = "${libdir}/libVSC${SOLIBS}" + +FILES_libgbm-imx = "${libdir}/libgbm${SOLIBS} ${libdir}/gbm_viv${SOLIBS}" +FILES_libgbm-imx-dev = "${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h ${libdir}/libgbm${SOLIBSDEV}" +RDEPENDS_libgbm-imx += "libdrm" + +FILES_libvulkan-imx = "${libdir}/vulkan/libvulkan_VSI${SOLIBS}" +FILES_libvulkan-imx-dev = "${includedir}/vulkan ${libdir}/vulkan/libvulkan_VSI${SOLIBSDEV}" +INSANE_SKIP_libvulkan-imx += "dev-deps dev-so" + +FILES_libopenvx-imx = "${libdir}/libOpenVX${SOLIBS} ${libdir}/libOpenVXC${SOLIBS} ${libdir}/libOpenVXU${SOLIBS}" +FILES_libopenvx-imx-dev = "${includedir}/VX ${libdir}/libopenVX${SOLIBSDEV}" + +FILES_libgl-imx = "${libdir}/libGL${REALSOLIBS}" +FILES_libgl-imx-dev = "${libdir}/libGL${SOLIBSDEV} ${includedir}/GL" +# Includes GL headers from mesa +RDEPENDS_libgl-imx-dev += "libgl-mesa-dev" + +# libEGL needs to open libGLESv1.so +INSANE_SKIP_libgles-imx += "dev-so" +FILES_libgles-imx = "${libdir}/libGLESv1*${REALSOLIBS} ${libdir}/libGLESv1*${SOLIBS} ${libdir}/libGLES_*${REALSOLIBS} ${libdir}/libGLES_*${SOLIBS}" +FILES_libgles-imx-dev = "${includedir}/GLES ${libdir}/libGLESv1*${SOLIBS} ${libdir}/libGLES_*${SOLIBSDEV} ${libdir}/pkgconfig/glesv1_cm.pc" + +# libEGL needs to open libGLESv2.so +INSANE_SKIP_libgles2-imx += "dev-so" +FILES_libgles2-imx = "${libdir}/libGLESv2${REALSOLIBS} ${libdir}/libGLESv2${SOLIBS}" +FILES_libgles2-imx-dev = "${includedir}/GLES2 ${libdir}/libGLESv2${SOLIBSDEV} ${libdir}/pkgconfig/glesv2.pc" +RDEPENDS_libgles2-imx = "libglslc-imx" + +FILES_libgles3-imx-dev = "${includedir}/GLES3" +# as long as there is no libgles3: ship libgles3-dev along with +# libgles2-dev - otherwise GLES3 headers have to be added manually +RDEPENDS_libgles2-imx-dev += "libgles3-imx-dev" + +FILES_libglslc-imx = "${libdir}/libGLSLC${SOLIBS}" +FILES_libglslc-imx-dev = "${includedir}/CL ${libdir}/libGLSLC${SOLIBSDEV}" + +FILES_libopencl-imx = "${libdir}/libOpenCL${SOLIBS} \ + ${libdir}/libVivanteOpenCL${SOLIBS} \ + ${sysconfdir}/OpenCL/vendors/Vivante.icd" +FILES_libopencl-imx-dev = "${includedir}/CL ${libdir}/libOpenCL${SOLIBSDEV}" +RDEPENDS_libopencl-imx= "libclc-imx" + +INSANE_SKIP_libopenvg-imx += "dev-so" +FILES_libopenvg-imx = "${libdir}/libOpenVG*${SOLIBS}" +FILES_libopenvg-imx-dev = "${includedir}/VG ${libdir}/libOpenVG*${SOLIBSDEV} ${libdir}/pkgconfig/vg.pc" +RDEPENDS_libopenvg-imx += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd-gpuconfig', '', d)}" + +FILES_libvdk-imx = "${libdir}/libVDK${SOLIBS}" +FILES_libvdk-imx-dev = "${includedir}/*vdk*.h ${libdir}/libVDK${SOLIBSDEV}" + +FILES_libvivante-dri-imx = "${libdir}/dri/vivante_dri.so" +RDEPENDS_libvivante-dri-imx = "libdrm" + +INSANE_SKIP_libwayland-viv-imx += "dev-so" +FILES_libwayland-viv-imx = "${libdir}/libwayland-viv${REALSOLIBS} ${libdir}/libwayland-viv${SOLIBS}" +FILES_libwayland-viv-imx-dev = "${includedir}/wayland-viv ${libdir})/libwayland-viv${SOLIBSDEV} ${libdir}/pkgconfig/wayland-viv.pc" +RPROVIDES_libwayland-viv-imx += "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'xf86-video-imxfb-vivante', '', d)}" + +INSANE_SKIP_libgc-wayland-protocol-imx += "dev-so" +FILES_libgc-wayland-protocol-imx = "${libdir}/libgc_wayland_protocol${REALSOLIBS} ${libdir}/libgc_wayland_protocol${SOLIBS}" +FILES_libgc-wayland-protocol-imx-dev = "${libdir}/libgc_wayland_protocol${SOLIBSDEV} ${libdir}/pkgconfig/gc_wayland_protocol.pc" + +FILES_libwayland-egl-imx-dev = "${libdir}/pkgconfig/wayland-egl.pc" + +FILES_imx-gpu-viv-tools = "${bindir}/gmem_info" + +FILES_imx-gpu-viv-demos = "/opt" +INSANE_SKIP_imx-gpu-viv-demos += "rpaths dev-deps" diff --git a/meta-digi-dey/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.2.2.p0-aarch32.bb b/meta-digi-dey/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.2.2.p0-aarch32.bb new file mode 100644 index 000000000..c48216ab5 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.2.2.p0-aarch32.bb @@ -0,0 +1,16 @@ +# Copyright (C) 2013-2016 Freescale Semiconductor +# Copyright 2017 NXP +# Released under the MIT license (see COPYING.MIT for the terms) + +require recipes-graphics/imx-gpu-viv/imx-gpu-viv-v6.inc + +SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true" + +S="${WORKDIR}/${PN}-${PV}" + +SRC_URI[md5sum] = "7d43f73b8bc0c1c442587f819218a1d5" +SRC_URI[sha256sum] = "4f93a4412c93ca5959aa2437bfed2ecbaf983b5b272be5977f76a967de5db150" + +PACKAGE_FP_TYPE = "hardfp" + +COMPATIBLE_MACHINE = "(mx6q|mx6dl|mx6sx|mx6sl|mx7ulp)" diff --git a/meta-digi-dey/recipes-graphics/mesa/mesa_%.bbappend b/meta-digi-dey/recipes-graphics/mesa/mesa_%.bbappend new file mode 100644 index 000000000..0de2ea75d --- /dev/null +++ b/meta-digi-dey/recipes-graphics/mesa/mesa_%.bbappend @@ -0,0 +1,44 @@ +# Copyright (C) 2018 Digi International +PACKAGECONFIG_remove_imxgpu2d = "egl gles gbm" + +PROVIDES_remove_imxgpu2d = "virtual/libgles1 virtual/libgles2 virtual/libopenvg virtual/egl gbm" +PROVIDES_remove_imxgpu3d = "virtual/libgl" + +# FIXME: mesa should support 'x11-no-tls' option +python () { + overrides = d.getVar("OVERRIDES", True).split(":") + if "imxgpu2d" not in overrides: + return + + x11flag = d.getVarFlag("PACKAGECONFIG", "x11", False) + d.setVarFlag("PACKAGECONFIG", "x11", x11flag.replace("--enable-glx-tls", "--enable-glx")) +} + +# Enable Etnaviv support +PACKAGECONFIG_append_use-mainline-bsp = " gallium" +GALLIUMDRIVERS_append_use-mainline-bsp = ",etnaviv,imx" + +BACKEND = \ + "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', \ + bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', \ + 'fb', d), d)}" + +# FIXME: Dirty hack to allow use of Vivante GPU libGL binary +do_install_append_imxgpu3d () { + rm -f ${D}${libdir}/libGL.* \ + ${D}${includedir}/GL/gl.h \ + ${D}${includedir}/GL/glext.h \ + ${D}${includedir}/GL/glx.h \ + ${D}${includedir}/GL/glxext.h + if [ "${BACKEND}" = "x11" ]; then + rm -f ${D}${libdir}/pkgconfig/gl.pc + fi +} + +do_install_append_imxgpu2d () { + rm -f ${D}${libdir}/pkgconfig/wayland-egl.pc +} + +do_install_append_imxgpu2d () { + rm -f ${D}${libdir}/pkgconfig/wayland-egl.pc +} diff --git a/meta-digi-dey/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante/Stop-using-Git-to-write-local-version.patch b/meta-digi-dey/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante/Stop-using-Git-to-write-local-version.patch new file mode 100644 index 000000000..f541e5c17 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante/Stop-using-Git-to-write-local-version.patch @@ -0,0 +1,87 @@ +From 69a92f4576a1e789ba2fcf957164d2c4013020c5 Mon Sep 17 00:00:00 2001 +From: Otavio Salvador +Date: Wed, 2 Dec 2015 13:36:25 +0000 +Subject: [PATCH] Stop using Git to write local version +Organization: O.S. Systems Software LTDA. + +The standard version does not use a Git repository so we should not +use Git to identify the commit of the build as it can end getting the +version from a wrong repository and can be misleading. + +Upstream-Status: Pending + +Signed-off-by: Otavio Salvador +--- + EXA/src/makefile.tc | 6 +++--- + FslExt/src/makefile.tc | 6 +++--- + util/autohdmi/makefile.tc | 6 +++--- + util/pandisplay/makefile.tc | 6 +++--- + 4 files changed, 12 insertions(+), 12 deletions(-) + +diff --git a/EXA/src/makefile.tc b/EXA/src/makefile.tc +index 0b9a9e6..ec6e68d 100644 +--- a/EXA/src/makefile.tc ++++ b/EXA/src/makefile.tc +@@ -52,8 +52,8 @@ prefix ?= /usr + sysroot ?= / + + # get git commit number +-COMMITNR := `git log -n 1 --format=%H` +-DIRTY := `git diff-index --quiet HEAD || echo '-dirty'` +-LOCAL_CFLAGS += -DCOMMIT="${COMMITNR}${DIRTY}" ++#COMMITNR := `git log -n 1 --format=%H` ++#DIRTY := `git diff-index --quiet HEAD || echo '-dirty'` ++#LOCAL_CFLAGS += -DCOMMIT="${COMMITNR}${DIRTY}" + + +diff --git a/FslExt/src/makefile.tc b/FslExt/src/makefile.tc +index 0b9a9e6..ec6e68d 100644 +--- a/FslExt/src/makefile.tc ++++ b/FslExt/src/makefile.tc +@@ -52,8 +52,8 @@ prefix ?= /usr + sysroot ?= / + + # get git commit number +-COMMITNR := `git log -n 1 --format=%H` +-DIRTY := `git diff-index --quiet HEAD || echo '-dirty'` +-LOCAL_CFLAGS += -DCOMMIT="${COMMITNR}${DIRTY}" ++#COMMITNR := `git log -n 1 --format=%H` ++#DIRTY := `git diff-index --quiet HEAD || echo '-dirty'` ++#LOCAL_CFLAGS += -DCOMMIT="${COMMITNR}${DIRTY}" + + +diff --git a/util/autohdmi/makefile.tc b/util/autohdmi/makefile.tc +index c9de0a6..d0a468c 100644 +--- a/util/autohdmi/makefile.tc ++++ b/util/autohdmi/makefile.tc +@@ -64,8 +64,8 @@ prefix ?= /usr + sysroot ?= / + + # get git commit number +-COMMITNR := `git log -n 1 --format=%H` +-DIRTY := `git diff-index --quiet HEAD || echo '-dirty'` +-LOCAL_CFLAGS += -DCOMMIT="${COMMITNR}${DIRTY}" ++#COMMITNR := `git log -n 1 --format=%H` ++#DIRTY := `git diff-index --quiet HEAD || echo '-dirty'` ++#LOCAL_CFLAGS += -DCOMMIT="${COMMITNR}${DIRTY}" + + +diff --git a/util/pandisplay/makefile.tc b/util/pandisplay/makefile.tc +index 28732b9..bf54c20 100644 +--- a/util/pandisplay/makefile.tc ++++ b/util/pandisplay/makefile.tc +@@ -64,8 +64,8 @@ prefix ?= /usr + sysroot ?= / + + # get git commit number +-COMMITNR := `git log -n 1 --format=%H` +-DIRTY := `git diff-index --quiet HEAD || echo '-dirty'` +-LOCAL_CFLAGS += -DCOMMIT="${COMMITNR}${DIRTY}" ++#COMMITNR := `git log -n 1 --format=%H` ++#DIRTY := `git diff-index --quiet HEAD || echo '-dirty'` ++#LOCAL_CFLAGS += -DCOMMIT="${COMMITNR}${DIRTY}" + + +-- +2.1.4 + diff --git a/meta-digi-dey/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante/rc.autohdmi b/meta-digi-dey/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante/rc.autohdmi new file mode 100644 index 000000000..8c16a1d7f --- /dev/null +++ b/meta-digi-dey/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante/rc.autohdmi @@ -0,0 +1,42 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: rc.autohdmi +# Required-Start: $all +# Required-Stop: +# Default-Start: 2 3 4 5 +# Default-Stop: +### END INIT INFO + +PATH=/sbin:/usr/sbin:/bin:/usr/bin + +# Source function library. +. /etc/init.d/functions + +case "$1" in + start) + echo -n "Starting autohdmi: " + export DISPLAY=:0 + autohdmi & + echo + exit 0 + ;; + reload|force-reload) + echo "Error: argument '$1' not supported" >&2 + exit 3 + ;; + stop) + echo -n "Shutting down autohdmi: " + killproc autohdmi + echo + ;; + restart) + echo -n "Restarting autohdmi: " + $0 stop + $0 start + echo + ;; + *) + echo "Usage: $0 start|stop" >&2 + exit 3 + ;; +esac diff --git a/meta-digi-dey/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante_6.2.2.p0.bb b/meta-digi-dey/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante_6.2.2.p0.bb new file mode 100644 index 000000000..3768064a3 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante_6.2.2.p0.bb @@ -0,0 +1,24 @@ +# Copyright (C) 2012-2016 Freescale Semiconductor +# Copyright (C) 2012-2014 O.S. Systems Software LTDA. +# Copyright 2017 NXP +# Released under the MIT license (see COPYING.MIT for the terms) + +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +require recipes-graphics/xorg-driver/xf86-video-imxfb-vivante.inc + +NXP_REPO_MIRROR ?= "nxp/" +SRCBRANCH = "${NXP_REPO_MIRROR}imx_4.9.11_1.0.0_ga" +S = "${WORKDIR}/git/" +XF86_VIDEO_IMX_VIVANTE_SRC ?= "git://source.codeaurora.org/external/imx/xf86-video-imx-vivante.git;protocol=https" +SRC_URI = "${XF86_VIDEO_IMX_VIVANTE_SRC};branch=${SRCBRANCH}" +SRC_URI +="file://rc.autohdmi" +SRCREV = "07ef065dfe09f1c05a1a188c371577faa3677a17" + +DEPENDS += "virtual/libg2d" + +RDEPENDS_${PN}_remove = "libvivante-dri-mx6" + +RDEPENDS_${PN}_append = " libvivante-dri-imx" + +COMPATIBLE_MACHINE = "(mx6|mx8|mx7ulp)" diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.3.1.bb b/meta-digi-dey/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.3.1.bb new file mode 100644 index 000000000..3375d97d9 --- /dev/null +++ b/meta-digi-dey/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.3.1.bb @@ -0,0 +1,86 @@ +# Copyright (C) 2014,2016 Freescale Semiconductor +# Copyright 2017 NXP +# Copyright (C) 2012-2015 O.S. Systems Software LTDA. +# Released under the MIT license (see COPYING.MIT for the terms) + +DESCRIPTION = "Gstreamer freescale plugins" +LICENSE = "GPLv2 & LGPLv2 & LGPLv2.1" +SECTION = "multimedia" + +DEPENDS = "imx-codec imx-parser virtual/kernel gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad" +DEPENDS_append_mx6 = " imx-lib" +DEPENDS_append_mx7 = " imx-lib" +DEPENDS_append_imxvpu = " imx-vpuwrap" + +# For backwards compatibility +RREPLACES_${PN} = "gst1.0-fsl-plugin" +RPROVIDES_${PN} = "gst1.0-fsl-plugin" +RCONFLICTS_${PN} = "gst1.0-fsl-plugin" + +LIC_FILES_CHKSUM = "file://COPYING-LGPL-2;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ + file://COPYING-LGPL-2.1;md5=fbc093901857fcd118f065f900982c24" + +IMXGST_SRC ?= "git://source.codeaurora.org/external/imx/imx-gst1.0-plugin.git;protocol=https" +SRCBRANCH = "MM_04.03.01_1710_L4.9.51_MX8_BETA1" + +SRC_URI = "${IMXGST_SRC};branch=${SRCBRANCH}" +SRCREV = "cfa6157b4c7d07890ba41131809333bfa1f757de" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +# Make sure kernel sources are available +do_configure[depends] += "virtual/kernel:do_shared_workdir" + +PLATFORM_mx6 = "MX6" +PLATFORM_mx6sl = "MX6SL" +PLATFORM_mx6sx = "MX6SX" +PLATFORM_mx6ul = "MX6UL" +PLATFORM_mx6sll = "MX6SLL" +PLATFORM_mx7= "MX7D" +PLATFORM_mx7ulp= "MX7ULP" +PLATFORM_mx8 = "MX8" + +# Todo add a mechanism to map possible build targets +EXTRA_OECONF = "PLATFORM=${PLATFORM} \ + CPPFLAGS="-I${STAGING_KERNEL_BUILDDIR}/include/generated/uapi -I${STAGING_KERNEL_DIR}/include/uapi -I${STAGING_KERNEL_DIR}/include" \ + CROSS_ROOT=${PKG_CONFIG_SYSROOT_DIR} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', bb.utils.contains('DISTRO_FEATURES', 'x11', '--disable-x11', '', d), '', d)}" + +PACKAGES =+ "${PN}-gplay ${PN}-libgplaycore ${PN}-libgstfsl ${PN}-grecorder ${PN}-librecorder-engine ${PN}-libplayengine" + +# Add codec list that the beep plugin run-time depended +BEEP_RDEPENDS = "imx-codec-aac imx-codec-mp3 imx-codec-oggvorbis" +RDEPENDS_${PN} += "imx-parser ${BEEP_RDEPENDS} gstreamer1.0-plugins-good-id3demux " + +# overlaysink rely on G2D, +# cannot be supported on i.MX6SLL & i.MX6UL & i.MX6ULL & i.MX7D +PACKAGECONFIG ?= "" +PACKAGECONFIG_imxgpu2d = "overlaysink" + + +# FIXME: Add all features +# feature from excluded mm packages +PACKAGECONFIG[ac3] += ",,imx-ac3codec,imx-ac3codec" +# feature from special mm packages +PACKAGECONFIG[aacp] += ",,imx-aacpcodec,imx-aacpcodec" +MSDEPENDS = "imx-msparser imx-mscodec" +PACKAGECONFIG[wma10dec] += ",,${MSDEPENDS},${MSDEPENDS}" +PACKAGECONFIG[wma8enc] += "--enable-wma8enc,--disable-wma8enc,${MSDEPENDS},${MSDEPENDS}" +OVDEPENDS = "virtual/libg2d" +PACKAGECONFIG[overlaysink] += "--enable-overlaysink,--disable-overlaysink, ${OVDEPENDS}" + +FILES_${PN} = "${libdir}/gstreamer-1.0/*.so ${datadir}" + +FILES_${PN}-dbg += "${libdir}/gstreamer-1.0/.debug" +FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la ${libdir}/pkgconfig/*.pc" +FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" +FILES_${PN}-gplay = "${bindir}/gplay-1.0" +FILES_${PN}-libgplaycore = "${libdir}/libgplaycore-1.0${SOLIBS}" +FILES_${PN}-libgstfsl = "${libdir}/libgstfsl-1.0${SOLIBS}" +FILES_${PN}-grecorder = "${bindir}/grecorder-1.0" +FILES_${PN}-librecorder-engine = "${libdir}/librecorder_engine-1.0${SOLIBS}" +FILES_${PN}-libplayengine = "${libdir}/libplayengine-1.0${SOLIBS}" + +COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" diff --git a/meta-digi-dey/recipes-multimedia/imx-codec/imx-codec_4.2.1.bb b/meta-digi-dey/recipes-multimedia/imx-codec/imx-codec_4.2.1.bb new file mode 100644 index 000000000..5145c34e9 --- /dev/null +++ b/meta-digi-dey/recipes-multimedia/imx-codec/imx-codec_4.2.1.bb @@ -0,0 +1,11 @@ +# Copyright (C) 2013-2016 Freescale Semiconductor +# Copyright 2017 NXP +# Released under the MIT license (see COPYING.MIT for the terms) + +require recipes-multimedia/imx-codec/imx-codec.inc +LIC_FILES_CHKSUM = "file://COPYING;md5=6b552f505eedab4a11ab538cf3db743a" + +SRC_URI[md5sum] = "3db67e3f602e65fe0ac00ae4f9ea6109" +SRC_URI[sha256sum] = "20d3f9b4187fcd9e7007c94558a00bab1191513eee74b6f0d8c7b43f874e06ed" + +COMPATIBLE_MACHINE = "(ccimx6)" diff --git a/meta-digi-dey/recipes-multimedia/imx-parser/imx-parser_4.2.1.bb b/meta-digi-dey/recipes-multimedia/imx-parser/imx-parser_4.2.1.bb new file mode 100644 index 000000000..2fe1cb4f1 --- /dev/null +++ b/meta-digi-dey/recipes-multimedia/imx-parser/imx-parser_4.2.1.bb @@ -0,0 +1,11 @@ +# Copyright (C) 2013-2016 Freescale Semiconductor +# Copyright 2017 NXP +# Released under the MIT license (see COPYING.MIT for the terms) + +include recipes-multimedia/imx-parser/imx-parser.inc +LIC_FILES_CHKSUM = "file://COPYING;md5=6b552f505eedab4a11ab538cf3db743a" + +SRC_URI[md5sum] = "6717799abce0dc5918db8d3fd0e39184" +SRC_URI[sha256sum] = "36d3ae7285f3a83a87abf680b8a52b3c07df869d2443de844fb5f0ff528ca862" + +COMPATIBLE_MACHINE = "(ccimx6)"