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.

[参考译文] Linux/AM4378:Linux 中未检测到 eMMC

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/566748/linux-am4378-emmc-not-detected-in-linux

器件型号:AM4378
主题中讨论的其他器件: AM4372

工具/软件:Linux

我有一个基于 AM437X-SK EVM 的定制 AM4378板。 有一个 Micron eMMC 器件(MTFC4GACA)连接到 mmc0接口。

Linux 未检测到 eMMC。

我能够在 u-boot 中使用以下命令对 eMMC 进行分区。

=> setenv 分区"uuid_disk=65544ad7-9e53-4e64-b505-b303828e6493;name=rootfs、start=2MiB、size=-、uid=dfdee69d-f839-4f0b-90ec-334a70567623"
=> setenv uid_gpt_disk 65544ad7-9e53-4e64-b505-b303828e6493

=> setenv uuid_gpt_rootfs dfdee69d-f839-4f0b-90ec-334a70567623
=> GPT 写入 MMC 0 ${partitions}

u-boot 现在报告以下信息:

=> MMC 信息
器件:OMAP SD/MMC
制造商 ID:13.
OEM:14E
姓名:Q2J54
TRAN 速度:52000000
Rd 块 Len:512
MMC 版本5.0
高容量:是
容量:3.6GiB
总线宽度:4位
擦除组大小:512 KiB
HC WP 组大小:8 MiB
用户容量:3.6GiB WRREL
引导容量:16 MIB ENH

=> MMC 部件

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

零件开始 LBA 结束 LBA 名称
属性
键入 GUID
分区 GUID
1 0x00001000 0x0072bfde "rootfs"
attrs:0x0000000000000000
类型:ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
GUID:9de6eddedf-39f8-0b4f-90ec-334a70567623

RPMB 容量:512 KiB 增强型

从 http://processors.wiki.ti.com/index.php/Linux_Core_MMC/SD_User%27s_Guide 获取的 Linux SD/MMC 配置 、我已启用"MMC 调试"。

Linux 引导日志、/var/log/messages 的内容和原理图的 eMMC 部分如下所示。

e2e.ti.com/.../1401.LinuxBootMessages.txt

e2e.ti.com/.../0743.LinuxMessages.txt

e2e.ti.com/.../3566.AM437X_5F00_eMMC.pdf

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

    同时连接我的设备树。

    e2e.ti.com/.../8424.am437x_2D00_sk_2D00_evm.dts.txt

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

    与 u-boot 不同、内核 MMC 驱动程序需要 DMA 才能工作。 您尚未在器件树中提供到 mmc1节点的 DMA 通道。 MMC 电源怎么样? 您也没有提供。

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

    谢谢 Roger!

    我的帖子中没有包含它、但在 am4372.dtsi 中配置了 DMA。 这看起来是正确的吗?

    mmc1:MMC@48060000{
    兼容="ti、omAP4-hsmmc";
    REG =<0x48060000 0x1000>;
    ti、hwmds ="mmc1";
    /*ti,双电压;*/
    TI,需要特殊重置;
    DMA =<&EDMA 24 0>、
    < EDMA 25 0>;
    dma-names ="TX"、"Rx";
    中断= ;
    STATUS ="禁用";
    };

    您可以看到、我已经注释了双电压选项、我这么做是因为我正在运行 eMMC 的内核和 I/O、而不是主3.3V 电源、因此无法将 I/O 电压切换至1.8V。 我也在启用双电压的情况下对其进行了测试。

    我已经在 VMMC-SUPPLY =<&dc4>;线路启用和禁用的情况下进行了测试。 在任一种情况下都未检测到 eMMC。

    您能看到故障位置的任何指示吗?

    我注意到 u-boot 报告 MMC 信息输出中的总线宽度为4位。 这很重要吗? 我已经在将器件树设置为4和8位总线宽度的情况下进行了测试、但两者都不起作用。