[Buildroot] [PATCH v3 1/1] sunxi-mali-mainline: new package
Maxime Ripard
maxime.ripard at free-electrons.com
Tue Nov 14 13:56:19 UTC 2017
Hi,
On Mon, Nov 13, 2017 at 07:48:58PM +0100, Giulio Benetti wrote:
> Add Allwinner Mali openGL userspace driver r6p2.
> Used combined with kernelspace Mali driver,
> it gives possibility to use 3D openGL SoC acceleration.
> It provides both fbdev and X11 libraries and headers.
> It is compatible with Linux >= 4.4 as sunxi-mali-driver-mainline.
>
> Signed-off-by: Giulio Benetti <giulio.benetti at micronovasrl.com>
> ---
> Changes v2 -> v3:
> * added package into package/Config.in
> DEVELOPERS | 1 +
> package/Config.in | 1 +
> package/sunxi-mali-mainline/Config.in | 43 +++++++++++++++
> package/sunxi-mali-mainline/egl.pc | 12 +++++
> package/sunxi-mali-mainline/glesv2.pc | 12 +++++
> package/sunxi-mali-mainline/sunxi-mali-mainline.mk | 62 ++++++++++++++++++++++
> 6 files changed, 131 insertions(+)
> create mode 100644 package/sunxi-mali-mainline/Config.in
> create mode 100644 package/sunxi-mali-mainline/egl.pc
> create mode 100644 package/sunxi-mali-mainline/glesv2.pc
> create mode 100644 package/sunxi-mali-mainline/sunxi-mali-mainline.mk
>
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 2fe95c8..1a751b8 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -697,6 +697,7 @@ F: package/webp/
>
> N: Giulio Benetti <giulio.benetti at micronovasrl.com>
> F: package/sunxi-mali-driver-mainline/
> +F: package/sunxi-mali-mainline/
>
> N: Gregory Dymarek <gregd72002 at gmail.com>
> F: package/ding-libs/
> diff --git a/package/Config.in b/package/Config.in
> index 8de2227..041c6f6 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -497,6 +497,7 @@ endmenu
> source "package/stm32flash/Config.in"
> source "package/sunxi-cedarx/Config.in"
> source "package/sunxi-mali-driver-mainline/Config.in"
> + source "package/sunxi-mali-mainline/Config.in"
> source "package/sunxi-mali/Config.in"
> source "package/sysstat/Config.in"
> source "package/targetcli-fb/Config.in"
> diff --git a/package/sunxi-mali-mainline/Config.in b/package/sunxi-mali-mainline/Config.in
> new file mode 100644
> index 0000000..652cbc5
> --- /dev/null
> +++ b/package/sunxi-mali-mainline/Config.in
> @@ -0,0 +1,43 @@
> +config BR2_PACKAGE_SUNXI_MALI_MAINLINE
> + bool "sunxi-mali-mainline"
> + depends on BR2_arm
> + depends on BR2_ARM_EABIHF
> + depends on BR2_TOOLCHAIN_USES_GLIBC
> + select BR2_PACKAGE_HAS_LIBEGL
> + select BR2_PACKAGE_HAS_LIBGLES
> + select BR2_PACKAGE_LIBDRM if BR2_PACKAGE_XORG7
> + select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
> + select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7
> + select BR2_PACKAGE_XLIB_LIBXFIXES if BR2_PACKAGE_XORG7
> + select BR2_PACKAGE_XLIB_LIBXDAMAGE if BR2_PACKAGE_XORG7
Can't you make the selection of whether you want X11 vs fbdev
interfaces a choice rather than inferring it from the configuration?
> + help
> + Install the ARM Mali drivers for sunxi based systems (i.e
> + systems based on ARM Allwinner SoCs). This driver requires
> + either the sunxi-kernel with the ARM Mali driver enabled or
> + the installation of the ARM Mali drivers as an external
> + module.
> +
> +if BR2_PACKAGE_SUNXI_MALI_MAINLINE
> +
> +config BR2_PACKAGE_PROVIDES_LIBEGL
> + default "sunxi-mali-mainline"
> +
> +config BR2_PACKAGE_PROVIDES_LIBGLES
> + default "sunxi-mali-mainline"
> +
> +choice
> + prompt "Version"
> + default BR2_PACKAGE_SUNXI_MALI_MAINLINE_R6P2
> + help
> + Select the version of the kernel module.
> +
> +config BR2_PACKAGE_SUNXI_MALI_MAINLINE_R6P2
> + bool "r6p2"
> +
> +endchoice
> +
> +endif
> +
> +comment "sunxi-mali needs an EABIhf glibc toolchain"
> + depends on BR2_arm
> + depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_ARM_EABIHF
> diff --git a/package/sunxi-mali-mainline/egl.pc b/package/sunxi-mali-mainline/egl.pc
> new file mode 100644
> index 0000000..3854e5f
> --- /dev/null
> +++ b/package/sunxi-mali-mainline/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.4
> +Requires:
> +Libs: -L${libdir} -lEGL -lGLESv2
> +Cflags: -I${includedir}
> +
> diff --git a/package/sunxi-mali-mainline/glesv2.pc b/package/sunxi-mali-mainline/glesv2.pc
> new file mode 100644
> index 0000000..6910b46
> --- /dev/null
> +++ b/package/sunxi-mali-mainline/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/sunxi-mali-mainline/sunxi-mali-mainline.mk b/package/sunxi-mali-mainline/sunxi-mali-mainline.mk
> new file mode 100644
> index 0000000..6540b2c
> --- /dev/null
> +++ b/package/sunxi-mali-mainline/sunxi-mali-mainline.mk
> @@ -0,0 +1,62 @@
> +################################################################################
> +#
> +# sunxi-mali-mainline
> +#
> +################################################################################
> +
> +SUNXI_MALI_MAINLINE_VERSION = cb3e8ece9b2c3a70cbeb3204cd6f30eceaa32023
> +SUNXI_MALI_MAINLINE_SITE = $(call github,free-electrons,mali-blobs,$(SUNXI_MALI_MAINLINE_VERSION))
> +SUNXI_MALI_MAINLINE_INSTALL_STAGING = YES
> +SUNXI_MALI_MAINLINE_PROVIDES = libegl libgles
> +
> +ifeq ($(BR2_PACKAGE_SUNXI_MALI_MAINLINE_R6P2),y)
> +SUNXI_MALI_LIB_VER=r6p2
> +endif
> +
> +ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y)
> +SUNXI_MALI_MAINLINE_DEPENDENCIES += xlib_libX11 xlib_libXfixes \
> + xlib_libXext xlib_libXdamage libdrm
> +endif
> +
> +define SUNXI_MALI_MAINLINE_BUILD_CMDS
> +endef
> +
> +ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y)
> +define SUNXI_MALI_MAINLINE_INSTALL_STAGING_CMDS
> + cp -rf $(@D)/$(SUNXI_MALI_LIB_VER)/x11_dma_buf/lib_x11_dma_buf/* \
> + $(STAGING_DIR)/usr/lib
> + cp -rf $(@D)/$(SUNXI_MALI_LIB_VER)/x11_ump/include/* \
> + $(STAGING_DIR)/usr/include/
That seems hackish. At least having a comment on why it's not an issue
would be good.
Maxime
--
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20171114/5397f0af/attachment-0002.asc>
More information about the buildroot
mailing list