SDM439平台出现部分机型SD卡不能识别mmc1: error -110 whilst initialising SD card【学习笔记】
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【学习笔记】的更多相关文章
- SD卡报错“error -110 whilst initialising SD card”
目前开发遇到了某些SD卡和TI的SOC芯片的驱动不协调的地方,具体表现为: uboot 阶段初始化mmc dev 1 没有任何串口信息输出,无法读写mmc Kernel阶段报错”SD卡初始化失败 er ...
- 解决树莓派8G的SD卡只能识别3.3G,SD卡扩容
8GB microSD在Windows下使用Win32 Disk Imager下载映像后,在RPi中只能识别出3.3GB.而本身还有很多容量没有释放出来. 使用sudo raspi-config工具可 ...
- 【转】linux设备驱动之MMC SD卡——核心层简单分析
原文网址:http://blog.chinaunix.net/uid-28685940-id-3889878.html /*************************************** ...
- sd 卡驱动--基于高通平台
点击打开链接 内容来自以下博客: http://blog.csdn.net/qianjin0703/article/details/5918041 Linux设备驱动子系统第二弹 - SD卡 (有介绍 ...
- 第36章 SDIO—SD卡读写测试
第36章 SDIO—SD卡读写测试 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/f ...
- 第36章 SDIO—SD卡读写测试—零死角玩转STM32-F429系列
第36章 SDIO—SD卡读写测试 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/f ...
- 用QEMU模拟运行uboot从SD卡启动Linux
平台:Qemu + vexpress-a9 u-boot:u-boot-2019.10 Linux:linux-4.14.13 之前介绍过用Qemu模拟运行uboot,然后从网络启动lin ...
- Android SD卡存储
原创文章,转载请注明出处:http://www.cnblogs.com/baipengzhan/p/Android_SDcard_store.html 一 概念 SD卡存储空间比较大,当需要存取较大的 ...
- File存对象--android 的File存储到SD卡();
方法1:android File存对象--File存储到SD卡(); 1.保存对象到本地或SD卡需要注意的是,要保存的对象(OAuthV1)一定要实现了Serializable接口.实现了Serial ...
随机推荐
- springdata jpa 关于分页@Query问题
关于springdata jpa 分页问题相信很多小伙伴都遇到过,只要表中数量到达分页条件就会报错 废话少说直接上代码: @Query(nativeQuery = true, value = &quo ...
- 19,flask消息闪现-flash
Flash消息 请求完成后给用户的提醒消息,flask的核心特性, flash函数实现效果 视图函数中调用flash()方法 html中要使用get_flashed_messages() 后端代码: ...
- manjaro中微信不能输入中文及微信窗口出现透明轮廓的问题
一.在安装deepin-wine-wechat后,无法切换成中文输入法.网上查找资料,在配置中添加 export 等 均未成功. 后来在官方(https://aur.archlinux.org/pac ...
- sklearn.model_selection 的train_test_split方法和参数
train_test_split是sklearn中用于划分数据集,即将原始数据集划分成测试集和训练集两部分的函数. from sklearn.model_selection import train_ ...
- BZOJ-1975: 魔法猪学院 (K短路:A*+SPFA)
题意:有N种化学元素,有M种转化关系,(u,v,L)表示化学物质由u变为v需要L能量,现在你有E能量,问最多有多少种不同的途径,使得1转为为N,且总能量不超过E. 思路:可以转为为带权有向图,即是求前 ...
- MySQL之自连接
自连接就是说,在同一个表中,看做是两个表,下表表示 找每个人的领导,如果没有领导,显示无领导,eid 对应 leaderid,请看员工表 mysql> select * from emp; +- ...
- 合并K个有序链表
方法一:采用归并的思想将链表两两合并,再将两两合并后的链表做同样的操作直到合并为只有一个新的链表为止. 归类的时间复杂度是O(logn),合并两个链表的时间复杂度是O(n),则总的时间复杂度大概是O( ...
- janusgraph-控制台操作命令
当顶点数量过多时(我的230w)删除太慢 就用下面的命令, 删除整个图库 graph.close() JanusGraphFactory.drop(graph) 查询所有的顶点属性 用traversa ...
- Codeforces1114C Trailing Loves (or L'oeufs?)
链接:http://codeforces.com/problemset/problem/1114/C 题意:给定数字$n$和$b$,问$n!$在$b$进制下有多少后导零. 寒假好像写过这道题当时好像完 ...
- Django API view 登录认证
文件分类 url from django.contrib import admin from django.urls import path, re_path from django.urls imp ...