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.

Configuring OMAP4460 kitkat for RGB565.

Hi all,

I am working on omap4 kitkat android on Panda board .I want to use a lcd of 432 x240 resolution with RGB565 frame format.

I know omap4 can support RGB565 frame format.

I have few doubts about configuring omap4 for RGB565 frame format.

1) Currently omap4(panda board) is configured for HDMI (RGB888) how can i configure for LCD(RGB565). From bootarguments we can only tell the frame buffer size , mode also (i think mode is telling which frame format we well use but according to omafb.mode argument format we are just passing resolution, name and bits per pixel) .By telling omapfb.mode is frame format RGB565 can be set ? And what other changes i need to make in display and frame buffer driver side to configured it to RGB565 with resolution 432x240.

2) I also want to change the frame buffer size to fit 1 frame of 432x240.Is it any way to tell android that send a frame with size up to 432x240 , otherwise if android send a frame of more then required resolution then crash can happen.

3) Any document to understand the video drivers/software architecture in omap4 with android.

Thanks and regards

Vicky

  • If you are not able to find solution, i would like to suggest please post your answer here. there are more number of TI android experts available to suggest you proper way!

  • Hello Vicky,

    The answers on your questions are:

    #Q1 and #Q2: You can configure LCD(RGB565) as use boot arguments by following steps:

    DSS specific boot arguments:

    - mode:

    omapfb.mode=<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m] or <name>[-<bpp>][@<refresh>]
            - Default video mode for specified displays. For example - "dvi:800x400MR-24@60".
              <xres>, <yres>, <bpp> and <refresh> are decimal numbers and <name> is a string.
              <xres> is resolution in x-axis.
              <yres> is resolution in y-axis.
              <bpp> is bit per pixel.
              [M] will allow to compute the timings using VESA(tm) Coordinated Video Timings (CVT).
              [R] will allow to compute with reduced blanking (for flatpanels).
              [i] will allow to compute interlaced mode.
              [m] will add margins equal to 1.8% of xres rounded down to 8 pixels, and 1.8% of yres. 
              
              NOTE: The char 'i' and 'm' must be after 'M' and 'R'. Example:
              
              Just for information: 1024x768MR-8@60m = Reduced blank with margins at 60Hz.
              
              For more information, See drivers/video/modedb.c.
              There are also two special modes: "pal" and "ntsc" that can be used to tv out.

    - HDMI:
    This holds only for L24.8 release or earlier. Auto detection for TV is enabled post L24.8.
             omapdss.hdmicode = {Timing value supported by the TV} omapdss.hdmimode = {Mode DVI or HDMI depending on the timing}
             - By default the value of hdmicode = 16 {1080p} and hdmimode = 1 {HDMI mode} is taken.
    
    - vram - frame buffer change:
            omapfb.vram=<fbnum>:<size>[@<physaddr>][,...]
             - VRAM allocated for a framebuffer. Normally omapfb allocates vram
               depending on the display size. With this you can manually allocate
               more or define the physical address of each framebuffer. For example,
               "1:4M" to allocate 4M for fb1.

    For more information refer to http://omappedia.org/wiki/Bootargs_for_enabling_display#DSS_specific_bootargs

    #Q3: I don't know for availability of such document. However, I suggest seeing http://www.ti.com/lit/wp/swpy027/swpy027.pdf   and http://www.omappedia.com/wiki/OMAP_Android_Main


    Best regards,

    Yanko

  • Hi Yanko,

    Thanks for your quick reply.

    As u mentioned that writing into omapfb.mode we can set RGB565 frame format,but according to arguments---

    omapfb.mode=<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m] or <name>[-<bpp>][@<refresh>]

    xres and yresolution tells resolution of picture in pixels.
    [M][R] is for redusing blanking and using VESA standard timings.
    bpp is bits per pixel.
    refresh is refresh rate of frames.

    Where we'll define RGB565?

    And for frame buffer size we can set it to
    omapfb.vram=2M (as per required frame size 432x240x16) but if android send a frame whose size 
    is greater then 2M then crash will happen.So to stop this crash, i think we need to make changes in
    android side also,so that android will send a frame of size less then or equal to 2M
    So do u have any idea how to solve this problem.
    Thanks and Regards
    Vicky