mmc2: Timeout waiting for hardware interrupt. (SOLVED with issues)

FIXED!!! I could not have solved this without your help dimtass! My 1st solution worked by moving all sdmmc1 that were disabled to the enabled section. Now not one hiccup during bootup!

Here is the solution:

Remove all the sdmmc1 references except one in unused_lowpower to match 3.10.40 jetson-pinmux dtsi:

and make sure they are enabled: TEGRA_PIN_ENABLE

sdmmc1_clk_pz0 {
				nvidia,pins = "sdmmc1_clk_pz0";
				nvidia,function = "sdmmc1";
				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
				nvidia,tristate = <TEGRA_PIN_ENABLE>;

			};

			sdmmc1_cmd_pz1 {
				nvidia,pins = "sdmmc1_cmd_pz1";
				nvidia,function = "sdmmc1";
				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
				nvidia,pull = <TEGRA_PIN_PULL_UP>;
				nvidia,tristate = <TEGRA_PIN_ENABLE>;
			};

			sdmmc1_dat0_py7 {
				nvidia,pins = "sdmmc1_dat0_py7";
				nvidia,function = "sdmmc1";
				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
				nvidia,pull = <TEGRA_PIN_PULL_UP>;
				nvidia,tristate = <TEGRA_PIN_ENABLE>;
			};

			sdmmc1_dat1_py6 {
				nvidia,pins = "sdmmc1_dat1_py6";
				nvidia,function = "sdmmc1";
				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
				nvidia,pull = <TEGRA_PIN_PULL_UP>;
				nvidia,tristate = <TEGRA_PIN_ENABLE>;
			};

			sdmmc1_dat2_py5 {
				nvidia,pins = "sdmmc1_dat2_py5";
				nvidia,function = "sdmmc1";
				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
				nvidia,pull = <TEGRA_PIN_PULL_UP>;
				nvidia,tristate = <TEGRA_PIN_ENABLE>;
			};

			sdmmc1_dat3_py4 {
				nvidia,pins = "sdmmc1_dat3_py4";
				nvidia,function = "sdmmc1";
				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
				nvidia,pull = <TEGRA_PIN_PULL_UP>;
				nvidia,tristate = <TEGRA_PIN_ENABLE>;
			};

and leave disabled:

sdmmc1_wp_n_pv3 {
				nvidia,pins = "sdmmc1_wp_n_pv3";
				nvidia,function = "sdmmc1";
				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
				nvidia,tristate = <TEGRA_PIN_ENABLE>;
				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
			};

I’m glad you’ve made it.

Now, have in mind, that this interface is enabled in the kernel, although you don’t use it.
If, for some reason, you need to save recourses or use the sdmmc gpios for other functions (e.g. normal gpios), then you have to disable the interface by doing this

#ifdef 0
platform_device_register(&tegra_sdhci_device1)
#endif

in the arch/arm/mach-tegra/board-ardbeg-sdhci.c

Well I think i spoke too soon… Got home tonight and booted up the graphical ui and there is a constant lag when moving mouse or navigating.

I also noticed a ton of device tree nodes are not getting named correctly ie:

on 3.10.67 sata initializes its sata node like this:

[    6.213494] tegra-sata 70021000.sata: version 1.0                            
[    6.213537] tegra-sata 70021000.sata: Prod Init failed                       
[    6.219407] tegra-sata 70021000.sata: AHCI 0001.0301 32 slots 2 ports 3 Gbpse
[    6.228635] tegra-sata 70021000.sata: flags: 64bit ncq sntf pm led pmp pio s 
[    6.238346] scsi0 : tegra-sata                                               
[    6.241744] scsi1 : tegra-sata

in 3.10.40:

[    4.188342] tegra-sata tegra-sata.0: version 1.0                             
[    4.189076] tegra-sata tegra-sata.0: AHCI 0001.0301 32 slots 2 ports 3 Gbps e
[    4.189088] tegra-sata tegra-sata.0: flags: 64bit ncq sntf pm led pmp pio sl 
[    4.190319] scsi0 : tegra-sata                                               
[    4.190727] scsi1 : tegra-sata

The majority of nodes are getting names starting with 700

70021000.sata

Hmm so in the ardbeg board.c file the number is this:

OF_DEV_AUXDATA("nvidia,tegra124-ahci-sata", 0x70027000, "tegra-sata.0"

All i should have to do is change the number to match the “tegra-sata.0” = sata@70027000

Nope didnt do the trick. My assumption is that its calling on tegra124 defines but looking for some tegra114 defines…

board.c file from 3.10.40 has tegra114 sata node:

OF_DEV_AUXDATA("nvidia,tegra114-ahci-sata", 0x70027000, "tegra-sata.0",
		NULL),