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:通过内核引导维护闪屏

Guru**** 2540720 points
Other Parts Discussed in Thread: AM3352

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/663860/linux-am3352-maintaining-splash-screen-through-kernel-boot

器件型号:AM3352

工具/软件:Linux

您好!

我们使用的是基于 AM3352的定制板。  目前、我们能够在 u-boot 级别在 LCD 中显示徽标。 我根据 http://processors.wiki.ti.com/index.php/Processor_SDK_Linux_U-Boot_Splash_Screen 执行了 u-boot 更改 

u-boot 帧缓冲地址配置为 AD CONFIG_FB_address 0x83000000

内核启动后、由于帧缓冲区和 LCD 重新初始化、显示屏不再保存 u-boot 中的映像。 所以

1) 1)如何在整个 u-boot 和内核引导过程中保持相同的帧缓冲区地址。

2) 2)如何避免 LCD 内核重新初始化。

我们的目标是在整个 uboot 和内核启动过程中显示徽标、而不会出现任何闪烁。

我使用的是 PROCESSOR-SDK-04.01.00.06版本

此致、
曼诺伊

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们将回到这个帖子。 请预计会有一些延迟。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、Manisha、

    有任何更新...?

    此致、
    曼诺伊
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Manoj、

    由于此类解决方案不支持上流、因此我们不支持它们。  您必须自行处理。 处理器 SDK 和 TI git repo 中均提供了所有驱动程序代码。  

    [引用 user="Manoj Kumar ]1)如何在整个 u-boot 和内核启动过程中保持相同的帧缓冲区地址。

    您必须找到一些保留缓冲区地址并将其传递给内核驱动程序的方法。  

    Manoj Kumar 说:
    2)如何避免 LCD 内核重新初始化。

    请查看驱动程序代码并评论处理 LCDC 计时和复位的驱动程序代码。  

    您可能会在早期启动屏幕上发现此应用手册对不同器件有用。 如果有任何其他客户已经在 AM335x 上执行了此类工作、并且在某些存储库中公开了他们的代码、您可能还需要使用 google。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Manish、您好!

    正如您提到的、我遵循了参考。 我曾尝试在内核启动期间避免 LCDC 时钟复位、但一旦内核启动、LCDC 时钟就会被解码、并且在 LCDC 驱动程序加载期间重新初始化。 以下是我的更改

    -- a/arch/arm/mach-omap2/omap_hwmod.c
    ++ b/arch/arm/mach-omap2/omap_hwmod.c
    @@-2558、6 +2558、8 @@静态 int __init _init (struct omap_hwmod *oh、void *数据)
    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_CONTRAL_OPT_CLKS_IN_RESET;
    if (of _find_property (np、"ti、no-ide-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 @@静态 int clk_disable_unused (void)

    struct clk_core *内核;

    +返回0;
    if (clk_ignore_unused){
    PR_WARN ("clk:不禁用未使用的时钟\n");
    返回0;


    LCDC{
    兼容="ti、am33xx-tilcdc";
    状态="正常";
    + ti、enable-opt-clks-on-reset;

    蓝色和红色接线="交叉";
    };

           lcd_gclk:lcd_gclk@534{
                   #clock-cells =<0>;
                   兼容="ti、mux-clock";
                   时钟=<&DPLL_disp_m2_ck>、<&DPLL_CORE_M5_ck>、<&DPLL_PER_m2_ck>;
                   reg =<0x0534>;
                   TI, set-rate-parent;
                   TI、启用-选择- CLKS-ON-RESET
           };




    甚至我也通过修改 OMAP-hwmod_7xx_data.c 进行了测试、在 LCDC hwmod 中添加了标记 HWMOD_CONTRAL_OPT_CLKS_IN_RESET。

    如何避免在内核启动时禁用 LCDC 时钟。


    此致、
    曼诺伊

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Manoj、

    恐怕这不是一项微不足道的任务、IP 时钟设置会在 uboot 和驱动程序负载之间的多个阶段进行检查。 除非我们亲自尝试,否则我们不会提出建议。 目前,我们没有计划使这项工作最终完成

    此致、
    Manisha