A crate traits for accessing the Media Independent Interface Management on IEEE 802.3 PHYs.
MIIM (Media Independent Interface Management) is a standard interface that is part of the IEEE 802.3 standard.
It is used to communicate with IEEE 802.3 PHYs. In it's most cut-down form, it provides basic configuration and status access. Extended features include autonegotiation configuration, custom on-chip register access through MMD, and extended status information.
Several standard implementations are provided with the enabled-by-default phy
, lan8742a
, lan8720a
, and ksz8081r
features.
phy
exposes a type namedBarePhy
. This implementation assumes nothing about the PHY that is being communicated with, and determines almost all values at runtime. It should be possible to configure any IEEE 802.3 conformant PHY through this struct.lan8742a
provides an implementation for the SMSC LAN8742a PHY.lan8720a
provides an implementation for the SMSC LAN8720a PHY. Note thatInterrupt::WoL
is not supported by this PHY, but it will be present if thelan8742a
feature is also enabled.ksz8081r
provides an implementation for the MicroChip KSZ8081R PHY
The goals of this project include:
- Provide as complete of an implementation of the MIIM protocol as possible
- Provide default implementations for commonly used PHYs, so that they can easily be re-used
Non-goals of this project include:
- Provide support for SMI protocols that are not MIIM
This project is licensed under the MIT license.
See LICENSE
for more information.