cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Observer
Observer
12,475 Views
Registered: ‎01-04-2016

Driver 'mmcblk' needs updating / devicetree for emmc

Would loke to get my emmc working with linux. Created the devicetree with Vivado, looks like this: sdhci@e0100000 { compatible = "arasan,sdhci-8.9a"; status = "okay"; clock-names = "clk_xin", "clk_ahb"; clocks = <0x1 0x15 0x1 0x20>; interrupt-parent = <0x3>; interrupts = <0x0 0x18 0x4>; reg = <0xe0100000 0x1000>; }; But while booting I get just: [ 1.081311] Driver 'mmcblk' needs updating - please use bus_type methods [ 1.087964] sdhci: Secure Digital Host Controller Interface driver [ 1.094102] sdhci: Copyright(c) Pierre Ossman [ 1.098430] sdhci-pltfm: SDHCI platform and OF driver helper [ 1.104317] sdhci-arasan e0100000.sdhci: No vmmc regulator found [ 1.110261] sdhci-arasan e0100000.sdhci: No vqmmc regulator found [ 1.149241] mmc0: SDHCI controller on e0100000.sdhci [e0100000.sdhci] using ADMA and there is no /dev/mmcblk device created. What is missing? I can access to eMMC by uboot : zynq-uboot> mmc info Device: zynq_sdhci Manufacturer ID: 13 OEM: 14e Name: Q1J54 Tran Speed: 52000000 Rd Block Len: 512 MMC version 5.0 High Capacity: Yes Capacity: 3.6 GiB Bus Width: 4-bit
0 Kudos
4 Replies
Highlighted
Observer
Observer
12,436 Views
Registered: ‎01-04-2016

Re: Driver 'mmcblk' needs updating / devicetree for emmc

Sorry that my first post was almost unreadable.
Here again, devicetree, linux boot message and uboot mmc info

		sdhci@e0100000 {
			compatible = "arasan,sdhci-8.9a";
			status = "okay";
			clock-names = "clk_xin", "clk_ahb";
			clocks = <0x1 0x15 0x1 0x20>;
			interrupt-parent = <0x3>;
			interrupts = <0x0 0x18 0x4>;
			reg = <0xe0100000 0x1000>;
		};


[    1.081311] Driver 'mmcblk' needs updating - please use bus_type methods
[    1.087964] sdhci: Secure Digital Host Controller Interface driver
[    1.094102] sdhci: Copyright(c) Pierre Ossman
[    1.098430] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.104317] sdhci-arasan e0100000.sdhci: No vmmc regulator found
[    1.110261] sdhci-arasan e0100000.sdhci: No vqmmc regulator found
[    1.149241] mmc0: SDHCI controller on e0100000.sdhci [e0100000.sdhci] using ADMA



zynq-uboot> mmc info
Device: zynq_sdhci
Manufacturer ID: 13
OEM: 14e
Name: Q1J54
Tran Speed: 52000000
Rd Block Len: 512
MMC version 5.0
High Capacity: Yes
Capacity: 3.6 GiB
Bus Width: 4-bit

0 Kudos
Highlighted
Observer
Observer
11,672 Views
Registered: ‎01-04-2016

Re: Driver 'mmcblk' needs updating / devicetree for emmc

I don't have a solution for the "Driver 'mmcblk' needs updating" issue.

 

But the reason why the emmc was not detected is the missing card detector signal. Even if marked as non-removable in devicetree - it seems that this signal is important. So it has to be set fixed to zero.

0 Kudos
Highlighted
Explorer
Explorer
11,653 Views
Registered: ‎02-16-2014

Re: Driver 'mmcblk' needs updating / devicetree for emmc

This device-tree node works for me:

 

sdhci0: sdhci@e0100000 {
        compatible = "arasan,sdhci-8.9a";
	status = "okay";
	clock-names = "clk_xin", "clk_ahb";
	clocks = <&clkc 21>, <&clkc 32>;
	interrupt-parent = <&intc>;
	interrupts = <0 24 4>;
	reg = <0xe0100000 0x1000>;
	xlnx,has-cd = <0x1>;
	xlnx,has-power = <0x0>;
	xlnx,has-wp = <0x1>;
};

 

 

0 Kudos
Highlighted
Newbie
Newbie
2,558 Views
Registered: ‎10-14-2017

Re: Driver 'mmcblk' needs updating / devicetree for emmc

Thank you. It worked by adding below lines.
xlnx,has-cd = <0x1>;
xlnx,has-power = <0x0>;
xlnx,has-wp = <0x1>;
0 Kudos