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.

[参考译文] AM3357:无法将 THGBMJG6C1LBAU7 eMMC 闪存与处理器一起安装。

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1358352/am3357-unable-to-mount-thgbmjg6c1lbau7-emmc-flash-with-the-processor

器件型号:AM3357
主题中讨论的其他器件: CSD

您好!

我们尝试 在硬件上将 THGBMJG6C1LBAU7 EMMC 与 AM3357处理器结合使用。 uBoot 位于 SPI 闪存上、从此处它执行 Linux 内核的 zImage、从而将 rootfs 提取到 eMMC 闪存上。 但它无法实现、因为 THGBMJG6C1LBAU7 (由 Kioxia Prev Toshiba)由于某些无法识别的错误而未安装。

我们尝试了与  MTFC2GMVEA-0M-WT-Micron EMMC 相同的闪存和引导过程、它工作无任何麻烦。 两个 EMMC 之间有一个不同之处是、一个可正常工作的 EMMC (MTFC2GMVEA-0M-WT-Micron EMMC)在数据表中提到了它与之前的 EMMC 版本向后兼容、而一个不起作用的 EMMC 没有在数据表中提到这一点、 但这里提到了一些向后兼容模式、并引述了以下两点:

注1:e-MMC 必须始终以向后兼容的接口时序启动。 可以将计时模式切换到
主机发送开关命令(CMD6)的高速接口时序、具有高速
接口选择。
注3:为了与支持 v4.2标准或更早版本的 e-MMC 兼容,主机在切换到高速接口时序之前不应使用> 26MHz。

请提供有关可在 eMMC 驱动程序或器件树中执行哪些操作来使 eMMC 内核可用于该应用的解决方案建议。  

Linux 内核版本:4.19.94

EMMC 闪存部件号: THGBMJG6C1LBAU7

工作 EMMC 闪存部件号: MTFC2GMVEA-0M-WT-Micron。

附件是我们电路板的器件树文件。 谢谢。

e2e.ti.com/.../my_5F00_dts.txt

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

    尊敬的 Himanshi:

    您不需要同时为工作和非工作的 eMMC 器件修改内核器件树&mmc1节点、对吗?

    请共享控制台引导日志。

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

    您好!

    从 Himanshi 的团队来看、我们不会针对工作和非工作的 eMMC 修改设备树。

    请在下面找到启动日志。

    e2e.ti.com/.../3252.boot_5F00_log.txt

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

    您好!

    我不确定这是否会有所帮助、但您能否在电路板 DTS 文件中对&mmc1节点进行以下修改、看看是否可以检测到 eMMC?

    -删除" PINCTRL-1 "行(&mmc1);

    -添加" 不可拆卸; "到 mmc1;

    -添加" TI、不可拆卸; "添加到 mmc1.

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

    大家好、我们在内核器件树中进行了这些更改 、但没有帮助。 会发生完全相同的引导日志。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们找到一些论坛可能有助于解决此问题。 下面提到的一个提示我们将 v5.1 eMMC 连接到处理器上的 mmc1引脚(我们目前正在将其连接到 mmc0)。 但主要的疑问是、之前由 Micron 提供的、向后兼容的 v5.1 eMMC 在这个设置中正常工作。   
    在 stackexchange 上的此特定论坛(使用与我们完全相同的 eMMC)中、添加了指向 NXP 文章的链接、该文章建议对驱动程序进行更改、以帮助较新的 eMMC 归回 v4.2标准、但我们找不到它建议的相关代码段。  
    如果上面提到的两种可能的解决方案给出提示、请提供一些建议。 当我们的产品处于发布阶段时立即回复、非常 感谢您的帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    以及此层叠交换机特定论坛(使用与我们完全相同的 eMMC) 指向 NXP 文章的链接、该文章建议对驱动程序进行更改以帮助较新的 eMMC 遵循 v4.2标准、但我们无法找到它建议的相关代码段。  [/报价]

    我不知道如何更改用于标准回退的代码、但以下是内核4.19中的相关代码:

    以下是读取 MMC ext_CSD 寄存器:

    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/mmc/core/mmc.c?h=ti2019.06#n659

    下面是从 ext_CSD 读取修订版本的代码:

    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/mmc/core/mmc.c?h=ti2019.06#n394

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

    您好、Bin、

    我检查过代码、所有版本的 eMMC 都是正常处理的。  

    您能为我们提供代码中的任何更改建议吗?或者我们是否需要将注意力集中在其他方面? 是否有办法调试此问题并从该问题中获取更多信息。

    有关我们要用于 MMC 的节点的任何注释。我们可以将其更改为 mmc2或 mmc3吗?

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

    Himanishi、您好!

    我不确定需要进行什么代码更改来处理 eMMC 规格差异、但我从未这样做。 如您所说、驾驶员应该优雅地处理这件事。

    如果您可以修改电路板、将 eMMC 器件移至 MMC2接口、则可以试试。 BeagleBone Black 在 MMC1上使用 SD 卡、在 MMC2上使用 eMMC。 但我没有看到 AM335x TRM 和数据表中的 MMC1和 MMC2接口之间有任何相关差异。