Skip to contentSkip to conversation

ARM Mali Graphics Drivers

PATCH New Spenser Gilliland 2 participants 9 messages Jul 19, 2013 – Jul 29, 2013 Arm/Allwinner sunXi SoC support

lore
Share & tools
lore
#0 lore raw

cover ARM Mali Graphics Drivers

This patch adds the ARM Mali graphics driver for Allwinner based systems.

Spenser Gilliland (4):
a10disp: new package
sunxi-mali: new package
opengl: add sunxi-mali as possible egl/gles provider
sunxi-cedar: add cedar hardware video decoding library

 package/Config.in                          |  4 ++
 package/a10disp/Config.in                  | 12 +++++
 package/a10disp/a10disp.mk                 | 21 ++++++++
 package/opengl/libegl/libegl.mk            |  4 ++
 package/opengl/libgles/libgles.mk          |  4 ++
 package/sunxi-cedar/Config.in              | 10 ++++
 package/sunxi-cedar/sunxi-cedar.mk         | 49 ++++++++++++++++++
 package/sunxi-mali-prop/Config.in          |  4 ++
 package/sunxi-mali-prop/sunxi-mali-prop.mk | 10 ++++
 package/sunxi-mali/Config.in               | 52 +++++++++++++++++++
 package/sunxi-mali/S80mali                 | 54 ++++++++++++++++++++
 package/sunxi-mali/egl.pc                  | 12 +++++
 package/sunxi-mali/glesv2.pc               | 12 +++++
 package/sunxi-mali/sunxi-mali.mk           | 82 ++++++++++++++++++++++++++++++
 14 files changed, 330 insertions(+)
 create mode 100644 package/a10disp/Config.in
 create mode 100644 package/a10disp/a10disp.mk
 create mode 100644 package/sunxi-cedar/Config.in
 create mode 100644 package/sunxi-cedar/sunxi-cedar.mk
 create mode 100644 package/sunxi-mali-prop/Config.in
 create mode 100644 package/sunxi-mali-prop/sunxi-mali-prop.mk
 create mode 100644 package/sunxi-mali/Config.in
 create mode 100644 package/sunxi-mali/S80mali
 create mode 100644 package/sunxi-mali/egl.pc
 create mode 100644 package/sunxi-mali/glesv2.pc
 create mode 100644 package/sunxi-mali/sunxi-mali.mk
Signature · 1 line
1.8.1.2
#1 lore raw

PATCH 1/4 a10disp: new package

---
 package/Config.in          |  1 +
 package/a10disp/Config.in  | 12 ++++++++++++
 package/a10disp/a10disp.mk | 21 +++++++++++++++++++++
 3 files changed, 34 insertions(+)
 create mode 100644 package/a10disp/Config.in
 create mode 100644 package/a10disp/a10disp.mk
package/Config.in +1 -0
index 286a605..0ba8ee4 100644
@@ -229,6 +229,7 @@ source "package/ux500-firmware/Config.in"
 source "package/zd1211-firmware/Config.in"
 endmenu
 source "package/freescale-imx/Config.in"
+source "package/a10disp/Config.in"
 source "package/acpid/Config.in"
 source "package/cdrkit/Config.in"
 source "package/dbus/Config.in"
package/a10disp/Config.in new file +12 -0
new file mode 100644
index 0000000..b4edf31
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_A10DISP
+	bool "a10disp"
+	depends on BR2_arm
+	depends on BR2_LINUX_KERNEL
+	help
+	  Program to change the display mode of Allwinner ARM SOCs running
+	  the linux-sunxi kernel (and not the mainline kernel.)
+
+	  http://github.com/hglm/a10disp
+
+comment "a10disp requires the linux kernel"
+	depends on BR2_arm && !BR2_LINUX_KERNEL
package/a10disp/a10disp.mk new file +21 -0
new file mode 100644
index 0000000..7dfc1b5
@@ -0,0 +1,21 @@
+################################################################################
+#
+# a10disp
+#
+################################################################################
+
+A10DISP_VERSION = a899cc6dcf
+A10DISP_SITE = http://github.com/hglm/a10disp/tarball/$(A10DISP_VERSION)
+
+A10DISP_DEPENDENCIES = linux
+
+define A10DISP_BUILD_CMDS
+	cp -f $(LINUX_DIR)/include/video/sunxi_disp_ioctl.h $(@D)/
+	$(TARGET_CC) $(TARGET_CFLAGS) $(@D)/a10disp.c -o $(@D)/a10disp
+endef
+
+define A10DISP_INSTALL_TARGET_CMDS
+	$(INSTALL) -D -m 0755 $(@D)/a10disp $(TARGET_DIR)/usr/bin/a10disp
+endef
+
+$(eval $(generic-package))
Signature · 1 line
1.8.1.2
#2 lore raw

PATCH 2/4 sunxi-mali: new package

In reply to Spenser Gilliland
---
 package/Config.in                          |  2 +
 package/sunxi-mali-prop/Config.in          |  4 ++
 package/sunxi-mali-prop/sunxi-mali-prop.mk | 10 ++++
 package/sunxi-mali/Config.in               | 52 +++++++++++++++++++
 package/sunxi-mali/S80mali                 | 54 ++++++++++++++++++++
 package/sunxi-mali/egl.pc                  | 12 +++++
 package/sunxi-mali/glesv2.pc               | 12 +++++
 package/sunxi-mali/sunxi-mali.mk           | 82 ++++++++++++++++++++++++++++++
 8 files changed, 228 insertions(+)
 create mode 100644 package/sunxi-mali-prop/Config.in
 create mode 100644 package/sunxi-mali-prop/sunxi-mali-prop.mk
 create mode 100644 package/sunxi-mali/Config.in
 create mode 100644 package/sunxi-mali/S80mali
 create mode 100644 package/sunxi-mali/egl.pc
 create mode 100644 package/sunxi-mali/glesv2.pc
 create mode 100644 package/sunxi-mali/sunxi-mali.mk
package/Config.in +2 -0
index 0ba8ee4..e49264f 100644
@@ -294,6 +294,8 @@ source "package/smartmontools/Config.in"
 source "package/snowball-hdmiservice/Config.in"
 source "package/sredird/Config.in"
 source "package/statserial/Config.in"
+source "package/sunxi-mali/Config.in"
+source "package/sunxi-mali-prop/Config.in"
 source "package/sysstat/Config.in"
 source "package/ti-gfx/Config.in"
 source "package/ti-utils/Config.in"
package/sunxi-mali-prop/Config.in new file +4 -0
new file mode 100644
index 0000000..b9efb4e
@@ -0,0 +1,4 @@
+# Sunxi-mali-prop is a git submodule of sunxi-mali. To use this package
+# select the sunxi-mali option.
+config BR2_PACKAGE_SUNXI_MALI_PROP
+	bool
package/sunxi-mali-prop/sunxi-mali-prop.mk new file +10 -0
new file mode 100644
index 0000000..21960e6
@@ -0,0 +1,10 @@
+################################################################################
+#
+# sunxi-mali-prop
+#
+################################################################################
+
+SUNXI_MALI_PROP_VERSION = e4ced47
+SUNXI_MALI_PROP_SITE = http://github.com/linux-sunxi/sunxi-mali-proprietary/tarball/$(SUNXI_MALI_PROP_VERSION)
+
+$(eval $(generic-package))
package/sunxi-mali/Config.in new file +52 -0

52 lines not on this page · raw message

package/sunxi-mali/S80mali new file +54 -0

54 lines not on this page · raw message

package/sunxi-mali/egl.pc new file +12 -0
new file mode 100644
index 0000000..56e3990
@@ -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.4
+Requires:
+Libs: -L${libdir} -lEGL -lGLESv2 -lUMP
+Cflags: -I{includedir}/EGL/ -I${includedir}
+
package/sunxi-mali/glesv2.pc new file +12 -0
new file mode 100644
index 0000000..4e112ee
@@ -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 -lGLES_CM -lUMP
+Cflags: -I${includedir}/GLES2
+
package/sunxi-mali/sunxi-mali.mk new file +82 -0

82 lines not on this page · raw message

Signature · 1 line
1.8.1.2
#3 lore raw

PATCH 2/4 sunxi-mali: new package

Dear Spenser Gilliland,

package/sunxi-mali/Config.in line 34

Quoted 2 lines · Spenser Gilliland
package/sunxi-mali/Config.in new file +2 -0
+config BR2_PACKAGE_SUNXI_MALI_R2P4
+	bool "r2p4"

This one is only available on EABI toolchains.

package/sunxi-mali/Config.in line 37

Quoted 3 lines
package/sunxi-mali/Config.in new file +3 -0
+
+config BR2_PACKAGE_SUNXI_MALI_R3P0
+	bool "r3p0"

and this one on EABIhf toolchains.

package/sunxi-mali/sunxi-mali.mk line 70

Quoted 3 lines
package/sunxi-mali/sunxi-mali.mk new file +3 -0
+define SUNXI_MALI_INSTALL_TARGET_CMDS
+	$(SUNXI_MALI_MAKE_ENV) $(MAKE) -C $(@D)/lib \
+		$(SUNXI_MALI_MAKE_OPTS) DESTDIR=$(TARGET_DIR) install

I've added here a chmod +x to ensure libraries are installed with execution permissions, so that they are properly stripped by Buildroot.

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#4 lore raw

PATCH 3/4 opengl: add sunxi-mali as possible egl/gles provider

In reply to Spenser Gilliland
---
 package/opengl/libegl/libegl.mk   | 4 ++++
 package/opengl/libgles/libgles.mk | 4 ++++
 2 files changed, 8 insertions(+)
package/opengl/libegl/libegl.mk +4 -0
index 00e1f19..5943a3a 100644
@@ -14,6 +14,10 @@ ifeq ($(BR2_PACKAGE_TI_GFX),y)
 LIBEGL_DEPENDENCIES += ti-gfx
 endif
 
+ifeq ($(BR2_PACKAGE_SUNXI_MALI),y)
+LIBEGL_DEPENDENCIES += sunxi-mali
+endif
+
 ifeq ($(LIBEGL_DEPENDENCIES),)
 define LIBEGL_CONFIGURE_CMDS
 	echo "No libEGL implementation selected. Configuration error."
package/opengl/libgles/libgles.mk +4 -0
index d2fe11b..715d91a 100644
@@ -14,6 +14,10 @@ ifeq ($(BR2_PACKAGE_TI_GFX),y)
 LIBGLES_DEPENDENCIES += ti-gfx
 endif
 
+ifeq ($(BR2_PACKAGE_SUNXI_MALI),y)
+LIBGLES_DEPENDENCIES += sunxi-mali
+endif
+
 ifeq ($(LIBGLES_DEPENDENCIES),)
 define LIBGLES_CONFIGURE_CMDS
 	echo "No libGLES implementation selected. Configuration error."
Signature · 1 line
1.8.1.2
#5 lore raw

PATCH 4/4 sunxi-cedar: add cedar hardware video decoding library

In reply to Spenser Gilliland
---
 package/Config.in                  |  1 +
 package/sunxi-cedar/Config.in      | 10 ++++++++
 package/sunxi-cedar/sunxi-cedar.mk | 49 ++++++++++++++++++++++++++++++++++++++
 3 files changed, 60 insertions(+)
 create mode 100644 package/sunxi-cedar/Config.in
 create mode 100644 package/sunxi-cedar/sunxi-cedar.mk
package/Config.in +1 -0
index e49264f..3825668 100644
@@ -294,6 +294,7 @@ source "package/smartmontools/Config.in"
 source "package/snowball-hdmiservice/Config.in"
 source "package/sredird/Config.in"
 source "package/statserial/Config.in"
+source "package/sunxi-cedar/Config.in"
 source "package/sunxi-mali/Config.in"
 source "package/sunxi-mali-prop/Config.in"
 source "package/sysstat/Config.in"
package/sunxi-cedar/Config.in new file +10 -0
new file mode 100644
index 0000000..859de84
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_SUNXI_CEDAR
+	bool "sunxi-cedar"
+	depends on BR2_TOOLCHAIN_USES_GLIBC && BR2_arm
+	help
+	  Sunxi cedar decoder libraries
+
+	  http://github.com/linux-sunxi/cedarx-libs
+
+comment "sunxi-cedar requires an eglibc/glibc based toolchain"
+	depends on !(BR2_TOOLCHAIN_USES_GLIBC) && BR2_arm
package/sunxi-cedar/sunxi-cedar.mk new file +49 -0

49 lines not on this page · raw message

Signature · 1 line
1.8.1.2
#6 lore raw

PATCH 4/4 sunxi-cedar: add cedar hardware video decoding library

Dear Spenser Gilliland,

Quoted 9 lines · Spenser Gilliland
---
 package/Config.in                  |  1 +
 package/sunxi-cedar/Config.in      | 10 ++++++++
 package/sunxi-cedar/sunxi-cedar.mk | 49 ++++++++++++++++++++++++++++++++++++++
 3 files changed, 60 insertions(+)
 create mode 100644 package/sunxi-cedar/Config.in
 create mode 100644 package/sunxi-cedar/sunxi-cedar.mk

I've renamed this package to sunxi-cedarx and modified the installation steps to ensure libraries are installed with execution permissions.

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#7 lore raw

PATCH 4/4 sunxi-cedar: add cedar hardware video decoding library

In reply to Spenser Gilliland

Dear Spenser Gilliland,

package/sunxi-cedar/sunxi-cedar.mk line 16

Quoted 5 lines · Spenser Gilliland
package/sunxi-cedar/sunxi-cedar.mk new file +5 -0
+ifeq ($(BR2_ARM_EABIHF),y)
+SUNXI_CEDAR_BIN_DIR = $(@D)/libcedarv/linux-armhf
+else
+SUNXI_CEDAR_BIN_DIR = $(@D)/libcedarv/linux-armel
+endif

The package fails to build in the linux-armel case, because avheap.c doesn't exist in this case:

http://autobuild.buildroot.org/results/739/7395780dafedb6126dad7f9405609c2fe02104ec/build-end.log

Also for some reason, in another build it uses the host compiler instead of the cross compiler:

http://autobuild.buildroot.org/results/5b0/5b0e52f2fd59916e46572b0f34403972e77e8283/build-end.log

Could you have a look into these issues?

Thanks,

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#8 lore raw

cover ARM Mali Graphics Drivers

In reply to Spenser Gilliland

Dear Spenser Gilliland,

Quoted 5 lines · Spenser Gilliland

Spenser Gilliland (4):
a10disp: new package
sunxi-mali: new package
opengl: add sunxi-mali as possible egl/gles provider
sunxi-cedar: add cedar hardware video decoding library

Committed, thanks. I did a few fixes, which I detailed in a reply to each patch.

Thanks,

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com