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.

[参考译文] SK-AM62:SK-AM62 E3板上的 Rootfs 闪存通过 eMMC 失败

Guru**** 2555710 points
Other Parts Discussed in Thread: SK-AM62, AM625

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1133324/sk-am62-rootfs-flash-failed-on-the-sk-am62-e3-board-through-emmc

器件型号:SK-AM62
主题中讨论的其他器件: AM625
9月9日星期五下午6:41
您好!
这与通过 eMMC 在 SK-AM62 E3板上加载扩展名为.ext4的 rootfs 文件时发生的问题有关。 为了更好地了解我们正面临的问题、我已附上以下错误日志。
1.在给出以下命令后,生成了错误日志。
 
sudo dfu-util -a rootfs -D
版权所有2005-2009 Weston Schmidt、Harald Welte 和 OpenMoko Inc.
版权所有2010-2016 Tormod Volden 和 Stefan Schmidt
此计划是免费软件、绝对不提供保修
请向 sourceforge.net/.../报告错误

DFU-util:无效的 DFU 后缀签名
DFU-util:未来的 DFU-util 版本中将需要有效的 DFU 后缀!!
正在打开支持 DFU 的 USB 设备...
ID 0451:6165
运行时器件 DFU 版本0110
正在申请 USB DFU 接口...
正在设置备用设置#1 ...
确定器件状态:STATE = dfuIDLE、STATUS = 0
DfuIDLE、继续
DFU 模式器件 DFU 版本0110
器件返回的传输大小为4096
将数据从 PC 复制到 DFU 器件
下载   [=                       ]  5%    13631488字节失败!
STATE (10)= dfuERROR、STATUS (14)=出错、但器件不知道是什么
 
我还在下面附加了 EVM UART 控制台窗口日志:
 
