cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Brendan_SEPL
Newbie
Newbie
130 Views
Registered: ‎06-01-2021

How to get sdhci0 and sdhci1 working with u-boot (2019.2) on Zynq 7020

I'm having lots of trouble getting both sdhc0 and sdhc1 interfaces working on my zynq 7020 board so I can access both the eMMC (sdhci0) and SD Card (sdhci1).

I can get them working individually by changing the device tree to only specify one of the interfaces, but if I specify both I get the following u-boot error on startup.

Error binding driver 'zynq_clk': -12
Some drivers failed to bind
Error binding driver 'generic_simple_bus': -12
Some drivers failed to bind
Error binding driver 'generic_simple_bus': -12
Some drivers failed to bind
initcall sequence 04060ec8 failed at call 04012404 (err=-12)
### ERROR ### Please RESET the board ###

Here are the relevant parts from the devicetree source.


    aliases {
        ethernet0 = &gem0;
        serial0 = &uart1;
        spi0 = &qspi;
        mmc0 = &sdhci0;
        // mmc1 = &sdhci1;
    };
 

...

&sdhci0 {
    u-boot,dm-pre-reloc;
    status = "okay";
    xlnx,device_id = <0>;
    pinctrl-names = "default";
    // xlnx,mio_bank = <0x1>;
};

// &sdhci1 {
//  u-boot,dm-pre-reloc;
//  status = "okay";
//  xlnx,device_id = <1>;
//  pinctrl-names = "default";
//     // xlnx,mio_bank = <0x1>;
// };

 

If I only enable sdhci0 or sdhci1 (by commenting out the other interface) then I can get the system to boot off the relevant interface.

If I enable both interfaces (by uncommenting both) then I get the error reported above.

Is it possible to have both defined so I can boot of either interface with the same u-boot image?

NOTE: my linux device tree has both interfaces enabled and I can successfully mount both devices (eMMC and SD Card).

Thanks, Brendan.

0 Kudos
0 Replies