web-dev-qa-db-ja.com

LinuxのSDカード起動時のmmc0警告

マイクロチップsama5d3ボードのdebianlinux(kernel 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でないかどうかを確認するだけで、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>;
        };
    };
1
cajjed

カーネル4.20に更新すると、エラーは表示されなくなります。どのカーネルコミットで修正されたかを正確に特定できません。役割を果たした可能性のあるものはいくつかありますが、正確に適合するとは言えません。

1
cajjed