* /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