diff mbox

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

Message ID 1453478020-311-2-git-send-email-ariel@vanguardiasur.com.ar
State Superseded
Headers show

Commit Message

Ariel D'Alessandro Jan. 22, 2016, 3:53 p.m. UTC
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@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

Comments

Peter Korsgaard Feb. 10, 2016, 8:34 p.m. UTC | #1
>>>>> "Ariel" == Ariel D'Alessandro <ariel@vanguardiasur.com.ar> writes:

 > 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@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/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

This file should be named mali-t76x.mk to match the directory and
variables.

> @@ -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)

A .hash file listing the sha256sum for this would be nice.

> +
 > +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

Could this use mesa3d-headers like the nvidia drivers do?

Other than that it looks good.
Ariel D'Alessandro Feb. 14, 2016, 6:56 p.m. UTC | #2
Hi Peter,

El 10/02/16 a las 17:34, Peter Korsgaard escribió:
>>>>>> "Ariel" == Ariel D'Alessandro <ariel@vanguardiasur.com.ar> writes:
> 
>  > 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@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/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
> 
> This file should be named mali-t76x.mk to match the directory and
> variables.

Right, will do that.

> 
>> @@ -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)
> 
> A .hash file listing the sha256sum for this would be nice.

OK, will do.

> 
>> +
>  > +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
> 
> Could this use mesa3d-headers like the nvidia drivers do?

I wasn't aware of the mesa3d-headers. It seems to be just what needed
here, so I'll give a try and modify the package as well.

> 
> Other than that it looks good.
> 

Thanks!
diff mbox

Patch

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@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@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))