This blog focus on microSD support.
Because I already know it is cd-polling problem, so directly go to source code, see if the polling is supported in this version.
Source code position is at openwrt-21.02.1/target/linux/ramips/files/drivers/mmc/host/mtk-mmc/sd.c
... line 2249 ...
if (of_property_read_bool(pdev->dev.of_node, "mediatek,cd-poll"))
mmc->caps |= MMC_CAP_NEEDS_POLL;
... line 442 ...
if (host->mmc->caps & MMC_CAP_NEEDS_POLL)
inserted = 1;
... line 1862 ...
if (host->mmc->caps & MMC_CAP_NEEDS_POLL)
present = 1;
Looks like my patch is already combined to 21.02, so once I add this mediatek,cd-poll to VoCore2 Ultimate DTS it will just works.
We can directly modify openwrt-21.02.1/target/linux/ramips/dts/mt7628an_vocore_vocore2.dts to make VoCore2 support SD card. For simple, attach four lines to end of the dts file.
&sdhci {
status = "okay";
mediatek,cd-poll;
};
Now, after this patch, make sure kmod-mmc, kmod-sdhci-mt7620 is selected in kernel.
Compile OpenWrt, then upload to VoCore2, it just works.
PS: if your VoCore do not have SD card slot, enable sdhci polling mode will cause it output error log every two seconds. So this driver is not default enable in VoCore2 device tree.