1、问题描述
Samsung KLM8G1WEPD-B031(emmc5.0)更换成Samsung KLM8G1GETF-B041(emmc5.1),开机卡在android机器人界面,进不了系统;
2、抓log
打印串口log(需要将dts里sdmmc disabled,串口信息才会打印完整),报错如下:
mmc0: unrecognised EXT_CSD revision 8
3、 修改
kernel/drivers/mmc/core/mmc.c
card->ext_csd.rev = ext_csd[EXT_CSD_REV];
if (card->ext_csd.rev > 7) {
pr_err("%s: unrecognised EXT_CSD revision %dn",
mmc_hostname(card->host), card->ext_csd.rev);
err = -EINVAL;
goto out;
}
将ext_csd.rev>7改为ext_csd.rev>8,重新编译,更新kernel.img和recovery.img。
4、结论
RK312X平台只支持到eMMC 5.0协议,读到协议版本为eMMC 5.1协议(ext_csd.rev=8)时无法识别。另外,eMMC 协议是向下兼容的,修改后还是会以eMMC 4.5/5.0协议访问eMMC,不会有其它影响。
1、问题描述
Samsung KLM8G1WEPD-B031(emmc5.0)更换成Samsung KLM8G1GETF-B041(emmc5.1),开机卡在android机器人界面,进不了系统;
2、抓log
打印串口log(需要将dts里sdmmc disabled,串口信息才会打印完整),报错如下:
mmc0: unrecognised EXT_CSD revision 8
3、 修改
kernel/drivers/mmc/core/mmc.c
card->ext_csd.rev = ext_csd[EXT_CSD_REV];
if (card->ext_csd.rev > 7) {
pr_err("%s: unrecognised EXT_CSD revision %dn",
mmc_hostname(card->host), card->ext_csd.rev);
err = -EINVAL;
goto out;
}
将ext_csd.rev>7改为ext_csd.rev>8,重新编译,更新kernel.img和recovery.img。
4、结论
RK312X平台只支持到eMMC 5.0协议,读到协议版本为eMMC 5.1协议(ext_csd.rev=8)时无法识别。另外,eMMC 协议是向下兼容的,修改后还是会以eMMC 4.5/5.0协议访问eMMC,不会有其它影响。
举报