[Buildroot] [PATCH 1/3] mali-t76x: add new package

Ariel D'Alessandro ariel at vanguardiasur.com.ar
Fri Jan 22 15:53:38 UTC 2016


Package provides the binary user-space components for the ARM Mali
Midgard T76X GPU.

Note that this package requires a kernel with the ARM Mali Midgard GPU
Kernel Drivers enabled.

Signed-off-by: Ariel D'Alessandro <ariel at vanguardiasur.com.ar>
---
 package/Config.in                                  |  1 +
 ...latform.h-with-framebuffer-instead-of-X11.patch | 39 +++++++++++++
 package/mali-t76x/Config.in                        | 27 +++++++++
 package/mali-t76x/egl.pc                           | 12 ++++
 package/mali-t76x/glesv2.pc                        | 12 ++++
 package/mali-t76x/rockchip-mali.mk                 | 64 ++++++++++++++++++++++
 6 files changed, 155 insertions(+)
 create mode 100644 package/mali-t76x/0001-use-eglplatform.h-with-framebuffer-instead-of-X11.patch
 create mode 100644 package/mali-t76x/Config.in
 create mode 100644 package/mali-t76x/egl.pc
 create mode 100644 package/mali-t76x/glesv2.pc
 create mode 100644 package/mali-t76x/rockchip-mali.mk

diff --git a/package/Config.in b/package/Config.in
index 09c2b40..274c451 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -398,6 +398,7 @@ endif
 	source "package/lshw/Config.in"
 	source "package/lsuio/Config.in"
 	source "package/lvm2/Config.in"
+	source "package/mali-t76x/Config.in"
 	source "package/mdadm/Config.in"
 	source "package/memtest86/Config.in"
 	source "package/memtester/Config.in"
