Hi Support Team,
I am facing the error "mmc1: Timeout waiting for hardware interrupt" and kernel gets hang with below message.
[ 3.845655] Waiting for root device /dev/mmcblk1p2...
[ 3.893306] mmc1: Tuning failed, falling back to fixed sampling clock
[ 3.899786] mmc1: new ultra high speed SDR104 SDHC card at address aaaa
[ 3.907202] mmcblk1: mmc1:aaaa JULIE 14.8 GiB
[ 3.927085] hub 1-1:1.0: USB hub found
[ 3.930904] hub 1-1:1.0: 4 ports detected
[ 3.960927] mmc1: Tuning failed, falling back to fixed sampling clock
[ 3.992582] usb 2-1: new SuperSpeed Gen 1 USB device number 2 using xhci-hcd
[ 4.005626] imx-ak4458 sound-ak4458: ASoC: failed to init link ak4458: -517
[ 4.012602] imx-ak4458 sound-ak4458: snd_soc_register_card failed (-517)
[ 4.040126] hub 2-1:1.0: USB hub found
[ 4.044521] hub 2-1:1.0: 4 ports detected
[ 4.061205] imx-ak4458 sound-ak4458: ASoC: failed to init link ak4458: -517
[ 4.068195] imx-ak4458 sound-ak4458: snd_soc_register_card failed (-517)
[ 4.277045] usb 1-1.4: new full-speed USB device number 3 using xhci-hcd
[ 4.326045] mmc1: Tuning failed, falling back to fixed sampling clock
[ 4.378681] mmc1: Tuning failed, falling back to fixed sampling clock
[ 4.385169] blk_update_request: I/O error, dev mmcblk1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[ 4.399544] Buffer I/O error on dev mmcblk1, logical block 0, async page read
[ 4.410548] cp210x 1-1.4:1.0: cp210x converter detected
[ 4.418216] usb 1-1.4: cp210x converter now attached to ttyUSB0
[ 4.430111] imx-ak4458 sound-ak4458: ASoC: failed to init link ak4458: -517
[ 4.437098] imx-ak4458 sound-ak4458: snd_soc_register_card failed (-517)
[ 4.451428] mmc1: Tuning failed, falling back to fixed sampling clock
[ 14.560509] mmc1: Timeout waiting for hardware interrupt.
[ 14.565910] mmc1: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 14.572352] mmc1: sdhci: Sys addr: 0xf94d4400 | Version: 0x00000002
[ 14.578791] mmc1: sdhci: Blk size: 0x00000200 | Blk cnt: 0x00000001
[ 14.585231] mmc1: sdhci: Argument: 0x00000001 | Trn mode: 0x00000013
[ 14.591668] mmc1: sdhci: Present: 0x01f88008 | Host ctl: 0x00000013
[ 14.598106] mmc1: sdhci: Power: 0x00000002 | Blk gap: 0x00000080
[ 14.604544] mmc1: sdhci: Wake-up: 0x00000008 | Clock: 0x0000001f
[ 14.610981] mmc1: sdhci: Timeout: 0x0000008f | Int stat: 0x00000000
[ 14.617418] mmc1: sdhci: Int enab: 0x117f100b | Sig enab: 0x117f100b
[ 14.623856] mmc1: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00008402
[ 14.630294] mmc1: sdhci: Caps: 0x07eb0000 | Caps_1: 0x8000b407
[ 14.636732] mmc1: sdhci: Cmd: 0x0000113a | Max curr: 0x00ffffff
[ 14.643169] mmc1: sdhci: Resp[0]: 0x00000900 | Resp[1]: 0x45809be2
[ 14.649607] mmc1: sdhci: Resp[2]: 0x4a554c49 | Resp[3]: 0x00000900
[ 14.656045] mmc1: sdhci: Host ctl2: 0x00000008
[ 14.660487] mmc1: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0xf910f208
[ 14.666924] mmc1: sdhci-esdhc-imx: ========= ESDHC IMX DEBUG STATUS DUMP =========
[ 14.674492] mmc1: sdhci-esdhc-imx: cmd debug status: 0x2100
[ 14.680148] mmc1: sdhci-esdhc-imx: data debug status: 0x2200
[ 14.685892] mmc1: sdhci-esdhc-imx: trans debug status: 0x2300
[ 14.691722] mmc1: sdhci-esdhc-imx: dma debug status: 0x24e0
[ 14.697377] mmc1: sdhci-esdhc-imx: adma debug status: 0x2510
[ 14.703121] mmc1: sdhci-esdhc-imx: fifo debug status: 0x2680
[ 14.708864] mmc1: sdhci-esdhc-imx: async fifo debug status: 0x2750
[ 14.715127] mmc1: sdhci: ============================================
[ 14.723721] blk_update_request: I/O error, dev mmcblk1, sector 1 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
DTS configuration is:
&usdhc2 {
pinctrl-names = "default", "state_100mhz", "state_200mhz";
pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
bus-width = <4>;
cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
vmmc-supply = <®_usdhc2_vmmc>;
status = "okay";
};
pinctrl_usdhc2_gpio: usdhc2grpgpio {
fsl,pins = <
MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12 0x41
MX8MQ_IOMUXC_SD2_RESET_B_GPIO2_IO19 0x41
>;
};
pinctrl_usdhc2: usdhc2grp {
fsl,pins = <
MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x83
MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xc3
MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xc3
MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xc3
MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xc3
MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xc3
MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0xc1
>;
};
pinctrl_usdhc2_100mhz: usdhc2-100grp {
fsl,pins = <
MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x85
MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xc5
MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xc5
MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xc5
MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xc5
MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xc5
MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0xc1
>;
};
pinctrl_usdhc2_200mhz: usdhc2-200grp {
fsl,pins = <
MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x87
MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xc7
MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xc7
MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xc7
MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xc7
MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xc7
MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0xc1
>;
};
What could be the issue of
[ 4.451428] mmc1: Tuning failed, falling back to fixed sampling clock
[ 14.560509] mmc1: Timeout waiting for hardware interrupt.
[ 14.565910] mmc1: sdhci: ============ SDHCI REGISTER DUMP ===========
Please help me to resolve the issue.
Hi darshak_patel
reason for "SDR104 SDHC card mmc1: Tuning failed" may be layout of sd signals
so SDR104 timings could not be satisfied, as described in sect.3.9.2.5 SDR50/SDR104 AC timing
i.MX 8M Dual / 8M QuadLite / 8M Quad Applications Processors Data Sheet for Consumer Products
This also may be caused by signal integrity issues (noisy signal), one can try to tweak it using
DSE, SRE fields as for example in sect.8.2.5.203 SW_PAD_CTL_PAD_SD2_CLK SW PAD
Control Register (IOMUXC_SW_PAD_CTL_PAD_SD2_CLK)
i.MX 8M Dual/8M QuadLite/8M Quad Applications Processors Reference Manual
pinctrl_usdhc2: usdhc2grp {
fsl,pins = <
MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x83
Best regards
igor