Skip to contentSkip to conversation

Add Xorg support for iMX6

PATCH New Jérôme Pouiller 5 participants 46 messages Apr 30, 2015 – May 12, 2015 Arm i.MX and Layerscape

lore
Share & tools
lore
#0 lore raw

v7 cover Add Xorg support for iMX6

Main purpose of this serie is to add support of Vivante GPU (found on imx6) to Xorg. This work is mainly adapted from Yocto.

v7:
- Rebase on master
- Drop already applied 'qt5base: apply new patch naming policy'
- Drop 'qmx6_qt5_demo_defconfig: new defconfig' since there is no other "demo configs" in buildroot.
- Add Tested-by and Reviewed-by from Garry (Thanks you Garry for all tests you did)
- Reword some commits
- Use Makefile tests instead of shell test [Thomas P.]
- Reorder 'bool' before 'select' and 'depends' [Thomas P.]
- Notice xdriver_xf86-video-imx-viv continue to select 'mesa3d' in order to compile Xorg with DRI support. This is far to be optimal since xdriver_xf86-video-imx-viv does not use mesa3d at runtime. The correct way would be to compile Xorg using mesa3d-headers. However it is a really intrusive change and all tests were done without this change. Therefore I finally didn't make this change.

v6:
- Rebase on master
- Add license for xdriver_xf86-video-imx-viv. Notice this package does not provide any license file.
- Fix typos suggested by Thomas P.
- Fix dependency on libdrm (gpu-viv-bin-mx6q does not depends on libdrm, but xdriver_xf86-video-imx-viv does depend)
- Add a note about runtime dependencies in gpu-viv-bin-mx6q
- Splited patch 6/15 in 3 parts
- Splited patch 10/15 in 2 parts
- Make 0001-Force_egl_visual_ID_33.patch contionnal

v5:
- Add references in commit log of xdriver_xf86-video-imx-viv
- Split qmx6_defconfig in two defconfig: a minimal one and a demo one

v4:
- Fix example config in commit log of xdriver_xf86-video-imx-viv
- Add a note about OpenGL API in xdriver_xf86-video-imx-viv help

v3:
- Respin on next
- Add patch to use self-extractible helper function
- Remove 'See freescale-imx.mk' comment
- Reword patch "gpu-viv-bin-mx6q: change output selection mecanisms"
- libdrm: Apply new patch naming policy
- xdriver_xf86-video-imx-viv: Apply new patch naming policy
- xdriver_xf86-video-imx-viv: Does not depends directly on glibc
- qt5base: Apply new patch naming policy
- qmx6_defconfig: Use internal toochain

v2:
- Rebase on new version of mesa3d
- Reorder some patches (in order to make examples I provide in commit message functional)
- Do not bump version of all freescale packages
- Bump kernel version of imx6 boards

J?r?me Pouiller (13):
mesa3d: Give possibility to external backends to enable DRI/Gallium
gpu-viv-bin-mx6q: fix compiling issues with EGL_API_FB
gpu-viv-bin-mx6q: make fb/x11 choice explicit
gpu-viv-bin-mx6q: remove useless build time deps
gpu-viv-bin-mx6q: add version in libraries symlinks
gpu-viv-bin-mx6q: change output selection mechanism xdriver_xf86-video-imx-viv: new package
qt5base: fix compilation with Vivante headers.
qt5base: fix "Unable to find an X11 visual" error Vivante drivers: bump to version 3.10.17-1.0.1
nitrogen6x_defconfig: bump kernel to 3.10.17_1.0.1_ga freescale_imx6*_defconfig: bump kernel to 3.10.17_1.0.1_ga
qmx6_defconfig: update

 board/congatec/qmx6/6q_bootscript.txt              |  2 -
 board/congatec/qmx6/post-build.sh                  |  7 ---
 configs/freescale_imx6dlsabresd_defconfig          |  3 +-
 configs/freescale_imx6qsabresd_defconfig           |  3 +-
 configs/freescale_imx6sololiteevk_defconfig        |  3 +-
 configs/nitrogen6x_defconfig                       |  3 +-
 configs/qmx6_defconfig                             | 25 +++++++--
 package/freescale-imx/gpu-viv-bin-mx6q/Config.in   | 28 +++++++++-
 package/freescale-imx/gpu-viv-bin-mx6q/egl.pc      |  2 +-
 package/freescale-imx/gpu-viv-bin-mx6q/glesv2.pc   |  2 +-
 .../gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk           | 40 +++++++-------
 package/freescale-imx/gpu-viv-bin-mx6q/vg.pc       |  2 +-
 package/mesa3d/mesa3d.mk                           |  4 +-
 .../qt5/qt5base/0001-Force_egl_visual_ID_33.patch  | 26 +++++++++
 package/qt5/qt5base/0004-xcb-egl-fixes.patch       | 63 ++++++++++++++++++++++
 package/qt5/qt5base/qt5base.mk                     |  6 ++-
 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 ++++++++++++
 20 files changed, 255 insertions(+), 44 deletions(-)
 delete mode 100644 board/congatec/qmx6/6q_bootscript.txt
 delete mode 100755 board/congatec/qmx6/post-build.sh
 create mode 100644 package/qt5/qt5base/0001-Force_egl_visual_ID_33.patch
 create mode 100644 package/qt5/qt5base/0004-xcb-egl-fixes.patch
 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
Signature · 1 line
1.9.1
#1 lore raw

PATCH v7 1/13 mesa3d: Give possibility to external backends to enable DRI/Gallium

Thus, it is possible to force compilation of Gallium/DRI support in mesa3d even if no Gallium/DRI drivers are selected. This is intended to be used by external OpenGL provider (especialy further imx6 support).

---
 package/mesa3d/mesa3d.mk | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
package/mesa3d/mesa3d.mk +2 -2
index dffbe46..f1c38bf 100644
@@ -61,7 +61,7 @@ MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_I915)   += i915
 MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_I965)   += i965
 MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON) += radeon
 
-ifeq ($(MESA3D_GALLIUM_DRIVERS-y),)
+ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER),)
 MESA3D_CONF_OPTS += \
 	--without-gallium-drivers
 else
@@ -70,7 +70,7 @@ MESA3D_CONF_OPTS += \
 	--with-gallium-drivers=$(subst $(space),$(comma),$(MESA3D_GALLIUM_DRIVERS-y))
 endif
 
-ifeq ($(MESA3D_DRI_DRIVERS-y),)
+ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),)
 MESA3D_CONF_OPTS += \
 	--without-dri-drivers --without-dri --disable-dri3
 else
Signature · 1 line
1.9.1
#2 lore raw

PATCH v7 1/13 mesa3d: Give possibility to external backends to enable DRI/Gallium

Dear J?r?me Pouiller,

Quoted 10 lines · J?r?me Pouiller

Thus, it is possible to force compilation of Gallium/DRI support in mesa3d even if no Gallium/DRI drivers are selected. This is intended to be used by external OpenGL provider (especialy further imx6 support).

---
 package/mesa3d/mesa3d.mk | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Applied, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#3 lore raw

PATCH v7 2/13 gpu-viv-bin-mx6q: fix compiling issues with EGL_API_FB

In reply to Jérôme Pouiller

To compile with Vivante header and use framebuffer, it is necessary to pass option -DEGL_API_FB. This option is declared in pkg-config file of Vivante library. But many packages (especialy qt5 components) does not consider these flags.

So instead of patching every packages that use EGL, it is more convenient to patch Vivante headers.

This commit add #define EGL_API_FB on top of eglvivante.h when necessary.

---
 package/freescale-imx/gpu-viv-bin-mx6q/egl.pc              |  2 +-
 package/freescale-imx/gpu-viv-bin-mx6q/glesv2.pc           |  2 +-
 package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk | 14 ++++++++++----
 package/freescale-imx/gpu-viv-bin-mx6q/vg.pc               |  2 +-
 4 files changed, 13 insertions(+), 7 deletions(-)
package/freescale-imx/gpu-viv-bin-mx6q/egl.pc +1 -1
index c984247..d1d09a0 100644
@@ -7,4 +7,4 @@ Name: egl
 Description: Freescale gpu-viv-bin-mx6q implementation of EGL
 Version: 1.0
 Libs: -L${libdir} -lGAL -lEGL
-Cflags: -I${includedir}/ -DEGL_API_FB=1
+Cflags: -I${includedir}/
package/freescale-imx/gpu-viv-bin-mx6q/glesv2.pc +1 -1
index 7cfb5e7..74ce792 100644
@@ -7,4 +7,4 @@ Name: glesv2
 Description: Freescale gpu-viv-bin-mx6q implementation of OpenGL ESv2
 Version: 2.0
 Libs: -L${libdir} -lGAL -lEGL -lGLESv2
-Cflags: -I${includedir}/ -DEGL_API_FB=1
+Cflags: -I${includedir}/
package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk +10 -4
index 79c7a92..0304ba1 100644
@@ -46,16 +46,22 @@ define GPU_VIV_BIN_MX6Q_BUILD_CMDS
 	ln -sf libGL.so.1.2 $(@D)/usr/lib/libGL.so.1.2.0
 endef
 
