summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOtavio Salvador <otavio@ossystems.com.br>2024-10-25 07:17:39 -0300
committerGitHub <noreply@github.com>2024-10-25 07:17:39 -0300
commit074d8c221526a9e76d28ee98a3c9e4ce372b13c7 (patch)
tree4c2c21600d12c0a2c1bf40c3f8ecd9b87e76e235
parentfdca219fecba823b60b7fd84d14e72f1a070c811 (diff)
parentff9e2a169e43ab2917d89294a19b2d0624936627 (diff)
downloadmeta-freescale-074d8c221526a9e76d28ee98a3c9e4ce372b13c7.tar.gz
Merge pull request #1998 from MaxKrummenacher/master
Add GPU support for i.MX95
-rw-r--r--conf/machine/imx95-19x19-verdin.conf4
-rw-r--r--conf/machine/include/imx-base.inc10
-rw-r--r--dynamic-layers/openembedded-layer/recipes-benchmark/glmark2/glmark2_%.bbappend1
-rw-r--r--dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend2
-rw-r--r--dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland_%.bbappend1
-rw-r--r--dynamic-layers/qt6-layer/recipes-qt/qt6/qtbase_%.bbappend3
-rw-r--r--dynamic-layers/qt6-layer/recipes-qt/qt6/qtwayland_%.bbappend1
-rw-r--r--recipes-graphics/mali/mali-imx.inc107
-rw-r--r--recipes-graphics/mali/mali-imx_r50.0.bb25
9 files changed, 152 insertions, 2 deletions
diff --git a/conf/machine/imx95-19x19-verdin.conf b/conf/machine/imx95-19x19-verdin.conf
index a271388c3..d03d69139 100644
--- a/conf/machine/imx95-19x19-verdin.conf
+++ b/conf/machine/imx95-19x19-verdin.conf
@@ -1,7 +1,7 @@
1#@TYPE: Machine 1#@TYPE: Machine
2#@NAME: Toradex i.MX 95 19x19 Verdin board 2#@NAME: Toradex i.MX 95 19x19 Verdin Evaluation Kit
3#@SOC: i.MX95 3#@SOC: i.MX95
4#@DESCRIPTION: Machine configuration for Toradex i.MX 95 19x19 Verdin board 4#@DESCRIPTION: Machine configuration for Toradex i.MX 95 19x19 Verdin Evaluation Ki
5#@MAINTAINER: Flora Hu <flora.hu@nxp.com> 5#@MAINTAINER: Flora Hu <flora.hu@nxp.com>
6 6
7MACHINEOVERRIDES =. "mx95:" 7MACHINEOVERRIDES =. "mx95:"
diff --git a/conf/machine/include/imx-base.inc b/conf/machine/include/imx-base.inc
index 9d06b4649..b4f853888 100644
--- a/conf/machine/include/imx-base.inc
+++ b/conf/machine/include/imx-base.inc
@@ -574,6 +574,16 @@ PREFERRED_PROVIDER_opencl-headers:imxgpu ?= "imx-gpu-viv"
574PREFERRED_PROVIDER_opencl-icd-loader:imxgpu ?= "imx-gpu-viv" 574PREFERRED_PROVIDER_opencl-icd-loader:imxgpu ?= "imx-gpu-viv"
575PREFERRED_PROVIDER_virtual/opencl-icd:imxgpu ?= "imx-gpu-viv" 575PREFERRED_PROVIDER_virtual/opencl-icd:imxgpu ?= "imx-gpu-viv"
576 576
577PREFERRED_PROVIDER_virtual/egl:mx95-nxp-bsp ?= "mali-imx"
578PREFERRED_PROVIDER_virtual/libgles1:mx95-nxp-bsp ?= "mali-imx"
579PREFERRED_PROVIDER_virtual/libgles2:mx95-nxp-bsp ?= "mali-imx"
580PREFERRED_PROVIDER_virtual/libgles3:mx95-nxp-bsp ?= "mali-imx"
581PREFERRED_PROVIDER_opencl-clhpp:mx95-nxp-bsp ?= "opencl-clhpp"
582PREFERRED_PROVIDER_opencl-headers:mx95-nxp-bsp ?= "opencl-headers"
583# install libmali-opencl-icd package as the loaders backend
584PREFERRED_PROVIDER_opencl-icd-loader:mx95-nxp-bsp ?= "opencl-icd-loader"
585PREFERRED_PROVIDER_virtual/opencl-icd:mx95-nxp-bsp ?= "opencl-icd-loader"
586
577PREFERRED_VERSION_weston:imx-nxp-bsp ??= "12.0.4.imx" 587PREFERRED_VERSION_weston:imx-nxp-bsp ??= "12.0.4.imx"
578# i.MX 6 & 7 stay on weston 10.0 for fbdev 588# i.MX 6 & 7 stay on weston 10.0 for fbdev
579PREFERRED_VERSION_weston:mx6-nxp-bsp ??= "10.0.5.imx" 589PREFERRED_VERSION_weston:mx6-nxp-bsp ??= "10.0.5.imx"
diff --git a/dynamic-layers/openembedded-layer/recipes-benchmark/glmark2/glmark2_%.bbappend b/dynamic-layers/openembedded-layer/recipes-benchmark/glmark2/glmark2_%.bbappend
index 4cfa51ea9..a5d3c2e2c 100644
--- a/dynamic-layers/openembedded-layer/recipes-benchmark/glmark2/glmark2_%.bbappend
+++ b/dynamic-layers/openembedded-layer/recipes-benchmark/glmark2/glmark2_%.bbappend
@@ -1,4 +1,5 @@
1# Only _mx8 machine do provide virtual/libgbm required for any drm* flavour 1# Only _mx8 machine do provide virtual/libgbm required for any drm* flavour
2DRM-REMOVE:imxgpu = "drm-gl drm-gles2" 2DRM-REMOVE:imxgpu = "drm-gl drm-gles2"
3DRM-REMOVE:imxgpu:mx8-nxp-bsp = "" 3DRM-REMOVE:imxgpu:mx8-nxp-bsp = ""
4DRM-REMOVE:imxgpu:mx95-nxp-bsp = ""
4PACKAGECONFIG:remove = "${DRM-REMOVE}" 5PACKAGECONFIG:remove = "${DRM-REMOVE}"
diff --git a/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend b/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend
index 7401a5669..e450e568e 100644
--- a/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend
+++ b/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend
@@ -12,6 +12,7 @@ SRC_URI:append:imxgpu = " \
12 12
13PACKAGECONFIG_GL_IMX_GPU = "" 13PACKAGECONFIG_GL_IMX_GPU = ""
14PACKAGECONFIG_GL_IMX_GPU:mx8-nxp-bsp = "gbm kms" 14PACKAGECONFIG_GL_IMX_GPU:mx8-nxp-bsp = "gbm kms"
15PACKAGECONFIG_GL_IMX_GPU:mx95-nxp-bsp = "gbm kms"
15 16
16PACKAGECONFIG_GL:imxpxp = "gles2" 17PACKAGECONFIG_GL:imxpxp = "gles2"
17PACKAGECONFIG_GL:imxgpu2d = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', ' gl', '', d)} \ 18PACKAGECONFIG_GL:imxgpu2d = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', ' gl', '', d)} \
@@ -31,6 +32,7 @@ PACKAGECONFIG += "${PACKAGECONFIG_PLATFORM}"
31 32
32PACKAGECONFIG_VULKAN_IMX_GPU = "" 33PACKAGECONFIG_VULKAN_IMX_GPU = ""
33PACKAGECONFIG_VULKAN_IMX_GPU:mx8-nxp-bsp = "vulkan" 34PACKAGECONFIG_VULKAN_IMX_GPU:mx8-nxp-bsp = "vulkan"
35PACKAGECONFIG_VULKAN_IMX_GPU:mx9-nxp-bsp = "vulkan"
34PACKAGECONFIG_VULKAN_IMX_GPU:mx8mm-nxp-bsp = "" 36PACKAGECONFIG_VULKAN_IMX_GPU:mx8mm-nxp-bsp = ""
35PACKAGECONFIG_VULKAN = "" 37PACKAGECONFIG_VULKAN = ""
36PACKAGECONFIG_VULKAN:imxgpu = "${PACKAGECONFIG_VULKAN_IMX_GPU}" 38PACKAGECONFIG_VULKAN:imxgpu = "${PACKAGECONFIG_VULKAN_IMX_GPU}"
diff --git a/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland_%.bbappend b/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland_%.bbappend
index a97b765f1..659a7cc0a 100644
--- a/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland_%.bbappend
+++ b/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland_%.bbappend
@@ -6,3 +6,4 @@ PACKAGECONFIG:remove:mx7-nxp-bsp = "xcomposite-egl xcomposite-glx"
6 6
7# i.MX8 does never provide native x11, so required dependencies are not met 7# i.MX8 does never provide native x11, so required dependencies are not met
8PACKAGECONFIG:remove:mx8-nxp-bsp = "xcomposite-egl xcomposite-glx" 8PACKAGECONFIG:remove:mx8-nxp-bsp = "xcomposite-egl xcomposite-glx"
9PACKAGECONFIG:remove:mx95-nxp-bsp = "xcomposite-egl xcomposite-glx"
diff --git a/dynamic-layers/qt6-layer/recipes-qt/qt6/qtbase_%.bbappend b/dynamic-layers/qt6-layer/recipes-qt/qt6/qtbase_%.bbappend
index 1c51fc09d..b12499666 100644
--- a/dynamic-layers/qt6-layer/recipes-qt/qt6/qtbase_%.bbappend
+++ b/dynamic-layers/qt6-layer/recipes-qt/qt6/qtbase_%.bbappend
@@ -14,6 +14,8 @@ PACKAGECONFIG_GRAPHICS:imxgpu3d = " \
14PACKAGECONFIG_GRAPHICS_IMX_GPU = "" 14PACKAGECONFIG_GRAPHICS_IMX_GPU = ""
15PACKAGECONFIG_GRAPHICS_IMX_GPU:mx8-nxp-bsp = " \ 15PACKAGECONFIG_GRAPHICS_IMX_GPU:mx8-nxp-bsp = " \
16 gbm kms" 16 gbm kms"
17PACKAGECONFIG_GRAPHICS_IMX_GPU:mx95-nxp-bsp = " \
18 gbm kms"
17 19
18PACKAGECONFIG_GRAPHICS:use-mainline-bsp ?= " \ 20PACKAGECONFIG_GRAPHICS:use-mainline-bsp ?= " \
19 gles2 gbm kms" 21 gles2 gbm kms"
@@ -51,4 +53,5 @@ PACKAGECONFIG_VULKAN:imxgpu = " \
51 ${PACKAGECONFIG_VULKAN_IMX_GPU}" 53 ${PACKAGECONFIG_VULKAN_IMX_GPU}"
52PACKAGECONFIG_VULKAN_IMX_GPU = "" 54PACKAGECONFIG_VULKAN_IMX_GPU = ""
53PACKAGECONFIG_VULKAN_IMX_GPU:mx8-nxp-bsp = "vulkan" 55PACKAGECONFIG_VULKAN_IMX_GPU:mx8-nxp-bsp = "vulkan"
56PACKAGECONFIG_VULKAN_IMX_GPU:mx95-nxp-bsp = "vulkan"
54PACKAGECONFIG_VULKAN_IMX_GPU:mx8mm-nxp-bsp = "" 57PACKAGECONFIG_VULKAN_IMX_GPU:mx8mm-nxp-bsp = ""
diff --git a/dynamic-layers/qt6-layer/recipes-qt/qt6/qtwayland_%.bbappend b/dynamic-layers/qt6-layer/recipes-qt/qt6/qtwayland_%.bbappend
index ca011758b..f2b0b8025 100644
--- a/dynamic-layers/qt6-layer/recipes-qt/qt6/qtwayland_%.bbappend
+++ b/dynamic-layers/qt6-layer/recipes-qt/qt6/qtwayland_%.bbappend
@@ -4,3 +4,4 @@ PACKAGECONFIG:remove:use-mainline-bsp = "xcomposite-glx"
4PACKAGECONFIG:remove:mx6-nxp-bsp = "xcomposite-egl xcomposite-glx" 4PACKAGECONFIG:remove:mx6-nxp-bsp = "xcomposite-egl xcomposite-glx"
5PACKAGECONFIG:remove:mx7-nxp-bsp = "xcomposite-egl xcomposite-glx" 5PACKAGECONFIG:remove:mx7-nxp-bsp = "xcomposite-egl xcomposite-glx"
6PACKAGECONFIG:remove:mx8-nxp-bsp = "xcomposite-egl xcomposite-glx" 6PACKAGECONFIG:remove:mx8-nxp-bsp = "xcomposite-egl xcomposite-glx"
7PACKAGECONFIG:remove:mx95-nxp-bsp = "xcomposite-egl xcomposite-glx"
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 @@
1SUMMARY = "Graphics libraries and driver for i.MX Mali GPU"
2SECTION = "libs"
3DEPENDS = " \
4 libdrm \
5 vulkan-loader \
6 wayland \
7 wayland-protocols"
8PROVIDES = " \
9 virtual/egl \
10 virtual/libgbm \
11 virtual/libgles1 \
12 virtual/libgles2 \
13 virtual/libgles3"
14
15# The packaged binaries have been stripped of debug info, so disable
16# operations accordingly.
17INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
18INHIBIT_PACKAGE_STRIP = "1"
19INHIBIT_SYSROOT_STRIP = "1"
20
21PACKAGES =+ " \
22 ${PN}-libegl ${PN}-libegl-dev \
23 ${PN}-libgbm ${PN}-libgbm-dev \
24 ${PN}-libgles1 ${PN}-libgles1-dev \
25 ${PN}-libgles2 ${PN}-libgles2-dev \
26 ${PN}-libgles3 ${PN}-libgles3-dev \
27 ${PN}-libvulkan \
28 ${PN}-opencl-icd ${PN}-opencl-icd-dev"
29
30# Since libmali.so is loaded by dlopen, include it in the main package
31FILES:${PN} += " \
32 ${libdir}/libmali.so \
33 ${nonarch_base_libdir}/firmware"
34FILES_SOLIBSDEV = ""
35INSANE_SKIP:${PN} = "dev-so"
36FILES:${PN}-libegl = " \
37 ${libdir}/libEGL${SOLIBS}"
38FILES:${PN}-libgbm = " \
39 ${libdir}/libgbm${SOLIBS}"
40FILES:${PN}-libgles1 = " \
41 ${libdir}/libGLESv1_CM${SOLIBS}"
42FILES:${PN}-libgles2 = " \
43 ${libdir}/libGLESv2${SOLIBS}"
44FILES:${PN}-opencl-icd = " \
45 ${sysconfdir}/OpenCL"
46FILES:${PN}-libvulkan = " \
47 ${sysconfdir}/vulkan"
48
49FILES:${PN}-dev = " \
50 ${bindir}/malisc"
51FILES:${PN}-libegl-dev = " \
52 ${includedir}/EGL \
53 ${includedir}/KHR \
54 ${libdir}/libEGL${SOLIBSDEV} \
55 ${libdir}/pkgconfig/egl.pc"
56FILES:${PN}-libgbm-dev = " \
57 ${includedir}/gbm.h \
58 ${libdir}/libgbm${SOLIBSDEV} \
59 ${libdir}/pkgconfig/gbm.pc"
60
61# Consolidate GLES dev packages
62PACKAGES =+ "${PN}-libgles-dev"
63FILES:${PN}-libgles-dev = " \
64 ${includedir}/GLES* \
65 ${libdir}/libGLES*${SOLIBSDEV} \
66 ${libdir}/pkgconfig/gles*.pc"
67DEBIAN_NOAUTONAME:${PN}-libgles-dev = "1"
68RREPLACES:${PN}-libgles-dev = "libgles-dev"
69RPROVIDES:${PN}-libgles-dev = "libgles-dev"
70RCONFLICTS:${PN}-libgles-dev = "libgles-dev"
71ALLOW_EMPTY:${PN}-libgles1-dev = "1"
72ALLOW_EMPTY:${PN}-libgles2-dev = "1"
73ALLOW_EMPTY:${PN}-libgles3-dev = "1"
74RDEPENDS:${PN}-libgles1-dev = "${PN}-libgles-dev"
75RDEPENDS:${PN}-libgles2-dev = "${PN}-libgles-dev"
76RDEPENDS:${PN}-libgles3-dev = "${PN}-libgles-dev"
77
78FILES:${PN}-opencl-icd-dev = " \
79 ${bindir}/mali_clcc"
80
81python __anonymous() {
82
83 # Avoid Debian-renaming
84 for p in (("libegl", "libegl1" ),
85 ("libgbm", "libgbm1" ),
86 ("libgles1", "libglesv1-cm1"),
87 ("libgles2", "libglesv2-2" ),
88 ("libgles3", )):
89 fullp = "${PN}-" + p[0]
90 pkgs = "".join(' %s' % i for i in p)
91 d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1")
92 d.appendVar("RREPLACES:" + fullp, pkgs)
93 d.appendVar("RPROVIDES:" + fullp, pkgs)
94 d.appendVar("RCONFLICTS:" + fullp, pkgs)
95 # libmali.so is loaded with dlopen, so an explicit runtime dependency is necessary
96 d.appendVar("RDEPENDS:" + fullp, "${PN}")
97
98 # For -dev, the first element is both the Debian and original name
99 fullp += "-dev"
100 pkgs = p[0] + "-dev"
101 d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1")
102 d.appendVar("RREPLACES:" + fullp, pkgs)
103 d.appendVar("RPROVIDES:" + fullp, pkgs)
104 d.appendVar("RCONFLICTS:" + fullp, pkgs)
105}
106
107COMPATIBLE_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 @@
1require mali-imx.inc
2
3LICENSE = "Proprietary"
4LIC_FILES_CHKSUM = "file://COPYING;md5=ca53281cc0caa7e320d4945a896fb837"
5
6SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}-${IMX_SRCREV_ABBREV}.bin;fsl-eula=true"
7SRC_URI[sha256sum] = "a787a3285c3e288eedacf1a746de2bc9f5fdc15f35cf8b6147deb436183baf6f"
8IMX_SRCREV_ABBREV = "39604c3"
9
10S = "${WORKDIR}/${BPN}-${PV}-${IMX_SRCREV_ABBREV}"
11
12inherit fsl-eula-unpack
13
14do_install () {
15 install -d ${D}
16 cp -r ${S}/etc ${S}/usr ${D}
17
18 # Move firmware to nonarch_base_libdir
19 if [ "${base_libdir}" != "${nonarch_base_libdir}" ]; then
20 install -d ${D}${nonarch_base_libdir}
21 mv ${D}${base_libdir}/firmware ${D}${nonarch_base_libdir}
22 fi
23}
24
25PACKAGE_ARCH = "${MACHINE_SOCARCH}"