Linux

linux SD卡啟動時的mmc0警告

  • March 25, 2019

我在我的微晶片 sama5d3 板的 debian linux(核心 4.18.8)啟動時收到以下警告:

mmc0: unrecognised SCR structure version 4
mmc0: error -22 whilst initialising SD card

在噴了大約 30 次之後,我得到了以下資訊並且 linux 啟動完成

mmc0: host does not support reading read-only switch, assuming write-enable
mmc0: new SDHC card at address 0007
mmcblk0: mmc0:0007 SD4GB 3.71 GiB 

我嘗試了幾種不同的 SD 卡並得到相同的結果,唯一的變化是版本號。

我在網上找到了以下內容https://groups.google.com/forum/#!topic/beagleboard/A4zfNvyMmVI

SCR 是 MMC/SD 標准定義的寄存器,數據應該通過數據匯流排讀取,而不是像大多數預定義寄存器那樣通過 cmd 匯流排讀取。TI HSMMC 驅動程序的 omap_hsmmc_request 函式嘗試通過 DMA 讀取 SCR 數據,這總是返回垃圾。有時 SCR 檢查會通過,因為垃圾數據恰好是有效的 SCR 數據

linux 核心只是檢查 SCR 版本是否不為 0,如果是,則會產生錯誤。

我的 mmc0 dts 文件如下:

   mmc0: mmc@f0000000 {
       pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3>;
       status = "okay";
       slot@0 {
           reg = <0>;
           bus-width = <8>;
       };
   };

更新到核心 4.20 不再出現該錯誤。我無法準確確定哪個核心送出修復了它。有一些可能會發揮作用,但我無法確定完全適合。

引用自:https://unix.stackexchange.com/questions/492611