+ifeq ($(GPU_VIV_BIN_MX6Q_LIB_TARGET),fb)
+define GPU_VIV_BIN_MX6Q_FIXUP_FB_HEADERS
+	$(SED) '/#define EGLAPIENTRY/ a \
+		#if !defined(EGL_API_X11) && !defined(EGL_API_DFB) && !defined(EGL_API_FB) \n\
+		#define EGL_API_FB \n\
+		#endif' $(STAGING_DIR)/usr/include/EGL/eglvivante.h; \
+endef
+endif
+
 define GPU_VIV_BIN_MX6Q_INSTALL_STAGING_CMDS
 	cp -r $(@D)/usr/* $(STAGING_DIR)/usr
+	$(GPU_VIV_BIN_MX6Q_FIXUP_FB_HEADERS)
 	for lib in egl glesv2 vg; do \
 		$(INSTALL) -m 0644 -D \
 			package/freescale-imx/gpu-viv-bin-mx6q/$${lib}.pc \
 			$(STAGING_DIR)/usr/lib/pkgconfig/$${lib}.pc; \
-		if [ "$(GPU_VIV_BIN_MX6Q_LIB_TARGET)" != "fb" ]; then \
-			$(SED) "s/-DEGL_API_FB=1//" \
-				$(STAGING_DIR)/usr/lib/pkgconfig/$${lib}.pc; \
-		fi; \
 	done
 endef
 
package/freescale-imx/gpu-viv-bin-mx6q/vg.pc +1 -1
index fb14005..677a7ee 100644
@@ -7,4 +7,4 @@ Name: vg
 Description: Freescale gpu-viv-bin-mx6q implementation of OpenVG
 Version: 1.1
 Libs: -L${libdir} -lGAL -lEGL -lOpenVG
-Cflags: -I${includedir}/ -DEGL_API_FB=1
+Cflags: -I${includedir}/
Signature · 1 line
1.9.1
#4 lore raw

PATCH v7 2/13 gpu-viv-bin-mx6q: fix compiling issues with EGL_API_FB

Hi Jerome,

Quoted 45 lines · J?r?me Pouiller

To compile with Vivante header and use framebuffer, it is necessary to pass option -DEGL_API_FB. This option is declared in pkg-config file of Vivante library. But many packages (especialy qt5 components) does not consider these flags.

So instead of patching every packages that use EGL, it is more convenient to patch Vivante headers.

This commit add #define EGL_API_FB on top of eglvivante.h when necessary.

---
 package/freescale-imx/gpu-viv-bin-mx6q/egl.pc              |  2 +-
 package/freescale-imx/gpu-viv-bin-mx6q/glesv2.pc           |  2 +-
 package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk | 14 ++++++++++----
 package/freescale-imx/gpu-viv-bin-mx6q/vg.pc               |  2 +-
 4 files changed, 13 insertions(+), 7 deletions(-)
package/freescale-imx/gpu-viv-bin-mx6q/egl.pc +1 -1
index c984247..d1d09a0 100644
@@ -7,4 +7,4 @@ Name: egl
 Description: Freescale gpu-viv-bin-mx6q implementation of EGL
 Version: 1.0
 Libs: -L${libdir} -lGAL -lEGL
-Cflags: -I${includedir}/ -DEGL_API_FB=1
+Cflags: -I${includedir}/
package/freescale-imx/gpu-viv-bin-mx6q/glesv2.pc +1 -1
index 7cfb5e7..74ce792 100644
@@ -7,4 +7,4 @@ Name: glesv2
 Description: Freescale gpu-viv-bin-mx6q implementation of OpenGL ESv2
 Version: 2.0
 Libs: -L${libdir} -lGAL -lEGL -lGLESv2
-Cflags: -I${includedir}/ -DEGL_API_FB=1
+Cflags: -I${includedir}/
package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk +0 -0
index 79c7a92..0304ba1 100644

package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk define GPU_VIV_BIN_MX6Q_BUILD_CMDS · line 54

Quoted 9 lines
package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk +6 -0
@@ -46,16 +46,22 @@ define GPU_VIV_BIN_MX6Q_BUILD_CMDS
 	ln -sf libGL.so.1.2 $(@D)/usr/lib/libGL.so.1.2.0
 endef
 
+ifeq ($(GPU_VIV_BIN_MX6Q_LIB_TARGET),fb)
+define GPU_VIV_BIN_MX6Q_FIXUP_FB_HEADERS
+	$(SED) '/#define EGLAPIENTRY/ a \
+		#if !defined(EGL_API_X11) && !defined(EGL_API_DFB) && !defined(EGL_API_FB) \n\
+		#define EGL_API_FB \n\
+		#endif' $(STAGING_DIR)/usr/include/EGL/eglvivante.h; \

Can you re-send this patch without the backslash at the end of the line as it breaks the build (missing endif error)?

Regards,
Gary

#5 lore raw

PATCH v8 1/1 gpu-viv-bin-mx6q: fix compiling issues with EGL_API_FB

To compile with Vivante header and use framebuffer, it is necessary to pass option -DEGL_API_FB. This option is declared in pkg-config file of Vivante library. But many packages (especialy qt5 components) does not consider these flags.

So instead of patching every packages that use EGL, it is more convenient to patch Vivante headers.

This commit add #define EGL_API_FB on top of eglvivante.h when necessary.

---
v8:
- Fix typo error (arg!)

 package/freescale-imx/gpu-viv-bin-mx6q/egl.pc              |  2 +-
 package/freescale-imx/gpu-viv-bin-mx6q/glesv2.pc           |  2 +-
 package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk | 14 ++++++++++----
 package/freescale-imx/gpu-viv-bin-mx6q/vg.pc               |  2 +-
 4 files changed, 13 insertions(+), 7 deletions(-)
package/freescale-imx/gpu-viv-bin-mx6q/egl.pc +1 -1
index c984247..d1d09a0 100644
@@ -7,4 +7,4 @@ Name: egl
 Description: Freescale gpu-viv-bin-mx6q implementation of EGL
 Version: 1.0
 Libs: -L${libdir} -lGAL -lEGL
-Cflags: -I${includedir}/ -DEGL_API_FB=1
+Cflags: -I${includedir}/
package/freescale-imx/gpu-viv-bin-mx6q/glesv2.pc +1 -1
index 7cfb5e7..74ce792 100644
@@ -7,4 +7,4 @@ Name: glesv2
 Description: Freescale gpu-viv-bin-mx6q implementation of OpenGL ESv2
 Version: 2.0
 Libs: -L${libdir} -lGAL -lEGL -lGLESv2
-Cflags: -I${includedir}/ -DEGL_API_FB=1
+Cflags: -I${includedir}/
package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk +10 -4
index 79c7a92..f57b26c 100644
@@ -46,16 +46,22 @@ define GPU_VIV_BIN_MX6Q_BUILD_CMDS
 	ln -sf libGL.so.1.2 $(@D)/usr/lib/libGL.so.1.2.0
 endef
 
+ifeq ($(GPU_VIV_BIN_MX6Q_LIB_TARGET),fb)
+define GPU_VIV_BIN_MX6Q_FIXUP_FB_HEADERS
+	$(SED) '/#define EGLAPIENTRY/ a \
+		#if !defined(EGL_API_X11) && !defined(EGL_API_DFB) && !defined(EGL_API_FB) \n\
+		#define EGL_API_FB \n\
+		#endif' $(STAGING_DIR)/usr/include/EGL/eglvivante.h;
+endef
+endif
+
 define GPU_VIV_BIN_MX6Q_INSTALL_STAGING_CMDS
 	cp -r $(@D)/usr/* $(STAGING_DIR)/usr
+	$(GPU_VIV_BIN_MX6Q_FIXUP_FB_HEADERS)
 	for lib in egl glesv2 vg; do \
 		$(INSTALL) -m 0644 -D \
 			package/freescale-imx/gpu-viv-bin-mx6q/$${lib}.pc \
 			$(STAGING_DIR)/usr/lib/pkgconfig/$${lib}.pc; \
-		if [ "$(GPU_VIV_BIN_MX6Q_LIB_TARGET)" != "fb" ]; then \
-			$(SED) "s/-DEGL_API_FB=1//" \
-				$(STAGING_DIR)/usr/lib/pkgconfig/$${lib}.pc; \
-		fi; \
 	done
 endef
 
package/freescale-imx/gpu-viv-bin-mx6q/vg.pc +1 -1
index fb14005..677a7ee 100644
@@ -7,4 +7,4 @@ Name: vg
 Description: Freescale gpu-viv-bin-mx6q implementation of OpenVG
 Version: 1.1
 Libs: -L${libdir} -lGAL -lEGL -lOpenVG
-Cflags: -I${includedir}/ -DEGL_API_FB=1
+Cflags: -I${includedir}/
Signature · 1 line
1.9.1
#6 lore raw

PATCH v7 2/13 gpu-viv-bin-mx6q: fix compiling issues with EGL_API_FB

In reply to Jérôme Pouiller

Dear J?r?me Pouiller,

Quoted 11 lines · J?r?me Pouiller

To compile with Vivante header and use framebuffer, it is necessary to pass option -DEGL_API_FB. This option is declared in pkg-config file of Vivante library. But many packages (especialy qt5 components) does not consider these flags.

So instead of patching every packages that use EGL, it is more convenient to patch Vivante headers.

This commit add #define EGL_API_FB on top of eglvivante.h when necessary.

Quoted 8 lines
---
 package/freescale-imx/gpu-viv-bin-mx6q/egl.pc              |  2 +-
 package/freescale-imx/gpu-viv-bin-mx6q/glesv2.pc           |  2 +-
 package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk | 14 ++++++++++----
 package/freescale-imx/gpu-viv-bin-mx6q/vg.pc               |  2 +-
 4 files changed, 13 insertions(+), 7 deletions(-)

Applied after fixing the syntax error mentioned by Gary Bisson, thanks. Please check the latest master to confirm that it all builds fine for you.

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#7 lore raw

PATCH v7 3/13 gpu-viv-bin-mx6q: make fb/x11 choice explicit

In reply to Jérôme Pouiller

This approach is less error-prone during development.

---
 package/freescale-imx/gpu-viv-bin-mx6q/Config.in   | 23 ++++++++++++++++++++--
 .../gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk           |  2 +-
 2 files changed, 22 insertions(+), 3 deletions(-)
package/freescale-imx/gpu-viv-bin-mx6q/Config.in +21 -2
index c59535e..c770346 100644
@@ -7,8 +7,6 @@ config BR2_PACKAGE_GPU_VIV_BIN_MX6Q
 	select BR2_PACKAGE_HAS_LIBEGL
 	select BR2_PACKAGE_HAS_LIBGLES
 	select BR2_PACKAGE_HAS_LIBOPENVG
-	select BR2_PACKAGE_XLIB_LIBXDAMAGE if BR2_PACKAGE_XORG7
-	select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7
 	depends on BR2_arm # Only relevant for i.MX6
 	# Library binaries are linked against libc.so.6
 	depends on BR2_TOOLCHAIN_USES_GLIBC
@@ -25,6 +23,27 @@ config BR2_PACKAGE_GPU_VIV_BIN_MX6Q
 
 if BR2_PACKAGE_GPU_VIV_BIN_MX6Q
 
+choice
+	prompt "Output option"
+	help
+	  There are two versions of this library: one for
+	  direct framebuffer access, one for X11 rendering.
+	  Choose here which version to install.
+
+config BR2_PACKAGE_GPU_VIV_BIN_MX6Q_OUTPUT_X11
+	bool "X11"
+	depends on BR2_PACKAGE_XORG7
+	select BR2_PACKAGE_XLIB_LIBXDAMAGE
+	select BR2_PACKAGE_XLIB_LIBXEXT
+
+comment "X11 backend needs Xorg package"
+	depends on !BR2_PACKAGE_XORG7
+
+config BR2_PACKAGE_GPU_VIV_BIN_MX6Q_OUTPUT_FB
+	bool "Framebuffer"
+
+endchoice
+
 config BR2_PACKAGE_PROVIDES_LIBEGL
 	default "gpu-viv-bin-mx6q"
 
package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk +1 -1
index 0304ba1..dbf4d6a 100644
@@ -21,7 +21,7 @@ GPU_VIV_BIN_MX6Q_REDISTRIBUTE = NO
 GPU_VIV_BIN_MX6Q_PROVIDES = libegl libgles libopenvg
 
 # DirectFB is not supported (wrong version)
-ifeq ($(BR2_PACKAGE_XORG7),y)
+ifeq ($(BR2_PACKAGE_GPU_VIV_BIN_MX6Q_OUTPUT_X11),y)
 GPU_VIV_BIN_MX6Q_DEPENDENCIES = xlib_libXdamage xlib_libXext
 GPU_VIV_BIN_MX6Q_LIB_TARGET = x11
 else
Signature · 1 line
1.9.1
#8 lore raw

PATCH v7 3/13 gpu-viv-bin-mx6q: make fb/x11 choice explicit

Dear J?r?me Pouiller,

Quoted 9 lines · J?r?me Pouiller

This approach is less error-prone during development.

---
 package/freescale-imx/gpu-viv-bin-mx6q/Config.in   | 23 ++++++++++++++++++++--
 .../gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk           |  2 +-
 2 files changed, 22 insertions(+), 3 deletions(-)

Applied, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#9 lore raw

PATCH v7 4/13 gpu-viv-bin-mx6q: remove useless build time deps

In reply to Jérôme Pouiller

Since gpu-viv-bin-mx6q is provided as binary package, there is no build time dependencies.

---
 package/freescale-imx/gpu-viv-bin-mx6q/Config.in           | 4 ++--
 package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk | 1 -
 2 files changed, 2 insertions(+), 3 deletions(-)
package/freescale-imx/gpu-viv-bin-mx6q/Config.in +2 -2
index c770346..9611379 100644
@@ -33,8 +33,8 @@ choice
 config BR2_PACKAGE_GPU_VIV_BIN_MX6Q_OUTPUT_X11
 	bool "X11"
 	depends on BR2_PACKAGE_XORG7
-	select BR2_PACKAGE_XLIB_LIBXDAMAGE
-	select BR2_PACKAGE_XLIB_LIBXEXT
+	select BR2_PACKAGE_XLIB_LIBXDAMAGE # Runtime dependency
+	select BR2_PACKAGE_XLIB_LIBXEXT # Runtime dependency
 
 comment "X11 backend needs Xorg package"
 	depends on !BR2_PACKAGE_XORG7
package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk +0 -1
index dbf4d6a..2ca5e7e 100644
@@ -22,7 +22,6 @@ GPU_VIV_BIN_MX6Q_PROVIDES = libegl libgles libopenvg
 
 # DirectFB is not supported (wrong version)
 ifeq ($(BR2_PACKAGE_GPU_VIV_BIN_MX6Q_OUTPUT_X11),y)
-GPU_VIV_BIN_MX6Q_DEPENDENCIES = xlib_libXdamage xlib_libXext
 GPU_VIV_BIN_MX6Q_LIB_TARGET = x11
 else
 GPU_VIV_BIN_MX6Q_LIB_TARGET = fb
Signature · 1 line
1.9.1
#10 lore raw

PATCH v7 4/13 gpu-viv-bin-mx6q: remove useless build time deps

Dear J?r?me Pouiller,

Quoted 10 lines · J?r?me Pouiller

Since gpu-viv-bin-mx6q is provided as binary package, there is no build time dependencies.

---
 package/freescale-imx/gpu-viv-bin-mx6q/Config.in           | 4 ++--
 package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk | 1 -
 2 files changed, 2 insertions(+), 3 deletions(-)

Applied, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#11 lore raw

PATCH v7 5/13 gpu-viv-bin-mx6q: add version in libraries symlinks

In reply to Jérôme Pouiller

Create libraries symbolic links with version numbers.

This now matches what is done in Yocto:
https://github.com/Freescale/meta-fsl-arm/blob/dizzy/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc#L165

---
 package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)
package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk +8 -4
index 2ca5e7e..d2288fe 100644
@@ -36,13 +36,17 @@ endef
 # Make sure these commands are idempotent.
 define GPU_VIV_BIN_MX6Q_BUILD_CMDS
 	$(SED) 's/defined(LINUX)/defined(__linux__)/g' $(@D)/usr/include/*/*.h
