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.

[参考译文] AM625:如何从 OSPI 加载引导标识

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1501067/am625-how-to-load-boot-logo-from-ospi

器件型号:AM625

工具/软件:

您好 TI  

我们使用的是 Yocto SDK 9.0

我们希望在 OSPI NOR 中存储标识.bmp、并在启动时加载它以加快速度。

根据此指南、 https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/latest/exports/docs/linux/Foundational_Components /U-Boot/UG-splash-Screen.html#flicker-free-display-over-boot-stages-and-linux-kernel

我们进行如下处理、但无法看到所示的图像。

=> SF probe
 => fatload mmc 1 $loadaddr file_name.bmp
 => SF update $loadaddr 0x700000 $filesize 

然后、  

Paul@44服务器:~/300G_HDD/ti_am62x/build/arago-tmp-default-glibc/work/am62xx_evm_k3r5-oe-linux-gnueabi/u-boot-ti-staging/1_2023.04+gitAUTOINC+2409890ead-r0.pgit3/git/am62x/board/tiam62x/board/am62x$
splashfile=file_name.bmp
splashimage=0x80200000
splashpos=m,m
splashsource=sf

(在我们的测试结果中,该.h 文件 中的标识图像在加电时显示在屏幕/LCD 上,但在 OSPI NOR 中不显示.bmp ; sources/meta-arago/meta-arago-distro /食谱-core/psplash/psplash/psplash-poky-img.h )

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

    您好、
    您是否能够使用以下命令看到您的启动画面:

    #To see all the files in your boot partition run
    => ls mmc 1
    
    #To load image
    => fatload mmc 1 $loadaddr ti_logo_414x97_32bpp.bmp.gz
    
    #To display image
    =>  bmp display $loadaddr m m

    您的显示分辨率是多少?

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

    你好 

    由于我们的定制电路板显示/面板接口为 DPI、u-boot 不支持其驱动程序、因此我们可能无法在 u-boot 上从 OSPI 验证此区别映像。  

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

    您是否尝试通过 DPI 显示引导标识? 目前、我们的 U-Boot 驱动程序不支持 DPI 上的标识、而是 OLDI 上的标识。 即使您尝试显示来自 OSPI 的图像、我们目前仅支持 OLDI。
    您是否说您有一个定制的 U-Boot 驱动程序来支持 U-Boot 中的 DPI?

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

    你好 

    谢谢、我们将移植定制 U-boot 驱动程序。 准备就绪后、我们将重新开始验证。 该主题现在可以关闭。  

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

    谢谢。
    请告诉我、如果需要补丁来帮助在 U-Boot 中启用 DPI (而非 HDMI)、我们可能会提供帮助。

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

    你好 

    很高兴得到这个补丁。 请与我们分享。

    仅供参考、我们将引用此主题并应用修改、但仍不起作用。

    e2e.ti.com/.../am625-how-to-develop-dpi-display-driver-in-uboot 或 https://drive.google.com/file/d/19d2Da-Em52XcmJd0RJJdz9JpC3Q99TnR/view

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

    将在星期一分享。

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

    您好、
    请测试以下内容(由于我们无法在 EVM 上测试 DPI 显示、因此未在我们的终端完全测试)

    diff --git a/arch/arm/dts/k3-am625-sk-u-boot.dtsi b/arch/arm/dts/k3-am625-sk-u-boot.dtsi
    index 2ef3f666987..e4ea9037f3e 100644
    --- a/arch/arm/dts/k3-am625-sk-u-boot.dtsi
    +++ b/arch/arm/dts/k3-am625-sk-u-boot.dtsi
    @@ -15,25 +15,30 @@
             bootph-pre-ram;
             compatible = "simple-panel";
             status= "okay";
    -        width-mm = <217>;
    -        height-mm = <136>;
    +               width-mm = <340>;
    +               height-mm = <190>;
             data-mapping = "vesa-24";
             panel-timing {
                 bootph-pre-ram;
    -            clock-frequency = <150274>;
    -            hactive = <1920>;
    -            vactive = <1200>;
    -            hback-porch = <32>;
    -            hfront-porch = <52>;
    -            vback-porch = <24>;
    -            vfront-porch = <8>;
    -            hsync-len = <24>;
    -            vsync-len = <3>;
    +                       clock-frequency = <148500>;
    +                       hactive = <1920>;
    +                       vactive = <1080>;
    +                       hback-porch = <148>;
    +                       hfront-porch = <88>;
    +                       vback-porch = <36>;
    +                       vfront-porch = <4>;
    +                       hsync-len = <44>;
    +                       vsync-len = <5>;
                 de-active = <1>;
             };
         };
     };
    
    diff --git a/drivers/video/tidss/tidss_drv.c b/drivers/video/tidss/tidss_drv.c
    index 865d4bddb7f..717c973e4f8 100644
    --- a/drivers/video/tidss/tidss_drv.c
    +++ b/drivers/video/tidss/tidss_drv.c
    @@ -43,10 +43,16 @@
     
     DECLARE_GLOBAL_DATA_PTR;
     
    +#define HDMI_SPLASH
    +
     /* Panel parameters */
     enum {
             LCD_MAX_WIDTH           = 1920,
    -       LCD_MAX_HEIGHT          = 1200,
    +       #ifdef HDMI_SPLASH
    +       LCD_MAX_HEIGHT          = 1080,
    +       #else
    +        LCD_MAX_HEIGHT          = 1200,
    +       #endif
             LCD_MAX_LOG2_BPP        = VIDEO_BPP32,
     };
     
    @@ -562,7 +568,7 @@ int dss_vp_enable_clk(struct tidss_drv_priv *priv, u32 hw_videoport)
     void dss_vp_prepare(struct tidss_drv_priv *priv, u32 hw_videoport)
     {
             dss_vp_set_gamma(priv, hw_videoport, NULL, 0);
    -       dss_vp_set_default_color(priv, 0, 0);
    +       dss_vp_set_default_color(priv, hw_videoport, 0);
     
             if (priv->feat->vp_bus_type[hw_videoport] == DSS_VP_OLDI) {
                     dss_oldi_tx_power(priv, true);
    @@ -758,6 +764,11 @@ static int dss_init_am65x_oldi_io_ctrl(struct udevice *dev,
             return 0;
     }
     
    +void dss_init_hdmi(void){
    +       struct udevice *dev;
    +       uclass_get_device_by_driver(UCLASS_VIDEO_BRIDGE, DM_DRIVER_GET(sil_sii902x), dev);
    +}
    +
     static int tidss_drv_probe(struct udevice *dev)
     {
             struct video_uc_plat *uc_plat = dev_get_uclass_plat(dev);
    @@ -768,7 +779,13 @@ static int tidss_drv_probe(struct udevice *dev)
             unsigned int i;
             int ret = 0;
             const char *mode;
    -
    +      
    +       #ifdef HDMI_SPLASH
    +       int hw_videoport = 1;
    +       #else
    +       int hw_videoport = 0;
    +       #endif
    +      
             priv->dev = dev;
     
             priv->feat = &dss_am625_feats;
    @@ -829,7 +846,7 @@ static int tidss_drv_probe(struct udevice *dev)
             dss_vid_write(priv, 0, DSS_VID_BA_1, uc_plat->base & 0xffffffff);
             dss_vid_write(priv, 0, DSS_VID_BA_EXT_1, (u64)uc_plat->base >> 32);
     
    -       ret = dss_plane_setup(priv, 0, 0);
    +       ret = dss_plane_setup(priv, 0, hw_videoport);
             if (ret) {
                     dss_plane_enable(priv, 0, false);
                             return ret;
    @@ -843,24 +860,26 @@ static int tidss_drv_probe(struct udevice *dev)
                     priv->base_ovr[i] = dev_remap_addr_name(dev, priv->feat->ovr_name[i]);
                     priv->base_vp[i] = dev_remap_addr_name(dev, priv->feat->vp_name[i]);
             }
    -
    -       ret = clk_get_by_name(dev, "vp1", &priv->vp_clk[0]);
    +      
    +       ret = clk_get_by_name(dev, dss_am625_feats.vpclk_name[hw_videoport], &priv->vp_clk[hw_videoport]);
             if (ret) {
                     dev_err(dev, "video port %d clock enable error %d\n", i, ret);
                     return ret;
             }
     
    -       dss_ovr_set_plane(priv, 1, 0, 0, 0, 0);
    -       dss_ovr_enable_layer(priv, 0, 0, true);
    +       dss_ovr_set_plane(priv, 1, hw_videoport, 0, 0, 0);
    +       dss_ovr_enable_layer(priv, hw_videoport, 0, true);
     
             /* Video Port cloks */
    -       dss_vp_enable_clk(priv, 0);
    +       dss_vp_enable_clk(priv, hw_videoport);
     
    -       dss_vp_set_clk_rate(priv, 0, timings.pixelclock.typ * 1000);
    +       dss_vp_set_clk_rate(priv, hw_videoport, timings.pixelclock.typ * 1000);
     
             priv->oldi_mode = OLDI_MODE_OFF;
             uc_priv->xsize = timings.hactive.typ;
             uc_priv->ysize = timings.vactive.typ;
    +      
    +       #ifndef HDMI_SPLASH
             if (priv->feat->subrev == DSS_AM65X || priv->feat->subrev == DSS_AM625) {
                     priv->oldi_mode = OLDI_DUAL_LINK;
                     if (priv->oldi_mode) {
    @@ -869,9 +888,12 @@ static int tidss_drv_probe(struct udevice *dev)
                                     return ret;
                     }
             }
    +       #else
    +       dss_init_hdmi();
    +       #endif
     
    -       dss_vp_prepare(priv, 0);
    -       dss_vp_enable(priv, 0, &timings);
    +       dss_vp_prepare(priv, hw_videoport);
    +       dss_vp_enable(priv, hw_videoport, &timings);
             dss_vp_init(priv);
     
             ret = clk_get_by_name(dev, "fck", &priv->fclk);
    
    diff --git a/dts/upstream/src/arm64/ti/k3-am62-main.dtsi b/dts/upstream/src/arm64/ti/k3-am62-main.dtsi
    index c7773e81a5b..2464b7bbda9 100644
    --- a/dts/upstream/src/arm64/ti/k3-am62-main.dtsi
    +++ b/dts/upstream/src/arm64/ti/k3-am62-main.dtsi
    @@ -457,7 +457,7 @@
                     power-domains = <&k3_pds 103 TI_SCI_PD_EXCLUSIVE>;
                     clocks = <&k3_clks 103 2>;
                     clock-names = "fck";
    -               status = "disabled";
    +               status = "okay";
             };
     
             main_i2c2: i2c@20020000 {  

    您需要根据显示面板修改时序参数。
    此外、如果需要、更新 LCD_MAX_WIDTH 和/或 LCD_MAX_HEIGHT。

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

    你好 

    谢谢、给定的补丁是哪个版本的 SDK 的? 我们正在使用 SDK 9.0、并检查了 SDK 11、 例如 arm/dts/k3-am625-sk-u-boot.dtsi 文件中没有看到"simple-panel"的 DTS。

    请您提供修改后的复杂文件、以便我们可以手动进行玛格。

    =====================

    以下是我们的 SDK 9.0  arch/arm/dts/k3-am625-sk-u-boot.dtsi 的内容:

    Paul@43服务器:~/300G_HDD/ti_am62x/build/arago-tmp-default-glibc/work/am62xx_evm_k3r5-oe-linux-gnueabi/u-boot-ti-staging/1_2023.04+gitAUTOINC+2409890ead-r0.pgit$\
    // SPDX-License-Identifier:GPL-2.0
    /*
    * SPL 的常用 AM625 SK dts 文件
    *版权所有(C) 2021-2022德州仪器(TI)公司- https://www.ti.com/
    */

    #include "k3-am62x-sk-common-u-boot.dtsi"
    #include "k3-am625-sk-binman.dtsi"

    &ospi0_pins_default{
    bootph-pre-ram;
    };

    &ospi0{
    bootph-pre-ram;

    闪存@0{
    bootph-pre-ram;

    分区{
    bootph-pre-ram;

    分区@3fc0000 {
    bootph-pre-ram;
    };
    };
    };
    };

    &vmain_pd{
    bootph-pre-ram;
    };

    &VCC_5v0{
    bootph-pre-ram;
    };

    &VCC_3V3_sys{
    bootph-pre-ram;
    };

    &VDD_SD_DV{
    bootph-pre-ram;
    };

    &VDD_SD_dv_pins_default{
    bootph-pre-ram;
    };

    =========

    我们也没有此路径/dts/upstream、src、arm64/ti/k3-am62-main.dtsi、但我们有 /arch/arm/dts/k3-am62-main.dtsi

    下面是我们在 SDK 9中的文件。

    e2e.ti.com/.../8780.k3_2D00_am625_2D00_sk_2D00_u_2D00_boot.dtsi.txt

    e2e.ti.com/.../tidss_5F00_drv.c.txt

    e2e.ti.com/.../8780.k3_2D00_am625_2D00_sk_2D00_u_2D00_boot.dtsi.txt

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

    SDK11.0

    我们看不到"simple-panel"
    的 DTS

    它不是 DTS、它与驱动程序兼容。 其驱动程序位于 drivers/video/simple_panel.c

    请提供修改后的复杂程序文件、以便我们可以手动进行格式化。

    e2e.ti.com/.../tidss_5F00_drv.c

    e2e.ti.com/.../2185.k3_2D00_am62_2D00_main.dtsi

    e2e.ti.com/.../k3_2D00_am625_2D00_sk_2D00_u_2D00_boot.dtsi

    我们也没有此路径、/dts/upstream src /arm64/ti/k3-am62-main.dtsi、但我们有 /arch/arm/dts/k3-am62-main.dtsi

    该路径适用于 SDK11.0。 建议您迁移到更新的 SDK。
    请注意、从之前分享的补丁中、tidss_drv.c 文件中省略了几行无用行。 其余部分相同。

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

    你好 

    增补程序部分已添加、编译成功。 但是、在 u-boot 阶段引导时不会显示任何内容。

    您可以提供一些调试提示吗?

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="563438" url="~/support/processors-group/processors/f/processors-forum/1501067/am625-how-to-load-boot-logo-from-ospi/5767343 #5767343"]

    您是否能够使用以下命令看到您的启动画面:

    全屏
    1.
    2.
    3.
    4.
    5.
    6.
    7.
    8.
    #要查看引导分区中的所有文件运行
    => ls MMC 1
    #加载映像
    => fatload mmc 1 $loadaddr ti_logo_414x97_32bpp.bmp.gz
    #显示图像
    => bmp display $loadaddr m m
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    您的显示分辨率是多少?

    [/报价]

    您现在可以重试这些命令吗?

    您是否在控制台中看到任何错误日志?

    您能否与这些补丁程序分享您的 DTS。

    您是否根据面板的需要更改了计时参数?

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

    你好 

    1.我们的显示分辨率是800*480

    1.2 fyi,在内核,下面的设置工作正常,我们的 LCD 背光和面板

    e2e.ti.com/.../kernel_5F00_dts_5F00_pannel.txt

    1.2 U-boot、修改如下。

    (现在我们开始处理 u-boot、所以 dts 不是干净的;但是我们尝试只添加您的给定试用补丁、然后现在调试 panel 的设置)

    e2e.ti.com/.../u_2D00_boot_5F00_after_5F00_modified_5F00_dts_5F00_tidds_5F00_drv.zip

    2.是的,控制台中的错误日志

    e2e.ti.com/.../error_5F00_in_5F00_console.txt

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

    谢谢。 我会重新检视它的。
    您是否还能在 SDK11.0上测试相同的组件、看看是否仍 观察到相同的行为?

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

    你好 

    感谢您逐步提供 u-boot 显示标识设置、因为我们尚不熟悉 u-boot SDK。

    是的、我们现在正在准备 SDK11.0

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

    您好、
    让我们分两个阶段来分解这个问题:
    1. DPI 上的启动界面
    2.来自 OSPI 的启动界面。

    专注于第1阶段、我在您的控制台中看到了错误日志。 请在 u-boot 存储库中的 am62x_a53_sokashscreen.config 中添加以下内容:

    CONFIG_CMD_BMP=y
    CONFIG_VIDEO_BMP_GZIP=y

    重新编译 u-boot 并重试这些命令。

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

    你好 

    添加以下配置后、现在没有显示错误。 (仍为黑屏;未显示任何内容)

    CONFIG_CMD_BMP=y
    CONFIG_VIDEO_BMP_GZIP=y

    ----------------------------------------

    U-Boot SPL 2023.04-g24098ea90d (2023年7月6日- 12:59:40 +0000)
    SYSFW ABI:3.1 (固件版本0x0009 '9.0.5--v09.00.05 (Kool Koala))
    SPL 初始栈使用量:1856字节
    尝试从 MMC2引导
    警告:在 GP 设备上检测到映像签名证书。 跳过证书以防止启动失败。 如果映像也经过加密、此操作将失败
    警告:在 GP 设备上检测到映像签名证书。 跳过证书以防止启动失败。 如果映像也经过加密、此操作将失败


    !12错误:%lx 处没有有效的 bmp 图像


    SoC:AM62X SR1.0 GP
    型号:德州仪器(TI) AM625 SK
    EEPROM 在80时不可用、尝试在81处读取
    读取0x51处的板载 EEPROM 失败- 1
    DRAM:2 GiB
    内核:70个器件、30个 uclasses、器件树:单独
    MMC:MMC@fa10000:0、MMC@fa00000:1
    从无处加载环境... 好的
    IN:串行
    输出:串行
    错误:序列
    EEPROM 在80时不可用、尝试在81处读取
    读取0x51处的板载 EEPROM 失败- 1
    网络:eth0:以太网@8000000port@1.
    按任意键停止自动引导:0
    => ls MMC 1
    EFI/
    21064192映像
    12285 ti_logo_414x97_32bpp.bmp.gz
    290965 tiboot3-am62x-gp-evm.bin
    293554 tiboot3-am62x-hs-evm.bin
    293554 tiboot3-am62x-hs-fs-evm.bin
    1138179 tispl.bin
    964787 u-boot.img
    574 uEnv.txt
    系统卷信息/
    290965 tiboot3.bin

    9个文件、2个目录

    => fatload mmc 1 $loadaddr ti_logo_414x97_32bpp.bmp.gz
    在17毫秒内读取12285字节(705.1KiB/s)
    => bmp display $loadaddr m m
    =>

    开机/控制台日志:

    e2e.ti.com/.../power_5F00_on_5F00_console_5F00_logtxt.txt

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

    内部查看。
    您能告诉我们您正在使用什么引导介质吗?
    是正常的 SPL 引导还是 SBL 引导?
    您是否曾尝试使用 SDK11?

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

    1.启动徽标为图片/bmp 或 png 正常

    2.我们使用 正常的 TI 引导流程,我认为默认情况下它如下。 我们的目标是在开机后尽快显示启动标识。

    (现在我们可以 使用 psplash 在内核上显示引导标识、但在开机后大约需要5秒显示。 我们希望在通电后的一两秒内显示启动标志-尽快)。 任何建议的流程,我们可以达到我们的目标,请指南。

    3.我们正在使用 diff build 环境编译 SDK 问题;可能需要两天的时间。 (e2e.ti.com/.../5793697

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

    默认情况下、在 SD 引导模式下、使用双链路 OLDI 时、可以在不到1.8秒内看到标识
    如果您将引导加载程序与启动界面映像一起保存在 OSPI_NOR 中、它将减少 约 一秒。

    在具有 SD 引导的双链路 OLDI 中、您可以在 U-Boot 终端启动之前看到启动画面。

    此日志与控制台中的我有关:
    !12错误:%lx 处没有有效的 bmp 图像

    这似乎是您在 U-Boot 控制台之前看不到启动画面的原因。
    将需要在内部讨论此问题、但开发人员本周目前处于不在办公室状态。

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

    您好、
    您能否确保中的启动界面文件图像的名称 /board-support/ /board/ti/am62x/am62x.env
    已正确指定为 splashfile=ti_logo_414x97_32bpp.bmp.gz

    此外、是否还能够在 SDK11上进行测试?

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

    你好 

    很抱歉、我最近才回复、因为我们刚刚在新的设置构建环境中修复了基于 SDK11的代码的编译问题。

    1.是的,它是默认代码,它有  splashfile=ti_logo_414x97_32bpp.bmp.gz

      我们是否必须先将映像写入 OSPI 存储器? 我不确定我们是否使用过覆盖任何其他图像。

      如果是、请提供命令行。

    2.我们尝试将补丁应用到 SDK 11 ,然后构建失败。 是否可以列出/提供必要的 config_?

    当前配置和如下所示的其他补丁:(我尝试同时启用早期 plash 和 uboot 正确 config_)

    e2e.ti.com/.../u_2D00_boot_2D00_dpi.patch.txt 

    构建命令:mache=am62xx-evm bitbake -c cleanstate tisdk-base-image;mache=am62xx-evm bitbake -k tisdk-base-image

    电流构建错误:

       | aarch64-oe-linux-ld.bfd:lib/display_options.o:在`display_options_get_banner_priv'函数中:
    |/usr/display/options/debug/u-boot-ti-staging/2025.01+git/lib/display_options.c src:23:(.text.display_options_get_banner_priv+0x8):对`version_string'的引用未定义
    | aarch64-oe-linux-ld.bfd:/usr/sdebug/u-boot-ti-staging/2025.01+git/lib/display_options.c src:23:(.text.display_options_get_banner_priv+0x38):未定义对`version_string'的引用
    | aarch64-oe-linux-ld.bfd:drivers/video/bmp.o:在函数`gunzip_bmp ':
    |/usr/gunzip/debug/u-boot-ti-staging/2025.01+git/drivers/video/bmp.c:60:(.text src gunzip_bmp+0x70):未定义对`gunzip'的引用
    |/usr/gunzip/debug/u-boot-ti-staging/2025.01+git/drivers/video/bmp.c src:60:(.text.gunzip_bmp+0x70):重定位被截断以适应:r_aarch64_CALL26针对未定义的符号`gunzip'

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

    首先让我们解决这个问题: !12错误:%lx 处没有有效的 bmp 图像

    如何引导? 使用 OSPI/eMMC/SD 卡?
    您的启动界面图像位于何处? OSPI/eMMC/SD 卡

    根据您的当前设置、似乎已连接 SD 卡、由于填充了 ls MMC 1、您正在尝试从 eMMC 引导(从 mmcdev 中看到)、并且由于 splashsource 为 SF、因此您会从 OSPI 显示启动屏幕。

    如果这是正确的解释、您 从 SD 引导时是否看到相同的"在%lx 处没有有效的 bmp 映像"错误?
    当您从 eMMC 引导并在 evm.c 中将 devpart 切换到0:1时会发生什么情况?

    不知道为何使用 Yocto 构建、可以通过在 SDK 中创建 u-boot 来测试这些基本构建。

    要将图像加载到 OSPI 中、您引用的命令是正确的(假设您已解压缩 gz bmp 文件):

    => sf probe
    => fatload mmc 1 $loadaddr file_name.bmp
    => sf update $loadaddr 0x700000 $filesize



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

    你好 

    1.我们在 SDK 11中看不到此问题:!12错误  :%lx 处没有有效的 bmp 映像

    2.从 SD 卡启动

    3.启动界面图像(*。bmp):我们假设它在运行以下给定命令后位于 OSPI 存储器中:

    => SF 探针
    => fatload mmc 1 $loadaddr u_boot_logo.bmp
    => SF 更新$loadaddr 0x700000 $filesize

    我们的最新测试是尝试使用 HW 开关按钮从 SD 卡(外部)引导。 因此、我们不会更改代码并   在 am62x.env 中保留原始代码:mmcdev=1 & bootpart=1:2。 此外、我们在 evm.c 中将 devpart 调整为0:1;没有任何反应。

    下面是日志:(屏幕上尚未显示任何内容)

    完整日志:

    e2e.ti.com/.../u_2D00_boot_2D00_log_5F00_20250509.txt

    4.请提供此功能验证的快速构建/步骤。

    我们当前的构建命令(我们创建一个补丁并对其应用):

    MACHINE=am62xx-EVM 位 bake -k  u-boot-ti-staging

    Paul@VM41UBT2204:~/tisdk/sources/meta-custom/recipes-bsp tree.

    ├──u-boot-ti-staging
    │  ├──u-boot-dpi.patch
    │  ├──u_boot_logo.bmp
    │  └──u-boot.patch
    └──u-boot-ti-staging_2025.01.bappend

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

    让我们将这两个问题分开:
    Issue1#使用 SD 卡启动界面在 DPI 上呈现
    Issue2#使用来自 OSPI 的启动界面

    对于问题1、由于使用 SD 卡、devpart 必须为1:1、请勿更改这一点。

    问题2、在执行 SF 更新时、引导日志显示写入0个字节、表示已写入同一个文件。 让我们在解决问题1后解决该问题。

    您是否验证了 DPI 显示器可以与 Linux 内核配合使用?

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

    您是否仍在 U-Boot 中遇到这些构建错误?
    我建议您安装11.0 SDK、
    转到 /board-support/
    应用修补程序
    转到 SDK
    在 PC 上安装了预先刷写的 SD 卡后、运行以下命令:

    make u-boot
    sudo DESTDIR=/media/<user>/boot make u-boot_install

    然后再次使用 SD 卡引导进行测试