Index: sys/dev/mmc/host/dwmmc.c =================================================================== --- sys/dev/mmc/host/dwmmc.c +++ sys/dev/mmc/host/dwmmc.c @@ -480,7 +480,7 @@ #else DWMMC_LOCK(sc); - if (READ4(sc, SDMMC_CDETECT) == 0) { + if (READ4(sc, SDMMC_CDETECT) == 0 || sc->card_detect_broken) { if (sc->child == NULL) { if (bootverbose) device_printf(sc->dev, "Card inserted\n"); Index: sys/dev/mmc/host/dwmmc_altera.c =================================================================== --- sys/dev/mmc/host/dwmmc_altera.c +++ sys/dev/mmc/host/dwmmc_altera.c @@ -80,6 +80,7 @@ if (ofw_bus_node_is_compatible(root, "altr,socfpga-stratix10")) { sc->bus_hz = 24000000; sc->use_pio = 1; + sc->card_detect_broken = 1; } return (dwmmc_attach(dev)); Index: sys/dev/mmc/host/dwmmc_var.h =================================================================== --- sys/dev/mmc/host/dwmmc_var.h +++ sys/dev/mmc/host/dwmmc_var.h @@ -73,6 +73,7 @@ device_t child; struct task card_task; /* Card presence check task */ struct timeout_task card_delayed_task;/* Card insert delayed task */ + uint32_t card_detect_broken; int (*update_ios)(struct dwmmc_softc *sc, struct mmc_ios *ios);