On Thu, Jul 25, 2019 at 11:32 AM jason....@rock-chips.com <jason....@rock-chips.com> wrote: > > Hi, > > We use the aliases to set the MMC device order. For example: > mmc0 = &emmc; > mmc1 = &sdmmc; > These define the MMC order in block layer. > But in the mmc layer, the MMC device order is defined in the dts MMC node. > It may make mistake to get MMC device order. So if we use the block layer > interface to > access mmc devices, use find_mmc_device to get current devnum but not > uclass_get_device. >
I get a similar (same?) problem too (and will test this patch) - I've got no MMC1 on an AM335x, so the initialisation makes MMC2 the first device, which then leads me to this revolting hack in my board.c: void board_boot_order(u32 *spl_boot_list) { u32 boot_device = spl_boot_device(); /* * This is a filthy hack... we don't have MMC1, but the SPL boot * code works based on device numbers, not sequence numbers, so * we have to ensure that when we're booted from the eMMC we pick * the right entry from the DT */ if (boot_device == BOOT_DEVICE_MMC2) spl_boot_list[0] = BOOT_DEVICE_MMC1; else spl_boot_list[0] = boot_device; } -- Alex Kiernan _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot