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.

[参考译文] TDA4VM:在 Linux 上通过 USB-DFU 刷写 eMMC 失败

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1243962/tda4vm-failed-to-flash-emmc-by-usb-dfu-on-linux

器件型号:TDA4VM

大家好、TI 人!

我们将在 Linux PC 上通过 USB-DUF 对 eMMC 进行刷写、 此外还将在路径"rtos-SDK/pdk_j721s2/packages/ti/boot/sbl/tools/eMMC_flash"下找到名为"duf-boot.sh"的有用工具。
目前、Linux PC 可以检测到 DFU 器件、如下所示的屏幕截图所示。

然后、我们在执行下面的屏幕截图所示的命令时得到了错误信息。  从 j721e-EVM 板将 eMMC 安装到 Linux PC 似乎失败。


我们不知道 DFU 器件中发生了什么情况。 您能帮助我们通过 USB-DFU 启用闪存 eMMC 功能吗?

Br
柳利

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

     刘丽您好

    您可以参阅此文档、了解如何使用 dfu-util 将图像刷写到 eMMC。  

    请参阅  https://www.ti.com/lit/an/spracy5/spracy5.pdf?ts = 1688362376555的第5.1.3.1节刷写说明

    文档  

    此致
    迪瓦卡尔

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

    是的、我们检查了 DOC  您提供的、我们遇到了两个问题、如下所示。
    1.我们可以  在路径"tda4-s2/rtos-sdk/bootfs"下找到文件"tispl.bin"和"tispl.bin"以及"u-boot.img",但是 CAN NOT 找到 文件 sysfw.itb"。  在哪里将生成 " sysfw.itb"?  
    2.我 执行了命令"env
    default -f -a " 作为5.1.3.1节,然后我们得到了 如下密码要求。 密码是什么?



    Br
    刘莉

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

    如 下面的屏幕截图所示,执行命令"env default -f -a "和命令"setenv mmcdev 0"失败了,你能帮我检查一下吗?  



    Br
    柳利  

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

    在哪里将生成你提到的文件"tifs.bin"? 是否为路径"RTOS-SDK/PDK_J721s2/packages/ti/drv/sciclient/dV/v4/tifs.bin" soc?  DFU-Util 将"tifs.bin"刷写到 eMMC 中的命令是什么?

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

    您好、Diwakar、

    能帮我们解决问题吗? 非常感谢

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

     刘丽您好

    似乎有一些混淆你使用的是 Linux 还是 PDK ?

    和哪里将生成您提到的文件"tifs.bin"? 是否为路径"RTOS-SDK/PDK_J721s2/packages/ti/drv/sciclient/dV/v4/tifs.bin" soc?  DFU-Util 将"tifs.bin"刷写到 eMMC 中的命令是什么?

    如果您使用的是 PDK,则需要 tifs.bin。

    此致
    迪瓦卡尔

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

    尊敬的  Diwakar:
       DFU 将 tifs.bin 刷写到 eMMC 中的命令是什么?

    Br
    柳利

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

     刘丽您好

    似乎有一些混淆你使用的是 Linux 还是 PDK ?

    [/报价]

    您能帮助我吗?

        DFU 将 tifs.bin 刷写到 eMMC 的命令是什么?
    [/报价]

    TIFS 以二进制形式在 SDK 中提供。由于 TI 不发布其源代码、因此您将无法构建 TIFS  

    为什么需要构建它?

    请帮助我了解您使用的是 Linux SDK 或 RTOS。

    此致
    迪瓦卡尔  

    [/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您使用的是 Linux 还是 PDK 时似乎有些混乱?

    我们正在使用 PDK

    为什么需要构建它?

    因为我们不能使用 Doc 第15页中提到的"tinyrootfs.img"文件 ,如下所示:

    #将微型文件系统刷写到 eMMC 用户分区

    host $ sudo dfu-util -a rootfs -D /tinyrootfs.img

    Br
    柳利

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

    您好、Diwakar、
      有关此问题的任何更新?

    Br
    柳利

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

    您好!

     我们尝试用  Doc 中的命令刷写 ,

    host $ sudo dfu-util -l

    host $ sudo dfu-util -R -a bootloader -D / tiboot3.bin

    host $ sudo dfu-util -R -a sysfw.itb -D sysfw.itb

    host $ sudo dfu-util -R -a tispl.bin -D / tispl.bin

    host $ sudo dfu-util -R -a u-boot.img -D /u-boot.img

    #此时, u-boot 将开始执行。 在 u-boot 提示符处停止(u-boot 日志将

    出现在主 UART 第一个实例上)

    target => env default -f -a

    目标=> saveenv

    Target => setenv dfu_alt_info ${dfu_alt_info_ospi}

    目标=> DFU 0 SF 0:0

    #这是实际刷写到 OSPI 闪存的操作

    host $ sudo dfu-util -l

    host $ sudo dfu-util -a tiboot3.bin -D / tiboot3.bin

    host $ sudo dfu-util -a tispl.bin -D / tispl.bin

    host $ sudo dfu-util -a u-boot.img -D /u-boot.img

    host $ sudo dfu-util -a sysfw.itb -D sysfw.itb

    #将微型文件系统刷写到 eMMC 用户分区

    host $ sudo dfu-util -a rootfs -D /tinyrootfs.img

    但引导错误如下所示、Linux OS 无法启动。

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

    您好  

    是否修改了设备树或引导参数以从 eMMC 用户分区获取 rootfs?

    此致
    迪瓦卡尔

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

    您好,

      我们通过以下命令来设置引导参数:

    target  => env default  -f  -a
    目标 => setenv mmcdev  0
    目标 => setenv bootpart  0
    目标 => saveenv  
    Target  => setenv dfu_alt_info  ${dfu_alt_info_eMMC}
    #每块板仅限一次
    目标 => GPT 写入 MMC  0  ${partitions}

    目标 => DFU  0 MMC 0  

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

    您好!
    我们发现 Linux 可以在重新执行命令"setenv bootpart  0"后引导、 但会 按如下方式在 pice 模块中阻止。  有任何关于此问题的建议吗?

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

    您好  

    您使用的是哪种 SDK 版本的8.5?

    是否可以尝试禁用 SerDes_wiz0、SerDes_wiz1、SerDes_wiz2、SerDes_wiz3节点并查看。

    此致
    迪瓦卡尔

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

    您好  
    我们使用的是 SDK 8.6。
    不存在"serdes_wiz1-3"、仅使用 Serdes_wiz0 、  我们试图禁用 Serdes_wiz0、 并获得相同的日志表示它 在 PCIe 模块中被阻止。 BTW、相同的构建(ROOTFS)将 通过 刷写 SDcard 来工作。

    Br
    柳利

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

    您好  

    没有"serdes_wiz1-3",仅使用 serdes_wiz0 ,  我们尝试禁用 serdes_wiz0, 得到相同的日志,表明它 在 PCIe 模块中被阻止。 BTW、相同的构建(ROOTFS)将 通过 刷写 SDcard 来工作。
    [/报价]

    您在死在 PCIe 之前看到的任何其他故障?

    此致
    迪瓦卡尔

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

    您好

     在停止采用 PCIe 前、我们没有发现其他可疑信息。 我从 SDCard 和 eMMC 上传了 Linux 引导日志。  您可以发现它只是在 PCIe 处停止。
    e2e.ti.com/.../linux_5F00_boot_5F00_from_5F00_emmc.log
    e2e.ti.com/.../linux_5F00_boot_5F00_from_5F00_sdcard.log

    Br
    柳利

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

    您好  

    我检查了日志,你能否确认 root=PARTUUUUID=254af1c1-6378-154f-98e4-43d1b4f4ce16是 eMMC 分区具有 rootfs 的 uid ?

    此致
    迪瓦卡尔

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

    您好  

    您能否确认 root=PARTUUUID=254af1c1-6378-154f-98e4-43d1b4f4ce16是 具有 rootfs 的 eMMC 分区的 uid ?

    如何确认? 命令是什么?

    Br
    柳利

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

    您好  

    如何确认? 命令是什么?

    [/报价]

    使用" MMC 部件" 您将会了解到的命令 uboot  

    最好 使用 块器件名称而不是 PARTUID  

    如 root=/dev/mmcblk0p2,如果将 eMMC 分区2用于 rootfs。

    此致
    迪瓦卡尔

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

    您好!
    谢谢,那么如何设置"  root=/dev/mmcblk0p2 ",以及应该在哪里进行配置 ?  

    Br
    柳利

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

    您好  

    在 dtsi 中、您需要修改像这样的引导参数(k3-j721e-common-proc-board.dt)

    此致
    迪瓦卡尔

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

    您好!  
    我们试图应用您提供的修改、 但不起作用。 您可以 在下面的日志文件中找到内核紧急情况。
    e2e.ti.com/.../kernel_5F00_log_5F00_mmcblk0p2.log


    您能否确认 root=PARTUUUID=254af1c1-6378-154f-98e4-43d1b4f4ce16是 具有 rootfs 的 eMMC 分区的 uid ?

    我们确认了  指示 MMC 分区具有 rootfs 的 PARTUUID。 您可以在下面的日志顶部找到信息。

    e2e.ti.com/.../kernel_5F00_log_5F00_PARTUUID.log

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

    您好  

    我们试图应用您提供的修改,但 该修改不起作用。 您可以找到内核严重代码

    我无法在您共享的日志文件中找到内核紧急日志。

    此致
    迪瓦卡尔

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

    您好  

    可以在 kernel_log_mmcblk0p2.log 中找到紧急信息、如下所示。



    Br
    柳利

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

    您好

    我查看了日志并看到了

    [   1.797919]  mmcblk0:P1

    [   2.276238] VFS:无法打开根设备"mmcblk0p2"或未知块(179,2):错误-6
    [   2.284174]请附加正确的"root="引导选项;以下是可用的分区:

    是否确定上面日志中的 mmcblk0p2是 eMMC 的 rootfs 分区 ?显示只有一个分区是 p1?

    我建议您与本地 FAE 联系、以加快该过程、因为这只是一些设置问题。

    此致
    迪瓦卡尔

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

    您好  

    是否确定上面日志中的 mmcblk0p2是 eMMC 的 rootfs 分区 ?显示只有一个分区是 p1?

    [/报价]

    我们切 换到 mmcblk0p1、如下所示。 内核中没有紧急情况,但 仍被 阻止与以前相同(PARTUUID )。

    e2e.ti.com/.../kernel_5F00_log_5F00_mmcblk0p1.log

    Br
    柳利

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

    您好  

    在这里、最新日志的分析  

    [0.000000]内核命令行:console=ttyS2115200n8 earlycon=ns16550a, mmio32 0x02800000 mtdparts=47040000.spi.0:512k (ospi.tiboot3),2m (ospi.tispl),4m (booti.u-boot ),256k (crw.rooti.enf.tibus,bzw=256k@bye)}, bzw=256k(cw.spi.ti.ti.titf=32200k.spl )@bizzw=256k, pybizzw=32200k, pybzw.spl /dev/mmcblk0p1 )
    [ 2.369193] VFS:在设备179:1上安装了根(ext4文件系统)。
    [ 3.453268] systemd[1]:正在启动重新挂载根和内核文件系统...
    [ 3.463531] EXT4-FS (mmcblk0p1):重新安装。 选项:(空)
    启动[0;1;39m 删除根和内核文件系统[3.470794] cryptodev:已加载驱动程序1.10。

    您的 rootfs 正在安装、现在 eMMC 没有问题。 但看到在 R5和 C7X 上加载固件时出现一些故障。

    [5.220510] remoteproc remoteproc 3:启动固件映像 j721s2-main-r5f0_0-fw、大小为719944
    [5.225802] remoteproc remoteproc0:启动固件映像 j721s2-c71_0-fw、大小为14815296
    [ 5.240177] m_can_platform 2681000.can: m_can device registered (IRQ=41、version=32)
    [5.253289] remoteproc remoteproc 3:错误的 phdr da 0xa2f2A000 mem 0x1bc000
    [5.254790] remoteproc remoteproce0:不支持的资源65538
    [5.260535] remoteproc remoteproc 3:未能加载程序段:-22
    [ 5.272853] remoteproc remoteproc0:错误的 phdr da 0xb0100000 mem 0x98
    [5.285827] remoteproc remoteproc0:未能加载程序段:-22
    [5.362533] remoteproc remoteproc2:启动固件映像 j721s2-c71_1-fw、大小为9760696
    [5.420122] remoteproc remoteproc2:未能加载程序段:-22

    请针对同一主题提出新问题  

    此致
    迪瓦卡尔

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

    您好
    好的、我们提出了如下新话题。 请帮助检查它。  
    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1256725/tda4vm-some-failure-on-loading-firmware-on-r5-and-c7x-when-linux-boot-on-emmc

    Br
    柳利

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

    刘丽您好

    我们将关闭此主题、并继续了解新主题。

    此致
    迪瓦卡尔