Linux
linux SD卡啟動時的mmc0警告
我在我的微晶片 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 不再出現該錯誤。我無法準確確定哪個核心送出修復了它。有一些可能會發揮作用,但我無法確定完全適合。