5.1.6. 常见问题

5.1.6.1. MMC 初始化失败

5.1.6.1.1. 现象

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)

5.1.6.1.2. 原因分析

  1. 首先确认 DTS 中sdmcx节点中的参数 clock-frequency 有没有更改过;

  2. 由于 DDR 和 SDMC 共用了一个父时钟,需要确认是否改了DDR工作频率导致了父时钟发生变化。

上述出错log就是因为原因2,修改了DDR频率为 408MHz,导致MMC工作时钟不准。

5.1.6.2. mmc_test 节点不存在

5.1.6.2.1. 现象

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

5.1.6.2.2. 解决方法

mmc_test必须要在关闭MMC Block选项的前提下才能运行,所以要确认内核中的MMC_BLOCK配置项。 详见 软件配置