mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* Help configuring i.MX6 IPUv3 with a parrallel display
@ 2016-02-22 16:41 Philippe Leduc
  2016-02-23  8:32 ` Sascha Hauer
  0 siblings, 1 reply; 12+ messages in thread
From: Philippe Leduc @ 2016-02-22 16:41 UTC (permalink / raw)
  To: barebox

Hello,

I would like to use the barebox framebuffer on a iMX6S chip. My goal
is to display a splashscreen. However, I can't manage to use the
framebuffer for now...

Here is the output of "devinfo fb0":
Resources:
  num: 0
  start: 0x00000000
  size: 0x00000000
Available modes:
Parameters:
  enable: 0
  mode_name: invalid:0
  shadowfb: 1

Is this a correct behavior that there is NO availables modes? I do not
manage to add one through the DTS.

If I try to enable the framebuffer (fb0.enable=1), barebox hangs:
fb0.enable=1
unable to handle NULL pointer dereference at address 0x0000001d
pc : [<2ff1ab1c>]    lr : [<2ff17f41>]
sp : 2ffffa3c  ip : 2ff1a3fa  fp : 2ffffa78
r10: 20212d0c  r9 : 00000000  r8 : 00000000
r7 : 20024210  r6 : f57fffff  r5 : 0c000000  r4 : 0000001d
r3 : 2ff1a1e5  r2 : 0c000000  r1 : 0000005c  r0 : 00000022
Flags: nzcv  IRQs off  FIQs off  Mode SVC_32
[<2ff1ab1c>] (clk_is_enabled+0x34/0x38) from [<7f8d1fc0>] (0x7f8d1fc0)

[<2ff389d9>] (unwind_backtrace+0x1/0x58) from [<2ff00d19>] (panic+0x1d/0x34)
[<2ff00d19>] (panic+0x1d/0x34) from [<2ff38e7d>] (do_exception+0xd/0x10)
[<2ff38e7d>] (do_exception+0xd/0x10) from [<2ff38edd>] (do_data_abort+0x21/0x2c)
[<2ff38edd>] (do_data_abort+0x21/0x2c) from [<2ff38bd4>] (do_abort_6+0x48/0x54)
Switch to console [serial0]

Here is what I put in the DTS to enable the display:

display0: display@di0 {
      compatible = "fsl,imx-parallel-display";
//      crtcs = <&ipu1 0>;
      interface-pix-fmt = "rgb24";
      pinctrl-names = "default";
      pinctrl-0 = <&pinctrl_ipu_disp>;
      status = "okay";

      display-timings {
        rk043fn07h {
          native-mode;
          clock-frequency = <9000000 15000000>;
          hactive = <480>;
          vactive = <272>;
          hfront-porch = <2 2 82>;
          hback-porch = <2 2 41>;
          hsync-len = <2 41 41>;
          vback-porch = <1 2 11>;
          vfront-porch = <1 2 227>;
          vsync-len = <1 10 11>;
          pixelclk-active = <1>;
          hsync-active = <0>;
          vsync-active = <0>;
          de-active = <1>;
        };
      };

      port {
        display0_in: endpoint {
          remote-endpoint = <&ipu1_di0_disp0>;
        };
      };


&ipu1_di0_disp0 {
  remote-endpoint = <&display0_in>;
};

Thank you in advance,

Best regards,

--
Philippe LEDUC
ledphilippe@gmail.com

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Help configuring i.MX6 IPUv3 with a parrallel display
  2016-02-22 16:41 Help configuring i.MX6 IPUv3 with a parrallel display Philippe Leduc
@ 2016-02-23  8:32 ` Sascha Hauer
  2016-02-23 11:47   ` Philippe Leduc
  0 siblings, 1 reply; 12+ messages in thread
From: Sascha Hauer @ 2016-02-23  8:32 UTC (permalink / raw)
  To: Philippe Leduc; +Cc: barebox

On Mon, Feb 22, 2016 at 05:41:01PM +0100, Philippe Leduc wrote:
> Hello,
> 
> I would like to use the barebox framebuffer on a iMX6S chip. My goal
> is to display a splashscreen. However, I can't manage to use the
> framebuffer for now...
> 
> Here is the output of "devinfo fb0":
> Resources:
>   num: 0
>   start: 0x00000000
>   size: 0x00000000
> Available modes:
> Parameters:
>   enable: 0
>   mode_name: invalid:0
>   shadowfb: 1
> 
> Is this a correct behavior that there is NO availables modes? I do not
> manage to add one through the DTS.
> 
> If I try to enable the framebuffer (fb0.enable=1), barebox hangs:
> fb0.enable=1
> unable to handle NULL pointer dereference at address 0x0000001d
> pc : [<2ff1ab1c>]    lr : [<2ff17f41>]
> sp : 2ffffa3c  ip : 2ff1a3fa  fp : 2ffffa78
> r10: 20212d0c  r9 : 00000000  r8 : 00000000
> r7 : 20024210  r6 : f57fffff  r5 : 0c000000  r4 : 0000001d
> r3 : 2ff1a1e5  r2 : 0c000000  r1 : 0000005c  r0 : 00000022
> Flags: nzcv  IRQs off  FIQs off  Mode SVC_32
> [<2ff1ab1c>] (clk_is_enabled+0x34/0x38) from [<7f8d1fc0>] (0x7f8d1fc0)
> 
> [<2ff389d9>] (unwind_backtrace+0x1/0x58) from [<2ff00d19>] (panic+0x1d/0x34)
> [<2ff00d19>] (panic+0x1d/0x34) from [<2ff38e7d>] (do_exception+0xd/0x10)
> [<2ff38e7d>] (do_exception+0xd/0x10) from [<2ff38edd>] (do_data_abort+0x21/0x2c)
> [<2ff38edd>] (do_data_abort+0x21/0x2c) from [<2ff38bd4>] (do_abort_6+0x48/0x54)
> Switch to console [serial0]
> 
> Here is what I put in the DTS to enable the display:
> 
> display0: display@di0 {
>       compatible = "fsl,imx-parallel-display";
> //      crtcs = <&ipu1 0>;
>       interface-pix-fmt = "rgb24";
>       pinctrl-names = "default";
>       pinctrl-0 = <&pinctrl_ipu_disp>;
>       status = "okay";
> 
>       display-timings {
>         rk043fn07h {
>           native-mode;
>           clock-frequency = <9000000 15000000>;
>           hactive = <480>;
>           vactive = <272>;
>           hfront-porch = <2 2 82>;
>           hback-porch = <2 2 41>;
>           hsync-len = <2 41 41>;
>           vback-porch = <1 2 11>;
>           vfront-porch = <1 2 227>;
>           vsync-len = <1 10 11>;
>           pixelclk-active = <1>;
>           hsync-active = <0>;
>           vsync-active = <0>;
>           de-active = <1>;
>         };
>       };
> 
>       port {
>         display0_in: endpoint {
>           remote-endpoint = <&ipu1_di0_disp0>;
>         };
>       };
> 
> 
> &ipu1_di0_disp0 {
>   remote-endpoint = <&display0_in>;
> };

Parallel display support for IPUv3 is not yet implemented. What's
missing is a driver that matches to "fsl,imx-parallel-display", calls
vpl_register on its own node and returns the display timings parsed from
device tree in the VPL_GET_VIDEOMODES callback.

You could try the following binding instead. It doesn't use the
"fsl,imx-parallel-display" compatible but the "simple-panel" binding
instead. Since IPU parallel display support is a no-op anyway this
should work. Note that this binding is not compatible with the kernel
since the maintainer refuses to let display timings into the device tree
for simple panels.

panel {
	compatible = "simple-panel";

	display-timings {
		/* your timings here */
	};

	port {
		display0_in: enpoint {
			remote-endpoint = <&ipu1_di0_disp0>;
		};
	};
};

&ipu1_di0_disp0 {
	interface-pix-fmt = "rgb24";
	remote-endpoint = <&display0_in>;
};

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Help configuring i.MX6 IPUv3 with a parrallel display
  2016-02-23  8:32 ` Sascha Hauer
@ 2016-02-23 11:47   ` Philippe Leduc
  2016-02-24  8:22     ` Philippe Leduc
  0 siblings, 1 reply; 12+ messages in thread
From: Philippe Leduc @ 2016-02-23 11:47 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox

> Parallel display support for IPUv3 is not yet implemented.
I could have searched a long time ^^' (Fortunately there is the mailing list!)

I tried to add the simple panel but I do not get any framebuffer?

Here is the output of devinfo panel.13:
Driver: simple-panel
Bus: platform
Device node: /panel
panel {
        compatible = "simple-panel";
        status = "okay";
        display-timings {
                clock-frequency = <0x895440 0xe4e1c0>;
                hactive = <0x1e0>;
                vactive = <0x110>;
                hfront-porch = <0x2 0x2 0x52>;
                hback-porch = <0x2 0x2 0x29>;
                hsync-len = <0x2 0x29 0x29>;
                vback-porch = <0x1 0x2 0xb>;
                vfront-porch = <0x1 0x2 0xe3>;
                vsync-len = <0x1 0xa 0xb>;
                pixelclk-active = <0x1>;
                hsync-active = <0x0>;
                vsync-active = <0x0>;
                de-active = <0x1>;
        };
        port {
                enpoint {
                        remote-endpoint = <0x3d>;
                        linux,phandle = <0x2b>;
                        phandle = <0x2b>;
                };
        };
};

So it seems that the driver is loaded, but there is no entry point for
the 'userspace'.


> Note that this binding is not compatible with the kernel
since the maintainer refuses to let display timings into the device tree
for simple panels.
OK, good to know.


Philippe LEDUC
ledphilippe@gmail.com


2016-02-23 9:32 GMT+01:00 Sascha Hauer <s.hauer@pengutronix.de>:
> On Mon, Feb 22, 2016 at 05:41:01PM +0100, Philippe Leduc wrote:
>> Hello,
>>
>> I would like to use the barebox framebuffer on a iMX6S chip. My goal
>> is to display a splashscreen. However, I can't manage to use the
>> framebuffer for now...
>>
>> Here is the output of "devinfo fb0":
>> Resources:
>>   num: 0
>>   start: 0x00000000
>>   size: 0x00000000
>> Available modes:
>> Parameters:
>>   enable: 0
>>   mode_name: invalid:0
>>   shadowfb: 1
>>
>> Is this a correct behavior that there is NO availables modes? I do not
>> manage to add one through the DTS.
>>
>> If I try to enable the framebuffer (fb0.enable=1), barebox hangs:
>> fb0.enable=1
>> unable to handle NULL pointer dereference at address 0x0000001d
>> pc : [<2ff1ab1c>]    lr : [<2ff17f41>]
>> sp : 2ffffa3c  ip : 2ff1a3fa  fp : 2ffffa78
>> r10: 20212d0c  r9 : 00000000  r8 : 00000000
>> r7 : 20024210  r6 : f57fffff  r5 : 0c000000  r4 : 0000001d
>> r3 : 2ff1a1e5  r2 : 0c000000  r1 : 0000005c  r0 : 00000022
>> Flags: nzcv  IRQs off  FIQs off  Mode SVC_32
>> [<2ff1ab1c>] (clk_is_enabled+0x34/0x38) from [<7f8d1fc0>] (0x7f8d1fc0)
>>
>> [<2ff389d9>] (unwind_backtrace+0x1/0x58) from [<2ff00d19>] (panic+0x1d/0x34)
>> [<2ff00d19>] (panic+0x1d/0x34) from [<2ff38e7d>] (do_exception+0xd/0x10)
>> [<2ff38e7d>] (do_exception+0xd/0x10) from [<2ff38edd>] (do_data_abort+0x21/0x2c)
>> [<2ff38edd>] (do_data_abort+0x21/0x2c) from [<2ff38bd4>] (do_abort_6+0x48/0x54)
>> Switch to console [serial0]
>>
>> Here is what I put in the DTS to enable the display:
>>
>> display0: display@di0 {
>>       compatible = "fsl,imx-parallel-display";
>> //      crtcs = <&ipu1 0>;
>>       interface-pix-fmt = "rgb24";
>>       pinctrl-names = "default";
>>       pinctrl-0 = <&pinctrl_ipu_disp>;
>>       status = "okay";
>>
>>       display-timings {
>>         rk043fn07h {
>>           native-mode;
>>           clock-frequency = <9000000 15000000>;
>>           hactive = <480>;
>>           vactive = <272>;
>>           hfront-porch = <2 2 82>;
>>           hback-porch = <2 2 41>;
>>           hsync-len = <2 41 41>;
>>           vback-porch = <1 2 11>;
>>           vfront-porch = <1 2 227>;
>>           vsync-len = <1 10 11>;
>>           pixelclk-active = <1>;
>>           hsync-active = <0>;
>>           vsync-active = <0>;
>>           de-active = <1>;
>>         };
>>       };
>>
>>       port {
>>         display0_in: endpoint {
>>           remote-endpoint = <&ipu1_di0_disp0>;
>>         };
>>       };
>>
>>
>> &ipu1_di0_disp0 {
>>   remote-endpoint = <&display0_in>;
>> };
>
> Parallel display support for IPUv3 is not yet implemented. What's
> missing is a driver that matches to "fsl,imx-parallel-display", calls
> vpl_register on its own node and returns the display timings parsed from
> device tree in the VPL_GET_VIDEOMODES callback.
>
> You could try the following binding instead. It doesn't use the
> "fsl,imx-parallel-display" compatible but the "simple-panel" binding
> instead. Since IPU parallel display support is a no-op anyway this
> should work. Note that this binding is not compatible with the kernel
> since the maintainer refuses to let display timings into the device tree
> for simple panels.
>
> panel {
>         compatible = "simple-panel";
>
>         display-timings {
>                 /* your timings here */
>         };
>
>         port {
>                 display0_in: enpoint {
>                         remote-endpoint = <&ipu1_di0_disp0>;
>                 };
>         };
> };
>
> &ipu1_di0_disp0 {
>         interface-pix-fmt = "rgb24";
>         remote-endpoint = <&display0_in>;
> };
>
> Sascha
>
> --
> Pengutronix e.K.                           |                             |
> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Help configuring i.MX6 IPUv3 with a parrallel display
  2016-02-23 11:47   ` Philippe Leduc
@ 2016-02-24  8:22     ` Philippe Leduc
  2016-02-24 11:15       ` Sascha Hauer
  0 siblings, 1 reply; 12+ messages in thread
From: Philippe Leduc @ 2016-02-24  8:22 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox

Hi,

Since I do not manage to get a splashscreen with the simple-panel
driver, I tried the other way: adding a driver for
imx-parrallel-display that exposes the display-timings. So far I
managed to add a video mode to my framebuffer:

devinfo fb0
Resources:
  num: 0
  start: 0x2005a000
  size: 0x0007f800
Available modes:
  rk043fn07h: 480x272@0
Parameters:
  enable: 0
  mode_name: rk043fn07h
  shadowfb: 1

But there is no refresh rate? Don't know if it is a problem, but my
framebuffer still doesn't want to work (however it is more or less
better than before):

fb0.enable=1
imx-ipuv3-crtc imx-ipuv3-crtc0: ipu_crtc_mode_set: mode->xres: 480
imx-ipuv3-crtc imx-ipuv3-crtc0: ipu_crtc_mode_set: mode->yres: 272
imx-ipuv3-crtc imx-ipuv3-crtc0: initializing display controller failed with -22


So far so good I'll continue to dig up, but if you have some advices,
it would be helpful!

Best regards,

--
Philippe LEDUC
ledphilippe@gmail.com


2016-02-23 12:47 GMT+01:00 Philippe Leduc <ledphilippe@gmail.com>:
>> Parallel display support for IPUv3 is not yet implemented.
> I could have searched a long time ^^' (Fortunately there is the mailing list!)
>
> I tried to add the simple panel but I do not get any framebuffer?
>
> Here is the output of devinfo panel.13:
> Driver: simple-panel
> Bus: platform
> Device node: /panel
> panel {
>         compatible = "simple-panel";
>         status = "okay";
>         display-timings {
>                 clock-frequency = <0x895440 0xe4e1c0>;
>                 hactive = <0x1e0>;
>                 vactive = <0x110>;
>                 hfront-porch = <0x2 0x2 0x52>;
>                 hback-porch = <0x2 0x2 0x29>;
>                 hsync-len = <0x2 0x29 0x29>;
>                 vback-porch = <0x1 0x2 0xb>;
>                 vfront-porch = <0x1 0x2 0xe3>;
>                 vsync-len = <0x1 0xa 0xb>;
>                 pixelclk-active = <0x1>;
>                 hsync-active = <0x0>;
>                 vsync-active = <0x0>;
>                 de-active = <0x1>;
>         };
>         port {
>                 enpoint {
>                         remote-endpoint = <0x3d>;
>                         linux,phandle = <0x2b>;
>                         phandle = <0x2b>;
>                 };
>         };
> };
>
> So it seems that the driver is loaded, but there is no entry point for
> the 'userspace'.
>
>
>> Note that this binding is not compatible with the kernel
> since the maintainer refuses to let display timings into the device tree
> for simple panels.
> OK, good to know.
>
>
> Philippe LEDUC
> ledphilippe@gmail.com
>
>
> 2016-02-23 9:32 GMT+01:00 Sascha Hauer <s.hauer@pengutronix.de>:
>> On Mon, Feb 22, 2016 at 05:41:01PM +0100, Philippe Leduc wrote:
>>> Hello,
>>>
>>> I would like to use the barebox framebuffer on a iMX6S chip. My goal
>>> is to display a splashscreen. However, I can't manage to use the
>>> framebuffer for now...
>>>
>>> Here is the output of "devinfo fb0":
>>> Resources:
>>>   num: 0
>>>   start: 0x00000000
>>>   size: 0x00000000
>>> Available modes:
>>> Parameters:
>>>   enable: 0
>>>   mode_name: invalid:0
>>>   shadowfb: 1
>>>
>>> Is this a correct behavior that there is NO availables modes? I do not
>>> manage to add one through the DTS.
>>>
>>> If I try to enable the framebuffer (fb0.enable=1), barebox hangs:
>>> fb0.enable=1
>>> unable to handle NULL pointer dereference at address 0x0000001d
>>> pc : [<2ff1ab1c>]    lr : [<2ff17f41>]
>>> sp : 2ffffa3c  ip : 2ff1a3fa  fp : 2ffffa78
>>> r10: 20212d0c  r9 : 00000000  r8 : 00000000
>>> r7 : 20024210  r6 : f57fffff  r5 : 0c000000  r4 : 0000001d
>>> r3 : 2ff1a1e5  r2 : 0c000000  r1 : 0000005c  r0 : 00000022
>>> Flags: nzcv  IRQs off  FIQs off  Mode SVC_32
>>> [<2ff1ab1c>] (clk_is_enabled+0x34/0x38) from [<7f8d1fc0>] (0x7f8d1fc0)
>>>
>>> [<2ff389d9>] (unwind_backtrace+0x1/0x58) from [<2ff00d19>] (panic+0x1d/0x34)
>>> [<2ff00d19>] (panic+0x1d/0x34) from [<2ff38e7d>] (do_exception+0xd/0x10)
>>> [<2ff38e7d>] (do_exception+0xd/0x10) from [<2ff38edd>] (do_data_abort+0x21/0x2c)
>>> [<2ff38edd>] (do_data_abort+0x21/0x2c) from [<2ff38bd4>] (do_abort_6+0x48/0x54)
>>> Switch to console [serial0]
>>>
>>> Here is what I put in the DTS to enable the display:
>>>
>>> display0: display@di0 {
>>>       compatible = "fsl,imx-parallel-display";
>>> //      crtcs = <&ipu1 0>;
>>>       interface-pix-fmt = "rgb24";
>>>       pinctrl-names = "default";
>>>       pinctrl-0 = <&pinctrl_ipu_disp>;
>>>       status = "okay";
>>>
>>>       display-timings {
>>>         rk043fn07h {
>>>           native-mode;
>>>           clock-frequency = <9000000 15000000>;
>>>           hactive = <480>;
>>>           vactive = <272>;
>>>           hfront-porch = <2 2 82>;
>>>           hback-porch = <2 2 41>;
>>>           hsync-len = <2 41 41>;
>>>           vback-porch = <1 2 11>;
>>>           vfront-porch = <1 2 227>;
>>>           vsync-len = <1 10 11>;
>>>           pixelclk-active = <1>;
>>>           hsync-active = <0>;
>>>           vsync-active = <0>;
>>>           de-active = <1>;
>>>         };
>>>       };
>>>
>>>       port {
>>>         display0_in: endpoint {
>>>           remote-endpoint = <&ipu1_di0_disp0>;
>>>         };
>>>       };
>>>
>>>
>>> &ipu1_di0_disp0 {
>>>   remote-endpoint = <&display0_in>;
>>> };
>>
>> Parallel display support for IPUv3 is not yet implemented. What's
>> missing is a driver that matches to "fsl,imx-parallel-display", calls
>> vpl_register on its own node and returns the display timings parsed from
>> device tree in the VPL_GET_VIDEOMODES callback.
>>
>> You could try the following binding instead. It doesn't use the
>> "fsl,imx-parallel-display" compatible but the "simple-panel" binding
>> instead. Since IPU parallel display support is a no-op anyway this
>> should work. Note that this binding is not compatible with the kernel
>> since the maintainer refuses to let display timings into the device tree
>> for simple panels.
>>
>> panel {
>>         compatible = "simple-panel";
>>
>>         display-timings {
>>                 /* your timings here */
>>         };
>>
>>         port {
>>                 display0_in: enpoint {
>>                         remote-endpoint = <&ipu1_di0_disp0>;
>>                 };
>>         };
>> };
>>
>> &ipu1_di0_disp0 {
>>         interface-pix-fmt = "rgb24";
>>         remote-endpoint = <&display0_in>;
>> };
>>
>> Sascha
>>
>> --
>> Pengutronix e.K.                           |                             |
>> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
>> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
>> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Help configuring i.MX6 IPUv3 with a parrallel display
  2016-02-24  8:22     ` Philippe Leduc
@ 2016-02-24 11:15       ` Sascha Hauer
  2016-02-24 12:39         ` Philippe Leduc
  0 siblings, 1 reply; 12+ messages in thread
From: Sascha Hauer @ 2016-02-24 11:15 UTC (permalink / raw)
  To: Philippe Leduc; +Cc: barebox

On Wed, Feb 24, 2016 at 09:22:40AM +0100, Philippe Leduc wrote:
> Hi,
> 
> Since I do not manage to get a splashscreen with the simple-panel
> driver, I tried the other way: adding a driver for
> imx-parrallel-display that exposes the display-timings. So far I
> managed to add a video mode to my framebuffer:
> 
> devinfo fb0
> Resources:
>   num: 0
>   start: 0x2005a000
>   size: 0x0007f800
> Available modes:
>   rk043fn07h: 480x272@0
> Parameters:
>   enable: 0
>   mode_name: rk043fn07h
>   shadowfb: 1
> 
> But there is no refresh rate? Don't know if it is a problem, but my
> framebuffer still doesn't want to work (however it is more or less
> better than before):

The refresh rate is 0 because the code in of_display_timing.c doesn't
set the refresh rate. That's not nice, but shouldn't be a problem.

> 
> fb0.enable=1
> imx-ipuv3-crtc imx-ipuv3-crtc0: ipu_crtc_mode_set: mode->xres: 480
> imx-ipuv3-crtc imx-ipuv3-crtc0: ipu_crtc_mode_set: mode->yres: 272
> imx-ipuv3-crtc imx-ipuv3-crtc0: initializing display controller failed with -22

The only way ipu_dc_init_sync() fails is when interface_pix_fmt is
invalid. This means you either have no "interface-pix-fmt" property or
this property doesn't get evaluated. You could try setting it to
V4L2_PIX_FMT_RGB24 manually in ipu_crtc_mode_set().

Sascha


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Help configuring i.MX6 IPUv3 with a parrallel display
  2016-02-24 11:15       ` Sascha Hauer
@ 2016-02-24 12:39         ` Philippe Leduc
  2016-02-24 12:43           ` Sascha Hauer
  0 siblings, 1 reply; 12+ messages in thread
From: Philippe Leduc @ 2016-02-24 12:39 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox

> You could try setting it to
V4L2_PIX_FMT_RGB24 manually in ipu_crtc_mode_set().
It is working with this trick and I do not get any error:

Unfortunately, the display stay white... I tried to write it with "mw
-d /dev/fb0 0xXXXXXXXX +0x40000" and splash freeze the board.

Note: the LCD is whiter with fb0.enable=1 so something's happening





Philippe LEDUC
ledphilippe@gmail.com


2016-02-24 12:15 GMT+01:00 Sascha Hauer <s.hauer@pengutronix.de>:
> On Wed, Feb 24, 2016 at 09:22:40AM +0100, Philippe Leduc wrote:
>> Hi,
>>
>> Since I do not manage to get a splashscreen with the simple-panel
>> driver, I tried the other way: adding a driver for
>> imx-parrallel-display that exposes the display-timings. So far I
>> managed to add a video mode to my framebuffer:
>>
>> devinfo fb0
>> Resources:
>>   num: 0
>>   start: 0x2005a000
>>   size: 0x0007f800
>> Available modes:
>>   rk043fn07h: 480x272@0
>> Parameters:
>>   enable: 0
>>   mode_name: rk043fn07h
>>   shadowfb: 1
>>
>> But there is no refresh rate? Don't know if it is a problem, but my
>> framebuffer still doesn't want to work (however it is more or less
>> better than before):
>
> The refresh rate is 0 because the code in of_display_timing.c doesn't
> set the refresh rate. That's not nice, but shouldn't be a problem.
>
>>
>> fb0.enable=1
>> imx-ipuv3-crtc imx-ipuv3-crtc0: ipu_crtc_mode_set: mode->xres: 480
>> imx-ipuv3-crtc imx-ipuv3-crtc0: ipu_crtc_mode_set: mode->yres: 272
>> imx-ipuv3-crtc imx-ipuv3-crtc0: initializing display controller failed with -22
>
> The only way ipu_dc_init_sync() fails is when interface_pix_fmt is
> invalid. This means you either have no "interface-pix-fmt" property or
> this property doesn't get evaluated. You could try setting it to
> V4L2_PIX_FMT_RGB24 manually in ipu_crtc_mode_set().
>
> Sascha
>
>
> --
> Pengutronix e.K.                           |                             |
> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Help configuring i.MX6 IPUv3 with a parrallel display
  2016-02-24 12:39         ` Philippe Leduc
@ 2016-02-24 12:43           ` Sascha Hauer
  2016-02-24 12:50             ` Philippe Leduc
  0 siblings, 1 reply; 12+ messages in thread
From: Sascha Hauer @ 2016-02-24 12:43 UTC (permalink / raw)
  To: Philippe Leduc; +Cc: barebox

On Wed, Feb 24, 2016 at 01:39:25PM +0100, Philippe Leduc wrote:
> > You could try setting it to
> V4L2_PIX_FMT_RGB24 manually in ipu_crtc_mode_set().
> It is working with this trick and I do not get any error:
> 
> Unfortunately, the display stay white... I tried to write it with "mw
> -d /dev/fb0 0xXXXXXXXX +0x40000" and splash freeze the board.

Try 'cp /dev/ram0 /dev/fb0' or 'memset -d /dev/fb0 0x0 0x55 1M'. With
'mw' you can only write single words which only gives you some dots in
one screen corner.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Help configuring i.MX6 IPUv3 with a parrallel display
  2016-02-24 12:43           ` Sascha Hauer
@ 2016-02-24 12:50             ` Philippe Leduc
  2016-02-24 13:46               ` Philippe Leduc
  0 siblings, 1 reply; 12+ messages in thread
From: Philippe Leduc @ 2016-02-24 12:50 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox

Same result with memset or cp : the screen stay white. I'll recheck my
timings. Could it be related with the freeze of the splash utility?

BTW, it seems that of_get_display_timings() can't manage ranges of
datas as mentionned in the binding doc (display-timings.txt).
Philippe LEDUC
ledphilippe@gmail.com


2016-02-24 13:43 GMT+01:00 Sascha Hauer <s.hauer@pengutronix.de>:
> On Wed, Feb 24, 2016 at 01:39:25PM +0100, Philippe Leduc wrote:
>> > You could try setting it to
>> V4L2_PIX_FMT_RGB24 manually in ipu_crtc_mode_set().
>> It is working with this trick and I do not get any error:
>>
>> Unfortunately, the display stay white... I tried to write it with "mw
>> -d /dev/fb0 0xXXXXXXXX +0x40000" and splash freeze the board.
>
> Try 'cp /dev/ram0 /dev/fb0' or 'memset -d /dev/fb0 0x0 0x55 1M'. With
> 'mw' you can only write single words which only gives you some dots in
> one screen corner.
>
> Sascha
>
> --
> Pengutronix e.K.                           |                             |
> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Help configuring i.MX6 IPUv3 with a parrallel display
  2016-02-24 12:50             ` Philippe Leduc
@ 2016-02-24 13:46               ` Philippe Leduc
  2016-02-24 18:15                 ` Sascha Hauer
  2016-02-25  9:16                 ` Holger Schurig
  0 siblings, 2 replies; 12+ messages in thread
From: Philippe Leduc @ 2016-02-24 13:46 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox

Victory!

I checked the timings with an oscilloscope by using Linux and
everything except one pin is identical: LCD_ENABLE ^^ ' . It is a GPIO
that let the display in sleep mode to limit consumption.

Note that splash utility continue to freeze the board.

About the 'driver' that parse the dt to expose the timings, I'll clean
up and let you review it (this time I'll use git to send you the patch
:) ). I



Philippe LEDUC
ledphilippe@gmail.com


2016-02-24 13:50 GMT+01:00 Philippe Leduc <ledphilippe@gmail.com>:
> Same result with memset or cp : the screen stay white. I'll recheck my
> timings. Could it be related with the freeze of the splash utility?
>
> BTW, it seems that of_get_display_timings() can't manage ranges of
> datas as mentionned in the binding doc (display-timings.txt).
> Philippe LEDUC
> ledphilippe@gmail.com
>
>
> 2016-02-24 13:43 GMT+01:00 Sascha Hauer <s.hauer@pengutronix.de>:
>> On Wed, Feb 24, 2016 at 01:39:25PM +0100, Philippe Leduc wrote:
>>> > You could try setting it to
>>> V4L2_PIX_FMT_RGB24 manually in ipu_crtc_mode_set().
>>> It is working with this trick and I do not get any error:
>>>
>>> Unfortunately, the display stay white... I tried to write it with "mw
>>> -d /dev/fb0 0xXXXXXXXX +0x40000" and splash freeze the board.
>>
>> Try 'cp /dev/ram0 /dev/fb0' or 'memset -d /dev/fb0 0x0 0x55 1M'. With
>> 'mw' you can only write single words which only gives you some dots in
>> one screen corner.
>>
>> Sascha
>>
>> --
>> Pengutronix e.K.                           |                             |
>> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
>> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
>> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Help configuring i.MX6 IPUv3 with a parrallel display
  2016-02-24 13:46               ` Philippe Leduc
@ 2016-02-24 18:15                 ` Sascha Hauer
  2016-02-25  8:44                   ` Philippe Leduc
  2016-02-25  9:16                 ` Holger Schurig
  1 sibling, 1 reply; 12+ messages in thread
From: Sascha Hauer @ 2016-02-24 18:15 UTC (permalink / raw)
  To: Philippe Leduc; +Cc: barebox

On Wed, Feb 24, 2016 at 02:46:08PM +0100, Philippe Leduc wrote:
> Victory!
> 
> I checked the timings with an oscilloscope by using Linux and
> everything except one pin is identical: LCD_ENABLE ^^ ' . It is a GPIO
> that let the display in sleep mode to limit consumption.
> 
> Note that splash utility continue to freeze the board.

No backtrace? Is it a BMP or a PNG that you are trying to show?

> 
> About the 'driver' that parse the dt to expose the timings, I'll clean
> up and let you review it (this time I'll use git to send you the patch
> :) )

Looking forward to it. I think it we had the issue with the missing
parallel display support before.

Sascha


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Help configuring i.MX6 IPUv3 with a parrallel display
  2016-02-24 18:15                 ` Sascha Hauer
@ 2016-02-25  8:44                   ` Philippe Leduc
  0 siblings, 0 replies; 12+ messages in thread
From: Philippe Leduc @ 2016-02-25  8:44 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox

There is no backtrace (but I do not try to increase the log level). I
re-test the behavior and splash crash only on PNG image (I enabled
picoPNG).


Philippe LEDUC
ledphilippe@gmail.com


2016-02-24 19:15 GMT+01:00 Sascha Hauer <s.hauer@pengutronix.de>:
> On Wed, Feb 24, 2016 at 02:46:08PM +0100, Philippe Leduc wrote:
>> Victory!
>>
>> I checked the timings with an oscilloscope by using Linux and
>> everything except one pin is identical: LCD_ENABLE ^^ ' . It is a GPIO
>> that let the display in sleep mode to limit consumption.
>>
>> Note that splash utility continue to freeze the board.
>
> No backtrace? Is it a BMP or a PNG that you are trying to show?
>
>>
>> About the 'driver' that parse the dt to expose the timings, I'll clean
>> up and let you review it (this time I'll use git to send you the patch
>> :) )
>
> Looking forward to it. I think it we had the issue with the missing
> parallel display support before.
>
> Sascha
>
>
> --
> Pengutronix e.K.                           |                             |
> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Help configuring i.MX6 IPUv3 with a parrallel display
  2016-02-24 13:46               ` Philippe Leduc
  2016-02-24 18:15                 ` Sascha Hauer
@ 2016-02-25  9:16                 ` Holger Schurig
  1 sibling, 0 replies; 12+ messages in thread
