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.

splash screen support in uboot@Blaze board(OMAP4c)

Other Parts Discussed in Thread: TWL6030

Hi , Is there splash screen support in U-boot for Blaze board(Omap4x) is there.For beagle board it is there. While looking in to the beagle board u-boot code for splash screen i found that we are writing hardcoded pixel array to FrameBuffer( add->0x80500000). I have the following doubts. 1) Does the frameBuffer address is same for OMAP4x. 2) Why we are initializing the Encoder registers(VENC) as we are using SDI interface in beagle board. 3) Does initializing the DSI1 and DSPC and writing pixel array directly to frame buffer will help me in geeting splash screen.Am i missing some initialization.(fpr Blaze board(OMAP4))

  • According to the system block diagram found here: http://omapworld.com/blaze.html the displays are connected with DSI, not SDI.

     

  • I am not able to access(Read or Write) DSI and DSIPC Registers(Physical address on L4 interconnect) in u-boot of OMAP4.If i do any read write operation on DSI or DSIPC registers,U-boot hangs.While on the other hand UART,I2C ....registers are accesible.Am i missing something??????

  • Govind,

    It is possible to make a splash screen during u-boot on OMAP4, as with Beagle Board.

    You can include a logo.h header file with "static char * header_data" that contains your desired splash screen bitmap, as done on Beagle Board: https://groups.google.com/group/beagleboard/attach/3416ad0648deea06/u-boot_v1_beagle_logo.patch.bz2?part=2&view=1

    You will need to configure the DSS clocks (0x4A00 9104 and 0x4A00 9120), and the DISPC registers (0x5800 1010 - 0x5800 1804) in the u-boot, depending on the display used on your platform.  Please reference the TRM, section 10.2.7.3, for a detailed description of these registers.  You can also use as a reference the settings for these registers given in the kernel for your platform, in /drivers/video/omap2/dss, especially dss.c and disp.c.

    The Beagle Board patch uses 0x80500000 as the start address for the pixel data, as you mentioned.  You can see that this is the value assigned to registers DISPC_GFX_BAj, which configures the base address of the graphics buffer displayed in the graphics window, as shown in the TRM.  The same address could be used for OMAP4, if it is configured consistently.

    Regards,

    Gina

  • Hi   Govind Singh

          May i ask something issue about it ,i want to know how to configure the dispc register .I configured the register but it doesnot  work . thanks

    Johnny

  • Johnny,

    Which dispc register specifically are you asking about?  What is the behavior you see in your system now?  Is this on a Blaze / Blaze Tablet or on a custom board with a different display?

    Regards,

    Gina

  • Gina ,

    Thanks you reply ,we select the channel LCD2 and dpi .I  want to display logo on the u-boot ,and i configure the dss  dispc register ,but it nothing on my system .how to do it  . thanks

    johnny

  • Johnny,

    Is your display working at the kernel level?  If so, you could take a dump of the DISPC registers that you are using after bootup and have the u-boot set the registers to these same values.  You could contact your TI representative for access to the omapconf tool for an easy way to dump the registers, or you could use devmem2 (http://elinux.org/Board_Bringup_Utilities ).

    Regards,

    Gina

  • If u are not able to write to any DISPC register,probably u have not enabled the interface clock..else it will work fine.

    make sure you have enabled interface clock and DISPC clock.

  • Hi Govind Singh ,

         I can get dispc clk,i fill in white in the lcd,and it can display ,but it have some issue.There have  some rule of black line,i donot know why

  • Johnny,

    Do you mean that there are some rows of black along the bottom of the LCD, when you are trying to display all white?  I believe this could be due to incorrect setting of the DISPC_DIVISOR registers, which handle the divisors for each LCD pixel clock.  How are you setting these registers?  I believe you should use:

                sr32(0x58001804, 0, 32, 0x10001);  // DISPC_DIVISOR  LCD

                sr32(0x5800140c, 0, 32, 0x10003);  // DISPC_DIVISOR2  LCD2 - PCD2

    Regards,
    Gina

  • hi Gino I use the divisors2 ,and there have some rows of black on the lcd  surface when i display all white .

  • Johnny,

    Is your display working at the kernel level, and are you using the same register settings in the u-boot as in the kernel?

    Regards,
    Gina 

  • Gino,

       Thanks for you advices , now i can display the logo .but it doesn't keep display  when it enters the kernel .How to do it ,can you give me some guide .

    johnny .

  • Johnny,

    What happens when the kernel boots?  There is no longer anything on the display, or the logo becomes distorted / dirty pixels?

    As a test, you can look at the omap_dss_probe function in drivers/video/omap2/dss/core.c.  Notice that the function dss_init_overlays is called right away; at boot time the DSS core is disabling all of the pipelines in order to put them in the initial state.  Here you could set the GFX videopipe that was used in the uboot to not be disabled, or to look for the same memory address that was used in the uboot.

    Regards,
    Gina

  • Hi Gino ,

          When the kernel boots ,the logo becomes dirty pixels.and i used the memory address is 0x80500000.thanks

  • Hi Gino ,

        Thank you ! Now i can work when the kernel boot.

    johnny

  • Hi Johnny,

    Glad that it is working now.  Can you please mention the fix that you did or select "verified answer" for the post that solved your issue?

    Thank you,

    Gina

  • Hi Gina,

      Thanks for pointing me out to this [splash screen support in uboot@Blaze board(OMAP4c)]

    I did configure all clocks/registers.

    To verify the same, i printed the DSS/DISPC/DSI registers in the kernel and hard-coded those

    values in U-Boot. Also did panel configuration.

    But unfortunately, i still don't see anything on my screen. I see the back-light coming up, but

    no image. Am i missing something.

    Thanks,

    Richard.

  • In the current code, the kernel would be reinitializing everything (overlay, manager, display, etc) when omapdss module and panel driver is configured...  you would need to hack a lot of things on kernel side to make this. First of all, it depends on your specific use case. You want to keep the logo until 'what' happens in the kernel?

    1.- One option is do not initialize anything related to DSS on kernel side, and keep the current DSS configuration from u-boot.

    2.- Another option is to pass the pointer from the u-boot to the kernel somehow, reinitialize everything on kernel, and just then use the same pointer as the base address for the corresponding pipeline (overlay). This option would be much easier if the framebuffer have the same characteristics on u-boot and kernel.

    For option 1, you would probably need to build some modules as external modules and load them just when you want to load kernel display config and say good bye to the u-boot logo, and hope (or solve) any dependencies that could arise. Either load the modules dynamically, or add some way to avoid reinitializing the important things until something happens, for instance, some module parameter change.

  • Gina,

    Excuse me, I have some question about framebuffer.

    Now we also try to make a splash screen during u-boot on OMAP4. First, we can set default background color and display the color on screen successfully during u-boot. Then, we follow your suggestion to include a logo.h and configue all of the DISPC registers as the same as these registers given in the kernel for our platform. But no splash screen appears.

    You say Beagle Board uses 0x80500000 as the start address for the pixel data and the same address could be used for OMAP4. Is it physical address of fb0 ? We can cat /sys/class/graphics/fb0/phys_addr then get the value 0xACA00000.

    What's wrong with us ? Could you give us any suggestion ?

    Best regards,

    Yumpy

  • The address of 0x80500000 is simply a valid physical address. On u-boot level, there is no OS memory management so it seems like you can simply use memory directly that way. The important thing is that this memory region is used only for this purpose and that the pointer is stored on the corresponding pipeline base address. In this case, I assume you are using GFX pipeline, so you would need to configure DISPC_GFX_BA_0 register to use this 0x80500000 address as the base pointer for the framebuffer pixel data.

  • Hi,

    I was trying to bring up the splash screen on uboot (omap4) , i have merged the changes from http://review.omapzoom.org/#/c/23975/

    in 3 files logo.h, oma4439sdp.c and twl6030.c , also i have enabled splash screen configuration on omap4430sdp.h . but i am getting the build errors in lced.c  file and others.  can anyone share the link for working uboot in which changes are done and splash screen coming up. i have blaze board with me to test.

    Thanks,

    Pawan

  • Hi Pawan

    You should be able to apply the patch if you get uboot with this:


    cd ${YOUR_PATH} git clone git://git.omapzoom.org/repo/u-boot.git u-boot cd u-boot git checkout b2f9ce5c0c2747f1af86d26f9cadbc36af9b7da6

    See http://omappedia.org/wiki/4AI.1.4_OMAP4_Icecream_Sandwich_Release_Notes


    However, this only works for Blaze Tablet and Blaze Tablet 2.

    The Original Blaze with two screens are command mode displays and do not have the Toshiva DSI-2-LVDS bridge and so need to be configured differently.

    Regards
    Rafael
  • Hi, Rafael.

    Is there any patch to add splash screen on kernel level?

    You can show image in U-Boot, but when kernel will start it clear all data and pipelines.

    WBR,

  • Hi Rafael


    This is in line with whatever Pawan Kuamar1 has done. I do not have any build errors.

    In fact I somehow managed to the backlit up and running in place of the splash screen.

    What am I doing wrong.. Please help me get the splash screen up. I have even generated a new logo 

    whose width is 480*800 which matches the board's screen resolution.

    I have done all the changes as suggested at  http://review.omapzoom.org/#/c/23975/. I understand that the changes are for 

    Blaze Tablet 2, and I'm using a Blaze Board, but can u please have a look at what I'm missing.

    0624.omap4430sdp.c