i.mx6sl kernel and mmc boot issue

Hi, I'm bringing up a board that uses the i.mx6sl. It is based closely on the i.mx6sl evk. I'm currently having a problem where the kernel fails to mount the rootfs. In u-boot, I'm able to read from the MMC device fine which suggests a possible mistake in my configuration of iomux or something else in the board file in the kernel. The board uses SDHC2 (2nd SDHC interface) as the boot MMC interface, just like i.mx6slevk. I've turned on MMC_DEBUG in the kernel and here's what I see when comparing the boot log between the EVK and my board.

In the failing case, I'm seeing:

mmc0: starting CMD52 arg 00000c00 flags 00000195

mmc0: req done (CMD52): -123: 00000000 00000000 00000000 00000000

sdhci: ===========================================

mmc0: starting CMD52 arg 80000c08 flags 00000195

mmc1: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0 timing 0

mmc0: req done (CMD52): -123: 00000000 00000000 00000000 00000000

whereas on the mx6slevk, I'm seeing:

mmc0: starting CMD52 arg 00000c00 flags 00000195

mmc1: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0 timing 0

sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00010000

mmc0: req done (CMD52): -110: 00000000 00000000 00000000 00000000

mmc0: starting CMD52 arg 80000c08 flags 00000195

sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00010000

mmc0: req done (CMD52): -110: 00000000 00000000 00000000 00000000

In the failing case, there does not appear to be any sdhci_irq's being

fired. I'm not sure why that's the case. mmc0 req done -123 is -ENOMEDIUM whereas in the working case, I see req done -110 which is ETIMEDOUT. It works fine in the -110 log.

In the board file code, I had done:

platform_device_register(&evk_vmmc_reg_devices);

#if 0 /* xxxjaya original code */

imx6q_add_sdhci_usdhc_imx(0, &mx6_evk_sd1_data);

imx6q_add_sdhci_usdhc_imx(1, &mx6_evk_sd2_data);

imx6q_add_sdhci_usdhc_imx(2, &mx6_evk_sd3_data);

#endif

imx6q_add_sdhci_usdhc_imx(0, &mx6_evk_sd2_data);

imx6q_add_sdhci_usdhc_imx(1, &mx6_evk_sd3_data);

I wonder if perhaps this is a mistake and is the root cause of the problem. The other area that I'm suspicious about is whether the problem could be due to a core clock rate difference because the EVK is run at 396MHz whereas my board is running at 792MHz.