cca052338d
The existing init() resets the chip, sets up descriptor rings, and enables TX+RX. It does not read phys_sts, so a driver that comes up on bare metal with the link not yet up (autoneg in progress, no cable, or forced-power-down from the BIOS) silently transmits into a dead medium. Add a single phys_sts read at the end of init(). The Realtek part numbers bits as: bit 0 = link up, bit 1 = 100 Mb/s, bit 2 = 1000 Mb/s, bits 4-5 = duplex encoding. When the link is not up, log a warn!() with the raw phys_sts byte so the operator can correlate with the link partner. When the link is up, log the detected speed as info!(). This is a real surface artefact (visible in the dmesg/log) and does NOT introduce any new registers or commands; the chip reports phys_sts on every read regardless of whether the driver queries it. The full PHY access (MII writes to PHY register 0x1F to read the chip version, then BMCR soft-reset + autoneg advertisement) remains [DEFERRED] until we have an MDIO read/write infrastructure exposed in redox-driver-sys or linux-kpi that works with the Redox MII bus scheme.