public inbox for linux-mmc@vger.kernel.org
 help / color / mirror / Atom feed
* /dev/mmcblk0 (or /dev/mmcblk0p1) does not exist on Freescale iMX6SL board
@ 2015-04-30  9:20 Xuebing Wang
  2015-04-30 12:16 ` Fabio Estevam
  0 siblings, 1 reply; 9+ messages in thread
From: Xuebing Wang @ 2015-04-30  9:20 UTC (permalink / raw)
  To: linux-mmc, Shawn Guo, Sascha Hauer, fabio.estavam, Ulf Hansson,
	balbi, niranjan Patil, richard Jiang

Hi linux-mmc community,

I am working on a board which is very similar to Freescale iMX6SL EVK 
(evaluation board), but /dev/mmcblk0 does not exist for kernel v4.0.1

A bit of background information. I was working on kernel 3.10.17, all 
eMMC works fine, except that USB Mass Storage performance is low when 
connecting USB to Windows 7 host. Its peformance is ok when connecting 
to MacOS or Linux host. linux-usb community suggests me to give a try of 
the latest kernel.

Here is how I build uImage and device tree blob:
make ARCH=arm imx_v6_v7_defconfig
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- LOADADDR=0x80008000 
uImage -j8
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- LOADADDR=0x80008000 
imx6sl-evk.dtb

My u-boot resides on eMMC, and I am using tftp (to load uImage and dtb) 
and nfs-rootfs.

---------------------------------
# uname -r
4.0.1

# dmesg | grep mmc
[    1.282872] Driver 'mmcblk' needs updating - please use bus_type methods
[    1.309598] sdhci-esdhc-imx 2190000.usdhc: No vmmc regulator found
[    1.315809] sdhci-esdhc-imx 2190000.usdhc: No vqmmc regulator found
[    1.367511] mmc0: SDHCI controller on 2190000.usdhc [2190000.usdhc] 
using ADMA
[    1.378980] sdhci-esdhc-imx 2194000.usdhc: No vmmc regulator found
[    1.385191] sdhci-esdhc-imx 2194000.usdhc: No vqmmc regulator found
[    1.437440] mmc1: SDHCI controller on 2194000.usdhc [2194000.usdhc] 
using ADMA
[    1.449272] sdhci-esdhc-imx 2198000.usdhc: No vmmc regulator found
[    1.455479] sdhci-esdhc-imx 2198000.usdhc: No vqmmc regulator found
[    1.507338] mmc2: SDHCI controller on 2198000.usdhc [2198000.usdhc] 
using ADMA

$ arm-none-linux-gnueabi-gcc --version
arm-none-linux-gnueabi-gcc (Sourcery CodeBench Lite 2013.05-24) 4.7.3
Copyright (C) 2012 Free Software Foundation, Inc.
---------------------------------

Any suggestions?

-- 
Xuebing

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: /dev/mmcblk0 (or /dev/mmcblk0p1) does not exist on Freescale iMX6SL board
  2015-04-30  9:20 /dev/mmcblk0 (or /dev/mmcblk0p1) does not exist on Freescale iMX6SL board Xuebing Wang
@ 2015-04-30 12:16 ` Fabio Estevam
  2015-04-30 12:44   ` Xuebing Wang
  0 siblings, 1 reply; 9+ messages in thread
From: Fabio Estevam @ 2015-04-30 12:16 UTC (permalink / raw)
  To: Xuebing Wang
  Cc: linux-mmc@vger.kernel.org, Shawn Guo, Sascha Hauer, Ulf Hansson,
	Felipe Balbi, niranjan Patil, richard Jiang

On Thu, Apr 30, 2015 at 6:20 AM, Xuebing Wang <xbing6@gmail.com> wrote:
> Hi linux-mmc community,
>
> I am working on a board which is very similar to Freescale iMX6SL EVK
> (evaluation board), but /dev/mmcblk0 does not exist for kernel v4.0.1

On my imx6sl-warp the eMMC is correctly detected when running kernel 4.0.

Does it help if you apply this patch from 4.1-rc1?

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/mmc/host/sdhci.c?id=04e079cf6b24c794bbc52b04b370f84cb728540e

Regards,

Fabio Estevam

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: /dev/mmcblk0 (or /dev/mmcblk0p1) does not exist on Freescale iMX6SL board
  2015-04-30 12:16 ` Fabio Estevam
@ 2015-04-30 12:44   ` Xuebing Wang
  2015-04-30 12:51     ` Fabio Estevam
  0 siblings, 1 reply; 9+ messages in thread
From: Xuebing Wang @ 2015-04-30 12:44 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: linux-mmc@vger.kernel.org, Shawn Guo, Sascha Hauer, Ulf Hansson,
	Felipe Balbi, niranjan Patil, richard Jiang


On 04/30/2015 08:16 PM, Fabio Estevam wrote:
> On Thu, Apr 30, 2015 at 6:20 AM, Xuebing Wang <xbing6@gmail.com> wrote:
>> Hi linux-mmc community,
>>
>> I am working on a board which is very similar to Freescale iMX6SL EVK
>> (evaluation board), but /dev/mmcblk0 does not exist for kernel v4.0.1
> On my imx6sl-warp the eMMC is correctly detected when running kernel 4.0.
>
> Does it help if you apply this patch from 4.1-rc1?
>
> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/mmc/host/sdhci.c?id=04e079cf6b24c794bbc52b04b370f84cb728540e

Fabio,

Thanks for your help.

Unfortunately, no, cherry-pick this patch from 4.1-rc1 into v4.0.1 has 
the same result.
-------------------
[    1.274968] Driver 'mmcblk' needs updating - please use bus_type methods
[    1.301492] sdhci-esdhc-imx 2190000.usdhc: No vmmc regulator found
[    1.307783] sdhci-esdhc-imx 2190000.usdhc: No vqmmc regulator found
[    1.353890] mmc0: SDHCI controller on 2190000.usdhc [2190000.usdhc] 
using ADMA
[    1.365351] sdhci-esdhc-imx 2194000.usdhc: No vmmc regulator found
[    1.371563] sdhci-esdhc-imx 2194000.usdhc: No vqmmc regulator found
[    1.423823] mmc1: SDHCI controller on 2194000.usdhc [2194000.usdhc] 
using ADMA
[    1.435612] sdhci-esdhc-imx 2198000.usdhc: No vmmc regulator found
[    1.441817] sdhci-esdhc-imx 2198000.usdhc: No vqmmc regulator found
[    1.493731] mmc2: SDHCI controller on 2198000.usdhc [2198000.usdhc] 
using ADMA
-------------------

It is worse if I use v4.1-rc1, it always keeps outputing below: (without 
stop)
-------------------
[   16.825778] mmc1: error -110 whilst initialising MMC card
[   16.997726] mmc1: MAN_BKOPS_EN bit is not set
-------------------


> Regards,
>
> Fabio Estevam
>

-- 
Xuebing

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: /dev/mmcblk0 (or /dev/mmcblk0p1) does not exist on Freescale iMX6SL board
  2015-04-30 12:44   ` Xuebing Wang
@ 2015-04-30 12:51     ` Fabio Estevam
  2015-04-30 13:01       ` Xuebing Wang
  0 siblings, 1 reply; 9+ messages in thread
From: Fabio Estevam @ 2015-04-30 12:51 UTC (permalink / raw)
  To: Xuebing Wang
  Cc: linux-mmc@vger.kernel.org, Shawn Guo, Sascha Hauer, Ulf Hansson,
	Felipe Balbi, niranjan Patil, richard Jiang

On Thu, Apr 30, 2015 at 9:44 AM, Xuebing Wang <xbing6@gmail.com> wrote:

> Unfortunately, no, cherry-pick this patch from 4.1-rc1 into v4.0.1 has the
> same result.

Do you have access to a mx6sl-evk? This board also can also detect the
SD card on both 4.0 and 4.1-rc1?

Regards,

Fabio Estevam

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: /dev/mmcblk0 (or /dev/mmcblk0p1) does not exist on Freescale iMX6SL board
  2015-04-30 12:51     ` Fabio Estevam
@ 2015-04-30 13:01       ` Xuebing Wang
  2015-04-30 13:06         ` Fabio Estevam
  0 siblings, 1 reply; 9+ messages in thread
From: Xuebing Wang @ 2015-04-30 13:01 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: linux-mmc@vger.kernel.org, Shawn Guo, Sascha Hauer, Ulf Hansson,
	Felipe Balbi, niranjan Patil, richard Jiang


On 04/30/2015 08:51 PM, Fabio Estevam wrote:
>> Unfortunately, no, cherry-pick this patch from 4.1-rc1 into v4.0.1 has the
>> >same result.
> Do you have access to a mx6sl-evk? This board also can also detect the
> SD card on both 4.0 and 4.1-rc1?

Fabio,

Thanks. No, I do not have access to a mx6sl-evk. But I can try to get one.

There is no eMMC (only sd-card) on mx6sl-evk, right?

-- 
Xuebing

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: /dev/mmcblk0 (or /dev/mmcblk0p1) does not exist on Freescale iMX6SL board
  2015-04-30 13:01       ` Xuebing Wang
@ 2015-04-30 13:06         ` Fabio Estevam
  2015-04-30 13:15           ` Xuebing Wang
  2015-05-01 10:39           ` Xuebing Wang
  0 siblings, 2 replies; 9+ messages in thread
From: Fabio Estevam @ 2015-04-30 13:06 UTC (permalink / raw)
  To: Xuebing Wang
  Cc: linux-mmc@vger.kernel.org, Shawn Guo, Sascha Hauer, Ulf Hansson,
	Felipe Balbi, niranjan Patil, richard Jiang

On Thu, Apr 30, 2015 at 10:01 AM, Xuebing Wang <xbing6@gmail.com> wrote:

> Fabio,
>
> Thanks. No, I do not have access to a mx6sl-evk. But I can try to get one.
>
> There is no eMMC (only sd-card) on mx6sl-evk, right?

That's correct. If you need eMMC with mx6sl, then you can try imx6sl-warp.

I have tested both boards here recently and mmc operation is working fine.

Regards,

Fabio Estevam

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: /dev/mmcblk0 (or /dev/mmcblk0p1) does not exist on Freescale iMX6SL board
  2015-04-30 13:06         ` Fabio Estevam
@ 2015-04-30 13:15           ` Xuebing Wang
  2015-05-01 10:39           ` Xuebing Wang
  1 sibling, 0 replies; 9+ messages in thread
From: Xuebing Wang @ 2015-04-30 13:15 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: linux-mmc@vger.kernel.org, Shawn Guo, Sascha Hauer, Ulf Hansson,
	Felipe Balbi, niranjan Patil, richard Jiang


On 04/30/2015 09:06 PM, Fabio Estevam wrote:
>> Thanks. No, I do not have access to a mx6sl-evk. But I can try to get one.
>> >
>> >There is no eMMC (only sd-card) on mx6sl-evk, right?
> That's correct. If you need eMMC with mx6sl, then you can try imx6sl-warp.
>
> I have tested both boards here recently and mmc operation is working fine.

Is there an easy way for me to low-down sdhc/eMMC clock (e.g. to modify 
arch/arm/mach-imx/clk-imx6sl.c)? Just in case this is not hardware 
related, e.g. impedance matching of emmc-sdio lines.

-- 
Xuebing

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: /dev/mmcblk0 (or /dev/mmcblk0p1) does not exist on Freescale iMX6SL board
  2015-04-30 13:06         ` Fabio Estevam
  2015-04-30 13:15           ` Xuebing Wang
@ 2015-05-01 10:39           ` Xuebing Wang
  2015-05-01 15:03             ` Fabio Estevam
  1 sibling, 1 reply; 9+ messages in thread
From: Xuebing Wang @ 2015-05-01 10:39 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: linux-mmc@vger.kernel.org, Shawn Guo, Sascha Hauer, Ulf Hansson,
	Felipe Balbi, niranjan Patil, richard Jiang


On 04/30/2015 09:06 PM, Fabio Estevam wrote:
>> Fabio,
>> >
>> >Thanks. No, I do not have access to a mx6sl-evk. But I can try to get one.
>> >
>> >There is no eMMC (only sd-card) on mx6sl-evk, right?
> That's correct. If you need eMMC with mx6sl, then you can try imx6sl-warp.
>
> I have tested both boards here recently and mmc operation is working fine.

Fabio, thanks.

I got my eMMC working on kernel v4.0.1 by:
1) In device tree, use 8 data lines (rather than 4 lines for sdhc)
2) Force ext_csd.rev to be 4
-------------------------
diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
index 1d41e85..aa1ca6c 100644
--- a/drivers/mmc/core/mmc.c
+++ b/drivers/mmc/core/mmc.c
@@ -355,6 +355,7 @@ static int mmc_decode_ext_csd(struct mmc_card *card, 
u8 *ext_csd)
          * are authorized, see JEDEC JESD84-B50 section B.8.
          */
         card->ext_csd.rev = ext_csd[EXT_CSD_REV];
+       card->ext_csd.rev = 4;

         card->ext_csd.raw_sectors[0] = ext_csd[EXT_CSD_SEC_CNT + 0];
         card->ext_csd.raw_sectors[1] = ext_csd[EXT_CSD_SEC_CNT + 1];
-------------------------

eMMC on my board is Micron "MTFC4GLDDQ-4M IT", according to its 
datasheet, it is "JEDEC/MMC standard version 4.41-compliant
(JEDEC Standard No. 84-A441)", and its "Extended CSD revision" 
(EXT_CSD_REV) = 5

This seems either because kernel does not handle (ext_csd == 5) 
correctly, or there is an firmware issue in Micron "MTFC4GLDDQ-4M IT" 
(in terms of JEDEC standard compliance), what do you think?


-- 
Xuebing

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: /dev/mmcblk0 (or /dev/mmcblk0p1) does not exist on Freescale iMX6SL board
  2015-05-01 10:39           ` Xuebing Wang
@ 2015-05-01 15:03             ` Fabio Estevam
  0 siblings, 0 replies; 9+ messages in thread
From: Fabio Estevam @ 2015-05-01 15:03 UTC (permalink / raw)
  To: Xuebing Wang
  Cc: linux-mmc@vger.kernel.org, Shawn Guo, Sascha Hauer, Ulf Hansson,
	Felipe Balbi, niranjan Patil, richard Jiang

On Fri, May 1, 2015 at 7:39 AM, Xuebing Wang <xbing6@gmail.com> wrote:

> I got my eMMC working on kernel v4.0.1 by:
> 1) In device tree, use 8 data lines (rather than 4 lines for sdhc)

Ok, great. This makes sense.

> 2) Force ext_csd.rev to be 4
> -------------------------
> diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
> index 1d41e85..aa1ca6c 100644
> --- a/drivers/mmc/core/mmc.c
> +++ b/drivers/mmc/core/mmc.c
> @@ -355,6 +355,7 @@ static int mmc_decode_ext_csd(struct mmc_card *card, u8
> *ext_csd)
>          * are authorized, see JEDEC JESD84-B50 section B.8.
>          */
>         card->ext_csd.rev = ext_csd[EXT_CSD_REV];
> +       card->ext_csd.rev = 4;
>
>         card->ext_csd.raw_sectors[0] = ext_csd[EXT_CSD_SEC_CNT + 0];
>         card->ext_csd.raw_sectors[1] = ext_csd[EXT_CSD_SEC_CNT + 1];
> -------------------------
>
> eMMC on my board is Micron "MTFC4GLDDQ-4M IT", according to its datasheet,
> it is "JEDEC/MMC standard version 4.41-compliant
> (JEDEC Standard No. 84-A441)", and its "Extended CSD revision" (EXT_CSD_REV)
> = 5
>
> This seems either because kernel does not handle (ext_csd == 5) correctly,
> or there is an firmware issue in Micron "MTFC4GLDDQ-4M IT" (in terms of
> JEDEC standard compliance), what do you think?

I will let the mmc experts comment on this one.

Regards,

Fabio Estevam

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2015-05-01 15:03 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-04-30  9:20 /dev/mmcblk0 (or /dev/mmcblk0p1) does not exist on Freescale iMX6SL board Xuebing Wang
2015-04-30 12:16 ` Fabio Estevam
2015-04-30 12:44   ` Xuebing Wang
2015-04-30 12:51     ` Fabio Estevam
2015-04-30 13:01       ` Xuebing Wang
2015-04-30 13:06         ` Fabio Estevam
2015-04-30 13:15           ` Xuebing Wang
2015-05-01 10:39           ` Xuebing Wang
2015-05-01 15:03             ` Fabio Estevam

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox