summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Muellner <christoph.muellner@theobroma-systems.com>2019-09-24 12:30:57 +0200
committerChristoph Muellner <christoph.muellner@theobroma-systems.com>2019-09-24 21:11:49 +0200
commit9472afbe07b4953cfe2b5045e1f8ba3672262d62 (patch)
tree751ebaec47eba7350723d00497b6d9e2a0468ddf
parent4d6f37cf9c5070e5b2b2733eab45528cc2a951f7 (diff)
package: libmali: Add Rockchip's Mali blobs.
This patch brings the libmali package from Rockchip's Buildroot BSP. Contrary to their BSP version, we name a github repo with a specific git commit ID as source. Signed-off-by: Christoph Muellner <christoph.muellner@theobroma-systems.com>
-rw-r--r--package/Config.in1
-rw-r--r--package/libmali/Config.in23
-rw-r--r--package/libmali/libmali.hash2
-rw-r--r--package/libmali/libmali.mk113
4 files changed, 139 insertions, 0 deletions
diff --git a/package/Config.in b/package/Config.in
index a7353de8cc..068f9b17a6 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -275,6 +275,7 @@ comment "Graphic applications"
source "package/gnuplot/Config.in"
source "package/jhead/Config.in"
source "package/kmscube/Config.in"
+ source "package/libmali/Config.in"
source "package/libva-utils/Config.in"
source "package/mesa3d-demos/Config.in"
source "package/netsurf/Config.in"
diff --git a/package/libmali/Config.in b/package/libmali/Config.in
new file mode 100644
index 0000000000..b92ff84585
--- /dev/null
+++ b/package/libmali/Config.in
@@ -0,0 +1,23 @@
+config BR2_PACKAGE_LIBMALI
+ bool "rockchip libmali"
+ depends on BR2_TOOLCHAIN_USES_GLIBC
+ depends on BR2_arm || BR2_aarch64
+ select BR2_PACKAGE_MESA3D
+ select BR2_PACKAGE_MESA3D_OPENGL_ES
+ select BR2_PACKAGE_MESA3D_OPENGL_EGL
+ select BR2_PACKAGE_HAS_LIBEGL
+ select BR2_PACKAGE_HAS_LIBGLES
+ help
+ Install the binary user-space library for the ARM Mali GPU.
+ This package requires a kernel with the ARM Mali GPU Kernel
+ Drivers enabled.
+
+if BR2_PACKAGE_LIBMALI
+
+config BR2_PACKAGE_LIBMALI_WITHOUT_CL
+ bool "Libmali configuration without cl"
+ help
+ Show packages in menuconfig that cl is not used by libmali.
+endif
+
+
diff --git a/package/libmali/libmali.hash b/package/libmali/libmali.hash
new file mode 100644
index 0000000000..df83092edd
--- /dev/null
+++ b/package/libmali/libmali.hash
@@ -0,0 +1,2 @@
+# Locally computed
+sha256 6cbb5420e2f87279486b089f49353a0f1824d1c53111fef94b707f95a8ab3377 libmali-41a1cf80804839137dd2941514df09a2fb69efb1.tar.gz
diff --git a/package/libmali/libmali.mk b/package/libmali/libmali.mk
new file mode 100644
index 0000000000..22eeeaa145
--- /dev/null
+++ b/package/libmali/libmali.mk
@@ -0,0 +1,113 @@
+################################################################################
+#
+# libmali For Linux
+#
+################################################################################
+
+LIBMALI_VERSION = 41a1cf80804839137dd2941514df09a2fb69efb1
+LIBMALI_SITE = https://github.com/rockchip-linux/libmali.git
+LIBMALI_SITE_METHOD = git
+
+LIBMALI_DEPENDENCIES = mesa3d
+
+ifeq ($(BR2_PACKAGE_WAYLAND),y)
+# Somehow the px30/3326's wayland mali named "-wayland-gbm"
+ifneq ($(BR2_PACKAGE_PX30)$(BR2_PACKAGE_RK3326),)
+LIBMALI_SUFFIX = -wayland-gbm
+else
+LIBMALI_SUFFIX = -wayland
+endif
+else
+ifeq ($(BR2_PACKAGE_XORG7)),y)
+LIBMALI_SUFFIX = -x11-fbdev
+else
+LIBMALI_SUFFIX = -gbm
+endif
+endif
+
+ifeq ($(BR2_PACKAGE_LIBMALI_WITHOUT_CL),y)
+LIBMALI_SUFFIX := $(LIBMALI_SUFFIX)-without-cl
+endif
+
+ifneq ($(BR2_PACKAGE_RK3326)$(BR2_PACKAGE_PX30),)
+LIBMALI_LIBS = libmali-bifrost-g31-rxp0$(LIBMALI_SUFFIX).so
+else ifeq ($(BR2_PACKAGE_PX3SE),y)
+LIBMALI_LIBS = libmali-utgard-400-r7p0-r3p0$(LIBMALI_SUFFIX).so
+
+define LIBMALI_INSTALL_HOOKS
+ $(INSTALL) -D -m 755 $(@D)/overlay/S10libmali_px3se $(TARGET_DIR)/etc/init.d/S10libmali
+ $(INSTALL) -D -m 755 $(@D)/overlay/px3seBase $(TARGET_DIR)/usr/sbin/
+endef
+LIBMALI_POST_INSTALL_TARGET_HOOKS += LIBMALI_INSTALL_HOOKS
+
+else ifneq ($(BR2_PACKAGE_RK3126C)$(BR2_PACKAGE_RK3128)$(BR2_PACKAGE_RK3128H),)
+LIBMALI_LIBS = libmali-utgard-400-r7p0-r1p1$(LIBMALI_SUFFIX).so
+else ifeq ($(BR2_PACKAGE_RK3288),y)
+LIBMALI_LIBS = libmali-midgard-t76x-r14p0-r0p0$(LIBMALI_SUFFIX).so \
+ libmali-midgard-t76x-r14p0-r1p0$(LIBMALI_SUFFIX).so
+
+define LIBMALI_INSTALL_HOOKS
+ $(INSTALL) -D -m 755 $(@D)/overlay/S10libmali_rk3288 $(TARGET_DIR)/etc/init.d/S10libmali
+endef
+LIBMALI_POST_INSTALL_TARGET_HOOKS += LIBMALI_INSTALL_HOOKS
+
+else ifneq ($(BR2_PACKAGE_RK3399)$(BR2_PACKAGE_RK3399PRO),)
+LIBMALI_LIBS = libmali-midgard-t86x-r14p0$(LIBMALI_SUFFIX).so
+else ifeq ($(BR2_PACKAGE_RK3328),y)
+LIBMALI_LIBS = libmali-utgard-450-r7p0-r0p0$(LIBMALI_SUFFIX).so
+endif
+
+define LIBMALI_REMOVE_MESA_LIBS
+ rm -f \
+ $(TARGET_DIR)/usr/lib/libEGL.so* \
+ $(TARGET_DIR)/usr/lib/libgbm.so* \
+ $(TARGET_DIR)/usr/lib/libGLESv1_CM.so* \
+ $(TARGET_DIR)/usr/lib/libGLESv2.so* \
+ $(TARGET_DIR)/usr/lib/libOpenCL.so* \
+ $(TARGET_DIR)/usr/lib/libwayland-egl.so*
+endef
+LIBMALI_PRE_INSTALL_TARGET_HOOKS += LIBMALI_REMOVE_MESA_LIBS
+
+ifneq ($(LIBMALI_LIBS),)
+LIBMALI_ARCH_DIR = $(if $(BR2_arm),arm-linux-gnueabihf,aarch64-linux-gnu)
+
+define LIBMALI_INSTALL_TARGET_CMDS
+ cd $(@D)/lib/$(LIBMALI_ARCH_DIR) && \
+ $(INSTALL) -D -m 644 $(LIBMALI_LIBS) $(TARGET_DIR)/usr/lib/
+
+ echo $(LIBMALI_LIBS) | xargs -n 1 | head -n 1 | \
+ xargs -i ln -sf {} $(TARGET_DIR)/usr/lib/libmali.so
+endef
+endif
+
+define LIBMALI_CREATE_LINKS
+ ln -sf libmali.so $(TARGET_DIR)/usr/lib/libMali.so
+ ln -sf libmali.so $(TARGET_DIR)/usr/lib/libEGL.so.1
+ ln -sf libEGL.so.1 $(TARGET_DIR)/usr/lib/libEGL.so
+ ln -sf libmali.so $(TARGET_DIR)/usr/lib/libgbm.so.1
+ ln -sf libgbm.so.1 $(TARGET_DIR)/usr/lib/libgbm.so
+ ln -sf libmali.so $(TARGET_DIR)/usr/lib/libGLESv1_CM.so.1
+ ln -sf libGLESv1_CM.so.1 $(TARGET_DIR)/usr/lib/libGLESv1_CM.so
+ ln -sf libmali.so $(TARGET_DIR)/usr/lib/libGLESv2.so.2
+ ln -sf libGLESv2.so.2 $(TARGET_DIR)/usr/lib/libGLESv2.so
+endef
+LIBMALI_POST_INSTALL_TARGET_HOOKS += LIBMALI_CREATE_LINKS
+
+ifeq ($(BR2_PACKAGE_WAYLAND),y)
+define LIBMALI_CREATE_WAYLAND_LINKS
+ ln -sf libmali.so $(TARGET_DIR)/usr/lib/libwayland-egl.so.1
+ ln -sf libwayland-egl.so.1 $(TARGET_DIR)/usr/lib/libwayland-egl.so
+endef
+LIBMALI_POST_INSTALL_TARGET_HOOKS += LIBMALI_CREATE_WAYLAND_LINKS
+endif
+
+# px3se/3126c/3128 not support opencl
+ifeq ($(BR2_PACKAGE_PX3SE)$(BR2_PACKAGE_RK3126C)$(BR2_PACKAGE_RK3128)$(BR2_PACKAGE_LIBMALI_WITHOUT_CL),)
+define LIBMALI_CREATE_OPENCL_LINKS
+ ln -sf libmali.so $(TARGET_DIR)/usr/lib/libMaliOpenCL.so
+ ln -sf libMaliOpenCL.so $(TARGET_DIR)/usr/lib/libOpenCL.so
+endef
+LIBMALI_POST_INSTALL_TARGET_HOOKS += LIBMALI_CREATE_OPENCL_LINKS
+endif
+
+$(eval $(generic-package))