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.

[参考译文] PROCESSOR-SDK-AM62X:在 DFU util 刷写后、eMMC 无法引导

Guru**** 2539500 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1247039/processor-sdk-am62x-emmc-failed-to-boot-after-dfu-util-flashing

器件型号:PROCESSOR-SDK-AM62X

Judith、您好!

我们能够成功下载 U-boot 映像 和 tisdk-base.ext4

我们发送以下命令从 eMMC 引导、

=> setenv mmcdev 0
=> setenv bootpart 0

将器件断电、将引导模式开关更改为 eMMC 引导。 我们得到以下错误。

U-Boot SPL 2021.01-00002-g93da3fa57b (7月03日2023 - 10:27:32 +0530)
SYSFW ABI:3.1 (固件版本0x0008'8.6.4--v08.06.04 (Chill Capybar')
SPL 初始堆栈使用:13424字节
尝试从 MMC1引导
SPL:无法初始化 MMC。 错误:-19
SPL:无法从所有启动设备引导
###错误###请重置主板###。

从目标附加日志文件。

e2e.ti.com/.../3162.new-123.txt

请帮助我们解决此问题。

谢谢。此致、
Swapna.

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

    您好!

    我的理解是、这是 TI EVM。

    问题:您将哪些二进制文件刷写到 eMMC? 它是使用 TI SDK 中的 tiboot3.bin tispl.bin 和 u-boot.img 吗?

    不要刷写用于使用 USB-DFU 引导的相同二进制文件。

    此外、您为 eMMC 引导设置了什么引导模式引脚、它是 SW2:00000000 SW1:11010010吗?

    ~朱迪斯

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

    Judith、您好!

    是的、是 TI EVM AM62x。

    在 TI SDK 中、我们使用 defconfig am62x_evm_r5_usbdfu_config 来编译 U-boot

    使用的构建命令为

    生成 u-boot
    导出 TI_SECURE_DEV_PKG=/home/administrator/ti-processor-sdk-linux-am62xx-evm-08.06.00.42/board-support/core-secdev-k3
    使 sysfw-image device_type=gp

    然后、生成的文件 tiboot3.bin、tispl.bin 和 u-boot.img 用于 USB-DFU 更新。

    引导模式开关配置如下

    SW2:00000000 SW1:1101001 1

    根据您的评论、我试图将 B7更改为0。 但仍然存在相同的误差、

    谢谢。此致、

    Swapna.

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

    您好、Swapna:


    SPL:无法初始化 MMC。 错误:-19

    由于此错误、我认为 MMC 器件存在问题、下面我将从内部讨论并与您联系。

    ~朱迪斯

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

    您好!

    我们可以尝试以下实验。 您是否能够尝试降低 eMMC 速度? 以下是降低 eMMC 速度的补丁:

    diff --git a/arch/arm/dts/k3-am62-main.dtsi b/arch/arm/dts/k3-am62-main.dtsi
    index 4d31dba4b2..831429e97e 100644
    --- a/arch/arm/dts/k3-am62-main.dtsi
    +++ b/arch/arm/dts/k3-am62-main.dtsi
    @@ -348,11 +348,10 @@
                    bus-width = <8>;
                    ti,clkbuf-sel = <0x7>;
                    ti,otap-del-sel-legacy = <0x0>;
    -               ti,otap-del-sel-mmc-hs = <0x0>;
    -               ti,otap-del-sel-ddr52 = <0x5>;
    -               ti,otap-del-sel-hs200 = <0x5>;
                    ti,itap-del-sel-legacy = <0xa>;
                    ti,itap-del-sel-mmc-hs = <0x1>;
    +               /delete-property/mmc-ddr-1_8v;
    +               /delete-property/mmc-hs200-1_8v;
            };
     
            sdhci1: mmc@fa00000 {


    降低 eMMC 速度后、将这些二进制文件刷写到 eMMC、并再次使用 eMMC 引导进行引导。

    ~朱迪斯

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

    Judith、您好!

    我应用了补丁文件、请在下面找到更新的文件

       sdhci0:mmc@fa10000 {
          兼容="ti、am62-sdhci";
          寄存器=<0x00 0xfa10000 0x00 0x260>、<0x00 0xfa18000 0x00 0x134>;
          中断= ;
          电源域=<&K3_PDS 57 TI_SCI_PD_Excluse>;
          时钟=<&K3_CLKS 57 5>、<&K3_CLKS 57 6>;
          时钟名称="clk_ahb"、"clk_fin";
          分配的时钟=<&K3_CLKS 57 6>;
          Assigned-Clock-Parents =<&K3_CLKS 57 8>;
          MMC-DDR-1_8v;
          MMC-HS200-1_8v;
          TI、TRM-ICP =<0x2>;
          总线宽度=<8>;
          ti、clkbuf-sel =<0x7>;
          ti、otap-del-SEL-legacy =<0x0>;
          #ti、otap-del-SEL-MMC-hs =<0x0>;
          #ti、otap-del-SEL-ddr52 =<0x5>;
          #ti、otap-del-SEL-HS200 =<0x5>;
          TI、ITAP-DELL-SEL-STORAGE =<0xA+;
          TI、ITAP-DEL-SEL-MMC-hs =<0x1>;
          /delete-property/mmc-ddr-1_8v;
          /delete-property/mmc-hs200-1_8v;       
       };

    e2e.ti.com/.../k3_2D00_am62_2D00_main.txt

    我生成了二进制文件。 但是、当我尝试将文件传输到 eMMC 时、收到"sudo dfu-util -a tiboot3.bin.raw -D tiboot3.bin"命令的错误。

    请找到下面的屏幕截图。

    主机屏幕截图:

    目标屏幕截图:

    如果我恢复 K3-am62-main.dtsi 文件更改、那么我不会看到将二进制文件刷写到 eMMC 有任何问题、但 eMMC 引导失败。

    谢谢。此致、

    Swapna.

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

    您好!

    可以尝试以下二进制文件、并将其刷写到 eMMC:

    e2e.ti.com/.../1134.tiboot3.bin
    e2e.ti.com/.../5383.tispl.bin
    e2e.ti.com/.../6646.u_2D00_boot.img

    ~朱迪斯

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

    Judith、您好!

    以上文件的 DFU 文件传输失败。 目标中的错误为 SPL:不支持的引导设备

    主机的屏幕截图是:

    目标屏幕截图为:

    谢谢。此致、

    Swapna.

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

    您好、Swapna:

    文件传输是否成功? 无论电路板是否启动。 我没有在第一个日志中看到错误、我没有看到"发生了错误... 错误"。

    ~朱迪斯

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

    Judith、您好!

    主机发送的命令为

    sudo dfu-util -l 
    sudo dfu-util -R -a bootloader -D tiboot3.bin 

    从主机将数据从 PC 复制到 DFU 器件的过程100%完成、无错误条件。

    但是、从目标设计中、有错误说

    SPL:不支持的引导设备!
    SPL:无法从所有启动设备引导
    ###错误###请重置主板###


    希望您在上一篇文章中验证了这两个图像。

    在主机超时后、会出现一条消息、
    dfu-util:完成后无法读取 DFU 状态。
    dfu-util:无法分离
    (请参阅上一篇文章中随附的图像)

    由于目标出现该错误、我们无法继续执行、 " sudo dfu-util -l "在目标出现错误后未列出任何 DFU。 
    
    



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

    您好、Swapna:

    有两种不同的误差。

    使用我发送的二进制文件、可以使用 USB-DFU 进行传输了。

    现在出现的错误是 u-boot 找不到 tispl.bin、因此可以将以下二进制文件刷写到 eMMC:

    e2e.ti.com/.../7356.tiboot3.bin
    e2e.ti.com/.../5618.tispl.bin
    e2e.ti.com/.../5238.u_2D00_boot.img

    并使用此引导模式:
    SW2:00000000 SW1:110100 10

    ~朱迪斯

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

    Judith、您好!

    我尝试了您的文件。 结果没有改善。

    主机发送的命令为

    sudo dfu-util -l 
    sudo dfu-util -R -a bootloader -D tiboot3.bin 

    从主机将数据从 PC 复制到 DFU 器件的过程100%完成、无错误条件。

    但是、从目标设计中、有错误说

    SPL:不支持的引导设备!
    SPL:无法从所有启动设备引导
    ###错误###请重置主板###


    请注意、我们的 AM62x EVAL 套件处于 GP 模式。

    使用我们的 GP 文件、我们能够传输包括原始文件和文件系统在内的所有文件。
    只有故障是系统在完成所有步骤后无法启动。

    我们在下面尝试了两种开关组合、但都没有效果。

    SW2:00000000 SW1:11010010

    SW2:00000000 SW1:11010011。

    谢谢。此致、
    斯瓦普纳

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

    您好、Swapna:

    需要在此处验证步骤是否正确、请确认您正在执行以下所有操作:
    1.设置为 USB-DFU 引导模式:SW2:00000000 SW1:11001010
    2.将 USB 电缆连接到 J13
    3.使用以下二进制文件通过 USB-DFU 引导:
    e2e.ti.com/.../dfu_2D00_tiboot3.bin
    e2e.ti.com/.../dfu_2D00_tispl.bin
    e2e.ti.com/.../dfu_2D00_u_2D00_boot.img
    文件使用补丁构建:

    diff --git a/include/configs/am62x_evm.h b/include/configs/am62x_evm.h
    index 97bd7c1fd7..992294acfe 100644
    --- a/include/configs/am62x_evm.h
    +++ b/include/configs/am62x_evm.h
    @@ -504,7 +504,7 @@
     
     #endif
     
    -#ifdef CONFIG_TARGET_AM625_A53_EVM
    +#if defined(CONFIG_TARGET_AM625_A53_EVM) || defined(CONFIG_SPL_DFU)
     #define EXTRA_ENV_DFUARGS \
            DFU_ALT_INFO_MMC \
            DFU_ALT_INFO_EMMC \


    4.在 Linux 主机中执行命令:

    • sudo dfu-util -R -a bootloader -D dfu-tiboot3.bin
    • sudo dfu-util -R -a tispl.bin -D dfu-tispl.bin
    • sudo dfu-util -R -a u-boot.img -D dfu-u-boot.img
    • setenv dfu_alt_info ${dfu_alt_info_eMMC}
    • DFU 0 MMC 0

    5.开始使用以下文件刷写 eMMC:
    e2e.ti.com/.../emmc_2D00_tiboot3.bin
    e2e.ti.com/.../emmc_2D00_tispl.bin
    e2e.ti.com/.../emmc_2D00_u_2D00_boot.img
    这些文件包含以下补丁:

    diff --git a/arch/arm/mach-k3/am625_init.c b/arch/arm/mach-k3/am625_init.c
    index d103c73770..4f54eeff82 100644
    --- a/arch/arm/mach-k3/am625_init.c
    +++ b/arch/arm/mach-k3/am625_init.c
    @@ -25,6 +25,9 @@
     #define K3RTC_KICK0_UNLOCK_VALUE       0x83e70b13
     #define K3RTC_KICK1_UNLOCK_VALUE       0x95a4f1e0
     
    +/*eMMC boot mode fix*/
    +#define EMMC_BOOT      9
    +
     #if defined(CONFIG_SPL_BUILD)
     
     /*
    @@ -245,6 +248,10 @@ u32 spl_mmc_boot_mode(const u32 boot_device)
     
            switch (boot_device) {
            case BOOT_DEVICE_MMC1:
    +               if (((devstat & MAIN_DEVSTAT_PRIMARY_BOOTMODE_MASK) >>
    +                     MAIN_DEVSTAT_PRIMARY_BOOTMODE_SHIFT) == EMMC_BOOT)
    +                       return MMCSD_MODE_EMMCBOOT;
    +
                    if ((bootmode_cfg & MAIN_DEVSTAT_PRIMARY_MMC_FS_RAW_MASK) >>
                         MAIN_DEVSTAT_PRIMARY_MMC_FS_RAW_SHIFT)
                            return MMCSD_MODE_EMMCBOOT;
    diff --git a/configs/am62x_evm_a53_defconfig b/configs/am62x_evm_a53_defconfig
    index d9bf9a5b7d..f3af0a6e51 100644
    --- a/configs/am62x_evm_a53_defconfig
    +++ b/configs/am62x_evm_a53_defconfig
    @@ -82,7 +82,7 @@ CONFIG_MULTI_DTB_FIT=y
     CONFIG_SPL_MULTI_DTB_FIT=y
     CONFIG_SPL_MULTI_DTB_FIT_NO_COMPRESSION=y
     CONFIG_ENV_IS_IN_MMC=y
    -CONFIG_SYS_MMC_ENV_PART=1
    +CONFIG_SYS_MMC_ENV_PART=2
     CONFIG_NET_RANDOM_ETHADDR=y
     CONFIG_DM=y
     CONFIG_SPL_DM=y
    

    6.使用以下命令刷写 eMMC:

    • sudo dfu-util -a tiboot3.bin.raw -D emmc-tiboot3.bin
    • sudo dfu-util -a tispl.bin.raw -D emmc-tispl.bin
    • sudo dfu-util -a u-boot.img.raw -D eMMC-u-boot.img

    目标控制台上的输出:
         ##download (下载)... 确定
         Ctrl+C 退出...
         ####下载... 确定
         Ctrl+C 退出...
         ####下载... 确定
         Ctrl+C 退出...

    7.要让 ROM 访问引导分区、必须首次使用以下命令:
        =>MMC partconf 0 1 1
        => MMC bootbus 0 2 0 0

    8.将引导模式更改为 eMMC 引导模式:
    SW2:00000000 SW1:11010010

    9.关闭电路板电源并将其打开

    ~朱迪斯

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

    Judith、您好!

    我按照从1到9的所有步骤操作。

    我已经下载了您附加的全部6个文件、可以使用 USB-DFU 传输所有文件。

    但是、eMMC 引导失败、并显示消息"spl_load_fit_image:跳过 load 'tee':映像大小为0!"

    请在下面查找来自目标器件的消息

    e2e.ti.com/.../dfu_5F00_target_5F00_1.txt

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

    由于 TEE 映像大小为0,我们发送命令" fdtdump emmc-tispl.bin "

    在这里的 T 形部分中、大小显示为0。

    因此、我们使用了"dfu-tispl.bin"(文件大小仅为537.1 KB)作为原始文件、而不是"emc-tispl.bin"文件(文件大小为965.2 KB)。

    我重复了步骤1至9。

    这次 eMMC 引导失败、并且不同的消息

    "SPL_REGISTER_FAT_DEVICE:fat 寄存器 err --1
    SPL_LOAD_image_fat:读取映像 u-boot.img、err --1"时出错

    请在下面查找来自目标器件的消息

    e2e.ti.com/.../dfu_5F00_target_5F00_2.txt

    您能帮助我们解决这些问题吗?

    谢谢。此致、

    Swapna.

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

    您好、Swapna:

    好的、请勿使用 dfu-tispl.bin 文件刷写到 eMMC。 我将再次核实为什么我构建的文件中没有包含 OPTEE、并向您重新发送正确的 eMMC-tispl.bin。 但我们比以往更接近。 感谢您的耐心。

    ~朱迪斯

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

    您好!

    您能否再次使用以下二进制文件刷写 eMMC:

    e2e.ti.com/.../tiboot3_2D00_emmc.bin
    e2e.ti.com/.../tispl_2D00_emmc.bin
    e2e.ti.com/.../u_2D00_boot_2D00_emmc.bin

    我已经验证过 OPTEE 也是这样构建的:

    Created:         Mon Jul 24 17:04:59 2023
     Image 0 (atf)
      Description:  ARM Trusted Firmware
      Created:      Mon Jul 24 17:04:59 2023
      Type:         Firmware
      Compression:  uncompressed
      Data Size:    44056 Bytes = 43.02 KiB = 0.04 MiB
      Architecture: AArch64
      OS:           ARM Trusted Firmware
      Load Address: 0x9e780000
     Image 1 (tee)
      Description:  OPTEE
      Created:      Mon Jul 24 17:04:59 2023
      Type:         Trusted Execution Environment Image
      Compression:  uncompressed
      Data Size:    399408 Bytes = 390.05 KiB = 0.38 MiB
     Image 2 (dm)
      Description:  DM binary
      Created:      Mon Jul 24 17:04:59 2023
      Type:         Firmware
      Compression:  uncompressed
      Data Size:    152520 Bytes = 148.95 KiB = 0.15 MiB
      Architecture: Unknown Architecture
      OS:           Unknown OS
      Load Address: 0x89000000
     Image 3 (spl)
      Description:  SPL (64-bit)
      Created:      Mon Jul 24 17:04:59 2023
      Type:         Standalone Program
      Compression:  uncompressed
      Data Size:    318352 Bytes = 310.89 KiB = 0.30 MiB
      Architecture: AArch64
      Load Address: 0x80080000
      Entry Point:  0x80080000
     Image 4 (k3-am625-sk.dtb)
      Description:  k3-am625-sk
      Created:      Mon Jul 24 17:04:59 2023
      Type:         Flat Device Tree
      Compression:  uncompressed
      Data Size:    20785 Bytes = 20.30 KiB = 0.02 MiB
      Architecture: ARM
     Default Configuration: 'k3-am625-sk.dtb'
     Configuration 0 (k3-am625-sk.dtb)
      Description:  k3-am625-sk
      Kernel:       unavailable
      Firmware:     atf
      FDT:          k3-am625-sk.dtb
      Loadables:    tee
                    dm
                    spl
    FIT description: Configuration to load ATF and SPL
    Created:         Mon Jul 24 17:04:59 2023
     Image 0 (atf)
      Description:  ARM Trusted Firmware
      Created:      Mon Jul 24 17:04:59 2023
      Type:         Firmware
      Compression:  uncompressed
      Data Size:    44056 Bytes = 43.02 KiB = 0.04 MiB
      Architecture: AArch64
      OS:           ARM Trusted Firmware
      Load Address: 0x9e780000
     Image 1 (tee)
      Description:  OPTEE
      Created:      Mon Jul 24 17:04:59 2023
      Type:         Trusted Execution Environment Image
      Compression:  uncompressed
      Data Size:    399408 Bytes = 390.05 KiB = 0.38 MiB
     Image 2 (dm)
      Description:  DM binary
      Created:      Mon Jul 24 17:04:59 2023
      Type:         Firmware
      Compression:  uncompressed
      Data Size:    152520 Bytes = 148.95 KiB = 0.15 MiB
      Architecture: Unknown Architecture
      OS:           Unknown OS
      Load Address: 0x89000000
     Image 3 (spl)
      Description:  SPL (64-bit)
      Created:      Mon Jul 24 17:04:59 2023
      Type:         Standalone Program
      Compression:  uncompressed
      Data Size:    318352 Bytes = 310.89 KiB = 0.30 MiB
      Architecture: AArch64
      Load Address: 0x80080000
      Entry Point:  0x80080000
     Image 4 (k3-am625-sk.dtb)
      Description:  k3-am625-sk
      Created:      Mon Jul 24 17:04:59 2023
      Type:         Flat Device Tree
      Compression:  uncompressed
      Data Size:    20785 Bytes = 20.30 KiB = 0.02 MiB
      Architecture: ARM
     Default Configuration: 'k3-am625-sk.dtb'
     Configuration 0 (k3-am625-sk.dtb)
      Description:  k3-am625-sk
      Kernel:       unavailable
      Firmware:     atf
      FDT:          k3-am625-sk.dtb
      Loadables:    tee
                    dm
                    spl
    

    但是、我无法测试、因为我没有 GP 器件。

    如前所述、应将这些二进制文件刷写到 eMMC。 USB-DFU 引导的二进制文件不同。

    请告诉我这些二进制文件是否起作用。

    ~朱迪斯

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

    谢谢 Judith。

    eMMC 引导现已成功使用您共享的最新 eMMC 引导文件。

    现在、我们要生成全部6个文件(DFU 和 eMMC)。 我遵循了以下步骤。 但 eMMC 引导失败。 您能否回顾一下步骤、因为我们不知道 eMMC 文件(RAW 文件)是如何生成的。

    1.我 在 Linux 计算机上安装了 AM62x SDK 8.06.00.42

    1.   rules.make 更新为  

    uBoot_machine_r5=am62x_evm_r5_usbdfu_defconfig 

    2.应用了您在帖子中共享的"am62x_evm.h"补丁文件

    3.使用命令进行二进制格式化的图像
    生成 u-boot
    使 sysfw-image device_type=gp

    4. tiboot3.bin、tispl.bin 和 u-boot.img 文件是 genearet 文件,这些文件我用作 DFU Uboot 文件

    5.应用了您在帖子中共享的"am625_init.c"和"am62x_evm_a53_defconfig"的补丁文件

    6.使用命令进行二进制格式化的图像 
    生成 u-boot
    使 sysfw-image device_type=gp

    7.现在 tiboot3.bin、tispl.bin 和 u-boot.img 文件都是 geneearet 文件,我将这些文件重命名为
    eMMC-tiboot3.bin、emmc-tispl.bin 和 eMMC-u-boot.img。这些文件我用作 eMMC Uboot 文件 



    IAM 能够传输所有6个文件、但 eMMC 引导失败、并显示以下错误

    U-Boot SPL 2021.01-00002-g93da3fa57b-Dirty (7月25日2023 - 12:40:16 +0530)
    SYSFW ABI:3.1 (固件版本0x0008'8.6.4--v08.06.04 (Chill Capybar')
    SPL 初始堆栈使用:13424字节
    尝试从 MMC1引导
    SPL:无法初始化 MMC。 错误:-19
    SPL:无法从所有启动设备引导
    ###错误###请重置主板###

    我们不清楚第一组3个文件与第二组3个文件有何不同。 您能解释一下。


    谢谢。此致、
    斯瓦普纳


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

    您好、Swapna:


    4. tiboot3.bin、tispl.bin 和 u-boot.img 文件是 genearet 文件,这些文件我用作 DFU Uboot 文件

    验证您是否更改了:uBoot_machine_r5=am62x_evm_r5_defconfig、然后继续操作 
    6.使用命令进行二进制格式化的图像 
    生成 u-boot
    使 sysfw-image device_type=gp

    此处可以提供一些帮助:

    U-Boot SPL 2021.01-00002-g 93da3fa57b -Dirty (Jul 25 2023 - 12:40:16 +0530) 

    在 eMMC 引导期间查看以下内容、并验证这是否是 u-boot 中用于 eMMC 构建的最后一个补丁的提交。 此外、验证日期。 如果这是正确的补丁和正确的日期、您知道刷写正确。 如果不是、请仔细检查如何刷写到 eMMC、并确保引导开关设置正确。

    除此之外、它应该可以工作。 您只应应用一个作为 USB-DFU 引导权变措施的补丁和一个用于 eMMC 引导的 eMMC 修复补丁。

    ~朱迪斯

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

    Judith、您好!

    现在、OS 已成功从 eMMC 引导。   

    感谢您的持续支持。

    需要最后澄清一点、在执行所有这些步骤之后、我们对 eMMC 的结构感到困惑。 您能说明内核、器件树和根文件系统存储在 eMMC 的什么位置吗?

    此外、TI 文档还在链接处讨论了文件系统的创建(将 Linux 刷写到 eMMC)

     https://dev.ti.com/tirex/explore/node?node=A__AHRrRyaBVyh3lIzvQ8a6tQ__linux_academy_am62x__XaWts8R__LATEST

    但是从我们遵循的程序来看,我们看不到这些步骤是执行的。

    谢谢。此致、

    Swapna.

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

    您好、Swapna:

    由于我们使用 USB-DFU 来刷写 eMMC、因此如果您查看 U-boot 环境变量:

    => printenv dfu_alt_info_eMMC
    dfu_alt_info_eMMC=rawemmc raw 0 0x800000 mmcpart 1;rootfs part 0 1;tiboot3.bin.raw raw 0x0 0x400 mmcpart 1;tispl.bin.raw raw raw 0x400 0x1000 mmcpart 1;u-boot.img.raw raw 0x1400 0x2000 mmcpart 1;u-env.raw 0x800 mmcpart 0x800 RAW;sysfw.itb.raw
    =>

    我们可以看到 rootfs 被刷写到第0部分1、即 UDA 分区1。

    如果在 UDA 中没有分区、请在 Linux 内核中使用 fdisk 创建一个分区、然后使用$ sudo mkfs -t ext4 /dev/mmcblk0p1.格式化。 之后、您应该能够将 rootfs 刷写到 UDA。

    在使用 USB-DFU 进行刷写之前、需要进行一些前期工作来准备 tisdk-base.ext4。

    tisdk-base.ext4具有 tisdk-base-image-am62xx-evm.tar.xz 的内容、这是一个包含 Linux 内核 "映像"和器件树文件的根文件系统。 因此、我们只需要将 rootfs 刷写到 UDA、只有在使用 USB-DFU 进行闪存时需要进行一些前期工作。

    // Create tisdk-base.ext4
    <path-to-psdk>/filesystem$ dd if=/dev/null of=tisdk-base.ext4 bs=1M seek=400
    0+0 records in
    0+0 records out
    0 bytes copied, 0.00024402 s, 0.0 kB/s
    <path-to-psdk>/filesystem$ mkfs.ext4 -F tisdk-base.ext4
    mke2fs 1.46.5 (30-Dec-2021)
    Discarding device blocks: done                            
    Creating filesystem with 102400 4k blocks and 102400 inodes
    Filesystem UUID: b4fc5618-e027-4eb1-aa02-38cba1366a54
    Superblock backups stored on blocks: 
        32768, 98304
    
    Allocating group tables: done                            
    Writing inode tables: done                            
    Creating journal (4096 blocks): done
    Writing superblocks and filesystem accounting information: done
    
    <path-to-psdk>/filesystem$ mkdir mnt_fs
    <path-to-psdk>/filesystem$ sudo mount -t ext4 tisdk-base.ext4 mnt_fs
    <path-to-psdk>/filesystem$ cd mnt_fs
    <path-to-psdk>/filesystem/mnt_fs$ sudo tar xvf ../tisdk-base-image-am62xx-evm.tar.xz
    …….
    ./var/lib/opkg/info/util-linux-fdisk.control
    ./var/lib/opkg/info/util-linux-fdisk.list
    ./var/lib/opkg/info/util-linux-fdisk.postinst
    ./var/lib/opkg/info/util-linux-fdisk.prerm
    ./var/lib/opkg/info/util-linux-fsck.control
    ./var/lib/opkg/info/util-linux-fsck.list
    ./var/lib/opkg/info/util-linux-fsck.postinst
    ./var/lib/opkg/info/util-linux-fsck.prerm
    ./var/lib/opkg/info/util-linux-mkfs.control
    ./var/lib/opkg/info/util-linux-mkfs.list
    ./var/lib/opkg/info/util-linux-mount.control
    ./var/lib/opkg/info/util-linux-mount.list
    ./var/lib/opkg/info/util-linux-mount.postinst
    ./var/lib/opkg/info/util-linux-mount.prerm
    ./var/lib/opkg/info/util-linux-sfdisk.control
    ./var/lib/opkg/info/util-linux-sfdisk.list
    ./var/lib/opkg/info/util-linux-sulogin.control
    ./var/lib/opkg/info/util-linux-sulogin.list
    ./var/lib/opkg/info/util-linux-sulogin.postinst
    ./var/lib/opkg/info/util-linux-sulogin.prerm
    ./var/lib/opkg/info/util-linux-umount.control
    ./var/lib/opkg/info/util-linux-umount.list
    ./var/lib/opkg/info/util-linux-umount.postinst
    ./var/lib/opkg/info/util-linux-umount.prerm
    ./var/lib/opkg/info/volatile-binds.control
    ./var/lib/opkg/info/volatile-binds.list
    ./var/lib/opkg/info/volatile-binds.postinst
    ./var/lib/opkg/info/volatile-binds.prerm
    ./var/lib/opkg/status
    ./var/lib/systemd/
    ./var/local/
    ./var/lock
    ./var/log
    ./var/run
    ./var/spool/
    ./var/spool/mail/
    ./var/tmp
    ./var/volatile/
    <path-to-psdk>/filesystem/mnt_fs$ cd ../
    <path-to-psdk>/filesystem$ sudo umount mnt_fs
    


    如果要刷写默认 rootfs、我们在将大型 rootfs 刷写到 eMMC 时会看到一些问题。 那么、问一下、什么 rootfs 会刷写到 eMMC?

    ~朱迪斯

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

    Judith、您好!

    感谢您的澄清。

    我们需要完整的文件系统。

     在解决将大型 rootfs 刷写到 eMMC 的问题后、请告知我们。

    到目前为止、我们将关闭此 TT。  

    谢谢。此致、

    Swapna.