Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Gary Bisson <gary.bisson@boundarydevices.com>
To: buildroot@busybox.net
Subject: [Buildroot] [v6,07/15] xdriver_xf86-video-imx-viv: new package
Date: Thu, 30 Apr 2015 10:46:13 +0200	[thread overview]
Message-ID: <20150430084613.GG24549@t450s.lan> (raw)
In-Reply-To: <1421451251-23366-8-git-send-email-jezz@sysmic.org>

Hi all,

On Sat, Jan 17, 2015 at 12:34:03AM +0100, J?r?me Pouiller wrote:
> Xorg driver for imx6. Inspired from Yocto project.
> 
> I did not find any problem, but notice Yocto project force Xorg xserver
> 1.14.4 while we use 1.16.
> 
> Notice Vivante driver should be able to provide Desktop OpenGL implementation.
> However, this feature seems broken for a while[1]. Yocto use Mesa3D/swraster
> to provide Desktop OpenGL API[2].
> 
> [1] http://comments.gmane.org/gmane.linux.embedded.yocto.meta-freescale/8253
> [2] See recipes-graphics/xorg-driver/xf86-video-imxfb-vivante_3.10.17-1.0.1.bb
>     in meta-fsl-arm layer
> 
> Tested with:
>     subsequent qt5base and libdrm fixes +
>     QMX6 board +
>     BR2_ARM_EABIHF= both tested
>     BR2_ARM_ENABLE_NEON=y
>     BR2_ARM_FPU_NEON=y
>     BR2_TOOLCHAIN_EXTERNAL=y
>     BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
>     BR2_TARGET_GENERIC_GETTY_PORT="ttymxc1"
>     BR2_LINUX_KERNEL=y
>     BR2_LINUX_KERNEL_CUSTOM_GIT=y
>     BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://git.congatec.com/arm/qmx6_kernel.git"
>     BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="9bafbcba67f7bb2a48a5e05998cecb1165aa444f"
>     BR2_LINUX_KERNEL_DEFCONFIG="qmx6"
>     BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x10008000"
>     BR2_LINUX_KERNEL_DTS_SUPPORT=y
>     BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6q-qmx6"
>     BR2_PACKAGE_QT5=y
>     BR2_PACKAGE_QT5BASE_LICENSE_APPROVED=y
>     BR2_PACKAGE_QT5BASE_EXAMPLES=y
>     BR2_PACKAGE_QT5BASE_OPENGL_ES2=y
>     BR2_PACKAGE_QT5BASE_OPENGL_LIB=y
>     BR2_PACKAGE_QT5BASE_XCB=y
>     BR2_PACKAGE_QT5BASE_DEFAULT_QPA="xcb"
>     BR2_PACKAGE_QT5BASE_GIF=y
>     BR2_PACKAGE_QT5BASE_JPEG=y
>     BR2_PACKAGE_QT5BASE_PNG=y
>     BR2_PACKAGE_QT5QUICKCONTROLS=y
>     BR2_PACKAGE_XORG7=y
>     BR2_PACKAGE_XSERVER_XORG_SERVER=y
>     BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR=y
>     BR2_PACKAGE_XDRIVER_XF86_INPUT_EVDEV=y
>     BR2_PACKAGE_XDRIVER_XF86_VIDEO_IMX_VIV=y
>     BR2_PACKAGE_FREESCALE_IMX=y
>     BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q=y
>     BR2_PACKAGE_GPU_VIV_BIN_MX6Q=y
>     BR2_PACKAGE_GPU_VIV_BIN_MX6Q_EXAMPLES=y
> 
> Signed-off-by: J?r?me Pouiller <jezz@sysmic.org>
> ---
>  package/x11r7/Config.in                            |  1 +
>  .../0001-Fix-LoadExtenions.patch                   | 15 ++++++++++
>  package/x11r7/xdriver_xf86-video-imx-viv/Config.in | 31 ++++++++++++++++++++
>  .../xdriver_xf86-video-imx-viv.mk                  | 33 ++++++++++++++++++++++
>  4 files changed, 80 insertions(+)
>  create mode 100644 package/x11r7/xdriver_xf86-video-imx-viv/0001-Fix-LoadExtenions.patch
>  create mode 100644 package/x11r7/xdriver_xf86-video-imx-viv/Config.in
>  create mode 100644 package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk
> 
> diff --git a/package/x11r7/Config.in b/package/x11r7/Config.in
> index 2fd1ff0..5480d9a 100644
> --- a/package/x11r7/Config.in
> +++ b/package/x11r7/Config.in
> @@ -160,6 +160,7 @@ if BR2_PACKAGE_XORG7
>  		source package/x11r7/xdriver_xf86-video-glide/Config.in
>  		source package/x11r7/xdriver_xf86-video-glint/Config.in
>  		source package/x11r7/xdriver_xf86-video-i128/Config.in
> +		source package/x11r7/xdriver_xf86-video-imx-viv/Config.in
>  		source package/x11r7/xdriver_xf86-video-intel/Config.in
>  		source package/x11r7/xdriver_xf86-video-mach64/Config.in
>  		source package/x11r7/xdriver_xf86-video-mga/Config.in
> diff --git a/package/x11r7/xdriver_xf86-video-imx-viv/0001-Fix-LoadExtenions.patch b/package/x11r7/xdriver_xf86-video-imx-viv/0001-Fix-LoadExtenions.patch
> new file mode 100644
> index 0000000..3e2d47c
> --- /dev/null
> +++ b/package/x11r7/xdriver_xf86-video-imx-viv/0001-Fix-LoadExtenions.patch
> @@ -0,0 +1,15 @@
> +Fix compilation with Xorg xserver 1.16.
> +
> +Signed-off-by: J?r?me Pouiller <jezz@sysmic.org>
> +
> +--- a/EXA/src/vivante_fbdev/vivante_fbdev_driver.c	2014-07-25 15:38:24.000000000 +0200
> ++++ b/EXA/src/vivante_fbdev/vivante_fbdev_driver.c	2014-10-02 21:00:58.755409342 +0200
> +@@ -261,7 +261,7 @@
> +         setupDone = TRUE;
> +         xf86AddDriver(&FBDEV, module, HaveDriverFuncs);
> +         if(gVivFb)
> +-            LoadExtension(&VIVExt, FALSE);
> ++            LoadExtensionList(&VIVExt, 1, FALSE);
> + 		return (pointer)1;
> +     } else {
> +         if (errmaj) *errmaj = LDR_ONCEONLY;
> diff --git a/package/x11r7/xdriver_xf86-video-imx-viv/Config.in b/package/x11r7/xdriver_xf86-video-imx-viv/Config.in
> new file mode 100644
> index 0000000..8926a50
> --- /dev/null
> +++ b/package/x11r7/xdriver_xf86-video-imx-viv/Config.in
> @@ -0,0 +1,31 @@
> +config BR2_PACKAGE_XDRIVER_XF86_VIDEO_IMX_VIV
> +	bool "xf86-video-imx-viv"
> +	depends on BR2_PACKAGE_GPU_VIV_BIN_MX6Q_OUTPUT_X11
> +	select BR2_PACKAGE_MESA3D # Needed in order to compile xorg with glx/dri
> +	select BR2_PACKAGE_MESA3D_DRI_DRIVER
> +	select BR2_PACKAGE_LIBDRM
> +	select BR2_PACKAGE_XPROTO_XPROTO
> +	select BR2_PACKAGE_XPROTO_XF86DRIPROTO
> +	help
> +	  X.Org driver for iMX6 GPU (Vivante)
> +
> +	  Notice EGL and GLes2 APIs are correctly supported. This driver should
> +	  also be able to provide Desktop OpenGL implementation but, this
> +	  feature seems broken since quite some time.
> +
> +	  To use this driver, add correct configuration to your
> +	  /etc/X11/xorg.conf:
> +
> +	  Section "Device"
> +	    [...]
> +	    Driver          "vivante"
> +	    Option          "vivante_fbdev" "/dev/fbX"
> +	  EndSection
> +
> +	  Don't forget to load galcore.ko and create /dev/galcore before using
> +	  this driver (else, Xorg will exit with an obscur message like
> +	  "Segmentation fault at address 0xc").
> +
> +comment "xf86-video-imx-viv depends on gpu-viv-bin-mx6q with X11 output"
> +	depends on BR2_arm
> +	depends on !BR2_PACKAGE_GPU_VIV_BIN_MX6Q_OUTPUT_X11
> diff --git a/package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk b/package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk
> new file mode 100644
> index 0000000..44d98d5
> --- /dev/null
> +++ b/package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk
> @@ -0,0 +1,33 @@
> +################################################################################
> +#
> +# xdriver_xf86-video-imx-viv
> +#
> +################################################################################
> +
> +XDRIVER_XF86_VIDEO_IMX_VIV_VERSION = $(FREESCALE_IMX_VERSION)
> +XDRIVER_XF86_VIDEO_IMX_VIV_SITE = $(FREESCALE_IMX_SITE)
> +XDRIVER_XF86_VIDEO_IMX_VIV_SOURCE = xserver-xorg-video-imx-viv-$(XDRIVER_XF86_VIDEO_IMX_VIV_VERSION).tar.gz
> +XDRIVER_XF86_VIDEO_IMX_VIV_DEPENDENCIES = gpu-viv-bin-mx6q xserver_xorg-server \
> +	xproto_xproto xproto_xf86driproto libdrm
> +XDRIVER_XF86_VIDEO_IMX_VIV_LICENSE = GPLv2
> +XDRIVER_XF86_VIDEO_IMX_VIV_INSTALL_STAGING = YES
> +XDRIVER_XF86_VIDEO_IMX_VIV_MAKE_CMD = $(TARGET_CONFIGURE_OPTS) $(MAKE1) -C $(@D)/EXA/src -f makefile.linux
> +
> +define XDRIVER_XF86_VIDEO_IMX_VIV_BUILD_CMDS
> +	$(XDRIVER_XF86_VIDEO_IMX_VIV_MAKE_CMD) sysroot=$(STAGING_DIR) \
> +		BUSID_HAS_NUMBER=1 BUILD_IN_YOCTO=1 XSERVER_GREATER_THAN_13=1 \
> +		CFLAGS="$(TARGET_CFLAGS) -I$(@D)/DRI_1.10.4/src"
> +endef
> +
> +define XDRIVER_XF86_VIDEO_IMX_VIV_INSTALL_STAGING_CMDS
> +	$(XDRIVER_XF86_VIDEO_IMX_VIV_MAKE_CMD) prefix=$(STAGING_DIR)/usr install
> +	$(INSTALL) -m 644 $(@D)/EXA/src/vivante_gal/vivante_priv.h $(STAGING_DIR)/usr/include
> +	$(INSTALL) -m 644 $(@D)/EXA/src/vivante_gal/vivante_gal.h $(STAGING_DIR)/usr/include
> +endef
> +
> +define XDRIVER_XF86_VIDEO_IMX_VIV_INSTALL_TARGET_CMDS
> +	$(XDRIVER_XF86_VIDEO_IMX_VIV_MAKE_CMD) prefix=$(TARGET_DIR)/usr install
> +endef
> +
> +$(eval $(generic-package))
> +

As explained in my answer to the cover letter, this series of patch has
been successfully tested on a Nitrogen6x board.
http://lists.busybox.net/pipermail/buildroot/2015-April/124739.html

More specifically, the test was based on the configuration provided in
this commit message.

Tested-by: Gary Bisson <gary.bisson@boundarydevices.com>

Regards,
Gary

  reply	other threads:[~2015-04-30  8:46 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-16 23:33 [Buildroot] [PATCH v6 00/15] Add Xorg support for iMX6 Jérôme Pouiller
2015-01-16 23:33 ` [Buildroot] [PATCH v6 01/15] mesa3d: Give possibility to external backends to enable DRI/Gallium Jérôme Pouiller
2015-01-17 17:02   ` Bernd Kuhls
2015-04-30  8:16   ` [Buildroot] [v6, " Gary Bisson
2015-04-30  8:26     ` Thomas Petazzoni
2015-01-16 23:33 ` [Buildroot] [PATCH v6 02/15] gpu-viv-bin-mx6q: fix compiling issues with EGL_API_FB Jérôme Pouiller
2015-04-30  8:21   ` [Buildroot] [v6, " Gary Bisson
2015-04-30  8:30   ` [Buildroot] [PATCH v6 " Thomas Petazzoni
2015-01-16 23:33 ` [Buildroot] [PATCH v6 03/15] gpu-viv-bin-mx6q: make fb/x11 choice explicit Jérôme Pouiller
2015-04-30  8:29   ` [Buildroot] [v6, " Gary Bisson
2015-04-30  8:31   ` [Buildroot] [PATCH v6 " Thomas Petazzoni
2015-01-16 23:34 ` [Buildroot] [PATCH v6 04/15] gpu-viv-bin-mx6q: remove useless build time deps Jérôme Pouiller
2015-04-30  8:32   ` [Buildroot] [v6, " Gary Bisson
2015-01-16 23:34 ` [Buildroot] [PATCH v6 05/15] gpu-viv-bin-mx6q: add version in libraries symlinks Jérôme Pouiller
2015-04-30  8:37   ` [Buildroot] [v6, " Gary Bisson
2015-01-16 23:34 ` [Buildroot] [PATCH v6 06/15] gpu-viv-bin-mx6q: change output selection mechanism Jérôme Pouiller
2015-04-30  8:40   ` [Buildroot] [v6, " Gary Bisson
2015-01-16 23:34 ` [Buildroot] [PATCH v6 07/15] xdriver_xf86-video-imx-viv: new package Jérôme Pouiller
2015-04-30  8:46   ` Gary Bisson [this message]
2015-01-16 23:34 ` [Buildroot] [PATCH v6 08/15] qt5base: apply new patch naming policy Jérôme Pouiller
2015-04-30  8:47   ` [Buildroot] [v6,08/15] " Gary Bisson
2015-01-16 23:34 ` [Buildroot] [PATCH v6 09/15] qt5base: fix compilation with Vivante headers Jérôme Pouiller
2015-04-30  8:52   ` [Buildroot] [v6, " Gary Bisson
2015-01-16 23:34 ` [Buildroot] [PATCH v6 10/15] qt5base: fix "Unable to find an X11 visual" error Jérôme Pouiller
2015-04-30  8:55   ` [Buildroot] [v6, " Gary Bisson
2015-01-16 23:34 ` [Buildroot] [PATCH v6 11/15] Vivante drivers: bump to version 3.10.17-1.0.1 Jérôme Pouiller
2015-04-30  8:57   ` [Buildroot] [v6, " Gary Bisson
2015-01-16 23:34 ` [Buildroot] [PATCH v6 12/15] nitrogen6x_defconfig: bump kernel to 3.10.17_1.0.1_ga Jérôme Pouiller
2015-04-30  8:58   ` [Buildroot] [v6, " Gary Bisson
2015-01-16 23:34 ` [Buildroot] [PATCH v6 13/15] freescale_imx6*_defconfig: " Jérôme Pouiller
2015-04-30  9:00   ` [Buildroot] [v6, " Gary Bisson
2015-01-16 23:34 ` [Buildroot] [PATCH v6 14/15] qmx6_defconfig: update Jérôme Pouiller
2015-04-30  9:02   ` [Buildroot] [v6,14/15] " Gary Bisson
2015-01-16 23:34 ` [Buildroot] [PATCH v6 15/15] qmx6_qt5_demo_defconfig: new defconfig Jérôme Pouiller
2015-04-30  9:03   ` [Buildroot] [v6,15/15] " Gary Bisson
2015-01-22  6:47 ` [Buildroot] [PATCH v6 00/15] Add Xorg support for iMX6 Gary Bisson
2015-04-09 16:03   ` Gary Bisson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150430084613.GG24549@t450s.lan \
    --to=gary.bisson@boundarydevices.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox