i.MX6 frame buffer inside barebox?

Holger Schurig holgerschurig at gmail.com
Wed Jun 18 07:26:48 PDT 2014


Hi, I'm a bit puzzled. I compiled my barebox with

CONFIG_CMD_SPLASH=y
CONFIG_VIDEO=y
CONFIG_DRIVER_VIDEO_IMX_IPUV3=y
CONFIG_DRIVER_VIDEO_IMX_IPUV3_LVDS=y
CONFIG_DRIVER_VIDEO_SIMPLEFB=y

and some entries in the device tree about it (see below). And when I
boot barebox, I see /dev/fb0.

However, the LVDS signals don't come out of the CPU, e.g. LVDS_CLK0_P
/ LVDS_CLK0_N is silent. Do I need something to enable the drive as
well?  Simply writing to /dev/fb0, e.g. with the "splash" or "mw -d
/dev/fdb0" command, doesn't seem to do the magic.

As soon as I boot Linux, the LVDS signals come to live. That I cannot
yet see if it's correct because of an backlight issue is some entirely
different issue :-)


Also, what I noticed is that some clocks with "ipu" in their name are
on, others are off:

barebox:/ clk_dump
...
                    ipu1_sel (rate 528000000, enabled)
                        ipu1_podf (rate 264000000, enabled)
                            2400000.ipu_di0_pixel (rate 264000000, enabled)
                            2400000.ipu_di1_pixel (rate 264000000, enabled)
                    ipu2_sel (rate 528000000, enabled)
                        ipu2_podf (rate 264000000, enabled)
                            2800000.ipu_di0_pixel (rate 264000000, enabled)
                            2800000.ipu_di1_pixel (rate 264000000, enabled)

...
    pll5_video (rate 288000000, disabled)
        pll5_post_div (rate 72000000, disabled)
            pll5_video_div (rate 72000000, disabled)
                ldb_di0_sel (rate 72000000, disabled)
                    ldb_di0_div_3_5 (rate 20571428, disabled)
                        ldb_di0_podf (rate 10285714, disabled)
                ldb_di1_sel (rate 72000000, disabled)
                    ldb_di1_div_3_5 (rate 20571428, disabled)
                        ldb_di1_podf (rate 10285714, disabled)
                ipu1_di0_pre_sel (rate 72000000, disabled)
                    ipu1_di0_pre (rate 24000000, disabled)
                        ipu1_di0_sel (rate 24000000, disabled)
                ipu1_di1_pre_sel (rate 72000000, disabled)
                    ipu1_di1_pre (rate 24000000, disabled)
                        ipu1_di1_sel (rate 24000000, disabled)
                ipu2_di0_pre_sel (rate 72000000, disabled)
                    ipu2_di0_pre (rate 24000000, disabled)
                        ipu2_di0_sel (rate 24000000, disabled)
                ipu2_di1_pre_sel (rate 72000000, disabled)
                    ipu2_di1_pre (rate 24000000, disabled)
                        ipu2_di1_sel (rate 24000000, disabled)
...

What part of barebox is responsible to enable the needed clocks?



&ldb {
        status = "okay";

        lvds-channel at 0 {
                status = "okay";
                fsl,data-mapping = "spwg";
                fsl,data-width = <18>;

                display-timings {
                        timing0: 800x600 {
                                clock-frequency = <35338240>;
                                hactive = <800>;
                                vactive = <600>;
                                hfront-porch = <46>;
                                hback-porch = <100>;
                                hsync-len = <20>;
                                hsync-active = <1>;
                                vfront-porch = <12>;
                                vback-porch = <23>;
                                vsync-len = <10>;
                                vsync-active = <1>;
                        };
                };
        };
};



More information about the barebox mailing list