
On Mon, Jan 21, 2019 at 6:32 PM Jagan Teki jagan@amarulasolutions.com wrote:
Environment and fastboot MMC devices are configured based number of mmc slots defined on particular board in sunxi platform.
If number of slots are not more than 1, it assigns 0 which usually mmc device on SD slot. With DM_MMC it is detected as 0 since mmc0 node always be an mmc device.
If number of slots are more than 1, it assigns 1 which assumes 0 is mmc device and 1 is emmc device. But with DM_MMC there is chance of detecting emmc as device 2 since mmc1 is SDIO as per devicetree definition.
So override mmc2 to mmc1 in sunxi dtsi, this will eventually detect mmc2 as mmc 1 device even if the board dts has mmc0, mmc1, mmc2.
Some platforms like A20 has mmc0...mmc3, but there is no usecases now for enabling all mmc controllers in any of A20 board dts files.
Signed-off-by: Jagan Teki jagan@amarulasolutions.com
arch/arm/dts/sunxi-u-boot.dtsi | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/arch/arm/dts/sunxi-u-boot.dtsi b/arch/arm/dts/sunxi-u-boot.dtsi index 8a9f2a6417..fdd4c80aa4 100644 --- a/arch/arm/dts/sunxi-u-boot.dtsi +++ b/arch/arm/dts/sunxi-u-boot.dtsi @@ -1,6 +1,10 @@ #include <config.h>
/ {
aliases {
mmc1 = &mmc2;
};
binman { filename = "u-boot-sunxi-with-spl.bin"; pad-byte = <0xff>;
-- 2.18.0.321.gffc6fa0e3
Slightly curious. What happens when mmc1 (the real mmc1) is enabled and probes before mmc2 does? Does it take mmc1? What happens then when mmc2 probes and wants mmc1?
Also, on the A31, we use mmc3 instead of mmc2 for eMMC. Only mmc3 supports DDR transfer modes.
ChenYu