-	for lib in EGL GAL VIVANTE GLESv2; do \
-		ln -sf lib$${lib}-$(GPU_VIV_BIN_MX6Q_LIB_TARGET).so \
-			$(@D)/usr/lib/lib$${lib}.so; \
-	done
 	ln -sf libGL.so.1.2 $(@D)/usr/lib/libGL.so
 	ln -sf libGL.so.1.2 $(@D)/usr/lib/libGL.so.1
 	ln -sf libGL.so.1.2 $(@D)/usr/lib/libGL.so.1.2.0
+	ln -sf libEGL-$(GPU_VIV_BIN_MX6Q_LIB_TARGET).so $(@D)/usr/lib/libEGL.so
+	ln -sf libEGL-$(GPU_VIV_BIN_MX6Q_LIB_TARGET).so $(@D)/usr/lib/libEGL.so.1
+	ln -sf libEGL-$(GPU_VIV_BIN_MX6Q_LIB_TARGET).so $(@D)/usr/lib/libEGL.so.1.0
+	ln -sf libGLESv2-$(GPU_VIV_BIN_MX6Q_LIB_TARGET).so $(@D)/usr/lib/libGLESv2.so
+	ln -sf libGLESv2-$(GPU_VIV_BIN_MX6Q_LIB_TARGET).so $(@D)/usr/lib/libGLESv2.so.2
+	ln -sf libGLESv2-$(GPU_VIV_BIN_MX6Q_LIB_TARGET).so $(@D)/usr/lib/libGLESv2.so.2.0.0
+	ln -sf libVIVANTE-$(GPU_VIV_BIN_MX6Q_LIB_TARGET).so $(@D)/usr/lib/libVIVANTE.so
+	ln -sf libGAL-$(GPU_VIV_BIN_MX6Q_LIB_TARGET).so $(@D)/usr/lib/libGAL.so
 endef
 
 ifeq ($(GPU_VIV_BIN_MX6Q_LIB_TARGET),fb)
