当前位置:网站首页>SD卡報錯“error -110 whilst initialising SD card

SD卡報錯“error -110 whilst initialising SD card

2022-07-06 03:05:00 xrdeng

SD卡報錯“error -110 whilst initialising SD card”

目前開發遇到了某些SD卡和TI的SOC芯片的驅動不協調的地方,具體錶現為:

uboot 階段初始化mmc dev 1 沒有任何串口信息輸出,無法讀寫mmc

Kernel階段報錯”SD卡初始化失敗 error -110 whilst initialising SD card“

具體的原因是SD的某些CMD操作不支持,返回-110的錯誤,需要

uboot階段,在dts中屏蔽掉:

main_sdhci1: [email protected] {
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卡問題。

原网站

版权声明
本文为[xrdeng]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207060300485783.html