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.

[参考译文] AM62P:AM62P:eMMC 替换为 PSE2A0SL-08GxA (8GB)、以实现需要为 eMMC 启动而修改的配置

Guru**** 2834805 points

Other Parts Discussed in Thread: AM62P

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1596568/am62p-am62p-emmc-is-replaced-with-pse2a0sl-08gxa-8gb-to-achieve-the-configuration-that-needs-to-be-modified-for-emmc-startup

部件号: AM62P

您好、专家、  
 
 我们将使用 AM62p 定制板、并将原始 eMMC 芯片 (Micron MTFC32GAZAQHD-IT、32GB) 替换为 PSE2A0SL-08GxA (8GB)。 我们需要确认需要进行哪些修改才能使 eMMC 引导正常工作。  
 
  我们尝试按照 TI 官方指南对 eMMC 刷写和引导进行测试:   4.1.3.如何刷写 eMMC 并使用 eMMC 引导进行引导  
 
https://software-dl.ti.com/processor-sdk-linux/esd/AM62PX/latest/exports/docs/linux/How_to_Guides/Target/How_to_emmc_boot.html#overview 
 
但是、电路板无法从新的 eMMC 引导:
 
启动失败时的日志如下所示:  
 
U-Boot SPL 2024.04-g6cc7b2ac (2025 年 12 月 05 日 — 10:24:50 +0800)  
SYSFW ABI:4.0(固件版本 0x000a '10.1.8--v10.01.08 (Fiery Fox)  
SPL 初始栈使用:17056 字节  
尝试从 MMC1 引导  
MMC_LOAD_IMAGE_RAW_SECTOR:MMC 块读取错误  
分区 1 在设备 0 上无效  
SPL_REGISTER_FAT_DEVICE:FAT 寄存器错误-–1  
 SPL_LOAD_IMAGE_FAT:读取映像 tispl.bin 时出错、err -–1  
 SPL:无法从所有引导设备引导  
 ###错误###请重置主板###  
 
 
此致、
Miao  

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

    您好、Miao:

    感谢您的查询!

    从日志中可以看到:  

    “尝试从 MMC1 引导“、尝试从 AM62P MMCSD1 接口引导失败(另请参阅我的 Q5)。  AM62P 4 引脚 MMCSD1 端口不支持 eMMC 接口。 AM62P ROM 加载程序也不支持通过 MMCSD1 端口进行 eMMC 引导。 我在这里有几个问题、因为我不确定是否能很好地理解:

    Q1 是 AM62P BOOTMODE[15:0]引脚、旨在引导 AM62P ROM 加载程序 eMMC 引导模式 根据 AM62Px TRM“初始化“章节、“引导模式引脚映射“ 请提供确切的引导模式二进制值。

    Q2.您是否已配置您的 备用引导模式 是否为“SD 卡引导模式“?

    问题 3 AM62P 仅在端口 MMCSD0 上支持 eMMC、但我想问一下只是要仔细检查。 您是否将  PSE2A0SL-08GxA  eMMC 闪存连接到 AM62P MMCSD1 引脚(在 4 位数据 I/O 模式下)、而不是将其连接到 MMCSD0 引脚。

    问题 4 如果新的 eMMC 闪存按预期连接到 MMCSD0、则事实证明 U-Boot SPL 引导加载程序无法从 MMCSD1 端口上的 SD 卡引导 U-Boot 软件。 您能否确认?

    问题 5. 您是否从其他来源知道 U-Boot SPL 日志文件中的“mmc1"和“和“mmc0"别“别名与实际硬件 MMCSD0-MMCSD1 端口/引脚之间的映射是什么?  

    我期待您的反馈!

    此致、

    Anastas Yordanov

      

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

    你好
    我是回复第 1 季度~第 3 季度的硬件人员:

    Q1:当前为 Boot[15~0]  

    SD 引导[0000001001000011]和 eMMC 引导[0000000011001011]可以使用 BOOT3、7、9 上的保留引脚进行切换。


    问题 2:目前是 I2C。


    Q3:PSE2A0SL-08GxA 连接到 MMC0、SD 卡连接到 MMC1。

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

    您好、 Anastas Yordanov、

    关于 Q4 和 Q5:当我们使用 AM62P EVM 验证 eMMC 引导时、日志还显示“尝试从 MMC1 引导“(即使移除 SD 卡)、并能够成功引导。 日志如下所示:

    U-Boot SPL 2024.04-ti-g29d0c23d67ee (Nov 29 2024 - 11:41:54 +0000)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.1.8--v10.01.08 (Fiery Fox)')
    SPL initial stack usage: 17056 bytes
    Trying to boot from MMC1
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Starting ATF on ARM64 core...

    因此、我怀疑原始 TI SPL 可能存在此问题、无论从 SD 卡还是 eMMC 引导、它总是显示“尝试从 MMC1 引导“。 此外、我们的硬件检查会确认 mmc0 和 mmc1 的连接正确。


    此外、我们可能已经找到真正的问题、需要 TI 提供有关如何解决问题的建议:

    eMMC 分区布局所示、boot0 需要 8MB。 但是、我们当前使用的 PSE2A0SL-08GXA 的出厂默认 boot0 大小仅为 4MB。 这将阻止我根据原始分区布局放置 tiboot3/tispl/u-boot。 您是否有任何推荐的解决方案? 我有两个想法、我想知道它们是否可行:

    1.是否可以重新配置分区布局? 4MB 似乎足以容纳 tiboot3/tispl/u-boot。

    2.我们可以在 eMMC 上创建一个更大的引导分区,并让系统在引导期间从这个新分区读取 tiboot3/tispl/u-boot 吗?

    此致、
    Miao  

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

    您好、Chih Yu Lin、

    感谢您确认引导模式引脚配置以及 MMCSD 存储器映射与 AM62P 的对比。

    因此、我知道您在 UDA 文件系统模式(在 MMCSD1 上)下使用了备用 eMMC 引导原始模式(在 MMCSD0 上)或 SDCard 引导。

    此致、

    Anastas Yordanov

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

    嗨、Miao、

    感谢在 TI SPL 引导日志中对 MMC1 进行的完整性检查和确认、从而适用于 SDCard 和 eMMC 器件。

    请检查以下建议的链接是否有帮助?

    一节、MMCSD /创建“引导“分区一节  适用于 AM62Px 的 TI Processor SDK Linux

    如果您有任何其他问题、请告诉我?

    谢谢你

    此致、

    Anastas Yordanov

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

    您好、 Anastas Yordanov、

    我之前遵循了 “第节、为 AM62Px 的 TI Processor SDK Linux 创建“引导“分区、 并在 EVM 上成功完成了操作、但在我们的定制电路板上失败了。
    如附图所示(您将在此处插入映像)、我们创建了一个新分区 mmcblk0p1 并将其标记为引导、但 eMMC 引导仍会导致 SPL 中出现错误。

    我们确定与 EVM 相比的区别在于、我们的 mmcblk0boot0/mmcblk0boot1 分区每个仅为 4MB。
    我执行了以下测试、这使我怀疑系统仍然默认从 mmcblk0boot0 引导、即使 mmcblk0p1 已被标记为引导分区:
    1.配置并刷写 mmcblk0p1 后、我清除了 mmcblk0boot0(已擦除内容)。 系统无法引导、没有任何日志输出。
    2.配置和刷写 mmcblk0p1 后,我对 mmcblk0boot0 执行了以下操作。 系统无法引导并显示上一个图像中显示的错误(可能是因为 mmcblk0boot0 的大小不足,导致写入不完整)。

    # Enable write access to the Boot0 partition
    root@<machine>:~# echo 0 > /sys/block/mmcblk0boot0/force_ro
    root@<machine>:~# mkdir /mnt/sdboot && mount /dev/mmcblk1p1 /mnt/sdboot && cd /mnt/sdboot
    root@<machine>:~# dd if=emmc/tiboot3.bin of=/dev/mmcblk0boot0 seek=0 bs=512
    root@<machine>:~# dd if=emmc/tispl.bin of=/dev/mmcblk0boot0 seek=1024 bs=512
    root@<machine>:~# dd if=emmc/u-boot.img of=/dev/mmcblk0boot0 seek=5120 bs=512

    因此、现在的问题似乎是该特定 eMMC 器件始终从 mmcblk0boot0 引导、并且 “适用于 AM62Px 的 TI Processor SDK Linux 创建“boot"分区“分区的小节中的过程 无法更改这种行为。 还有其他方法可以解决这个问题吗?

    谢谢。

    此致、
    Miao  

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

    您好、Miao Miao、

    我将让我们的  Linux eMMC 软件专家 — Prashant 为您提供解决方案。

    请预计他的答复可能会有一些延迟。

    感谢您的耐心!

    此致

    Anastas Yordanov

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

    您好:

    因此、现在的问题似乎是、此特定 eMMC 器件始终从 mmcblk0boot0
    启动

    您正在使用的引导模式 (eMMC 引导[0000000011001011]) 是 eMMC 交替引导模式、因此 ROM 和 U-Boot 将始终尝试仅从 eMMC 引导分区引导映像。

    至于问题、至少目前不应由 4MB 大小的引导分区引起、因为问题出现在 R5 SPL 加载 A53 SPL (tispl.bin) 的阶段。 `tispl.bin`在块偏移 0x400 处刷写、这完全在 4MB 大小范围内、并为二进制文件留出足够的空间。

    此特定问题已在过去被其他客户报告过

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1254318/tda4vm-emmc-startup-issues-mmc_load_image_raw_sector-mmc-block-read-error

    e2e.ti.com/.../sk-am62-am62xx-evm-09-02-01-09-in-the-mmcsd_mode_raw-startup-mode-of-emmc-it-cannot-start

    这两者都涉及 eMMC 原理图本身的一些问题。 因此、您可能也在硬件中遇到问题。

    TI 是否审查了您的 eMMC 原理图?

    此致、

    Prashant

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

    你好 Prashant Shivhare、

        感谢您的分析。我们想补充我们对 4MB boot0 分区的关注:根据官方 TI 布局和命令:

    dd if=emmc/tiboot3.bin of=/dev/mmcblk0boot0 seek=0 bs=512
    dd if=emmc/tispl.bin of=/dev/mmcblk0boot0 seek=1024 bs=512
    dd if=emmc/u-boot.img of=/dev/mmcblk0boot0 seek=5120 bs=512

    但是、这些官方命令将直接超过我们 4MB 大小的 boot0 分区的扇区限制。为了适应 4MB 容量约束、我们调整了图像的写入偏移量:

    dd if=tiboot3.bin of=/dev/mmcblk0boot0 seek=0 bs=512
    dd if=tispl.bin of=/dev/mmcblk0boot0 seek=647 bs=512
    dd if=u-boot.img of=/dev/mmcblk0boot0 seek=3105 bs=512 

    我们怀疑当前 eMMC 引导故障与 4MB 分区的容量限制和修改后的映像布局有关。您能否确认调整后的寻求偏移对于 4MB boot0 分区是否合理? 对于 4MB boot0 分区方案、TI 是否提供了官方推荐的分区布局或映像写入策略来确保成功引导?

    关于 eMMC 硬件原理图问题、我们将再次查看我们的原理图。

    谢谢。

    此致、
    Miao

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

    您好:

    理想情况下、此问题不应由此时的布局引起、但您可以按照以下主题中的讨论调整布局

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1387263/am625-emmc-layout-calculation

    此致、

    Prashant

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

    您好:

    感谢您的分析。 我的问题已解决。

    谢谢!

    此致、
    Miao

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

    您能否澄清一下什么解决了这个问题?

    原始问题发生在读取刷写在 0x400 处的`tispl.bin`映像时。 4MB eMMC 引导分区有足够的空间、可以容纳在默认偏移处刷写的`tiboot3.bin`和`tispl.bin`。 我不知道调整`tispl.bin`的布局如何解决该问题。

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

    嗨、Miao、

    我仍然想知道调整布局实际上是如何解决这个问题的。 如果您能分享有关修复的更多见解、我将不胜感激。 它只需要调整布局还是其他方面?

    谢谢、

    Prashant