NXP i.MX6Q 内核启动失败mmc0: unrecognised EXT_CSD revision 8错误解决办法

在Ubuntu 18.04上使用arm-linux-gnueabihf-gcc交叉编译器和QT5.12.8开发针对TW-IMX6DL-EVM开发板的项目时,遇到内核挂载文件系统失败并自动重启的问题。错误信息显示mmc0: unrecognisedEXT_CSDrevision8和mmc0: error-22whilstinitialisingMMCcard。通过编辑kernel/drivers/mmc/core/mmc.c文件,修改关于EXT_CSD revision的判断条件,将相关判断语句的条件改为大于9和大于等于8,解决了eMMCv4.5以后版本的不识别问题。修复后重新编译内核即可正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目场景:

编译环境及开发包:
主机:ubuntu18.04
交叉编译器:arm-linux-gnueabihf-gcc
QT5.12.8:qt-everywhere-opensource-src-5.12.8
开发板:TW-IMX6DL-EVM
Linux:Linux-3.0.35
串口工具:Xshell

注意:本文章的所有命令涉及到的路径均为眺望电子官方环境路径,需根据自身实际环境改变。本文所演示的平台来自于眺望电子 iMX6 ARM嵌入式平台,这是一个基于NXP iMX6 ARM处理器,支持单核/双核Cortex-A9的核心板。


问题描述:

内核挂载文件系统失败,自动重启,往上面的log查看,有下面错误:

mmc0: unrecognised EXT_CSD revision 8
mmc0: error -22 whilst initialising MMC card

解决方案:

1、对kernel/drivers/mmc/core/mmc.c进行编辑
①查找

unrecognised EXT_CSD revision

将上面的判断语句(注意n根据不同版本内核可能是6或者其他值)

if (card->ext_csd.rev > n) {

修改为

if (card->ext_csd.rev > 9) {

②继续查找

eMMC v4.5 or later

将下面的(注意n根据不同版本内核可能是6或者其他值)

if (card->ext_csd.rev >= n) {

修改为

if (card->ext_csd.rev >= 8) {

2、保存文件重新编译即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

眺望电子-ARM嵌入式

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值