Linux SDカードから起動すると、mmc0警告が表示されます。

Linux SDカードから起動すると、mmc0警告が表示されます。

Debian Linux (カーネル 4.18.8) でマイクロチップ sama5d3 ボードを起動すると、次の警告が表示されます。

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バージョンがゼロでないことを確認し、そうであればエラーを生成します。

私の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>;
        };
    };

答え1

カーネル 4.20 に更新すると、このエラーは発生しなくなります。どのカーネルコミットが問題を解決したかを正確に確認することはできません。一部は役割を果たしたかもしれませんが、それが完全に適切であるかどうかはわかりません。

関連情報