マイクロチップ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>;
};
};
カーネル4.20に更新すると、エラーは表示されなくなります。どのカーネルコミットで修正されたかを正確に特定できません。役割を果たした可能性のあるものはいくつかありますが、正確に適合するとは言えません。