* "Card stuck in programming state! __mmc_switch" problem on i.MX6 + eMMC
@ 2014-09-16 14:37 David Müller (ELSOFT AG)
2014-09-16 15:14 ` Jean-Michel Hautbois
2014-09-30 0:35 ` Fabio Estevam
0 siblings, 2 replies; 4+ messages in thread
From: David Müller (ELSOFT AG) @ 2014-09-16 14:37 UTC (permalink / raw)
To: linux-mmc
Hello
I have a custom i.MX6Q based board with a Hynix eMMC chip attached to
USDHC3. OS is a vanilla Linux 3.16 with some patches.
Loading the iMX SDHC driver results in the following error:
modprobe sdhci-esdhc-imx
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
mmc0: no vqmmc regulator found
mmc0: SDHCI controller on 2198000.usdhc [2198000.usdhc] using ADMA
mmc0: BKOPS_EN bit is not set
mmc0: Card stuck in programming state! __mmc_switch
mmc0: error -110 whilst initialising MMC card
mmc0: BKOPS_EN bit is not set
mmc0: Card stuck in programming state! __mmc_switch
mmc0: error -110 whilst initialising MMC card
mmc0: BKOPS_EN bit is not set
mmc0: Card stuck in programming state! __mmc_switch
mmc0: error -110 whilst initialising MMC card
mmc0: BKOPS_EN bit is not set
mmc0: Card stuck in programming state! __mmc_switch
mmc0: error -110 whilst initialising MMC card
Pin muxing looks ok nevertheless I played around with it to see if it
makes a difference. I also tried the "Add delay between CMD6 and CMD13
for Sandisk eMMC cards" workaround previously mentioned on this list.
As the whole thing is working under U-Boot as shown below, I tend to
rule out soldering problems and non-functional hardware.
=> ver
U-Boot 2014.07-00045-g0955ecc-dirty (Aug 26 2014 - 12:47:21)
=> mmc dev 1
switch to partitions #0, OK
mmc1(part 0) is current device
=> mmc info
Device: FSL_SDHC
Manufacturer ID: 90
OEM: 14a
Name: H8G2d
Tran Speed: 52000000
Rd Block Len: 512
MMC version 4.41
High Capacity: Yes
Capacity: 7.2 GiB
Bus Width: 8-bit
Any idea what is going wrong?
Has anybody a Hynix eMMC working under Linux?
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: "Card stuck in programming state! __mmc_switch" problem on i.MX6 + eMMC
2014-09-16 14:37 "Card stuck in programming state! __mmc_switch" problem on i.MX6 + eMMC David Müller (ELSOFT AG)
@ 2014-09-16 15:14 ` Jean-Michel Hautbois
2014-09-17 7:45 ` David Müller (ELSOFT AG)
2014-09-30 0:35 ` Fabio Estevam
1 sibling, 1 reply; 4+ messages in thread
From: Jean-Michel Hautbois @ 2014-09-16 15:14 UTC (permalink / raw)
To: David Müller (ELSOFT AG); +Cc: linux-mmc@vger.kernel.org
Hi David,
2014-09-16 16:37 GMT+02:00 David Müller (ELSOFT AG) <d.mueller@elsoft.ch>:
> Hello
>
> I have a custom i.MX6Q based board with a Hynix eMMC chip attached to
> USDHC3. OS is a vanilla Linux 3.16 with some patches.
>
> Loading the iMX SDHC driver results in the following error:
>
> modprobe sdhci-esdhc-imx
> sdhci: Secure Digital Host Controller Interface driver
> sdhci: Copyright(c) Pierre Ossman
> sdhci-pltfm: SDHCI platform and OF driver helper
> mmc0: no vqmmc regulator found
> mmc0: SDHCI controller on 2198000.usdhc [2198000.usdhc] using ADMA
> mmc0: BKOPS_EN bit is not set
> mmc0: Card stuck in programming state! __mmc_switch
> mmc0: error -110 whilst initialising MMC card
> mmc0: BKOPS_EN bit is not set
> mmc0: Card stuck in programming state! __mmc_switch
> mmc0: error -110 whilst initialising MMC card
> mmc0: BKOPS_EN bit is not set
> mmc0: Card stuck in programming state! __mmc_switch
> mmc0: error -110 whilst initialising MMC card
> mmc0: BKOPS_EN bit is not set
> mmc0: Card stuck in programming state! __mmc_switch
> mmc0: error -110 whilst initialising MMC card
>
>
> Pin muxing looks ok nevertheless I played around with it to see if it
> makes a difference. I also tried the "Add delay between CMD6 and CMD13
> for Sandisk eMMC cards" workaround previously mentioned on this list.
Can you show your DT (at least pinmux part and usdhc3 node) ?
-110 is a timeout error and I know there is some quirks in Freescale
repository I don't know if this is your best bet...
JM
PS: Sorry for double posting, forgot linux-mmc in cc
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: "Card stuck in programming state! __mmc_switch" problem on i.MX6 + eMMC
2014-09-16 15:14 ` Jean-Michel Hautbois
@ 2014-09-17 7:45 ` David Müller (ELSOFT AG)
0 siblings, 0 replies; 4+ messages in thread
From: David Müller (ELSOFT AG) @ 2014-09-17 7:45 UTC (permalink / raw)
To: Jean-Michel Hautbois; +Cc: linux-mmc@vger.kernel.org
Hi Jean-Michel
Jean-Michel Hautbois wrote:
> Can you show your DT (at least pinmux part and usdhc3 node) ?
pinctrl_usdhc3: usdhc3grp {
fsl,pins = <
MX6QDL_PAD_SD3_CMD__SD3_CMD 0x1b0b1
MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100b1
MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x1b0b1
MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x1b0b1
MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x1b0b1
MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x1b0b1
MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x1b0b1
MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x1b0b1
MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x1b0b1
MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x1b0b1
MX6QDL_PAD_SD3_RST__SD3_RESET 0x1b070
>;
};
&usdhc3 { /* eMMC */
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc3>;
vmmc-supply = <®_3v15>;
non-removable;
no-1-8-v;
bus-width = <8>;
status = "okay";
};
I've tracked the problem down to the point were the MMC code tries to
switch the eMMC to 8bit bus width (mmc_select_bus_width()).
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: "Card stuck in programming state! __mmc_switch" problem on i.MX6 + eMMC
2014-09-16 14:37 "Card stuck in programming state! __mmc_switch" problem on i.MX6 + eMMC David Müller (ELSOFT AG)
2014-09-16 15:14 ` Jean-Michel Hautbois
@ 2014-09-30 0:35 ` Fabio Estevam
1 sibling, 0 replies; 4+ messages in thread
From: Fabio Estevam @ 2014-09-30 0:35 UTC (permalink / raw)
To: David Müller (ELSOFT AG); +Cc: linux-mmc@vger.kernel.org
Hi David,
On Tue, Sep 16, 2014 at 11:37 AM, David Müller (ELSOFT AG)
<d.mueller@elsoft.ch> wrote:
> Hello
>
> I have a custom i.MX6Q based board with a Hynix eMMC chip attached to
> USDHC3. OS is a vanilla Linux 3.16 with some patches.
>
> Loading the iMX SDHC driver results in the following error:
>
> modprobe sdhci-esdhc-imx
> sdhci: Secure Digital Host Controller Interface driver
> sdhci: Copyright(c) Pierre Ossman
> sdhci-pltfm: SDHCI platform and OF driver helper
> mmc0: no vqmmc regulator found
> mmc0: SDHCI controller on 2198000.usdhc [2198000.usdhc] using ADMA
> mmc0: BKOPS_EN bit is not set
> mmc0: Card stuck in programming state! __mmc_switch
> mmc0: error -110 whilst initialising MMC card
> mmc0: BKOPS_EN bit is not set
> mmc0: Card stuck in programming state! __mmc_switch
> mmc0: error -110 whilst initialising MMC card
> mmc0: BKOPS_EN bit is not set
> mmc0: Card stuck in programming state! __mmc_switch
> mmc0: error -110 whilst initialising MMC card
> mmc0: BKOPS_EN bit is not set
> mmc0: Card stuck in programming state! __mmc_switch
> mmc0: error -110 whilst initialising MMC card
>
>
> Pin muxing looks ok nevertheless I played around with it to see if it
> makes a difference. I also tried the "Add delay between CMD6 and CMD13
> for Sandisk eMMC cards" workaround previously mentioned on this list.
>
> As the whole thing is working under U-Boot as shown below, I tend to
> rule out soldering problems and non-functional hardware.
>
> => ver
> U-Boot 2014.07-00045-g0955ecc-dirty (Aug 26 2014 - 12:47:21)
> => mmc dev 1
> switch to partitions #0, OK
> mmc1(part 0) is current device
> => mmc info
> Device: FSL_SDHC
> Manufacturer ID: 90
> OEM: 14a
> Name: H8G2d
> Tran Speed: 52000000
> Rd Block Len: 512
> MMC version 4.41
> High Capacity: Yes
> Capacity: 7.2 GiB
> Bus Width: 8-bit
>
>
> Any idea what is going wrong?
> Has anybody a Hynix eMMC working under Linux?
I remember having similar issues and they were fixed by this series:
http://www.spinics.net/lists/linux-mmc/msg28260.html
You can try linux-next as this series is already applied there already.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-09-30 0:35 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-16 14:37 "Card stuck in programming state! __mmc_switch" problem on i.MX6 + eMMC David Müller (ELSOFT AG)
2014-09-16 15:14 ` Jean-Michel Hautbois
2014-09-17 7:45 ` David Müller (ELSOFT AG)
2014-09-30 0:35 ` Fabio Estevam
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox