#ieee #ethernet #media #phy #independent #abstraction #standard

no-std ieee802_3_miim

A crate provides abstractions for the IEEE 802.3 Media Indepedent Interface, providing access to registers defined in the standard, and with optional implementations of this abstraction for commonly used PHYs

11 releases (5 breaking)

0.8.0 Jan 29, 2023
0.7.2 Oct 28, 2022
0.7.0 Aug 5, 2022
0.6.0 Aug 3, 2022
0.3.0-ALPHA4 Jul 21, 2022

#678 in Embedded development

Download history 120/week @ 2023-11-24 47/week @ 2023-12-01 30/week @ 2023-12-08 108/week @ 2023-12-15 32/week @ 2023-12-22 49/week @ 2023-12-29 225/week @ 2024-01-05 244/week @ 2024-01-12 19/week @ 2024-01-19 99/week @ 2024-01-26 52/week @ 2024-02-02 41/week @ 2024-02-09 77/week @ 2024-02-16 172/week @ 2024-02-23 81/week @ 2024-03-01 123/week @ 2024-03-08

460 downloads per month
Used in stm32-eth

MIT/Apache

51KB
1K SLoC

IEEE 802.3 Media Independent Interface Management

A crate traits for accessing the Media Independent Interface Management on IEEE 802.3 PHYs.

What is Media Independent Interface Management?

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.

PHY implementations

Several standard implementations are provided with the enabled-by-default phy, lan8742a, lan8720a, and ksz8081r features.

  • phy exposes a type named BarePhy. 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 that Interrupt::WoL is not supported by this PHY, but it will be present if the lan8742a feature is also enabled.
  • ksz8081r provides an implementation for the MicroChip KSZ8081R PHY

Goals

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

Non-goals of this project include:

  • Provide support for SMI protocols that are not MIIM

License

This project is licensed under the MIT license.

See LICENSE for more information.

Dependencies

~235KB