Signature · 1 line
1.9.1
#12 lore raw

PATCH v7 5/13 gpu-viv-bin-mx6q: add version in libraries symlinks

Dear J?r?me Pouiller,

Quoted 11 lines · J?r?me Pouiller

Create libraries symbolic links with version numbers.

This now matches what is done in Yocto:
https://github.com/Freescale/meta-fsl-arm/blob/dizzy/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc#L165

---
 package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

Applied, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#13 lore raw

PATCH v7 6/13 gpu-viv-bin-mx6q: change output selection mechanism

In reply to Jérôme Pouiller

Move output selection to Config.in. It easier to add new backends selection (wayland, directfb, ...).

---
 package/freescale-imx/gpu-viv-bin-mx6q/Config.in           | 5 +++++
 package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk | 8 +-------
 2 files changed, 6 insertions(+), 7 deletions(-)
package/freescale-imx/gpu-viv-bin-mx6q/Config.in +5 -0
index 9611379..db2a10e 100644
@@ -44,6 +44,11 @@ config BR2_PACKAGE_GPU_VIV_BIN_MX6Q_OUTPUT_FB
 
 endchoice
 
+config BR2_PACKAGE_GPU_VIV_BIN_MX6Q_OUTPUT
+	string
+	default "x11" if BR2_PACKAGE_GPU_VIV_BIN_MX6Q_OUTPUT_X11
+	default "fb" if BR2_PACKAGE_GPU_VIV_BIN_MX6Q_OUTPUT_FB
+
 config BR2_PACKAGE_PROVIDES_LIBEGL
 	default "gpu-viv-bin-mx6q"
 
package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk +1 -7
index d2288fe..6885012 100644
@@ -19,13 +19,7 @@ GPU_VIV_BIN_MX6Q_LICENSE_FILES = EULA
 GPU_VIV_BIN_MX6Q_REDISTRIBUTE = NO
 
 GPU_VIV_BIN_MX6Q_PROVIDES = libegl libgles libopenvg
-
-# DirectFB is not supported (wrong version)
-ifeq ($(BR2_PACKAGE_GPU_VIV_BIN_MX6Q_OUTPUT_X11),y)
-GPU_VIV_BIN_MX6Q_LIB_TARGET = x11
-else
-GPU_VIV_BIN_MX6Q_LIB_TARGET = fb
-endif
+GPU_VIV_BIN_MX6Q_LIB_TARGET = $(call qstrip,$(BR2_PACKAGE_GPU_VIV_BIN_MX6Q_OUTPUT))
 
 define GPU_VIV_BIN_MX6Q_EXTRACT_CMDS
 	$(call FREESCALE_IMX_EXTRACT_HELPER,$(DL_DIR)/$(GPU_VIV_BIN_MX6Q_SOURCE))
Signature · 1 line
1.9.1
#14 lore raw

PATCH v7 6/13 gpu-viv-bin-mx6q: change output selection mechanism

Dear J?r?me Pouiller,

Quoted 9 lines · J?r?me Pouiller

Move output selection to Config.in. It easier to add new backends selection (wayland, directfb, ...).

---
 package/freescale-imx/gpu-viv-bin-mx6q/Config.in           | 5 +++++
 package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk | 8 +-------
 2 files changed, 6 insertions(+), 7 deletions(-)

Applied, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#15 lore raw

PATCH v7 7/13 xdriver_xf86-video-imx-viv: new package

In reply to Jérôme Pouiller

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
---
 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
package/x11r7/Config.in +1 -0
index 40f01ae..24316a4 100644
@@ -167,6 +167,7 @@ if BR2_PACKAGE_XORG7
 		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/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
package/x11r7/xdriver_xf86-video-imx-viv/0001-Fix-LoadExtenions.patch new file +15 -0
new file mode 100644
index 0000000..3e2d47c
@@ -0,0 +1,15 @@
+Fix compilation with Xorg xserver 1.16.
+
+Signed-off-by: J?r?me Pouiller <[email protected]>
+
+--- 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;
package/x11r7/xdriver_xf86-video-imx-viv/Config.in new file +31 -0
new file mode 100644
index 0000000..8926a50
@@ -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
package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk new file +33 -0
new file mode 100644
index 0000000..44d98d5
@@ -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))
+
Signature · 1 line
1.9.1
#16 lore raw

PATCH v7 7/13 xdriver_xf86-video-imx-viv: new package

Dear J?r?me Pouiller,

Quoted 4 lines · J?r?me Pouiller

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.

We're actually using 1.17 now. Did you retest with 1.17 ? Otherwise, I've merged a series from Yann E. Morin a few days ago, which allows to use either X.org server 1.17 or 1.14.

package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk line 12

Quoted 6 lines
package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk new file +6 -0
+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

License is really GPLv2+.

package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk line 25

Quoted 4 lines
package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk new file +4 -0
+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

-D and full destination paths should be used.

Committed with those issues fixed.

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#17 lore raw

PATCH v7 8/13 qt5base: fix compilation with Vivante headers.

In reply to Jérôme Pouiller
---
 package/qt5/qt5base/0004-xcb-egl-fixes.patch | 63 ++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)
 create mode 100644 package/qt5/qt5base/0004-xcb-egl-fixes.patch
package/qt5/qt5base/0004-xcb-egl-fixes.patch new file +63 -0
new file mode 100644
index 0000000..2bbd849
@@ -0,0 +1,63 @@
+The vivante headers pull in X11 defines which break eglconvenience
+
+* Adds a missing include to qeglplatformcontext.cpp
+* Fix namespace collision on CursorShape, pulled in from X11/X.h
+* Do not pass MESA_EGL_NO_X11_HEADERS when xcb is use
+
+[based on patch from Yocto project]
+Signed-off-by: J?r?me Pouiller <[email protected]>
+
+
+diff -Nuar a/src/platformsupport/eglconvenience/eglconvenience.pri b/src/platformsupport/eglconvenience/eglconvenience.pri
+--- a/src/platformsupport/eglconvenience/eglconvenience.pri	2014-08-07 16:53:50.038277168 -0400
++++ b/src/platformsupport/eglconvenience/eglconvenience.pri	2014-08-07 16:54:52.874278651 -0400
+@@ -30,8 +30,10 @@
+         }
+     }
+ 
+-    # Avoid X11 header collision
+-    DEFINES += MESA_EGL_NO_X11_HEADERS
++    !contains(QT_CONFIG,xcb) {
++        # Avoid X11 header collision
++        DEFINES += MESA_EGL_NO_X11_HEADERS
++    }
+ 
+     contains(QT_CONFIG,xlib) {
+         HEADERS += \
+diff -Nuar a/src/platformsupport/eglconvenience/qeglplatformcontext.cpp b/src/platformsupport/eglconvenience/qeglplatformcontext.cpp
+--- a/src/platformsupport/eglconvenience/qeglplatformcontext.cpp	2014-08-07 16:53:50.038277168 -0400
++++ b/src/platformsupport/eglconvenience/qeglplatformcontext.cpp	2014-08-07 16:56:00.630280249 -0400
+@@ -39,6 +39,7 @@
+ **
+ ****************************************************************************/
+ 
++#include <qtextstream.h>
+ #include "qeglplatformcontext_p.h"
+ #include "qeglconvenience_p.h"
+ #include "qeglpbuffer_p.h"
+--- a/src/platformsupport/eglconvenience/qeglplatformcursor_p.h	2014-08-07 16:53:50.038277168 -0400
++++ b/src/platformsupport/eglconvenience/qeglplatformcursor_p.h	2014-08-07 16:58:49.014284222 -0400
+@@ -42,6 +42,11 @@
+ #ifndef QEGLPLATFORMCURSOR_H
+ #define QEGLPLATFORMCURSOR_H
+ 
++// avoid namespace collision with X11/X.h
++#ifdef CursorShape
++#undef CursorShape
++#endif
++
+ #include <qpa/qplatformcursor.h>
+ #include <qpa/qplatformscreen.h>
+ 
+--- a/src/platformsupport/eglconvenience/qeglplatformcursor.cpp	2014-08-07 16:53:50.038277168 -0400
++++ b/src/platformsupport/eglconvenience/qeglplatformcursor.cpp	2014-08-07 17:00:36.806286766 -0400
+@@ -49,8 +49,8 @@
+ 
+ #include <QtPlatformSupport/private/qdevicediscovery_p.h>
+ 
+-#include "qeglplatformcursor_p.h"
+ #include "qeglplatformintegration_p.h"
++#include "qeglplatformcursor_p.h"
+ 
+ QT_BEGIN_NAMESPACE
+ 
Signature · 1 line
1.9.1
#18 lore raw

PATCH v7 8/13 qt5base: fix compilation with Vivante headers.

Dear J?r?me Pouiller,

Quoted 6 lines · J?r?me Pouiller
---
 package/qt5/qt5base/0004-xcb-egl-fixes.patch | 63 ++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)
 create mode 100644 package/qt5/qt5base/0004-xcb-egl-fixes.patch

Applied, thanks. Do you think we can upstream this patch to Qt5?

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#19 lore raw

PATCH v7 9/13 qt5base: fix "Unable to find an X11 visual" error

In reply to Jérôme Pouiller

Fix "Unable to find an X11 visual" bug that produce at runtime with Vivante drivers. Add a conditionnal patch and add variable QT5BASE_EXTRA_CFLAGS in order to enable workaround.

This patch is actually an improvement over the fix available in Yocto:
https://github.com/Freescale/meta-fsl-arm/blob/dizzy/qt5-layer/recipes-qt/qt5/qtbase/Force_egl_visual_ID_33.patch

---
 .../qt5/qt5base/0001-Force_egl_visual_ID_33.patch  | 26 ++++++++++++++++++++++
 package/qt5/qt5base/qt5base.mk                     |  6 +++--
 2 files changed, 30 insertions(+), 2 deletions(-)
 create mode 100644 package/qt5/qt5base/0001-Force_egl_visual_ID_33.patch
package/qt5/qt5base/0001-Force_egl_visual_ID_33.patch new file +26 -0
new file mode 100644
index 0000000..e7e6c5e
@@ -0,0 +1,26 @@
+Workaround EGL initialization failure due visual mismatch
+
+Error:
+
+Warning: EGL suggested using X Visual ID 33 (RGB888) for EGL config 28 (RGB444), but this is incompatable
+Unable to find an X11 visual which matches EGL config 28
+Could not initialize EGL
+Aborted
+
+Upstream-Status: Inappropriate [workaround]
+
+Signed-off-by: Otavio Salvador <[email protected]>
+
+diff -Naur qtbase-opensource-src-5.1.1_original/src/platformsupport/eglconvenience/qxlibeglintegration.cpp qtbase-opensource-src-5.1.1/src/platformsupport/eglconvenience/qxlibeglintegration.cpp
+--- qtbase-opensource-src-5.1.1_original/src/platformsupport/eglconvenience/qxlibeglintegration.cpp	2013-12-25 19:08:42.163895341 -0800
++++ qtbase-opensource-src-5.1.1/src/platformsupport/eglconvenience/qxlibeglintegration.cpp	2013-12-25 19:09:37.207893799 -0800
+@@ -180,5 +180,9 @@
+     }
+ 
+     qWarning("Unable to find an X11 visual which matches EGL config %d", configId);
++#ifdef ENABLE_MX6_WORKAROUND
++    return (VisualID)33;
++#else
+     return (VisualID)0;
++#endif
+ }
package/qt5/qt5base/qt5base.mk +4 -2
index 032ebed..1899479 100644
@@ -167,6 +167,8 @@ QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_PRINTSUPPORT) += Qt5PrintSupport
 
 QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_DBUS) += Qt5DBus
 
+QT5BASE_EXTRA_CFLAGS = $(if $(BR2_PACKAGE_GPU_VIV_BIN_MX6Q),-DENABLE_MX6_WORKAROUND)
+
 define QT5BASE_CONFIGURE_CMDS
 	(cd $(@D); \
 		PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
@@ -187,8 +189,8 @@ define QT5BASE_CONFIGURE_CMDS
 		-device buildroot \
 		-device-option CROSS_COMPILE="$(TARGET_CROSS)" \
 		-device-option BR_CCACHE="$(CCACHE)" \
-		-device-option BR_COMPILER_CFLAGS="$(TARGET_CFLAGS)" \
-		-device-option BR_COMPILER_CXXFLAGS="$(TARGET_CXXFLAGS)" \
+		-device-option BR_COMPILER_CFLAGS="$(TARGET_CFLAGS)$(QT5BASE_EXTRA_CFLAGS)" \
+		-device-option BR_COMPILER_CXXFLAGS="$(TARGET_CXXFLAGS)$(QT5BASE_EXTRA_CFLAGS)" \
 		-device-option EGLFS_PLATFORM_HOOKS_SOURCES="$(QT5BASE_EGLFS_PLATFORM_HOOKS_SOURCES)" \
 		$(QT5BASE_CONFIGURE_OPTS) \
 	)
Signature · 1 line
1.9.1
#20 lore raw

PATCH v7 9/13 qt5base: fix "Unable to find an X11 visual" error

Dear J?r?me Pouiller,

package/qt5/qt5base/qt5base.mk QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_PRINTSUPPORT) += Qt5PrintSupport · line 170

Quoted 9 lines · J?r?me Pouiller
package/qt5/qt5base/qt5base.mk +1 -0
index 032ebed..1899479 100644
@@ -167,6 +167,8 @@ QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_PRINTSUPPORT) += Qt5PrintSupport
 
 QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_DBUS) += Qt5DBus
 
+QT5BASE_EXTRA_CFLAGS = $(if $(BR2_PACKAGE_GPU_VIV_BIN_MX6Q),-DENABLE_MX6_WORKAROUND)

I've merged that to a previous BR2_PACKAGE_GPU_VIV_BIN_MX6Q conditional.

package/qt5/qt5base/qt5base.mk define QT5BASE_CONFIGURE_CMDS · line 193

Quoted 12 lines
package/qt5/qt5base/qt5base.mk +3 -2
+
 define QT5BASE_CONFIGURE_CMDS
 	(cd $(@D); \
 		PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
@@ -187,8 +189,8 @@ define QT5BASE_CONFIGURE_CMDS
 		-device buildroot \
 		-device-option CROSS_COMPILE="$(TARGET_CROSS)" \
 		-device-option BR_CCACHE="$(CCACHE)" \
-		-device-option BR_COMPILER_CFLAGS="$(TARGET_CFLAGS)" \
-		-device-option BR_COMPILER_CXXFLAGS="$(TARGET_CXXFLAGS)" \
+		-device-option BR_COMPILER_CFLAGS="$(TARGET_CFLAGS)$(QT5BASE_EXTRA_CFLAGS)" \
+		-device-option BR_COMPILER_CXXFLAGS="$(TARGET_CXXFLAGS)$(QT5BASE_EXTRA_CFLAGS)" \

And added spaces here between TARGET_CFLAGS/CXXFLAGS and QT5BASE_EXTRA_CFLAGS.

Applied with those changes.

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#21 lore raw

PATCH v7 10/13 Vivante drivers: bump to version 3.10.17-1.0.1

In reply to Jérôme Pouiller
---
 package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk           | 5 +++--
 .../x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk   | 2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)
package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk +3 -2
index 6885012..0f199f1 100644
@@ -4,10 +4,11 @@
 #
 ################################################################################
 
+GPU_VIV_BIN_MX6Q_BASE_VERSION = 3.10.17-1.0.1
 ifeq ($(BR2_ARM_EABIHF),y)
-GPU_VIV_BIN_MX6Q_VERSION = $(FREESCALE_IMX_VERSION)-hfp
+GPU_VIV_BIN_MX6Q_VERSION = $(GPU_VIV_BIN_MX6Q_BASE_VERSION)-hfp
 else
-GPU_VIV_BIN_MX6Q_VERSION = $(FREESCALE_IMX_VERSION)-sfp
+GPU_VIV_BIN_MX6Q_VERSION = $(GPU_VIV_BIN_MX6Q_BASE_VERSION)-sfp
 endif
 GPU_VIV_BIN_MX6Q_SITE = $(FREESCALE_IMX_SITE)
 GPU_VIV_BIN_MX6Q_SOURCE = gpu-viv-bin-mx6q-$(GPU_VIV_BIN_MX6Q_VERSION).bin
package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk +1 -1
index 44d98d5..eab7edf 100644
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XDRIVER_XF86_VIDEO_IMX_VIV_VERSION = $(FREESCALE_IMX_VERSION)
+XDRIVER_XF86_VIDEO_IMX_VIV_VERSION = 3.10.17-1.0.1
 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 \
Signature · 1 line
1.9.1
#22 lore raw

PATCH v7 10/13 Vivante drivers: bump to version 3.10.17-1.0.1

Dear J?r?me Pouiller,

Quoted 7 lines · J?r?me Pouiller
---
 package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk           | 5 +++--
 .../x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk   | 2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)

Applied, thanks. Is 3.10.17 the latest version of the GPU drivers? I think my colleague Antoine T?nart used a more recent version with the 3.10.53 Freescale kernel. Antoine, can you clarify?

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#23 lore raw

PATCH v7 10/13 Vivante drivers: bump to version 3.10.17-1.0.1

Hi,

Quoted 9 lines · Thomas Petazzoni
Quoted 7 lines · J?r?me Pouiller
---
 package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk           | 5 +++--
 .../x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk   | 2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)
Quoted 3 lines

Applied, thanks. Is 3.10.17 the latest version of the GPU drivers? I think my colleague Antoine T?nart used a more recent version with the 3.10.53 Freescale kernel. Antoine, can you clarify?

The latest version of the Vivante drivers seems to be the 5.0.11.p4.1 one, at least that's what meta-fsl-arm is using since April, 2nd. I've tested this new version with a 3.10.53 Freescale kernel, and it's working fine.

You can see the version scheme does not follow the previous one, and that's also true for other parts of this release: the binary name is different and the sources aren't organized the same way.

Also, the package/freescale-imx/gpu-viv-bin-mx6q/0001-correct-HAL-include.patch patch isn't needed anymore and some other minor modifications can be done.

I'd be happy to send a patch, but because this isn't just a version bump it's not (easily) possible to have both 3.10.17 and 5.0.11 versions to live alongside. What's you thoughts on this?

Antoine

Signature · 3 lines
Antoine T?nart, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#24 lore raw

PATCH v7 10/13 Vivante drivers: bump to version 3.10.17-1.0.1

Hello,

Quoted 13 lines · Antoine T?nart
Quoted 3 lines

Applied, thanks. Is 3.10.17 the latest version of the GPU drivers? I think my colleague Antoine T?nart used a more recent version with the 3.10.53 Freescale kernel. Antoine, can you clarify?

The latest version of the Vivante drivers seems to be the 5.0.11.p4.1 one, at least that's what meta-fsl-arm is using since April, 2nd. I've tested this new version with a 3.10.53 Freescale kernel, and it's working fine.

You can see the version scheme does not follow the previous one, and that's also true for other parts of this release: the binary name is different and the sources aren't organized the same way.

Quoted 7 lines

Also, the package/freescale-imx/gpu-viv-bin-mx6q/0001-correct-HAL-include.patch patch isn't needed anymore and some other minor modifications can be done.

I'd be happy to send a patch, but because this isn't just a version bump it's not (easily) possible to have both 3.10.17 and 5.0.11 versions to live alongside. What's you thoughts on this?

J?r?me, Gary, would you be able to test the new version of the GPU drivers, and see if they work with both 3.10.17 and 3.10.53 ?

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#25 lore raw

PATCH v7 10/13 Vivante drivers: bump to version 3.10.17-1.0.1

Thomas, Antoine, All

Quoted 21 lines · Thomas Petazzoni

Hello,

Quoted 17 lines · Antoine T?nart
Quoted 3 lines

Applied, thanks. Is 3.10.17 the latest version of the GPU drivers? I think my colleague Antoine T?nart used a more recent version with the 3.10.53 Freescale kernel. Antoine, can you clarify?

The latest version of the Vivante drivers seems to be the 5.0.11.p4.1 one, at least that's what meta-fsl-arm is using since April, 2nd. I've tested this new version with a 3.10.53 Freescale kernel, and it's working fine.

You can see the version scheme does not follow the previous one, and that's also true for other parts of this release: the binary name is different and the sources aren't organized the same way.

Also, the package/freescale-imx/gpu-viv-bin-mx6q/0001-correct-HAL-include.patch patch isn't needed anymore and some other minor modifications can be done.

Quoted 6 lines
Quoted 3 lines

I'd be happy to send a patch, but because this isn't just a version bump it's not (easily) possible to have both 3.10.17 and 5.0.11 versions to live alongside. What's you thoughts on this?

J?r?me, Gary, would you be able to test the new version of the GPU drivers, and see if they work with both 3.10.17 and 3.10.53 ?

I'll try it out, but why don't we update the package and the kernel versions at once. A quick glance at the git repos shows that there's a 3.10.53 version for QMX6, Nitrogen6x and all the Freescale boards. Then the Wandboard doesn't appear to be maintained as it's still using a 3.0.x kernel and the riotboard uses mainline kernel.

Regards,
Gary

#26 lore raw

PATCH v7 10/13 Vivante drivers: bump to version 3.10.17-1.0.1

Gary,

Quoted 8 lines · Gary Bisson
Quoted 2 lines

J?r?me, Gary, would you be able to test the new version of the GPU drivers, and see if they work with both 3.10.17 and 3.10.53 ?

I'll try it out, but why don't we update the package and the kernel versions at once. A quick glance at the git repos shows that there's a 3.10.53 version for QMX6, Nitrogen6x and all the Freescale boards. Then the Wandboard doesn't appear to be maintained as it's still using a 3.0.x kernel and the riotboard uses mainline kernel.

Well, you're only looking at boards that have a defconfig in Buildroot. But I'm pretty sure there are lots of people using Buildroot on custom i.MX6 boards, which may not necessarily be supported by all kernel versions.

That being said, the jump from 3.10.17 to 3.10.53 is probably relatively easy, so people having such custom i.MX6 boards could just as well do the jump.

So, I'd indeed suggest to move all i.MX6 defconfigs in Buildroot to 3.10.53, and update the GPU drivers accordingly.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#27 lore raw

PATCH v7 10/13 Vivante drivers: bump to version 3.10.17-1.0.1

Thomas, All,

Quoted 13 lines · Thomas Petazzoni

Gary,

Quoted 8 lines · Gary Bisson
Quoted 2 lines

J?r?me, Gary, would you be able to test the new version of the GPU drivers, and see if they work with both 3.10.17 and 3.10.53 ?

I'll try it out, but why don't we update the package and the kernel versions at once. A quick glance at the git repos shows that there's a 3.10.53 version for QMX6, Nitrogen6x and all the Freescale boards. Then the Wandboard doesn't appear to be maintained as it's still using a 3.0.x kernel and the riotboard uses mainline kernel.

Quoted 4 lines

Well, you're only looking at boards that have a defconfig in Buildroot. But I'm pretty sure there are lots of people using Buildroot on custom i.MX6 boards, which may not necessarily be supported by all kernel versions.

Sure but the other way around applies too, like what Antoine had to do when working on a 3.10.53 kernel.

Quoted 3 lines

That being said, the jump from 3.10.17 to 3.10.53 is probably relatively easy, so people having such custom i.MX6 boards could just as well do the jump.

Agreed, although Freescale changed quite a few things in the display sub-system.

Quoted 2 lines

So, I'd indeed suggest to move all i.MX6 defconfigs in Buildroot to 3.10.53, and update the GPU drivers accordingly.

I'll prepare patches to upgrade every packages to 3.10.53 GA release and there's a few.

Antoine, do you have a patch ready for the GPU package? Because it seems that it's not just a version bump:
https://github.com/Freescale/meta-fsl-arm/commit/74c86aa9639f6f20991ab64ea75177a017f8749a

Regards,
Gary

#28 lore raw

PATCH v7 10/13 Vivante drivers: bump to version 3.10.17-1.0.1

Gary,

Quoted 7 lines · Gary Bisson
Quoted 4 lines

Well, you're only looking at boards that have a defconfig in Buildroot. But I'm pretty sure there are lots of people using Buildroot on custom i.MX6 boards, which may not necessarily be supported by all kernel versions.

Sure but the other way around applies too, like what Antoine had to do when working on a 3.10.53 kernel.

Absolutely, but if the 3.10.53-compatible GPU drivers also work with 3.10.17, then we would have a situation where one single version of the GPU drivers can address both 3.10.17 and 3.10.53 based configurations. While what we have today only works for 3.10.17 based configurations.

Quoted 3 lines

Antoine, do you have a patch ready for the GPU package? Because it seems that it's not just a version bump:
https://github.com/Freescale/meta-fsl-arm/commit/74c86aa9639f6f20991ab64ea75177a017f8749a

Yes, Antoine does have such thing. Can you share it with Gary?

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#29 lore raw

PATCH v7 10/13 Vivante drivers: bump to version 3.10.17-1.0.1

Thomas, Antoine, Jerome, All

Quoted 9 lines · Thomas Petazzoni

Gary,

Quoted 5 lines · Gary Bisson
Quoted 4 lines

Well, you're only looking at boards that have a defconfig in Buildroot. But I'm pretty sure there are lots of people using Buildroot on custom i.MX6 boards, which may not necessarily be supported by all kernel versions.

Quoted 7 lines
Quoted 2 lines

Sure but the other way around applies too, like what Antoine had to do when working on a 3.10.53 kernel.

Absolutely, but if the 3.10.53-compatible GPU drivers also work with 3.10.17, then we would have a situation where one single version of the GPU drivers can address both 3.10.17 and 3.10.53 based configurations. While what we have today only works for 3.10.17 based configurations.

Actually this is not the case, 3.10.53 gpu libs are not compatible with 3.10.17 kernels, see the meta-fsl mailing list links below.
https://lists.yoctoproject.org/pipermail/meta-freescale/2015-April/013234.html
https://lists.yoctoproject.org/pipermail/meta-freescale/2015-April/013267.html

But the good news is that 3.14.28 and 3.10.53 kernels/libs are compatible, so we could update to the 3.14.28 GA release directly.

Regards,
Gary

#30 lore raw

PATCH v7 10/13 Vivante drivers: bump to version 3.10.17-1.0.1

In reply to Gary Bisson
Quoted 7 lines · Gary Bisson
Quoted 1 line · Thomas Petazzoni

On Tue, 5 May 2015 10:06:11 +0200, Gary Bisson wrote:

Antoine, do you have a patch ready for the GPU package? Because it seems that it's not just a version bump:
https://github.com/Freescale/meta-fsl-arm/commit/74c86aa9639f6f20991ab64ea75177a017f8749a

Please find the patch I used to bump the Vivante version to 5.0.11.p4.1 attached.

I'll be happy to have some feedbacks and to update the patch accordingly.

Antoine

