cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
lancec
Observer
Observer
7,331 Views
Registered: ‎10-28-2013

eMMC doesn't show up

Jump to solution

I'm using a 4GB eMMC chip with zynq-7000 . I've enabled SD0 in the fpga and have it in my device tree. My problem is that it never shows up under /dev. I expect to see something like /dev/mmcblk0. I'm using kernel 3.12

 

Any suggestions?

0 Kudos
1 Solution

Accepted Solutions
lancec
Observer
Observer
10,423 Views
Registered: ‎10-28-2013

In addition to the clock-names in my devicetree, looks like my problem was not rebuilding the fsbl since I added in the SD0. Thanks for your help.

View solution in original post

0 Kudos
7 Replies
trenz-al
Scholar
Scholar
7,320 Views
Registered: ‎11-09-2013

if you use 2014.2 and petalinux then there is nothing todo by hand, as soon as the SDIO0 or SDIO1 is enabled it will be probed in during linux boot and you would see at least the driver probe messages in bootlog.

 

1) enable SDIOx

2) export HDF file

3) petalinux get-hw-config

4) build

 

and it works, or gives error messages during boot...

0 Kudos
movax
Explorer
Explorer
7,309 Views
Registered: ‎11-09-2013
Are you using MIO or EMIO?
0 Kudos
lancec
Observer
Observer
7,305 Views
Registered: ‎10-28-2013

I've tried both MIO and EMIO. Originally my devicetree had clock-names = "ref_clk", "aper_clk" and I got errors on the probe. I changed those to clock-names = "clk_xin", "clk_ahb" and got the following but anything showed up under /dev:

       mmc0: SDHCI controller on e0100000.ps7-sdio [e0100000.ps7-sdio] using ADMA

       mmc1: SDHCI controller on e0101000.ps7-sdio [e0101000.ps7-sdio] using ADMA

 

The fpga project was originally built in 2013.3. I updated to 2014.2 and still have the same problems.

0 Kudos
lancec
Observer
Observer
10,424 Views
Registered: ‎10-28-2013

In addition to the clock-names in my devicetree, looks like my problem was not rebuilding the fsbl since I added in the SD0. Thanks for your help.

View solution in original post

0 Kudos
Anonymous
Not applicable
5,110 Views

For me the emmc works in uboot (!), but in Linux I can't see a /dev/mmcblk node.

The Controller is recognised during boot:

 

mmc0: SDHCI controller on e0100000.sdhci [e0100000.sdhci] using ADMA

 

Are there any subnodes in devicetree required?

 

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

                        };
0 Kudos
Anonymous
Not applicable
5,089 Views

The solution has been, to set the CD (Card Detection) signal to ground. Even if this is marked as "nonremovable" in devicetree, that seems to be missed.

0 Kudos
Anonymous
Not applicable
5,056 Views

Something similar has happended to me in a new design. Cannot see mmcblk in Linux.

 

How do you connect CD signal to ground? By means of any sentence in the driver code or enabling physically in VIVADO the "CD" option and routing it to an EMIO?

 

In my case, I have an eMMC memory (no CD available as pin) routed to MIO interface.

 

Any feedback would be nice....

0 Kudos