On Fri, 2 Dec 2022 at 03:41, Wenchao Chen <wenchao.chen666@xxxxxxxxx> wrote: > > On Thu, Dec 1, 2022 at 6:41 PM Ulf Hansson <ulf.hansson@xxxxxxxxxx> wrote: > > > > On Thu, 1 Dec 2022 at 10:12, Wenchao Chen <wenchao.chen@xxxxxxxxxx> wrote: > > > > > > The prefer asynchronous probe affects the order of device probes. > > > > Is there a problem with this? If so, can you elaborate on what kind of problems? > > > > Hi Uffe > dts: > sdio0: sdio@71100000 { > ... > bus-width = <4>; > no-sdio; > no-mmc; > ... > }; // SD Host(Device: SD CARD) > > sdio3: sdio@71400000 { > ... > bus-width = <8>; > non-removable; > no-sdio; > no-sd; > ... > }; // eMMC Host(Device: eMMC) > > According to the order of DTS: sdio0: sdio@71100000 is MMC0, sdio3: > sdio@71400000 is MMC1. > Log: > [ 1.714617][ T11] mmc1: SDHCI controller on 71400000.sdio > [71400000.sdio] using ADMA 64-bit > [ 1.715276][ T9] mmc0: SDHCI controller on 71100000.sdio > [71100000.sdio] using ADMA 64-bit > [ 1.884525][ T75] mmc1: Host Software Queue enabled > [ 1.890965][ T75] mmc1: new HS400 Enhanced strobe MMC card at address 0001 > > But set prefer_asynchronous_probe, sometimes there will be sdio0: > sdio@71100000 is MMC1, sdio3: sdio@71400000 is MMC0. > Log: > [ 1.619888][ T68] mmc0: SDHCI controller on 71400000.sdio > [71400000.sdio] using ADMA 64-bit > [ 1.620534][ T9] mmc1: SDHCI controller on 71100000.sdio > [71100000.sdio] using ADMA 64-bit > [ 1.792570][ T77] mmc0: Host Software Queue enabled > [ 1.799532][ T77] mmc0: new HS400 Enhanced strobe MMC card at address 0001 Neither the order of the nodes in DT or dropping PROBE_PREFER_ASYNCHRONOUS provides the guarantees that you suggest above. In fact, that has never been the case for eMMC/SD cards. > > We use emmc as rootfs (without ramfs or initfs), but with SD card > inserted and not inserted, the partition name of emmc is different, we > need to fix this partition name. If you can't use PARTUUID/UUID, which is certainly the preferred solution - you may also assign a fixed index mmcN to an MMC host controller and its corresponding mmcblk[n] devices, by defining an alias in the /aliases device tree node. [...] Kind regards Uffe