[snip] I'm using an i210 w/ mdio to connect to cascaded mv88e6390 switches on an Intel platform. I have patches based on patches sent in 2014 that allow use of mdio and configuration with device-tree. I'd like to get them upstreamed but there are some unresolved problems. For one I have no way of testing external mdio connected phys since my board only connects to a switch. Second it's not clear what the "correct" mode configured in the EEPROM should be SGMII, 1000BASE_KX or SERDES. Based on 2014 mailing list discussion I'm using SGMII in the EEPROM configuration but it ends up having to change the link mode to E1000_CTRL_EXT_LINK_MODE_PCIE_SERDES when a phy is not detected or it won't link with the mv88e6390. I think there may be push back from upstream in changing the behavior of various modes even if external mdio is enabled in the EEPROM due to fear that vendors may have enabled it for no reason (needs more investigation). I've also had to add a hack to the mv88e6xxx driver to stop calling phylink_helper_basex_speed, otherwise it always tries to use 2500base-x which doesn't work with the i210. I posted to the ML about this but no one bothered to reply.
My Intel Atom platform happens to be using u-boot rather than UEFI so I'm able to apply DT overlays based on detected PCI subsystem VID/ID before the linux kernel is started. I'm on #linuxswitch on Freenode if there is anything you want to discuss off the list. If any of you have interest in getting these patches upstream it would be great to work with someone on it. You can find what I have here: https://github.com/gmccollister/linux/tree/net-i210-mv88e6390 Regards, George McCollister