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.

[参考译文] AM4376:从 UART0 UBOOT 刷写 EMMC??

Guru**** 2540720 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/951626/am4376-flashing-emmc-from-uart0-uboot

器件型号:AM4376

大家好、

阅读以下链接:
https://software-dl.ti.com/processor-sdk-linux/esd/docs/06_03_00_106/linux/Foundational_Components_U-Boot.html 

使用 DFU 和 TFTP 刷写 EMMC 似乎有几种方法、但到目前为止、我无法在我的定制设计中引入 USB 或以太网。

是否有办法使用 UART0 BOOT 将 spl 和 uboot.img 传递给 EMMC?

提前感谢您!

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

    您好、Kamil、

    [引用 USER="Kamil Muza1">EMMC 似乎有几种使用 DFU 和 TFTP 刷写的方法、但到目前为止、我无法在我的定制设计中引入 USB 或以太网。

    是否有办法使用 UART0引导将 spl 和 uboot.img 传递给 EMMC?

    从 UART 引导模式成功引导至 u-boot 提示符后、如果您能够按如下所示访问 eMMC、则可以刷写 eMMC。

    => MMC 列表
    OMAP SD/MMC:0 (SD)
    OMAP SD/MMC:1 (eMMC) 

    但是、当要刷新的文件是内核、FS 时、您需要了解如何从中提取这些文件。 通过 UART 链路读取这些文件的速度会非常慢。  

    一些更好的选项是您编写的内容-使用 USB 客户端或网络引导模式将文件从主机传输到目标。 另一个选项是使用 USB 主机引导模式、正如目前在另一个 e2e 线程中讨论的那样。

    最棒的

    -香港

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

    [引用用户="Hong Guan64"]

    从 UART 引导模式成功引导至 u-boot 提示符后、如果您能够按如下所示访问 eMMC、则可以刷写 eMMC。

    1
    2.
    3.
    => mmc list
    OMAP SD/MMC: 0 (SD)
    OMAP SD/MMC: 1 (eMMC)

    但是、当要刷新的文件是内核、FS 时、您需要了解如何从中提取这些文件。 通过 UART 链路读取这些文件的速度会非常慢。  

    [/报价]
    感谢您的回复!
    我当前可以在执行 MMC 列表时看到 eMMC

    如果我从 UART0引导、如何从 uboot 命令行将 spl 和 uboot.img 复制到 eMMC 中。 是否有办法做到这一点?

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

    [引用 USER="Kamil Muza1]\n 如果我从 UART0引导、如何从 uboot 命令行将 spl 和 uboot.img 复制到 eMMC 中。 是否有办法做到这一点?[/引述]

    在 UART 引导的 u-boot 提示符下、eMMC 刷写指令:
    software-dl.ti.com/.../Foundational_Components_U-Boot.html
    在 eMMC 分区步骤之后、如何获取 eMMC 引导二进制文件(mLO/u-boot.img)有点棘手。
    一个选项是将 eMMC 引导文件(MLO/u-boot.img)构建到 UART 引导 u-boot.img 中。
    从 UART 引导 u-boot.img 映射文件中、确定 eMMC 引导文件(MLO/u-boot.img)的 DDR 地址、即标记为 MLO_ADDR_IN_DDR 和 uBoot_ADDR_IN_DDR

    原始 eMMC 闪存:
    U-Boot # Fatload MMC 0 ${loadaddr}MLO
    U-Boot # MMC WRITE ${loadaddr}0x100 0x100
    U-Boot # MMC WRITE ${loadaddr}0x200 0x100
    U-Boot # Fatload 0 ${loadaddr}u-boot.img
    U-Boot # MMC WRITE ${loadaddr}0x300 mmc WRITE ${loadaddr}0x400修改
    后:
    U-Boot # MMC 写入${loadaddr}0x100 0x100 => MMC 写入 MLO_ADDR_IN_DDR 0x100 0x100
    U-Boot # MMC 写入${loadaddr}0x300 0x400 => MMC 写入 UBOOT_ADDR_IN_DDR 0x300 0x400 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Hong Guan64"]

    U-Boot # mmc write ${loadaddr} 0x100 0x100 => mmc write MLO_ADDR_IN_DDR 0x100 0x100
    U-Boot # mmc write ${loadaddr} 0x300 0x400 => mmc write UBOOT_ADDR_IN_DDR 0x300 0x400

    [/报价]

    您能否进一步介绍如何找到这两个地址? 当您说 UART boot u-boot.img 映射文件时、您是指:
    u-boot-spl.map 和 u-boot.map?

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

    您好、Kamil、

    正如我在第一次答复中所述、建议的选项是使用 USB 客户端或网络引导模式将文件从主机传输到目标、外加 USB 主机模式。
    这是因为从 UART 引导模式获取 eMMC 引导二进制文件需要进一步的定制、并且 UART 下载速度很慢...
    我原来的想法是将"pigy-bback "eMMC 二进制文件放入 UART u-boot.img、但考虑到适合用于 u-boot.img、它会产生非常重要的作用。

    出于开发或测试目的、如果您的电路板上有 JTAG、则另一个选项是在从 UART 引导到达 u-boot 提示符后使用 JTAG 将 eMMC 二进制文件下载到 DDR、然后使用 u-boot cmd "MMC write..." 将二进制文件从 DDR 写入 eMMC。


    最棒的
    -香港