Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

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.

Linux/AM3352: Maintaining splash screen through kernel boot

Part Number: AM3352

Tool/software: Linux

Hi,

We are using a custom board based on AM3352.  Currently we are able to display logo in LCD at the u-boot level. I did the u-boot changes based on http://processors.wiki.ti.com/index.php/Processor_SDK_Linux_U-Boot_Splash_Screen 

At u-boot frambuffer address is configured ad CONFIG_FB_ADDRESS 0x83000000

Once kernel boot, the display no longer holds the image from u-boot due to framebuffer and LCD reinitialization. So

1) How to maintain same framebuffer address throughout u-boot and kernel boot.

2) How to avoid re-initialization of LCD core.

Our goal is to display logo throughout uboot and kernel boot without any flickering.

I'm using processor-sdk-04.01.00.06 version

Regards,
Manoj

  • Will get back on this post. Please expect some delay in response. 

  • HI Manisha,

    Any update on this..?

    Regards,
    Manoj
  • Hi Manoj,

    Since such solutions are not upstreamable, we do not support them.  You will have to work on it by yourself. All the driver codes are available in Processor SDK and also on TI git repo. 

    Manoj Kumar said:
    1) How to maintain same framebuffer address throughout u-boot and kernel boot.

    You will have to find some mean to preserve and pass the buffer address to kernel driver. 

    Manoj Kumar said:
    2) How to avoid re-initialization of LCD core.

    Please look at the driver code and comment the ones that deals with lcdc clocking and resetting. 

    You may find this application note on early splash screen useful though for different device. You may also want to google if any other customers did such work already on AM335x and have their code publicly available in some repository. 

  • Hi Manish,

    I followed reference as you mentioned. I tried to avoid lcdc clock reset during kernel boot but lcdc clocks are disbled once kernel boot and again it is getting initialized during lcdc driver load. Below are my changes

    --- a/arch/arm/mach-omap2/omap_hwmod.c
    +++ b/arch/arm/mach-omap2/omap_hwmod.c
    @@ -2558,6 +2558,8 @@ static int __init _init(struct omap_hwmod *oh, void *data)
    if (np) {
    if (of_find_property(np, "ti,no-reset-on-init", NULL))
    oh->flags |= HWMOD_INIT_NO_RESET;
    + if (of_find_property(np, "ti,enable-opt-clks-on-reset", NULL))
    + oh->flags |= HWMOD_CONTROL_OPT_CLKS_IN_RESET;
    if (of_find_property(np, "ti,no-idle-on-init", NULL))
    oh->flags |= HWMOD_INIT_NO_IDLE;
    if (of_find_property(np, "ti,no-idle", NULL))


    --- a/drivers/clk/clk.c
    +++ b/drivers/clk/clk.c
    @@ -878,6 +878,7 @@ static int clk_disable_unused(void)
    {
    struct clk_core *core;

    + return 0;
    if (clk_ignore_unused) {
    pr_warn("clk: Not disabling unused clocks\n");
    return 0;


    &lcdc {
    compatible = "ti,am33xx-tilcdc";
    status = "okay";
    + ti,enable-opt-clks-on-reset;

    blue-and-red-wiring = "crossed";
    };

    and

            lcd_gclk: lcd_gclk@534 {
                    #clock-cells = <0>;
                    compatible = "ti,mux-clock";
                    clocks = <&dpll_disp_m2_ck>, <&dpll_core_m5_ck>, <&dpll_per_m2_ck>;
                    reg = <0x0534>;
                    ti,set-rate-parent;
                    ti,enable-opt-clks-on-reset
            };




    Even I tested with modifying omap_hwmod_7xx_data.c adding flag HWMOD_CONTROL_OPT_CLKS_IN_RESET in lcdc hwmod.

    How to avoid lcdc clock disable at start of kernel boot.


    Regards,
    Manoj

  • Hi Manoj,

    I am afraid to say that this is not trivial task and the IP clock settings are checked at multiple stages between uboot and driver load. Unless we try it out our self, we are not in situation to provide suggestion. At this moment, there is no plan for us to get this working at our end.

    Regards,
    Manisha