
Hi Tim,
On Wed, Sep 28, 2022 at 4:37 PM Tim Harvey tharvey@gateworks.com wrote:
This series adds a DSA driver for the MV88E6xxx based on drivers/net/phy/mv88e61xx and uses it in the gwventana_gw5904_defconfig.
The hope is that the other three boards that use the MV88E61xx driver can move to this as well eventually so that we can remove the non-dm driver and the 4 Kconfig options it requires.
The MV88E6xxx has an MDIO interface thus DM_MDIO must be used so support for a UCLASS_MDIO driver is added to the fec_mxc ethernet driver in a way that allows a fallback to the previous non DM_MDIO case as there are many boards out there using this driver that define DM_MDIO but do not have the required dt props for a DM_MDIO driver which would cause a regression.
Additionally some other patches are here suggested by Vladimir:
- ensure MDIO children are scanned on post-bind is needed
- sanity check DSA driver required ops are present
- allow DSA drivers to not require xmit/recv functions
- remove unecessary xmit/recv functions from ksz9477 driver
I am trying to test your series on a custom imx8mn-based board with a Marvell 88E6320 switch.
I applied your series against U-Boot master, and added the change below to support 88E6320:
diff --git a/drivers/net/mv88e6xxx.c b/drivers/net/mv88e6xxx.c index 6064bb7325..09ce6dd114 100644 --- a/drivers/net/mv88e6xxx.c +++ b/drivers/net/mv88e6xxx.c @@ -176,6 +176,7 @@ #define PORT_SWITCH_ID_6220 0x2200 #define PORT_SWITCH_ID_6240 0x2400 #define PORT_SWITCH_ID_6250 0x2500 +#define PORT_SWITCH_ID_6320 0x1150 #define PORT_SWITCH_ID_6352 0x3520
struct mv88e6xxx_priv { @@ -792,6 +793,7 @@ static int mv88e6xxx_probe(struct udevice *dev) case PORT_SWITCH_ID_6071: case PORT_SWITCH_ID_6220: case PORT_SWITCH_ID_6250: + case PORT_SWITCH_ID_6320: priv->port_count = 7; priv->phy_ctrl1_en_det_shift = 14; priv->phy_ctrl1_en_det_width = 1;
When booting I get:
Error: ethernet@30be0000 address not set. No ethernet found.
And 'dm tree' shows that the Ethernet drivers have not been probed:
=> dm tree
ethernet 0 [ ] fecmxc | | `-- ethernet@30be0000 ... mdio 0 [ ] fec_mdio | | `-- mdio
If you have any suggestions, please let me know.
Thanks