目前开发遇到了某些SD卡和TI的SOC芯片的驱动不协调的地方,具体表现为:

uboot 阶段初始化mmc dev 1 没有任何串口信息输出,无法读写mmc

Kernel阶段报错”SD卡初始化失败 error -110 whilst initialising SD card“

具体的原因是SD的某些CMD操作不支持,返回-110的错误,需要

uboot阶段,在dts中屏蔽掉:

main_sdhci1: sdhci@4fb0000 {
ti,otap-del-sel-legacy = <0x2>;
/*ti,otap-del-sel-sd-hs = <0xf>;
ti,otap-del-sel-sdr12 = <0xf>;
ti,otap-del-sel-sdr25 = <0xf>;
ti,otap-del-sel-sdr50 = <0xc>;
ti,otap-del-sel-sdr104 = <0x5>;
ti,otap-del-sel-ddr50 = <0xc>;
sdhci-caps-mask = <0x2 0x0>;*/
dma-coherent;
};

Kernel阶段,在drivers/mmc/host/sdhci.c 的函数 void __sdhci_read_caps 中添加:

host->quirks2 |= SDHCI_QUIRK2_NO_1_8_V;

主要是使能SDHCI_QUIRK2_NO_1_8_V

if (host->quirks2 & SDHCI_QUIRK2_NO_1_8_V) {
   host->caps1 &= ~(SDHCI_SUPPORT_SDR104 | SDHCI_SUPPORT_SDR50 |
   SDHCI_SUPPORT_DDR50);
   /*
        * The SDHCI controller in a SoC might support HS200/HS400
        * (indicated using mmc-hs200-1_8v/mmc-hs400-1_8v dt property),
        * but if the board is modeled such that the IO lines are not
        * connected to 1.8v then HS200/HS400 cannot be supported.
        * Disable HS200/HS400 if the board does not have 1.8v connected
        * to the IO lines. (Applicable for other modes in 1.8v)
         */
         mmc->caps2 &= ~(MMC_CAP2_HSX00_1_8V | MMC_CAP2_HS400_ES);
         mmc->caps &= ~(MMC_CAP_1_8V_DDR | MMC_CAP_UHS);
}

重新编译u-boot和Kernel解决SD卡问题。

最新文章

  1. Web打印控件
  2. uva 11020 - Efficient Solutions ——平衡BST
  3. 【原创】30分钟入门 github
  4. python学习笔记20(字符串格式化)
  5. angular自定义指令详解
  6. java文件(文件夹)操作
  7. MBProgressHUD详解
  8. Spark环境搭建(四)-----------数据仓库Hive环境搭建
  9. Vue-admin工作整理(十七):Mock模拟Ajax请求
  10. P1638 逛画展(直尺法)
  11. Linux命令替换字符串
  12. 洛谷.2219.[HAOI2007]修筑绿化带(单调队列)
  13. [Windows Azure] Enabling Diagnostics in Windows Azure
  14. json demo
  15. MySQL-5.5.32 配置文件优化详解
  16. 20145335郝昊《java程序设计》第1次实验报告
  17. CNN中千奇百怪的卷积方式大汇总
  18. SqlServer数据库全角和半角互转的方法
  19. EchartJS平均线、最大值、最小值
  20. hbase-shell + hbase的java api

热门文章

  1. php ip转换省市县
  2. C#开发OPC客户端
  3. python3-cookbook笔记:第五章 文件与IO
  4. PAT甲级代码仓库
  5. css3基础-选择器+边框与圆角+背景与渐变
  6. centos7 lnmp环境搭建
  7. Julia 入门学习教程
  8. Selenium实战(六)——数据驱动应用
  9. Uva1213(线性筛模板+dp)
  10. Python编辑器——Pycharm以及Sublime Text 3的安装教程