Signature · 10 lines
Antoine T?nart, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-gpu-viv-bin-mx6q-bump-to-5.0.11.p4.1.patch
Type: text/x-diff
Size: 5995 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20150511/4a688269/attachment.bin>
#31 lore raw

PATCH v7 10/13 Vivante drivers: bump to version 3.10.17-1.0.1

Antoine, All,

Quoted 9 lines · Antoine T?nart
Quoted 7 lines · Gary Bisson
Quoted 1 line · Thomas Petazzoni

On Tue, 5 May 2015 10:06:11 +0200, Gary Bisson wrote:

Antoine, do you have a patch ready for the GPU package? Because it seems that it's not just a version bump:
https://github.com/Freescale/meta-fsl-arm/commit/74c86aa9639f6f20991ab64ea75177a017f8749a

Quoted 5 lines

Please find the patch I used to bump the Vivante version to 5.0.11.p4.1 attached.

I'll be happy to have some feedbacks and to update the patch accordingly.

Thanks for the patch! Maybe we should start a new thread for this?

Here are my remarks with the current version:
- The package has been renamed from gpu-viv-bin-mx6q to imx-gpu-viv in Yocto, I guess it'd be nice to follow their lead as I'm sure it announces that this package will be used on other iMX platforms. Then I don't know if it's better to have a commit just for renaming the package and another one for the version bump.
- Also in Yocto they get rid of all the pkg-config files, do we still need those in our case?
- Finally I'd copy/paste the commit log from Yocto as it explains what's new in this version

Let me know if I can be of any help.

Thanks,
Gary

#32 lore raw

PATCH v7 10/13 Vivante drivers: bump to version 3.10.17-1.0.1

Hello Gary,

Quoted 19 lines · On Monday 11 May 2015 18:32:35 Gary Bisson wrote:

Antoine, All,

Quoted 9 lines · Antoine T?nart
Quoted 7 lines · Gary Bisson
Quoted 1 line · Thomas Petazzoni

On Tue, 5 May 2015 10:06:11 +0200, Gary Bisson wrote:

Antoine, do you have a patch ready for the GPU package? Because it seems that it's not just a version bump:
https://github.com/Freescale/meta-fsl-arm/commit/74c86aa9639f6f20991ab64ea75177a017f8749a

Quoted 5 lines

Please find the patch I used to bump the Vivante version to 5.0.11.p4.1 attached.

I'll be happy to have some feedbacks and to update the patch accordingly.

Quoted 8 lines

Thanks for the patch! Maybe we should start a new thread for this?

Here are my remarks with the current version:
- The package has been renamed from gpu-viv-bin-mx6q to imx-gpu-viv in Yocto, I guess it'd be nice to follow their lead as I'm sure it announces that this package will be used on other iMX platforms. Then I don't know if it's better to have a commit just for renaming the package and another one for the version bump.

Since this package seems to be incompatible with kernels < 3.10.54, maybe we should provide imx-gpu-viv AND gpu-viv-bin-mx6q, no?

Quoted 2 lines

- Also in Yocto they get rid of all the pkg-config files, do we still need those in our case?

True, it seems they are not needed anymore.

Signature · 3 lines
J?r?me Pouiller, Sysmic
Embedded Linux specialist
http://www.sysmic.fr
#33 lore raw

PATCH v7 10/13 Vivante drivers: bump to version 3.10.17-1.0.1

Hi Jerome,

Quoted 24 lines · J?r?me Pouiller

Hello Gary,

Quoted 21 lines · On Monday 11 May 2015 18:32:35 Gary Bisson wrote:

Antoine, All,

Quoted 9 lines · Antoine T?nart
Quoted 7 lines · Gary Bisson
Quoted 1 line · Thomas Petazzoni

On Tue, 5 May 2015 10:06:11 +0200, Gary Bisson wrote:

Antoine, do you have a patch ready for the GPU package? Because it seems that it's not just a version bump:
https://github.com/Freescale/meta-fsl-arm/commit/74c86aa9639f6f20991ab64ea75177a017f8749a

Quoted 5 lines

Please find the patch I used to bump the Vivante version to 5.0.11.p4.1 attached.

I'll be happy to have some feedbacks and to update the patch accordingly.

Thanks for the patch! Maybe we should start a new thread for this?

Quoted 8 lines
Quoted 6 lines

Here are my remarks with the current version:
- The package has been renamed from gpu-viv-bin-mx6q to imx-gpu-viv in Yocto, I guess it'd be nice to follow their lead as I'm sure it announces that this package will be used on other iMX platforms. Then I don't know if it's better to have a commit just for renaming the package and another one for the version bump.

Since this package seems to be incompatible with kernels < 3.10.54, maybe we should provide imx-gpu-viv AND gpu-viv-bin-mx6q, no?

Well the gpu-viv-bin-mx6q is only good for 3.10.17 whereas the new imx-gpu-viv apparently works for both 3.10.53 and 3.14.28. Also most of the kernels offered by manufacturers are now 3.10.53 or above. But let's consider the option, wouldn't it be a headache for packages that depend on it such as gst1-imx or xdriver_xf86-video-imx-viv? I guess it'd need to check on the kernel headers versions to know which package it depends on.

Thanks,
Gary

#34 lore raw

PATCH v7 10/13 Vivante drivers: bump to version 3.10.17-1.0.1

Dear Gary Bisson,

Quoted 10 lines · Gary Bisson
Quoted 2 lines

Since this package seems to be incompatible with kernels < 3.10.54, maybe we should provide imx-gpu-viv AND gpu-viv-bin-mx6q, no?

Well the gpu-viv-bin-mx6q is only good for 3.10.17 whereas the new imx-gpu-viv apparently works for both 3.10.53 and 3.14.28. Also most of the kernels offered by manufacturers are now 3.10.53 or above. But let's consider the option, wouldn't it be a headache for packages that depend on it such as gst1-imx or xdriver_xf86-video-imx-viv? I guess it'd need to check on the kernel headers versions to know which package it depends on.

We could use a virtual package, but it indeed seems to be too much of an headache. If the new version of the i.MX6 GPU drivers support both 3.10.53 and 3.14.28, then I think we should package just this latest version. People running 3.10.17 should upgrade :)

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#35 lore raw

PATCH v7 10/13 Vivante drivers: bump to version 3.10.17-1.0.1

In reply to Gary Bisson

Gary,

Quoted 6 lines

I'll try it out, but why don't we update the package and the kernel versions at once. A quick glance at the git repos shows that there's a
3.10.53 version for QMX6, Nitrogen6x and all the Freescale boards. Then the Wandboard doesn't appear to be maintained as it's still using a 3.0.x kernel and the riotboard uses mainline kernel.

In fact, the Wandboard Linux kernel 3.10.53 is available on github ==> https://github.com/wandboard-org/linux/tree/wandboard_imx_3.10.53_1.1.0_ga

Best regards

Fabrice

#36 lore raw

PATCH v7 10/13 Vivante drivers: bump to version 3.10.17-1.0.1

Hi Fabrice

Quoted 10 lines · Fabrice Mousset | GEOCEPT GmbH

Gary,

Quoted 6 lines

I'll try it out, but why don't we update the package and the kernel versions at once. A quick glance at the git repos shows that there's a
3.10.53 version for QMX6, Nitrogen6x and all the Freescale boards. Then the Wandboard doesn't appear to be maintained as it's still using a 3.0.x kernel and the riotboard uses mainline kernel.

In fact, the Wandboard Linux kernel 3.10.53 is available on github ==> https://github.com/wandboard-org/linux/tree/wandboard_imx_3.10.53_1.1.0_ga

Thanks for sharing this link! I actually wanted to say that the Wandboard *defconfig* in Buildroot isn't maintained. Once the packages will be updated, would you be willing to update the Wandboard defconfig if you happen to have the board?

Thanks,
Gary

#37 lore raw

PATCH v7 10/13 Vivante drivers: bump to version 3.10.17-1.0.1

Hi Gary

Quoted 4 lines

Thanks for sharing this link! I actually wanted to say that the Wandboard *defconfig* in Buildroot isn't maintained. Once the packages will be updated, would you be willing to update the Wandboard defconfig if you happen to have the board?

Yes, I've got a Wandboard Quad, so I could upgrade defconfig for the Quad board. This should also works for Dual and Solo board, there are minimal differences. I'm a little busy at the moment, so I would do this in the next 2 or 3 days. Is this okay for you?

Which packages should be integrated into the build/image? Of course the Vivante driver, but what else?

Regards

Fabrice

#38 lore raw

PATCH v7 10/13 Vivante drivers: bump to version 3.10.17-1.0.1

Hi Fabrice,

Quoted 11 lines · Fabrice Mousset | GEOCEPT GmbH

Hi Gary

Quoted 4 lines

Thanks for sharing this link! I actually wanted to say that the Wandboard *defconfig* in Buildroot isn't maintained. Once the packages will be updated, would you be willing to update the Wandboard defconfig if you happen to have the board?

Yes, I've got a Wandboard Quad, so I could upgrade defconfig for the Quad board. This should also works for Dual and Solo board, there are minimal differences. I'm a little busy at the moment, so I would do this in the next 2 or 3 days. Is this okay for you?

