Hi everyone,
this has been bugging me a while. I hope you guys can help me out here and point me to what I'm doing wrong.
We use the i.MX6 PFLA02 and PBAB01 boards from Phytec. Display is connected to LVDS/LDB.
Our current SW chain is yocto/poky 1.7 (dizzy)/1.8 (fido) (currently I switched to 1.8)
In ported the phytec board file to 1.8 and the phytec patches for the device tree to 1.8 (in the hope I did not do anything wrong there).
We deactivated the fsl-alsa and gst plugins as they require imx-lib (mxc driver set). Which is not available in linux-fslc.
So the board boots. USB etc. looks to work fine. But when using OpenGL and the imx-vivante-fb driver for X11 with imx-drm and not the standard X11 fb and mesa drivers we can not get X11 to run.
Do we need the FSL--ML mxc driver set for OpenGL or is it supported with imx-drm?
Other Symptoms:
fb0/mode, ... empty
Xorg Vivante virtual width 0
If the drivers are fine then I suspect we either have some wrong display (timing) in the ldb node in the DT or a wrong configuration of Xorg. (Please note we also have some parallel display defs and hdmi defs still in the DT, which are currently unused by us if those should be conflicting somehow).
Thanks and kr,
Markus
Original Attachment has been moved to: local.conf.zip
Original Attachment has been moved to: dmesg.zip
Original Attachment has been moved to: imx6qdl-phytec-pfla02.dtsi.zip
Original Attachment has been moved to: imx6q-pbab01.conf.zip
Original Attachment has been moved to: Xorg.0.log.zip
You need to ensure your using the x11 vivante libraries not fb.
I suggest you first ensure the framebuffer is correctly setup for ldvs and works with console/terminal shell. Then test vivante fb libraries against the frambuffer to ensure they are working. After that you should try the x11 vivante libraries (I have a old blog entry that may help you). It was difficult to review the dmesg output as you have a lot of debug output.
The fb must be working, if it works in SW-mode, right? Since either way you need a working drm fb. The console output is showing up on the display. Using X11 with just mesa-OpenGL and standard X11-fbdev driver works. Just when we switch to the GPU drivers, the xserver fails. With the above error. My assumption was that the OpenGL handle all rendering to the fb and no special driver is needed anymore, but maybe they still depend somehow on mxcfb?
So currently we use linux-fslc 3.19 (poky fido), which only has imx-drm (no mxcfb or imx-lib, etc.), imx-gpu-viv_5.0.11.p4.4-hfp aind x86-imxfb-vivante. But as of poky the X11 drivers have no dependency on imx-lib, only the fsl-alsa and gst plug-ins, so I thought it should work.
I tried out the vivante_samples already, which do not work by immediately terminating without error (because the kernel console is spawned there?).
Compared to your config I don't have a IMX_DRM_VIVANTE (probably part of the imx-lib and mxc kernel drivers like mxcfb).
Kr,
Markus
Libraries/Xorg Drivers containing vivante in their name:
./usr/lib/libVivanteOpenCL.so | |
./usr/lib/dri/vivante_dri.so |
./usr/lib/xorg/modules/drivers/vivante_drv.so
Having console output just indicates the framebuffer driver is working for your display. However first you have to prove first the vivante libraries can interact (h/w accleration) against the frambuffer using the vivante-fb libraries by launching a sample EGL application. You should do that first because it validates the vivante kernel drivers (drivers/mxc/gpu-viv) are functioning correctly because in your dmesg there is no indication of the Galcore/Vivante version being reported.
OK, that was one part of my question: So, the vivante (OGL/EGL) libraries do need the mxc driver set (which I don't have using the linux-fslc kernel) after all? Poky declares no dependency to mxc-driver, that's why I thought that maybe to GL/X11 libraries already handle the hardware and render to the fb.
So to sum up, can you confirm that if we just use the linux-fslc kernel (without migrating mxc) we will not be able to use HW acceleration or HW rendering?
Thanks,
Markus
Hi Markus,
Most Hal events are handle by the mxc drivers that the main reason gpu-viv need it, if your plan is not to use any other modules besides GPU, as example GL used for data processing without display or EGL, then I guess you will be able to manage without mxc drivers.
hope this helps