This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

LCD boot splash output and 18-bit LCD

Hello,

I have been working on getting u-boot on the ti8147 to output a boot logo to the LCD on startup, using the following primarily as a guide:

http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/t/220648.aspx

I've got it working fine with the EVM, but on our custom target the colors are slightly off (white content has a slightly blue tinge and the image is darker than expected).

It's worth noting that once we get to userland and load the real firmware, the LCD output is perfect, suggesting we're missing some register setting in u-boot.

We had to add the following line to u-boot to get the image to render properly:

__raw_writel(0x00000400, VPDMA_GRPX2_DATA_CSTAT);

However this causes the color problem.  With the default line of the following, the color is properly output but the image scrolls.

__raw_writel(0x00001C00, VPDMA_GRPX2_DATA_CSTAT);

Thinking the register is a bitmap and I need some union of the two sets of values, I've tried 0x00001400, 0x00001800, and 0x00000c00, none of which produced a valid picture.

There's actually no public documentation on the VPDMA_GRPX2_DATA_CSTAT register (0x4810d384).  Can we get a copy of the register description for that register so that we can properly setup the output configuration?  Alternatively if you could suggest the correct value to use for a 18-bit LCD with 480x640 resolution (RGB, six bits per channel), we're happy to try that out.

Thanks in advance,

Devin

  • Hi Devin,

     

    We should set this register as below and set the frame size in the GRPX same as the VENC frame size, otherwise image output will scroll.

    __raw_writel(0x00001C00, VPDMA_GRPX2_DATA_CSTAT);

     

    Regards,

    Brijesh Jadav

  • Btw, What color issue do you see when you set this register to 0x00000400?

     

    Rgds,

    Brijesh

  • Hi Brijesh,

    Thanks for taking the time to respond!

    Could you please be more specific as to which registers you are referring to for the GRPX and VENC?  Do you mean the arguments being passed to ti814x_vps_configure_venc()?

    Assuming those are the registers you are referring to, right now I'm using the following:

            /* LCD output Setup */
            ti814x_vps_configure_venc(VPS_REG_BASE + 0xA000, 480, 486, 500, 502, 640, 641, 642, 648, 0, 1, 1);
            /* HDMI setup (same as dvo2 setup or else it won't work) */
            ti814x_vps_configure_venc(VPS_REG_BASE + 0x6000, 480, 486, 500, 502, 640, 641, 642, 648, 0, 1, 1);

    Strange enough, the HDMI output has to be configured the same as the LCD, even though I don't have the HDMI output populated.  I figured this might be because the DVO2 is using the HDMI clock, but I figured I would mention it.

    If there is something else I have to configure to avoid the scrolling while the register is set to 0x1c00, please let me know.

    The color looks correct when set to 0x1c00, so if we can solve the scrolling problem by setting some other register, I believe that will solve my problem.

    Devin

  • The color issue when set to 0x00000400 is a bit difficult to describe, and because it's an LCD display I found I couldn't really photograph it in a way that showed the problem (since cameras themselves often have color variation due to lighting, etc).

    The best I can describe it is that if I send an entirely white field (e.g. RGB color 000000), the actual color comes out as having a slightly blue hue and the image is darker than would be expected.

    By comparison if I boot entirely into userland, load the firmware, and then put out the same white image, it looks perfect (pure 100% white with a high level of brightness).

    Devin

  • Hi Davin,

     

    Yes, i am referring to these registers, it looks like you are configuring VENC for the 480x640 resolution, but GRPX in bootlogo is by default configured for 640x480 resolution, so you will need to change grpx configuration for the 480x640 resolution. There is some macros like GRPX_WIDTH and GRPX_HEIGHT, please try changin these macros to match grpx frame size with the VENC.

    I am not sure which pclk is used for the DVO2 output in bootlogo, but DVO2 can be sourced from the HDMI pclk.

     

    Regards,

    Brijesh Jadav 

  • Hi Brijesh,

    Just to be clear, the display really is 480x640, and not 640x480 - it's not a typo.

    Are you referring to the WIDTH and HEIGHT macros in include/logo.h?  If so, I already have those configured:

    #define WIDTH                           480
    #define HEIGHT                          640

    Or is there some other #define that I'm missing?

    Do you have any other thoughts on where the problem could be?

    Devin

  • Hi Davin,

     

    Rolling of display can come only if there is a size mismatch between display and grpx, so could you please recheck if the size configured is really getting used correctly? Venc is configured correctly? Can you enable color bar and see if it comes out correctly?

     

    Rgds,

    Brijesh

  • Hello Brijesh,

    I will take another look at the code and see if I can spot a mismatch.  Do you know which VENC argument specifically causes this scrolling behavior?   That might help me narrow it down.

    Admittedly the VENC parameters I arrived at was done through trial and error - the documentation on how to determine the correct parameters is essentially non-existent.

    Thank you for your continued guidance and support.

    Devin