From: Holger Schurig @ 2016-02-25  9:16 UTC (permalink / raw)
  To: Philippe Leduc; +Cc: barebox

> Note that splash utility continue to freeze the board.

I'm on an older Barebox (2015.12.0) and here splash works. I do
something like this in my env/bin/init:

        splash -x 550 -y 500 -b 0xffffff /env/logo.png
        pwm_02080000.period_ns=200000
        pwm_02080000.duty_ns=160000  
        pwm_02080000.enable=1
        fb0.enable=1
        gpio_set_value 191 1

$ file env/logo.png 
env/logo.png: PNG image data, 194 x 52, 8-bit/color RGB, non-interlaced

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2016-02-25  9:16 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-22 16:41 Help configuring i.MX6 IPUv3 with a parrallel display Philippe Leduc
2016-02-23  8:32 ` Sascha Hauer
2016-02-23 11:47   ` Philippe Leduc
2016-02-24  8:22     ` Philippe Leduc
2016-02-24 11:15       ` Sascha Hauer
2016-02-24 12:39         ` Philippe Leduc
2016-02-24 12:43           ` Sascha Hauer
2016-02-24 12:50             ` Philippe Leduc
2016-02-24 13:46               ` Philippe Leduc
2016-02-24 18:15                 ` Sascha Hauer
2016-02-25  8:44                   ` Philippe Leduc
2016-02-25  9:16                 ` Holger Schurig

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox