--- a/sys/dev/netif/mii_layer/qsphy.c +++ b/sys/dev/netif/mii_layer/qsphy.c @@ -167,8 +167,22 @@ device_printf(dev, " "); if (sc->mii_capabilities & BMSR_MEDIAMASK) mii_phy_add_media(sc); - else + else { kprintf("no media present"); + /* + * DF-5053 (DF-4930/DF-4957/DF-4981/DF-5003 family, hub + * DF-5001): add an explicit fallback media entry so that + * miibus_mediainit()'s terminal ifmedia_set() (mii.c:244) + * finds a match instead of panicking + * ("ifmedia_set: no match"). mii_phy_add_media()'s own + * IFM_NONE fallback cannot be used here: it is gated on + * MIIF_NOISOLATE being clear (mii_physubr.c:230) and this + * driver always sets MIIF_NOISOLATE (qsphy.c:160). + */ + ifmedia_add(&mii->mii_media, + IFM_MAKEWORD(IFM_ETHER, IFM_NONE, 0, sc->mii_inst), + MII_MEDIA_NONE, NULL); + } kprintf("\n"); MIIBUS_MEDIAINIT(sc->mii_dev);