| b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame] | 1 | ============================== |
| 2 | LAN9303 Ethernet switch driver |
| 3 | ============================== |
| 4 | |
| 5 | The LAN9303 is a three port 10/100 Mbps ethernet switch with integrated phys for |
| 6 | the two external ethernet ports. The third port is an RMII/MII interface to a |
| 7 | host master network interface (e.g. fixed link). |
| 8 | |
| 9 | |
| 10 | Driver details |
| 11 | ============== |
| 12 | |
| 13 | The driver is implemented as a DSA driver, see ``Documentation/networking/dsa/dsa.rst``. |
| 14 | |
| 15 | See ``Documentation/devicetree/bindings/net/dsa/lan9303.txt`` for device tree |
| 16 | binding. |
| 17 | |
| 18 | The LAN9303 can be managed both via MDIO and I2C, both supported by this driver. |
| 19 | |
| 20 | At startup the driver configures the device to provide two separate network |
| 21 | interfaces (which is the default state of a DSA device). Due to HW limitations, |
| 22 | no HW MAC learning takes place in this mode. |
| 23 | |
| 24 | When both user ports are joined to the same bridge, the normal HW MAC learning |
| 25 | is enabled. This means that unicast traffic is forwarded in HW. Broadcast and |
| 26 | multicast is flooded in HW. STP is also supported in this mode. The driver |
| 27 | support fdb/mdb operations as well, meaning IGMP snooping is supported. |
| 28 | |
| 29 | If one of the user ports leave the bridge, the ports goes back to the initial |
| 30 | separated operation. |
| 31 | |
| 32 | |
| 33 | Driver limitations |
| 34 | ================== |
| 35 | |
| 36 | - Support for VLAN filtering is not implemented |
| 37 | - The HW does not support VLAN-specific fdb entries |