Re: [PATCH net-next 3/6] net: dsa: add support for retrieving the interface mode

Andrew Lunn
2022-07-22T22:38:43Z

> If a DSA driver defaults to AN enabled on the DSA/CPU ports, and makes
> use of the defaulting firmware description, then this will break with
> these patches, since we setup a fixed-link specifier that states that
> no AN should be used.

There is another way to look at this. AN is only an issue for SERDES
based links. A bit of grepping:

vf610-zii-cfu1.dts: compatible = "marvell,mv88e6085";
vf610-zii-dev-rev-b.dts: compatible = "marvell,mv88e6085";
vf610-zii-dev-rev-b.dts: compatible = "marvell,mv88e6085";
vf610-zii-dev-rev-b.dts: compatible = "marvell,mv88e6085";
vf610-zii-dev-rev-c.dts: compatible = "marvell,mv88e6190";
vf610-zii-dev-rev-c.dts: compatible = "marvell,mv88e6190";
vf610-zii-scu4-aib.dts: compatible = "marvell,mv88e6190";
vf610-zii-scu4-aib.dts: compatible = "marvell,mv88e6190";
vf610-zii-scu4-aib.dts: compatible = "marvell,mv88e6190";
vf610-zii-scu4-aib.dts: compatible = "marvell,mv88e6190";
vf610-zii-spb4.dts: compatible = "marvell,mv88e6190";
vf610-zii-ssmb-dtu.dts: compatible = "marvell,mv88e6190";
vf610-zii-ssmb-dtu.dts: compatible = "marvell,mv88e6xxx-mdio-external";
vf610-zii-ssmb-spu3.dts: compatible = "marvell,mv88e6190";

vf610 is a Vybrid, which is fast Ethernet. No SERDES. We cannot break
the CPU port on these...

kirkwood-dir665.dts: compatible = "marvell,mv88e6085";
kirkwood-l-50.dts: compatible = "marvell,mv88e6085";
kirkwood-l-50.dts: compatible = "marvell,mv88e6085";
kirkwood-linksys-viper.dts: compatible = "marvell,mv88e6085";
kirkwood-mv88f6281gtw-ge.dts: compatible = "marvell,mv88e6085";
kirkwood-rd88f6281.dtsi: compatible = "marvell,mv88e6085";

RGMII or GMII. You cannot break the CPU port on these.

orion5x-netgear-wnr854t.dts: compatible = "marvell,mv88e6085";

Even older than kirkwood, mo chance it uses SERDES.

imx51-zii-rdu1.dts: compatible = "marvell,mv88e6085";
imx51-zii-scu2-mezz.dts: compatible = "marvell,mv88e6085";
imx51-zii-scu3-esb.dts
imx6q-bx50v3.dtsi: compatible = "marvell,mv88e6085"; /* 88e6240*/
imx6qdl-gw5904.dtsi: compatible = "marvell,mv88e6085";
imx6qdl-zii-rdu2.dtsi: compatible = "marvell,mv88e6085";
imx7d-zii-rpu2.dts: compatible = "marvell,mv88e6085";

These all have a FEC, so are either GMII or MII. No SERDES.

What is left for 32bit ARM is:

armada-370-rd.dts: compatible = "marvell,mv88e6085";
Has a fixed-link for the switch, and nothing for the SoC

armada-381-netgear-gs110emx.dts: compatible = "marvell,mv88e6190";
Has a fixed-link for the switch and a fixed-link for the SoC, as is RGMII

armada-385-clearfog-gtr-l8.dts: compatible = "marvell,mv88e6190";
armada-385-clearfog-gtr-s4.dts: compatible = "marvell,mv88e6085";
These two have nothing for the CPU port, SoC has fixed-link, "2500base-x"

armada-385-linksys.dtsi: compatible = "marvell,mv88e6085";
Has a fixed link, and Soc also has a fixed link, SGMII.

armada-385-turris-omnia.dts: compatible = "marvell,mv88e6085";
Has a fixed link, with phy-mode rgmii-id.

armada-388-clearfog.dts: compatible = "marvell,mv88e6085";
Has a fixed link, SoC also has a fixed link.

armada-xp-linksys-mamba.dts: compatible = "marvell,mv88e6085";
Has a fixed-link, nothing for the SoC side.

So the majority of boards are:

1) Not SERDES based

or

2) Have a fixed-link.

It is just the two clearfog boards which might have a problem, but
these two also use mvneta, and Russell already pointed out, they are
by default forgiving with inband signalling.

In the arm64 world, we have:

freescale/imx8mq-zii-ultra.dtsi: compatible = "marvell,mv88e6085";
marvell/cn9130-crb.dtsi: compatible = "marvell,mv88e6190";
marvell/armada-3720-turris-mox.dts: compatible = "marvell,mv88e6190";
marvell/armada-3720-turris-mox.dts: compatible = "marvell,mv88e6085";
marvell/armada-3720-turris-mox.dts: compatible = "marvell,mv88e6190";
marvell/armada-3720-turris-mox.dts: compatible = "marvell,mv88e6085";
marvell/armada-3720-turris-mox.dts: compatible = "marvell,mv88e6190";
marvell/armada-3720-turris-mox.dts: compatible = "marvell,mv88e6085";
marvell/armada-3720-espressobin.dtsi: compatible = "marvell,mv88e6085";
marvell/armada-7040-mochabin.dts: compatible = "marvell,mv88e6085";
marvell/armada-8040-clearfog-gt-8k.dts: compatible = "marvell,mv88e6085";

So another RGMII FEC, and then Marvell devices which are all pretty
forgiving.

So i would say, the likelihood of the CPU port breaking is pretty low.

DSA ports could also be an issue here.

armada-3720-turris-mox.dts has:

phy-mode = "2500base-x";
managed = "in-band-status";
for all its DSA ports.

vf610-zii-dev-rev-b.dts has fixed link, some ports are rgmii, some are
1000base-X.

vf610-zii-dev-rev-c.dts does not have fixed link and the ports are
xaui. Does xaui have in-band signalling?

vf610-zii-scu4-aib.dts does not have fixed link and the ports are xgmii and 2500base-x.

So there are more open questions here, but a lot less boards.

Andrew