##下载... 好的
按 Ctrl+C 退出...
####下载... 好的
按 Ctrl+C 退出...
####下载... 好的
按 Ctrl+C 退出...
################################################## 请求将超出指定区域!
请指导我解决此问题、以便成功完成 EMMC 引导过程。  
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    主题所有者本周外出。 如果您在几个工作日内未收到回复、请对该主题执行 Ping 操作。

    此致、

    Nick

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

    您好!
    您是否有另一个板运行相同的测试以查看任何差异。
    正如前面的 e2e 文章中所述、我能够通过 AM62x-SK E2板上的 USB-DFU 将 ext4 rootfs 闪存到 eMMC。
    e2e.ti.com/.../4124594
    最棒的
    -香港

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

    您好!

    我们针对 SK-AM62电路板遵循了单独的 u-boot DFU 构建过程、并成功刷写了二进制文件。

    现在,我们已成功地从 USB DFU 引导模式引导映像,并能够在 eMMC 上成功刷写二进制文件。(对于 rootfs 闪存问题,我们已完成增加块大小的操作,并已成功刷写 SK-AM62 E3板上的 rootfs.ext4。)

    以下更改是在 Yocto 构建中完成的:

    diff ---git a/drivers/dfu/dfu_mc.c b/drivers/dfu/dfu_mc.c
    索引691d01c7eb.36af831b4b 100644
    ---- a/drivers/DFU/DFU_MMC.c
    ++ b/drivers/DFU/DFU_MMC.c
    @@-394,7+394,8 @@ int DFU_fill_entity_mmc (struct DFU_entity * DFU、char * devstr、char * s)
    DFU->ENLO布局= DFU_RAW_ADDR;
    dfu->data.mmc.lBA_start = partinfo.start + offset;
    dfu->data.mmc.lBA_size = partinfo.size-offset;
    - dfu->data.mmc.lBA_blk_size = partinfo.blksz;
    +/DFU->data.MMC.LBA_blk_size = partinfo.blksz;
    + DFU->data.MMC.LBA_blk_size = 300000000;
    }否则、如果(!strcmp (entity_type、"fat")){
    DFU->ENLO布局= DFU_FS_FAT;
    }否则、如果(!strcmp (entity_type、"ext4")){

    Rootfs 已成功刷写在 eMMC 上,但 eMMC 引导未启动。 控制台上未显示任何内容。

    已按照以下链接执行 eMMC 引导。  https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1109517/sk-am62-fail-to-load-rootfs-using-usb-dfu

    已遵循 EVM 引导开关 :https://dev.ti.com/tirex/explore/node?node=AH0HH8Z-m5NoQXxu9-xB-A__XaWts8R__LATEST&search=am625

    我们一侧有一块板(SK-AM62 E3)。您能帮我们解决这个问题吗? 已尝试 U-boot 二进制文件(USB-DFU 和 SD u-boot 构建)、U-boot 未从 SK-AM62 E3板上的 eMMC 引导模式发出。

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

    您好 Santhana、
    如果之前未完成、我们是否可以从任何工作引导模式运行以下 u-boot cmds 一次?
    => MMC partconf 0 1 1 1
    => MMC bootbus 0 2 0
    然后、尝试 eMMC 引导以查看任何差异。
    最棒的
    -香港

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

    您好、Hong、

    下面我们在板上进行了尝试。

    U-Boot SPL 2021.01-g74fc69c889 (2022年9月10日- 07:53:10 +0000)
    SYSFW ABI:3.1 (固件版本0x0008 '8.4.6-v08.04.06 (Jolly Jellyfi')
    尝试从 DFU 引导
    ####下载... 好的
    按 Ctrl+C 退出...


    U-Boot 2021.01-g74fc69c889 (2022年9月10日- 07:53:10 +0000)

    SoC:  AM62X SR1.0
    型号:德州仪器 AM625 SK
    EEPROM 在0x50处不可用、尝试在0x51处读取
    电路板:AM62-SKEVM 修订版 E3
    DRAM: 2GiB
    MMC:  MMC@fa10000:0、MMC@fa00000:1、MMC@fa20000:2
    正在从 MMC 加载环境... 好的
    IN:   串行@2800000
    输出:  串行@2800000
    ERR:  串行@2800000
    NET:  eth0:以太网@8000000port@1
    按任意键停止自动引导: 0
    =>
    =>
    =>
    =>
    => MMC partconf 0 1 1 1
    => MMC bootbus 0 2 0
    => setenv dfu_alt_info ${dfu_alt_info_eMMC}
    => DFU 0 MMC 0
    MBR 扇区签名0x3f31错误
    在 MMC 器件#0上找不到第1部分
    DFU 实体配置失败!
    (分区表与 DFU_alt_info 不匹配?)
    DFU -器件固件升级

    用法:
    DFU [ ][列表]
     -通过设备固件升级
       器件上 ,连接到接口
       
       [列表]-列出可用的替代设置

    =>

    我们再次在 eMMC 上刷写了映像。

    下面的日志现在显示了"从 mmc1"引导、并在运行这些命令后显示。

    U-Boot SPL 2021.01-g74fc69c889 (2022年9月07日- 18:33:54 +0000)
    SYSFW ABI:3.1 (固件版本0x0008 '8.3.2-v08.03.02 (Jolly Jellyfi')
    尝试从 MMC1引导
    正在从 MMC 加载环境... 好的
    不支持来自器件9的 init_env!
    在 ARM64内核上启动 ATF...

    注意: BL31:v2.6 (发行版):08.04.00.002-脏
    注意: BL31:构建时间: 2022年9月7日18:20:39

    U-Boot SPL 2021.01-g74fc69c889 (2022年9月7日- 18:29:06 +0000)
    SYSFW ABI:3.1 (固件版本0x0008 '8.3.2-v08.03.02 (Jolly Jellyfi')
    尝试从 MMC1引导


    U-Boot 2021.01-g74fc69c889 (2022年9月7日- 18:29:06 +0000)

    SoC:  AM62X SR1.0
    型号:德州仪器 AM625 SK
    EEPROM 在0x50处不可用、尝试在0x51处读取
    电路板:AM62-SKEVM 修订版 E3
    DRAM: 2GiB
    MMC:  MMC@fa10000:0、MMC@fa00000:1、MMC@fa20000:2
    正在从 MMC 加载环境... 好的
    IN:   串行@2800000
    输出:  串行@2800000
    ERR:  串行@2800000
    NET:  eth0:以太网@8000000port@1
    按任意键停止自动引导: 0
    MMC:无卡存在
    在器件1上找到 SD/MMC
    MMC:无卡存在
    MMC:无卡存在
    MMC:无卡存在
    MMC:无卡存在
    MMC:无卡存在
    libfdt FDT_CHECK_HEADER ():FDT_ERR_BADMAGIC
    未配置 FDT 存储器地址。 请进行配置
    通过"fdt addr

    "命令。
    正在中止!
    错误的 Linux ARM64图像魔法!
    =>
    =>
    =>
    => setenv mmcdev 0
    => setenv bootpart 0
    =>引导
    切换到分区#0,确定
    mmc0 (Part 0)是当前器件
    在器件0上找到 SD/MMC
    无法加载'boot.scr'
    **无法识别的文件系统类型**
    FS_devread 在分区46106外读取
    范围块无效
    无法加载'/boot/Image
    FS_devread 在分区58912外读取
    无法加载'/boot/k3-am625-sk.dtb
    libfdt FDT_CHECK_HEADER ():FDT_ERR_BADMAGIC
    未配置 FDT 存储器地址。 请进行配置
    通过"fdt addr
    "命令。
    正在中止!
    错误的 Linux ARM64图像魔法!
    =>

    感谢您对 eMMC 引导做出一些改变、但图像仍然没有出现。                                              

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

    您好 Santhana、
    最好了解电路板上 eMMC 的 u-boot 引导。
    从 eMMC 用户分区的 ext4 rootfs 加载 kernel/DTB 时,似乎会出现一些问题。
    如何生成 ext4 rootfs?
    最棒的
    -香港

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

    是的,我们的 rootfs.ext4文件系统未创建属性。

    是否可以手动发送用于创建 rootfs ext4文件系统的命令。

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

    您好 Santhana、
    我将附上有关创建 ext4文件的示例供您参考。
    最棒的
    -香港

    e2e.ti.com/.../3301.am62_5F00_fs_5F00_ext4.txt

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

    您好!

    按照上述步骤创建 rootfs.ex4,但仍然发生相同的错误。

    我们安装并检查 rootfs ext4文件系统,它已正确创建。

    以下日志:

    => setenv mmcdev 0
    => setenv bootpart 0
    =>引导
    切换到分区#0,确定
    mmc0 (Part 0)是当前器件
    在器件0上找到 SD/MMC
    无法加载'boot.scr'
    **无法识别的文件系统类型**
    FS_devread 在分区46106外读取
    范围块无效
    无法加载'/boot/Image
    FS_devread 在分区58912外读取
    无法加载'/boot/k3-am625-sk.dtb
    libfdt FDT_CHECK_HEADER ():FDT_ERR_BADMAGIC
    未配置 FDT 存储器地址。 请进行配置
    通过"fdt addr

    "命令。
    正在中止!
    错误的 Linux ARM64图像魔法!
    =>

    我们怀疑问题不在 rootfs.ext4中,但下面提到的日志在引导时造成了问题

    FS_devread 在分区46106外读取
    范围块无效

    FS_devread 在分区58912外读取

    请帮助我们解决 该问题。

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

    您好!
    从电路板上的 eMMC 引导时,我们能否运行测试来检查 ext4 rootfs @u-boot 的读取情况?
    我要@一个参考日志文件、我在从 TI AM62x-SK E2电路板上的 eMMC 引导时捕获了 μ m u-boot。
    最棒的
    -香港

    e2e.ti.com/.../am62_5F00_8.3_5F00_emmc_5F00_boot_5F00_check.txt

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

    您好!

    最后、eMMC 引导成功完成。 按照步骤创建 rootfs.ext4并使用"dd"命令将 ext4复制到 eMMC 分区。

    已将 eMMC 分区从 DOS 更改为 EFI、并与 eMMC 引导日志进行比较以解决此问题。

    您能否告诉我们为什么 eMMC 引导模式的"尝试从 mmc1"引导、但它应该是 mmc0?

    对于 SD 引导模式、 "尝试从 mmc2"进行引导。

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

    您好 Santhana、
    最好是知道 eMMC 引导在您的设置中工作正常。
    "尝试从 mmc1"的串行消息实际上是从 eMMC 引导。
    最棒的
    -香港

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

    你好,santhana,

    我也会遇到相同的问题、

    请帮我创建分区以及如何刷写文件系统

    请提供步骤吗?

    实际上,在我们的定制板上,我们没有 Type C 端口,因此我们不应该使用 DFU USB 来刷写 eMMC rootfs

    谢谢、

    纳雷什

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

    您好!

    以下链接将指导您对 eMMC 进行分区、并从 Linux 和 u-bot 终端闪存 u-boot 映像和 rootfs。

    develop.phytec.com/.../flash-images-to-emmc

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

    您好 Santhana Kumar、

    我遵循与您共享的采购。

    我正在获取以下日志:

    =>引导
    切换到分区#0,确定
    mmc0 (Part 0)是当前器件
    在器件0上找到 SD/MMC
    无法加载'boot.scr'
    **无法识别的文件系统类型**
    无法加载'/boot/Image
    无法加载'/boot/magik2_am62x-k3-am625-sk.dtb
    libfdt FDT_CHECK_HEADER ():FDT_ERR_BADMAGIC
    未配置 FDT 存储器地址。 请进行配置
    通过"fdt addr

    "命令。
    正在中止!
    错误的 Linux ARM64图像魔法!

    =>我猜完整的文件系统尚未复制,因此它无法找到图像

    我在 uboot 中检查了 MMC 0分区、如下所示

    => ls MMC 0

    1024。
    1024.
    12288丢失+发现
    => ls MMC 0
    1024。
    1024.
    12288丢失+发现

    我有 Tar 根文件系统,要使用 dd 将文件系统安装到/dev/mmcblk0p1中,首先需要将文件系统转换为.ext4格式  

    我猜没有转换完成  

    请帮助我将 tar 文件系统转换为.ext4格式

    谢谢、

    纳雷什

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

    已将 tar 文件转换为 ext4。

    e2e.ti.com/.../5611.am62_5F00_fs_5F00_ext4.txt

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

    您好 Santhana,

    我执行了相同的步骤。

    而不是第二步以下:

    >>> 2. 刷写 ROOT_FS ext4文件"am62x-tisdk-base.ext4"
    sudo dfu-util -a rootfs -D am62x-tisdk-base.ext4

    我正在使用以下命令通过 sdcard 进行刷写:

    DD if=am62x-tisdk-base.ext4 of=/dev/mmcblk0p1 bs=1M && sync.

    在我们的电路板上,typedC 端口不存在,因此我们没有使用 DFU USB 命令。

    谢谢、

    纳雷什

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

    您好 Santhana,

    能否帮助您通过 sdcard 刷写 rootfs?

    谢谢、

    纳雷什

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

    从 sdcard 将映像刷写到 eMMC。

    DD if=am62x-tisdk-base.ext4 of=/dev/mmcblk0p1 bs=1M && sync.

    请验证 u-boot 中的 eMMC 分区。

    => MMC DEV 0
    切换到分区#0,确定
    mmc0 (Part 0)是当前器件
    => MMC 信息
    器件:MMC@fa10000
    制造商 ID:13.
    OEM:14E
    姓名:S0J56
    总线速度:200000000
    模式:HS200 (200MHz)
    Rd 块 Len:512
    MMC 版本5.1
    高容量:是
    容量:14.8GiB
    总线宽度:8位
    擦除组大小:512 KiB
    HC WP 组大小:8 MiB
    用户容量:14.8GiB WRREL
    引导容量:31.5 MIB 加强版
    RPMB 容量:4 MIB 增强型
    引导区域0不受写保护
    引导区域1不受写保护
    => MMC 部件

    MMC 设备0的分区映射 --  分区类型:EFI

    零件   开始 LBA   结束 LBA      名称
       属性
       键入 GUID
       分区 GUID
     1   0x00000022   0x01da3fde   "rootfs"
       attrs:   0x0000000000000000
       类型:   ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
       GUID:   324d6ebf-ccc2-4d67-b291-805f3849d626
    =>

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

    您好,

    我正在获得相同的产品

    > MMC DEV 0
    切换到分区#0,确定
    mmc0 (Part 0)是当前器件
    => MMC 信息
    器件:MMC@fa10000
    制造商 ID:13.
    OEM:14E
    姓名:G1M15
    总线速度:200000000
    模式:HS200 (200MHz)
    Rd 块 Len:512
    MMC 版本5.1
    高容量:是
    容量:29.6GiB
    总线宽度:8位
    擦除组大小:512 KiB
    HC WP 组大小:8 MiB
    用户容量:29.6GiB WRREL
    引导容量:31.5 MIB 加强版
    RPMB 容量:4 MIB 增强型
    引导区域0不受写保护
    引导区域1不受写保护
    => MMC 部件

    MMC 设备0的分区映射--分区类型:EFI

    零件开始 LBA 结束 LBA 名称
    属性
    键入 GUID
    分区 GUID
    1 0x00000022 0x03b47fde "rootfs"
    attrs:0x0000000000000000
    类型:ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
    GUID:e9f56ba1-42fa-4125-a65b-7f53c33373b9
    =>

    但文件系统无法完全刷写

    我在 uboot 中检查了 MMC 0分区、如下所示

    => ls MMC 0

    1024。
    1024.
    12288丢失+发现
    => ls MMC 0
    1024。
    1024.
    12288丢失+发现

    谢谢、

    纳雷什  

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

    您好,Hong,

    请帮我 处理通过 sdcard 刷写 rootfs 的问题吗?

    我们是否需要将 sdcard 设置为2个分区?  

     

    谢谢、

    纳雷什  

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

    使用分配的应用程序创建 sdcard 的另一个分区,并将映像复制到 sdcard 中。

    https://www.geeksforgeeks.org/disk-partitioning-in-ubuntu-using-gparted/

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

    您好、santhana、

    实际上,我必须在 eMMC 中创建分区。 并需要从 eMMC 引导器件  

    闪存需要通过 SDCard 完成  

    谢谢、

    纳雷什

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

    是否在 sdcard 中复制了映像.ext4并运行以下命令?

    DD if=am62x-tisdk-base.ext4 of=/dev/mmcblk0p1 bs=1M && sync.

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

    是的,我执行了 santhana,但没有刷写完整的文件系统。 您能不能与我分享您的图片。ext4……我会在电路板上查看您的图片。ext4?

    BTW,要从 DFU-USB 闪存,我们是否真的需要板载 C 型端口? 您可以分享这些步骤吗?

    谢谢、

    纳雷什

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

    您好、Naresh、
    根据您在另一个 e2e 上的帖子、您可以从客户电路板上的 eMMC 闪存/引导 Linux。
    e2e.ti.com/.../4354700
    我要关闭这个 e2e。
    最棒的
    -香港