diff options
author | Christoph Muellner <christoph.muellner@theobroma-systems.com> | 2019-09-24 12:30:57 +0200 |
---|---|---|
committer | Christoph Muellner <christoph.muellner@theobroma-systems.com> | 2019-09-24 21:11:49 +0200 |
commit | 9472afbe07b4953cfe2b5045e1f8ba3672262d62 (patch) | |
tree | 751ebaec47eba7350723d00497b6d9e2a0468ddf | |
parent | 4d6f37cf9c5070e5b2b2733eab45528cc2a951f7 (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.in | 1 | ||||
-rw-r--r-- | package/libmali/Config.in | 23 | ||||
-rw-r--r-- | package/libmali/libmali.hash | 2 | ||||
-rw-r--r-- | package/libmali/libmali.mk | 113 |
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)) |