Edit online

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)

原因分析

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

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

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