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 버전이 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
커널 4.20으로 업데이트하면 더 이상 이 오류가 발생하지 않습니다. 어떤 커널 커밋이 문제를 해결했는지 정확히 확인할 수 없습니다. 일부는 역할을 수행했을 수도 있지만 그것이 전적으로 적절한 것인지는 확실하지 않습니다.