Edit online

常见问题

23 Dec 2024
Read time: 2 minute(s)

MMC 初始化失败

现象
Linux 启动后,在扫描 mmc0 设备的时候报错 whilst initialising MMC card,log 如下
mmc_host mmc1: Bus speed (slot 0)= 204000000Hz (slot req 300000Hz, actual 300000HZ div=680)
mmc_host mmc0: Bus speed (slot 0)= 204000000Hz (slot req 25000000Hz, actual 20400000HZ div=10)
mmc_host mmc1: Bus speed (slot 0)= 204000000Hz (slot req 200000Hz, actual 200000HZ div=1020)
mmc0: error -110 whilst initialising MMC card
mmc_host mmc0: Bus speed (slot 0)= 204000000Hz (slot req 300000Hz, actual 300000HZ div=680)
mmc_host mmc1: Bus speed (slot 0)= 204000000Hz (slot req 100000Hz, actual 100000HZ div=2040)
mmc_host mmc0: Bus speed (slot 0)= 204000000Hz (slot req 25000000Hz, actual 20400000HZ div=10)
mmc0: error -110 whilst initialising MMC card
mmc_host mmc0: Bus speed (slot 0)= 204000000Hz (slot req 200000Hz, actual 200000HZ div=1020)
random: fast init done
mmc_host mmc0: Bus speed (slot 0)= 204000000Hz (slot req 25000000Hz, actual 20400000HZ div=10)
mmc0: error -110 whilst initialising MMC card
mmc_host mmc0: Bus speed (slot 0)= 204000000Hz (slot req 100000Hz, actual 100000HZ div=2040)
原因分析

修改了 DDR 频率为 408 MHz,导致 MMC 工作时钟不准。由于 DDR 和 SDMC 共用了一个父时钟,确认是否更改了 DDR 工作频率,从而导致了父时钟发生变化。

解决方案
  1. 找到并打开包含 sdmcx 节点的设备树源文件。

  2. 确认 sdmcx 节点的 clock-frequency 参数配置正确。

    根据实际需求,将参数设置为合适的值。

  3. 保存并编译 DTS。

mmc_test 节点不存在

现象

在 mmc_test 测试中,挂载了 debugfs 后,无法找到 testlist 测试项。

原因分析

mmc_test 必须要在关闭 MMC Block 选项的前提下才能运行。

解决方法

确认内核中的 BLOCK 配置项。 详见软件配置