diff --git a/package/mali-t76x/0001-use-eglplatform.h-with-framebuffer-instead-of-X11.patch b/package/mali-t76x/0001-use-eglplatform.h-with-framebuffer-instead-of-X11.patch
new file mode 100644
index 0000000..9311f18
--- /dev/null
+++ b/package/mali-t76x/0001-use-eglplatform.h-with-framebuffer-instead-of-X11.patch
@@ -0,0 +1,39 @@
+From 90a1279f7d7bf4a584124cf4c20fbd6e0eee0396 Mon Sep 17 00:00:00 2001
+From: Ariel D'Alessandro <ariel at vanguardiasur.com.ar>
+Date: Thu, 17 Dec 2015 04:26:05 -0300
+Subject: [PATCH] use eglplatform.h with framebuffer instead of X11
+
+Signed-off-by: Ariel D'Alessandro <ariel at vanguardiasur.com.ar>
+---
+ eglplatform.h | 15 ++++++++-------
+ 1 file changed, 8 insertions(+), 7 deletions(-)
+
+diff --git a/eglplatform.h b/eglplatform.h
+index 1284089..762fc57 100644
+--- a/eglplatform.h
++++ b/eglplatform.h
+@@ -95,13 +95,14 @@ typedef void*                           EGLNativeDisplayType;
+ 
+ #elif defined(__unix__)
+ 
+-/* X11 (tentative)  */
+-#include <X11/Xlib.h>
+-#include <X11/Xutil.h>
+-
+-typedef Display *EGLNativeDisplayType;
+-typedef Pixmap   EGLNativePixmapType;
+-typedef Window   EGLNativeWindowType;
++struct mali_native_window {
++	unsigned short width;
++	unsigned short height;
++};
++
++typedef void*         EGLNativeDisplayType;
++typedef void*         EGLNativePixmapType;
++typedef struct mali_native_window *EGLNativeWindowType;
+ 
+ #else
+ #error "Platform not recognized"
+-- 
+2.6.4
+
diff --git a/package/mali-t76x/Config.in b/package/mali-t76x/Config.in
new file mode 100644
index 0000000..b87622a
--- /dev/null
+++ b/package/mali-t76x/Config.in
@@ -0,0 +1,27 @@
+config BR2_PACKAGE_MALI_T76X
+	bool "mali-t76x"
+	select BR2_PACKAGE_HAS_LIBEGL
+	select BR2_PACKAGE_HAS_LIBGLES
+	depends on BR2_TOOLCHAIN_USES_GLIBC
+	depends on BR2_ARM_EABIHF
+	depends on BR2_arm
+	help
+	  Install the binary user-space components for the ARM Mali Midgard
+	  T76X GPU. This package requires a kernel with the ARM Mali Midgard
+	  GPU Kernel Drivers enabled.
+
+	  Source: http://malideveloper.arm.com/resources/drivers/
+
+if BR2_PACKAGE_MALI_T76X
+
+config BR2_PACKAGE_PROVIDES_LIBEGL
+	default "mali-t76x"
+
+config BR2_PACKAGE_PROVIDES_LIBGLES
+	default "mali-t76x"
+
+endif
+
+comment "mali-t76x needs an (e)glibc toolchain with armhf enabled"
+	depends on BR2_arm
+	depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_ARM_EABIHF
diff --git a/package/mali-t76x/egl.pc b/package/mali-t76x/egl.pc
new file mode 100644
index 0000000..f9ccf07
--- /dev/null
+++ b/package/mali-t76x/egl.pc
@@ -0,0 +1,12 @@
+prefix=/usr/
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: egl
+Description: ARM Mali implementation of EGL
+Version: 1.5
+Requires:
+Libs: -L${libdir} -lEGL -lGLESv2
+Cflags: -I${includedir}
+
diff --git a/package/mali-t76x/glesv2.pc b/package/mali-t76x/glesv2.pc
new file mode 100644
index 0000000..6910b46
--- /dev/null
+++ b/package/mali-t76x/glesv2.pc
@@ -0,0 +1,12 @@
+prefix=/usr
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: glesv2
+Description: ARM Mali implementation of OpenGL ESv2
+Version: 2.0
+Requires:
+Libs: -L${libdir} -lGLESv2 -lGLESv1_CM
+Cflags: -I${includedir}
+
diff --git a/package/mali-t76x/rockchip-mali.mk b/package/mali-t76x/rockchip-mali.mk
new file mode 100644
index 0000000..3117864
--- /dev/null
+++ b/package/mali-t76x/rockchip-mali.mk
@@ -0,0 +1,64 @@
+################################################################################
+#
+# mali-t76x
+#
+################################################################################
+
+MALI_T76X_VERSION = r5p0-06rel0
+MALI_T76X_SOURCE = mali-t76x_$(MALI_T76X_VERSION)_linux_1+fbdev.tar.gz
+MALI_T76X_SITE = http://malideveloper.arm.com/downloads/drivers/binary/$(MALI_T76X_VERSION)
+
+MALI_T76X_EXTRA_SITE = https://www.khronos.org/registry
+MALI_T76X_EXTRA_DOWNLOADS = \
+	$(MALI_T76X_EXTRA_SITE)/egl/api/EGL/egl.h \
+	$(MALI_T76X_EXTRA_SITE)/egl/api/EGL/eglext.h \
+	$(MALI_T76X_EXTRA_SITE)/egl/api/EGL/eglplatform.h \
+	$(MALI_T76X_EXTRA_SITE)/gles/api/GLES/gl.h \
+	$(MALI_T76X_EXTRA_SITE)/gles/api/GLES/glext.h \
+	$(MALI_T76X_EXTRA_SITE)/gles/api/GLES/glplatform.h \
+	$(MALI_T76X_EXTRA_SITE)/gles/api/old/2.0/gl2.h \
+	$(MALI_T76X_EXTRA_SITE)/gles/api/old/2.0/gl2ext.h \
+	$(MALI_T76X_EXTRA_SITE)/gles/api/old/2.0/gl2platform.h \
+	$(MALI_T76X_EXTRA_SITE)/egl/api/KHR/khrplatform.h
+
+MALI_T76X_INSTALL_STAGING = YES
+MALI_T76X_PROVIDES = libegl libgles
+
+define MALI_T76X_PRE_PATCH
+	cp $(BR2_DL_DIR)/eglplatform.h $(@D)/eglplatform.h
+endef
+
+MALI_T76X_PRE_PATCH_HOOKS += MALI_T76X_PRE_PATCH
+
+define MALI_T76X_INSTALL_STAGING_CMDS
+	$(INSTALL) -m 755 $(@D)/*.so $(STAGING_DIR)/usr/lib/
+
+	$(INSTALL) -D -m 0644 package/mali-t76x/egl.pc \
+		$(STAGING_DIR)/usr/lib/pkgconfig/egl.pc
+	$(INSTALL) -D -m 0644 package/mali-t76x/glesv2.pc \
+		$(STAGING_DIR)/usr/lib/pkgconfig/glesv2.pc
+
+	$(INSTALL) -m 755 -d $(STAGING_DIR)/usr/include/EGL
+	$(INSTALL) -D -m 0644 $(BR2_DL_DIR)/egl.h $(STAGING_DIR)/usr/include/EGL
+	$(INSTALL) -D -m 0644 $(BR2_DL_DIR)/eglext.h $(STAGING_DIR)/usr/include/EGL
+	$(INSTALL) -D -m 0644 $(@D)/eglplatform.h $(STAGING_DIR)/usr/include/EGL
+
+	$(INSTALL) -m 755 -d $(STAGING_DIR)/usr/include/GLES
+	$(INSTALL) -D -m 0644 $(BR2_DL_DIR)/gl.h $(STAGING_DIR)/usr/include/GLES
+	$(INSTALL) -D -m 0644 $(BR2_DL_DIR)/glext.h $(STAGING_DIR)/usr/include/GLES
+	$(INSTALL) -D -m 0644 $(BR2_DL_DIR)/glplatform.h $(STAGING_DIR)/usr/include/GLES
+
+	$(INSTALL) -m 755 -d $(STAGING_DIR)/usr/include/GLES2
+	$(INSTALL) -D -m 0644 $(BR2_DL_DIR)/gl2.h $(STAGING_DIR)/usr/include/GLES2
+	$(INSTALL) -D -m 0644 $(BR2_DL_DIR)/gl2ext.h $(STAGING_DIR)/usr/include/GLES2
+	$(INSTALL) -D -m 0644 $(BR2_DL_DIR)/gl2platform.h $(STAGING_DIR)/usr/include/GLES2
+
+	$(INSTALL) -m 755 -d $(STAGING_DIR)/usr/include/KHR
+	$(INSTALL) -D -m 0644 $(BR2_DL_DIR)/khrplatform.h $(STAGING_DIR)/usr/include/KHR
+endef
+
+define MALI_T76X_INSTALL_TARGET_CMDS
+	$(INSTALL) -m 755 $(@D)/*.so $(TARGET_DIR)/usr/lib/
+endef
+
+$(eval $(generic-package))
-- 
2.7.0




More information about the buildroot mailing list