SDM439平台出现部分机型SD卡不能识别mmc1: error -110 whilst initialising SD card

打印了如下的log:

 - ::02.699 <>[ 3079.000640] mmc1: data txfr (0x00100000) error: - after  ms
- ::02.699 <>[ 3079.000652] sdhci: =========== REGISTER DUMP (mmc1)===========
- ::02.699 <>[ 3079.000655] sdhci: Sys addr: 0x00000000 | Version: 0x00004d02
- ::02.699 <>[ 3079.000658] sdhci: Blk size: 0x00004040 | Blk cnt: 0x00000001
- ::02.699 <>[ 3079.000660] sdhci: Argument: 0x80ff3fff | Trn mode: 0x00000013
- ::02.699 <>[ 3079.000663] sdhci: Present: 0x03f80206 | Host ctl: 0x0000001a
- ::02.699 <>[ 3079.000665] sdhci: Power: 0x0000000d | Blk gap: 0x00000000
- ::02.699 <>[ 3079.000667] sdhci: Wake-up: 0x00000000 | Clock: 0x00000007
- ::02.699 <>[ 3079.000670] sdhci: Timeout: 0x00000001 | Int stat: 0x00000000
- ::02.699 <>[ 3079.000672] sdhci: Int enab: 0x03ff900b | Sig enab: 0x03ff100b
- ::02.699 <>[ 3079.000674] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
- ::02.699 <>[ 3079.000677] sdhci: Caps: 0x362dc8b2 | Caps_1: 0x00008007
- ::02.699 <>[ 3079.000679] sdhci: Cmd: 0x0000063a | Max curr: 0x00000000
- ::02.699 <>[ 3079.000682] sdhci: Resp : 0x5b590000 | Resp : 0x00000900
- ::02.699 <>[ 3079.000684] sdhci: Resp : 0x0a404012 | Resp : 0x76b27f80
- ::02.699 <>[ 3079.000686] sdhci: Host ctl2: 0x00000008
- ::02.699 <>[ 3079.000689] sdhci: ADMA Err: 0x00000003 | ADMA Ptr: 0x00000000f5c9820c
- ::02.699 <>[ 3079.000695] ----------- VENDOR REGISTER DUMP -----------
- ::02.699 <>[ 3079.000699] Data cnt: 0x00000040 | Fifo cnt: 0x00000040 | Int sts: 0x000c0000
- ::02.700 <>[ 3079.000702] DLL cfg: 0x6002642c | DLL sts: 0x00000000 | SDCC ver: 0x1000004d
- ::02.700 <>[ 3079.000705] Vndr func: 0x00018a9c | Vndr adma err : addr0: 0x000a3f80 addr1: 0x00000000
- ::02.700 <>[ 3079.000707] Vndr func2: 0xfa8018a8
- ::02.700 <>[ 3079.000746] Test bus[ to ]: 0x00000000 0x00000000 0x00000000 0x00000000
- ::02.700 <>[ 3079.000748] Test bus[ to ]: 0x00000000 0x00000000 0x00000000 0x00000000
- ::02.700 <>[ 3079.000751] Test bus[ to ]: 0x00000000 0x00000000 0x00000000 0x00000000
- ::02.700 <>[ 3079.000753] Test bus[ to ]: 0x00000000 0x00000000 0x00000000 0x00000000
- ::02.700 <>[ 3079.000755] Test bus[ to ]: 0x00000000 0x00000000 0x00000000 0x00000000
- ::02.700 <>[ 3079.000758] Test bus[ to ]: 0x00000000 0x00000000 0x00000000 0x00000000
- ::02.700 <>[ 3079.000760] Test bus[ to ]: 0x00000000 0x00000000 0x00000000 0x00000000
- ::02.700 <>[ 3079.000763] Test bus[ to ]: 0x00000000 0x00000000 0x00000000 0x00000000
- ::02.700 <>[ 3079.000766] Test bus[ to ]: 0x00000000 0x00000000 0x00000000 0x00000000
- ::02.700 <>[ 3079.000768] Test bus[ to ]: 0x00000000 0x00000000 0x00000000 0x00000000
- ::02.700 <>[ 3079.000770] Test bus[ to ]: 0x00000000 0x00000000 0x00000000 0x00000000
- ::02.700 <>[ 3079.000773] Test bus[ to ]: 0x00000000 0x00000000 0x00000000 0x00000000
- ::02.700 <>[ 3079.000776] Test bus[ to ]: 0x00000000 0x00000000 0x00000000 0x00000000
- ::02.700 <>[ 3079.000778] Test bus[ to ]: 0x00000000 0x00000000 0x00000000 0x00000000
- ::02.700 <>[ 3079.000781] Test bus[ to ]: 0x00000000 0x00000000 0x00000000 0x00000000
- ::02.700 <>[ 3079.000785] mmc1: clk: clk-gated: claimer: kworker/: pwr: host->irq =
- ::02.700 <>[ 3079.000788] mmc1: rpmstatus[pltfm](runtime-suspend:usage_count:disable_depth)(::)
- ::02.700 <>[ 3079.000790] sdhci: ===========================================
- ::02.765 <>[ 3079.066337] [FTS][Info]TP Ready, Device ID = 0x54
- ::03.559 <>[ 3079.862932] mmc1: mmc_sd_init_card() failure (err = -)
- ::03.559 <>[ 3079.862944] mmc1: error - whilst initialising SD card

从log上分析出错的应该是在SD的初始化的阶段有问题(mmc1: error -110 whilst initialising SD card)。有可能是SD卡在上电的时候出现电源还没有稳定,需要增大上电等待的延迟,延迟的时间自己设定。代码修改如下:

 diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index eb9ff36..7842f45
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -, +, @@ void mmc_power_up(struct mmc_host *host, u32 ocr) host->ios.vdd = fls(ocr) - ;
host->ios.power_mode = MMC_POWER_UP;
+
+ printk(KERN_ERR"zhuangzebin:>>>>>%s-%d<<<<<<<\r\n",__func__,__LINE__);
+ dev_dbg(mmc_dev(host), "zhuangzebin mmc before init\n");
/* Set initial state and call mmc_set_ios */
mmc_set_initial_state(host); @@ -, +, @@ void mmc_power_up(struct mmc_host *host, u32 ocr)
* This delay should be sufficient to allow the power supply
* to reach the minimum voltage.
*/
- mmc_delay();
+ mmc_delay(); mmc_pwrseq_post_power_on(host); @@ -, +, @@ void mmc_power_up(struct mmc_host *host, u32 ocr)
* This delay must be at least clock sizes, or ms, or the
* time required to reach a stable voltage.
*/
- mmc_delay();
+ mmc_delay(); mmc_host_clk_release(host);
+
+ mmc_delay();
}

编译重新烧录固件,仍然有这个问题的存在,已经把延迟的时间增大了10倍,排除软件问题,后面找硬件分析,SD卡的一颗物料没有焊接。而且机器有拆过的痕迹,那颗物料刚好处于边缘的地方,有可能是拆卸的时候导致物料脱落,后面硬件把物料焊接上,可以识别到SD卡。

SDM439平台出现部分机型SD卡不能识别mmc1: error -110 whilst initialising SD card【学习笔记】的更多相关文章

  1. SD卡报错“error -110 whilst initialising SD card”

    目前开发遇到了某些SD卡和TI的SOC芯片的驱动不协调的地方,具体表现为: uboot 阶段初始化mmc dev 1 没有任何串口信息输出,无法读写mmc Kernel阶段报错”SD卡初始化失败 er ...

  2. 解决树莓派8G的SD卡只能识别3.3G,SD卡扩容

    8GB microSD在Windows下使用Win32 Disk Imager下载映像后,在RPi中只能识别出3.3GB.而本身还有很多容量没有释放出来. 使用sudo raspi-config工具可 ...

  3. 【转】linux设备驱动之MMC SD卡——核心层简单分析

    原文网址:http://blog.chinaunix.net/uid-28685940-id-3889878.html /*************************************** ...

  4. sd 卡驱动--基于高通平台

    点击打开链接 内容来自以下博客: http://blog.csdn.net/qianjin0703/article/details/5918041 Linux设备驱动子系统第二弹 - SD卡 (有介绍 ...

  5. 第36章 SDIO—SD卡读写测试

    第36章     SDIO—SD卡读写测试 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/f ...

  6. 第36章 SDIO—SD卡读写测试—零死角玩转STM32-F429系列

    第36章     SDIO—SD卡读写测试 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/f ...

  7. 用QEMU模拟运行uboot从SD卡启动Linux

    平台:Qemu + vexpress-a9 u-boot:u-boot-2019.10 Linux:linux-4.14.13       之前介绍过用Qemu模拟运行uboot,然后从网络启动lin ...

  8. Android SD卡存储

    原创文章,转载请注明出处:http://www.cnblogs.com/baipengzhan/p/Android_SDcard_store.html 一 概念 SD卡存储空间比较大,当需要存取较大的 ...

  9. File存对象--android 的File存储到SD卡();

    方法1:android File存对象--File存储到SD卡(); 1.保存对象到本地或SD卡需要注意的是,要保存的对象(OAuthV1)一定要实现了Serializable接口.实现了Serial ...

随机推荐

  1. c# 将两个表的有效数据合到一个表中

    <asp:DropDownList ID="ddlSpecialty" runat="server" > </asp:DropDownList ...

  2. day 14作业

    作业 现有文件info.txt, 其内容如下: alpha male 18 1000 bravo male 28 2000 charlie female 38 3000 delta female 48 ...

  3. Xmind8安装和破解(Windows下)

    如果本文对你有用,请爱心点个赞,提高排名,帮助更多的人.谢谢大家!❤ 如果解决不了,可以在文末进群交流. 一.准备工作:软件.补丁下载及安装  Xmind8官方下载地址:https://www.xmi ...

  4. Java集合框架总结2_Map

    1. Map接口概述 Map与Collection并列存在.用于保存具有映射关系的数据:key-value: Map中的key和value都可以是任何应用类型的数据: Map中的key用Set来存放, ...

  5. MySQL-查看DB文件位置

    show global variables like "%datadir%"

  6. JQuery中两个ul标签的li互相移动

    实例 <html > <head> <meta http-equiv="Content-Type" content="text/html; ...

  7. 【RocketMQ异常】Caused by: com.aliyun.openservices.shade.com.alibaba.rocketmq.client.exception.MQClientException: No route info of this topic, message-service-topic-testf

    一.异常信息 -- ::-thread-] ERROR c.x.x.r.service.producer.ali.AliMQProducerProcess.sendMessageFromQueue(A ...

  8. composer.json详解

    composer.json 架构:https://docs.phpcomposer.com/04-schema.html#homepage composer.json 完全解析:https://lea ...

  9. MySQL/MariaDB数据库的复制加密

      MySQL/MariaDB数据库的复制加密 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL的安全问题 1>.基于SSL复制 在默认的主从复制过程或远程连接 ...

  10. HRBUST 2040 二叉树的遍历

    给出一棵二叉树的中序和前序遍历,输出它的后序遍历. Input 本题有多组数据,输入处理到文件结束. 每组数据的第一行包括一个整数n,表示这棵二叉树一共有n个节点. 接下来的一行每行包括n个整数,表示 ...