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.

[参考译文] DRA712:J6 Entry EVM MLO 不能#39;t fit in eMMC 分区

Guru**** 2568925 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/627037/dra712-j6-entry-evm-mlo-doesn-t-fit-in-emmc-partition

器件型号:DRA712

团队

我们正在开发 J6 Entry EVM。

我们正在尝试使用 fastboot 在 eMMC 中刷写 MLO、而不会成功。 MLO 大小大于 eMMC xloader 分区。 对于我们未来的定制板、我们不希望使用 QSPI。 所有软件都将在 eMMC 中、因此从零开始没有 QSPI 或 SD 可用于闪存板、因此我们正在尝试在 EVM 中开发类似的闪存过程

EVM 设置

SYSCFG[0-7]:0000.00

步骤

  • 插入 USB1的电源板
  • 在主机上
    • sudo ./usbboot -s u-boot-spl.bin
    • sudo dfu-util -c 1 -i 0 -a 0 -D u-boot.img -R
  • 在目标上、停止 u-boot 倒计数
    • FASTBOOT 0
  • 在主机上
    • sudo fastboot OEM 格式

写入 GPT:成功!
请求 fdf2c740未在队列中排成 ep1in 批量队列

    • sudo fastboot flash xloader MLO

警告:未知变量:分区类型:xloader
请求 fdf2c740未在队列中排成 ep1in 批量队列
请求 fdf2c740未在队列中排成 ep1in 批量队列
开始下载138932字节
请求 fdf2c740未在队列中排成 ep1in 批量队列
.request fdf2c740未在批量队列中进入 ep1in

已完成138932字节的下载
错误:分区太大:'xloader"

在 common/fb_MMC.c:81/write_raW_image ()
请求 fdf2c740未在队列中排成 ep1in 批量队列

深入挖掘

MMC 部件

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

零件   开始 LBA       结束 LBA          名称       属性       类型 GUID       分区 GUID
1         0x00000100 0x000001ff     "xloader"
       attrs: 0x0000000000000000
       类型:  ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
       GUID:  d117f98e-6f2c-d04b-a5b2-331a19f91cb2
2    0x00000200     0x000007ff"     引导加载程序"
       attrs: 0x0000000000000000
       类型:  ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
       GUID:  25718777-d0AD-7443-9e60-02cb591c9737

MLO 大小为138932

uBoot/include/configs/dra7xx_evm.h

#define DFU_ALT_INFO_EMMC \
   "dfu_alt_info_eMMC="\
   "rawemmc raw 0 3751936;"\
   "引导第1部分;"\
   "rootfs 第1部分2;"\
   "MLO fat 1;"\
   "MLO.RAW 0x100 0x100;"\              <----
   "u-boot.img.raw 0x300 0x400;"\                           |
   "SPL-OS-args.raw 0x80 0x80;"\                               |
   "SPL-OS-IMAGE.RAW 0x900 0x2000;"\
   "SPL-OS-args fat 1;"\
   "SPL-OS-image fat 1;"\                                              size 应该相同、不应该?
   "u-boot.img fat 1;"\
   "uEnv.txt fat 1\0"

#define DFU_ALT_INFO_QSPI \                                       |
   "dfu_alt_info_qspi=""\                                                      |
   "MLO RAW 0x0 0x040000;"\                    <---- +
   "U-boot.img raw 0x040000 0x0100000;"\
   "u-boot-spl-OS RAW 0x140000 0x080000;"\
   "u-boot-env raw 0x1C0000 0x010000;"\
   "U-boot-env.backup raw 0x1D0000 0x010000;"\
   "内核原始0x1E0000 0x800000\0"

尺寸不匹配是 EVM 错误、或者您有任何原因吗?

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

    出于我们的目的、我们在菜单 makeconfig 中选择"enable SPL with DFU to load binary to memory devices"。 它会增加 MLO 大小而不是 FF (在 DFU_ALT_INFO_EMMC 中定义)。 为了使我们的 MLO 适合 eMMC 分区、我们重新定义了它
    #define parts_default
    (笑声)
    "name=xloader,start=128K,size=256K,uuid=${uuid_gpt_xloader};"\
    (笑声)

    #define DFU_ALT_INFO_MMC \
    (笑声)
    "MLO.RAW 0x100 0x200;"\
    (笑声)

    #define DFU_ALT_INFO_EMMC \
    (笑声)
    "MLO.RAW 0x100 0x200;"
    (笑声)

    我们缺少什么?
    要在 eMMC 中安装更大的 MLO、必须定义什么?

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

    尊敬的 Christian:

    请问您为何要尝试执行 fastboot? 我认为这两种协议都是上传映像的不同协议。 希望您已阅读以下链接: processors.wiki.ti.com/.../Linux_Core_U-Boot_User's_Guide 。 我认为、在尝试 DFU 时、不需要执行快速启动。

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

    需要 DFU 来加载 u-boot。
    在开发时需要 FASTBOOT 来刷写映像(非常频繁)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的确切要求是什么?

    难以将整个 DFU 整合到 SPL 中、因此 SPL-DFU 功能将使用户能够通过 USB 将 u-boot.img 加载到主机 PC 的片上 RAM 中。 U-boot 启动后、U-boot 具有 DFU 功能、可将映像刷写到 QSPI、MMC 或 eMMC。
    也可以从 u-boot 使用 fastboot。

    注意:SPL-DFU 仅支持将映像加载到 RAM。 它不支持将映像刷写到 QSPI/MMC/EMMC 中。 为了将映像刷写到 QSPI/MMC/eMMC、您已使用 u-boot 中的 DFU。

    此致
    Ravi
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢。
    我们尝试使用 SPL-DFU 闪存到 xMMC。 现在很清楚、这是不可能的