Don't worry there's no rush, the GPU package isn't updated yet. However it's great to know you are willing to update the defconfig, we will ping you as soon as everything is ready.

Quoted 2 lines

Which packages should be integrated into the build/image? Of course the Vivante driver, but what else?

Actually the Vivante package is the ultimate test to perform as it requires a match between the libraries and the kernel driver version. The rest of the packages (VPU, gstreamer plugins etc...) are good to test but not mandatory I'd say.

Thanks,
Gary

#39 lore raw

PATCH v7 10/13 Vivante drivers: bump to version 3.10.17-1.0.1

Hi Gary,

Quoted 3 lines

Don't worry there's no rush, the GPU package isn't updated yet. However it's great to know you are willing to update the defconfig, we will ping you as soon as everything is ready.

Okay, so this will not be integrated in next BuildRoot release I presume.

Quoted 7 lines
Quoted 2 lines

Which packages should be integrated into the build/image? Of course the Vivante driver, but what else?

Actually the Vivante package is the ultimate test to perform as it requires a match between the libraries and the kernel driver version.
The rest of the packages (VPU, gstreamer plugins etc...) are good to test but not mandatory I'd say.

Okay, seems not to be too complicated to check.

Quoted 3 lines

Thanks,
Gary

Your welcome ;-)

Fabrice

#40 lore raw

PATCH v7 11/13 nitrogen6x_defconfig: bump kernel to 3.10.17_1.0.1_ga

In reply to Jérôme Pouiller
---
 configs/nitrogen6x_defconfig | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
configs/nitrogen6x_defconfig +2 -1
index e56bd60..d75f780 100644
@@ -26,7 +26,8 @@ BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="http://github.com/boundarydevices/u-bo
 # kernel
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
-BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="http://github.com/boundarydevices/linux-imx6/tarball/898627a/linux-imx6-898627a.tar.gz"
+# Last version of branch boundary-imx_3.10.17_1.0.1_ga
+BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/linux-imx6/tarball/ea957c5/linux-imx6-ea957c5.tar.gz"
 BR2_LINUX_KERNEL_DEFCONFIG="nitrogen6x"
 BR2_LINUX_KERNEL_INSTALL_TARGET=y
 BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x10008000"
Signature · 1 line
1.9.1
#41 lore raw

PATCH v7 11/13 nitrogen6x_defconfig: bump kernel to 3.10.17_1.0.1_ga

Dear J?r?me Pouiller,

Quoted 6 lines · J?r?me Pouiller
---
 configs/nitrogen6x_defconfig | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Applied, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#42 lore raw

PATCH v7 12/13 freescale_imx6*_defconfig: bump kernel to 3.10.17_1.0.1_ga

In reply to Jérôme Pouiller
---
 configs/freescale_imx6dlsabresd_defconfig   | 3 ++-
 configs/freescale_imx6qsabresd_defconfig    | 3 ++-
 configs/freescale_imx6sololiteevk_defconfig | 3 ++-
 3 files changed, 6 insertions(+), 3 deletions(-)
configs/freescale_imx6dlsabresd_defconfig +2 -1
index a13d2b9..dd17358 100644
@@ -17,7 +17,8 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_GIT=y
 BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.freescale.com/imx/linux-2.6-imx.git"
-BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_3.10.17_1.0.0_ga"
+# Last version of branch imx_3.10.17_1.0.1_ga
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="dac46dcf913585956a0e7a838e6f4b7465f00f57"
 BR2_LINUX_KERNEL_DEFCONFIG="imx_v7"
 BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x10008000"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
configs/freescale_imx6qsabresd_defconfig +2 -1
index 95f29d7..98ed7d4 100644
@@ -17,7 +17,8 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_GIT=y
 BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.freescale.com/imx/linux-2.6-imx.git"
-BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_3.10.17_1.0.0_ga"
+# Last version of branch imx_3.10.17_1.0.1_ga
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="dac46dcf913585956a0e7a838e6f4b7465f00f57"
 BR2_LINUX_KERNEL_DEFCONFIG="imx_v7"
 BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x10008000"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
configs/freescale_imx6sololiteevk_defconfig +2 -1
index 2bb47af..93d842b 100644
@@ -9,7 +9,8 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_GIT=y
 BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.freescale.com/imx/linux-2.6-imx.git"
-BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_3.10.17_1.0.0_ga"
+# Last version of branch imx_3.10.17_1.0.1_ga
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="dac46dcf913585956a0e7a838e6f4b7465f00f57"
 BR2_LINUX_KERNEL_DEFCONFIG="imx_v7"
 BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x80008000"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
Signature · 1 line
1.9.1
#43 lore raw

PATCH v7 12/13 freescale_imx6*_defconfig: bump kernel to 3.10.17_1.0.1_ga

Dear J?r?me Pouiller,

Quoted 7 lines · J?r?me Pouiller
---
 configs/freescale_imx6dlsabresd_defconfig   | 3 ++-
 configs/freescale_imx6qsabresd_defconfig    | 3 ++-
 configs/freescale_imx6sololiteevk_defconfig | 3 ++-
 3 files changed, 6 insertions(+), 3 deletions(-)

Applied, thanks.

Vincent, if you could to a build + run test of those defconfigs, it would be nice.

Thanks a lot,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#44 lore raw

PATCH v7 13/13 qmx6_defconfig: update

In reply to Jérôme Pouiller

- Update kernel
- Add u-boot configuration
- 6q_bootscript.txt is no more needed by new version of u-boot

---
 board/congatec/qmx6/6q_bootscript.txt |  2 --
 board/congatec/qmx6/post-build.sh     |  7 -------
 configs/qmx6_defconfig                | 25 +++++++++++++++++++++----
 3 files changed, 21 insertions(+), 13 deletions(-)
 delete mode 100644 board/congatec/qmx6/6q_bootscript.txt
 delete mode 100755 board/congatec/qmx6/post-build.sh
board/congatec/qmx6/6q_bootscript.txt deleted +0 -2
deleted file mode 100644
index 1382220..0000000
@@ -1,2 +0,0 @@
-set bootargs console=ttymxc1,115200 root=/dev/mmcblk0p1 rootwait consoleblank=0
-${fs}load mmc ${disk}:1 10800000 /boot/uImage && bootm 10800000 ; echo "Error loading kernel image"
board/congatec/qmx6/post-build.sh deleted +0 -7
deleted file mode 100755
index 92251a5..0000000
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-TARGET_DIR=$1
-BOARD_DIR="$(dirname $0)"
-
-mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "boot script" \
-    -d $BOARD_DIR/6q_bootscript.txt $TARGET_DIR/6q_bootscript
configs/qmx6_defconfig +21 -4
index 143e058..ff035a9 100644
@@ -1,16 +1,33 @@
 BR2_arm=y
 BR2_cortex_a9=y
 BR2_KERNEL_HEADERS_VERSION=y
-BR2_DEFAULT_KERNEL_VERSION="3.0.101"
-BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_0=y
+BR2_DEFAULT_KERNEL_VERSION="3.10.17"
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_10=y
 BR2_TARGET_GENERIC_GETTY_PORT="ttymxc1"
-BR2_ROOTFS_POST_BUILD_SCRIPT="board/congatec/qmx6/post-build.sh"
+
+# Notice you need a recent version of u-boot (with DT support) to be able
+# to boot this kernel
 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="rel_imx_3.0.35_4.1.0_QMX6_R1.1.2"
+# Last version of branch cgt_imx_3.10.17_1.0.0
+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_LINUX_KERNEL_INSTALL_TARGET=y
+
+# Change boardname depending of your product number
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BOARDNAME="cgt_qmx6_pn016103"
+BR2_TARGET_UBOOT_CUSTOM_GIT=y
+BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://git.congatec.com/arm/qmx6_uboot.git"
+BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="6388c474189b42c07bb865dd604c74483da099f3"
+BR2_TARGET_UBOOT_FORMAT_CUSTOM=y
+BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.pn016103.imx"
+
 BR2_TARGET_ROOTFS_EXT2=y
 BR2_TARGET_ROOTFS_EXT2_3=y
+
 BR2_PACKAGE_HOST_UBOOT_TOOLS=y
Signature · 1 line
1.9.1
#45 lore raw

PATCH v7 13/13 qmx6_defconfig: update

Dear J?r?me Pouiller,

Quoted 8 lines · J?r?me Pouiller

- Update kernel
- Add u-boot configuration
- 6q_bootscript.txt is no more needed by new version of u-boot

Quoted 8 lines
---
 board/congatec/qmx6/6q_bootscript.txt |  2 --
 board/congatec/qmx6/post-build.sh     |  7 -------
 configs/qmx6_defconfig                | 25 +++++++++++++++++++++----
 3 files changed, 21 insertions(+), 13 deletions(-)
 delete mode 100644 board/congatec/qmx6/6q_bootscript.txt
 delete mode 100755 board/congatec/qmx6/post-build.sh

Applied, thanks.

Stephan, if you could do a build + run test of this new defconfig on your Congatec i.MX6 platform, it would be great.

Thanks a lot,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com