i.MX6Q, Linux 4.9 and Etnaviv

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX6Q, Linux 4.9 and Etnaviv

Jump to solution
3,866 Views
Maddis
Contributor IV

Hi,

Over a month ago I posted almost same discussion, but for i.MX53. At the time I didn't remember that i.MX53 has different graphics what Etnaviv supports.

Well, now I'm doing same for i.MX6Q based HW and this time HW has what Etnaviv needs.

Short recap. I have i.MX6Q based custom HW that is running image built with Yocto 2.3, Linux 4.9 that has Etnaviv driver built-in.

Problem is that there is no picture. This can be due at least two different things. Either the Etnaviv driver or my device tree is not correct because it has changed from 4.1.x what I was driving before. I cannot test the NXP drivers since they don't exist on Linux 4.9.

So I was wondering if here is someone that could help me out a little.

With Linux 4.9 the result is that when device boots up the display is completely with so no display signal at all. Also in Linux SW complains that it cannot find /dev/fb0. No errors are shown from Device Tree and seems that EtnaViv driver is loaded also okay.

This is what Linux 4.9 prints at startup:

[ 2.776244] [drm] Initialized
[ 2.784420] etnaviv gpu-subsystem: bound 134000.gpu (ops gpu_ops)
[ 2.790645] etnaviv gpu-subsystem: bound 130000.gpu (ops gpu_ops)
[ 2.796848] etnaviv gpu-subsystem: bound 2204000.gpu (ops gpu_ops)
[ 2.803051] etnaviv-gpu 134000.gpu: model: GC320, revision: 5007
[ 2.857439] etnaviv-gpu 130000.gpu: model: GC2000, revision: 5108
[ 2.908405] etnaviv-gpu 2204000.gpu: model: GC355, revision: 1215
[ 2.914523] etnaviv-gpu 2204000.gpu: Ignoring GPU with VG and FE2.0
[ 2.926180] imx-ipuv3 2400000.ipu: IPUv3H probed
[ 2.940790] imx-ipuv3 2800000.ipu: IPUv3H probed

This is how I configure the Display to LVDS0. (I use sabresd as a base so I changed this to match my display):

panel {
  compatible = "mitsubishi,aa121td11";

  port {
    panel_in: endpoint {
      remote-endpoint = <&lvds0_out>;
    };
  };
};

I added the 'mitsubishi,aa121td11' display to file: drivers/gpu/drm/panel/panel-simple.c that seems that the default panel is also (hannstar,hsd100pxn1). Although I'm not sure if problem is this since even if the panel would have wrong settings and couldn't show any picture, the /dev/fb0 should still be there.

Also changed this to match 24-bit format that display is using:

&ldb {
  status = "okay";

  lvds-channel@0 {
    fsl,data-mapping = "spwg";
    fsl,data-width = <24>;
    primary;
    status = "okay";

    port@0 {
      reg = <0>;

      lvds0_out: endpoint {
        remote-endpoint = <&panel_in>;
      };

    };
  };
};

Rest of the ldb/ipu settings are like they are for imx6q-sabresd.

One thing I noticed that in Linue 4.9 the mxcfb wasn't no longer used so that might explain why /dev/fb0 isn't there, but what is the replacement or how this device tree should be configured or is there missing something?

In Linux 4.1.x I have the display configured like this (LVDS display) and it's working with Vivante gpu - driver.

mxcfb1: fb@0 {
  compatible = "fsl,mxc_sdc_fb";
  disp_dev = "ldb";
  interface_pix_fmt = "RGB24";
  default_bpp = <32>;
  int_clk = <0>;
  late_init = <0>;
  status = "enabled";
};  

&ldb {
 status = "okay";
 lvds-channel@0 {
   fsl,data-mapping = "spwg";
   fsl,data-width = <24>;
   primary;
   status = "okay";

   display-timings {
     native-mode = <&timing0>;
     timing0: mitsubishi {
       clock-frequency = <71500000>;
       hactive = <1280>;
       vactive = <800>;
       hback-porch = <40>;
       hfront-porch = <40>;
       vback-porch = <3>;
       vfront-porch = <10>;
       hsync-len = <80>;
       vsync-len = <10>;
     };
   };
 };
};
Labels (4)
0 Kudos
1 Solution
1,610 Views
igorpadykov
NXP Employee
NXP Employee

Hi mc

one can check

[meta-freescale] Etnaviv Yocto Layer 

kernel/git/stable/linux-stable.git - Linux kernel stable tree 

and post issues Linux 4.9 and Etnaviv on meta-fsl-arm mailing list, so that someone

familiar with it could try to assist you.
https://lists.yoctoproject.org/listinfo/meta-freescale

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

View solution in original post

0 Kudos
3 Replies
1,610 Views
cphealy1
Senior Contributor I

Hi mc maddie,

Just a quick note that there are some good performance improvements with etnaviv in kernels newer than 4.9.  With the latest kernels, there are some cases where etnaviv is faster than the Vivante blobs.

0 Kudos
1,611 Views
igorpadykov
NXP Employee
NXP Employee

Hi mc

one can check

[meta-freescale] Etnaviv Yocto Layer 

kernel/git/stable/linux-stable.git - Linux kernel stable tree 

and post issues Linux 4.9 and Etnaviv on meta-fsl-arm mailing list, so that someone

familiar with it could try to assist you.
https://lists.yoctoproject.org/listinfo/meta-freescale

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
1,610 Views
Maddis
Contributor IV

Thanks for the reply. 

I tried the beta-release linux-imx-4.9.11 and I got picture working with that so device tree is configured okay. 

I'll take a look the links and continue on that mailing list.

0 Kudos