[meta-freescale] Help using sdhc devices on i.MX6 (Embedsky E9 mini PC)

Gyorgy Kovesdi kgy at teledigit.eu
Thu Jul 2 09:26:03 PDT 2015


Hi,

I have a working device tree for my E9 card (partially compatible with Sabresd) with kernel 4.1.
I tried to use it with linux-imx_3.10.17, because it is necessary to use some specific devices.
Unfortunately, the SD card is not detected correctly. If i use this in the device tree:

&usdhc1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usdhc1>;
	vmmc-supply = <&reg_3p3v>;
	status = "okay";
};

&usdhc2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usdhc2>;
	cd-gpios = <&gpio1 4 0>;
	vmmc-supply = <&reg_3p3v>;
	status = "okay";
};

&usdhc4 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usdhc4>;
	vmmc-supply = <&reg_3p3v>;
	non-removable;
	status = "okay";
};

then the root fs is at mmcblk1p2, and i got the following messages:

snvs_rtc 20cc034.snvs-rtc-lp: setting system clock to 1970-01-01 00:00:01 UTC (1)
ALSA device list:
  #0: imx-hdmi-soc
EXT3-fs (mmcblk1p2): recovery required on readonly filesystem
EXT3-fs (mmcblk1p2): write access will be enabled during recovery
mmc0: mmc_rescan_try_freq: trying to init card at 400000 Hz
mmc0: mmc_rescan_try_freq: trying to init card at 300000 Hz
mmc0: mmc_rescan_try_freq: trying to init card at 200000 Hz
mmc0: mmc_rescan_try_freq: trying to init card at 100000 Hz
random: nonblocking pool is initialized
kjournald starting.  Commit interval 5 seconds
EXT3-fs (mmcblk1p2): orphan cleanup on readonly fs
EXT3-fs (mmcblk1p2): 1 orphan inode deleted
mmc0: mmc_rescan_try_freq: trying to init card at 400000 Hz
mmc0: mmc_rescan_try_freq: trying to init card at 300000 Hz
mmc0: mmc_rescan_try_freq: trying to init card at 200000 Hz
mmc0: mmc_rescan_try_freq: trying to init card at 100000 Hz
EXT3-fs (mmcblk1p2): recovery complete
EXT3-fs (mmcblk1p2): mounted filesystem with writeback data mode
VFS: Mounted root (ext3 filesystem) readonly on device 179:2.
Freeing unused kernel memory: 372K (c0963000 - c09c0000)
mmc0: mmc_rescan_try_freq: trying to init card at 400000 Hz
mmc0: mmc_rescan_try_freq: trying to init card at 300000 Hz
mmc0: mmc_rescan_try_freq: trying to init card at 200000 Hz
mmc0: mmc_rescan_try_freq: trying to init card at 100000 Hz
EXT3-fs (mmcblk1p2): using internal journal
mmc0: mmc_rescan_try_freq: trying to init card at 400000 Hz
mmc0: mmc_rescan_try_freq: trying to init card at 300000 Hz
mmc0: mmc_rescan_try_freq: trying to init card at 200000 Hz
mmc0: mmc_rescan_try_freq: trying to init card at 100000 Hz

It seems that the kernel mounts the root correctly, but tries to initialize the mmc0 in an endless loop (which is not connected).
I tried remove the usdhc1 device from device tree, but in this case the SD card is not detected at all (seems like the sdhc is not working at all).
The same result with linux-fslc kernel.

Why it tries to initialize the non-existing mmc0 device? How can i use it correctly?

Thanx in advance
György Kövesdi


More information about the meta-freescale mailing list