What was the typo?
It had reg = <25>
for both ports 24 and 25
This is the fun stuff, Is there nothing plugged in at all?
Correct, a bare switch with nothing but power connected will come up with its port 1 link LED and dmesg has an entry saying
rtl83xx-switch lexra-bus0:switch@1b000000: Link is Up - 1Gbps/Full - flow control off
Later when it sets up the PHYs again it doesn't treat that port differently and just logs the same as for other ports
rtl83xx-switch lexra-bus0:switch@1b000000 lan1: configuring for phy/usxgmii link mode
rtl930x_phylink_mac_config port 8, mode 0, phy-mode: usxgmii, speed -1, link 0
rtl930x_phylink_mac_config SDS is 3
rtl930x_phylink_mac_config: Unsupported speed: -1
can you actually plug in cables and see status changes on any of the ports? Can you actually get a working link?
I'm afraid not. I'm going by ip link
, I hope that's right? Independently of where I plug or unplug cables it says NO-CARRIER
and correspondingly LOWERLAYERDOWN
.
# ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether ce:a0:42:33:81:5c brd ff:ff:ff:ff:ff:ff permaddr 00:e0:4c:00:00:00
3: lan1@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master switch0 state LOWERLAYERDOWN mode DEFAULT group default qlen 1000
link/ether ce:a0:42:33:81:5d brd ff:ff:ff:ff:ff:ff permaddr 00:e0:4c:00:00:00
4: lan2@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master switch0 state LOWERLAYERDOWN mode DEFAULT group default qlen 1000
link/ether ce:a0:42:33:81:5e brd ff:ff:ff:ff:ff:ff permaddr 00:e0:4c:00:00:00
5: lan3@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master switch0 state LOWERLAYERDOWN mode DEFAULT group default qlen 1000
link/ether ce:a0:42:33:81:5f brd ff:ff:ff:ff:ff:ff permaddr 00:e0:4c:00:00:00
6: lan4@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master switch0 state LOWERLAYERDOWN mode DEFAULT group default qlen 1000
link/ether ce:a0:42:33:81:60 brd ff:ff:ff:ff:ff:ff permaddr 00:e0:4c:00:00:00
7: lan5@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master switch0 state LOWERLAYERDOWN mode DEFAULT group default qlen 1000
link/ether ce:a0:42:33:81:61 brd ff:ff:ff:ff:ff:ff permaddr 00:e0:4c:00:00:00
8: switch0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
link/ether ce:a0:42:33:81:5c brd ff:ff:ff:ff:ff:ff
9: switch0.1@switch0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state LOWERLAYERDOWN mode DEFAULT group default qlen 1000
link/ether ce:a0:42:33:81:5d brd ff:ff:ff:ff:ff:ff
Mainline with dts patch looks the same as far as ip link
is concerned but the on the remote end the link light turns on when I plug into any of the TEG-S750 ports. There is no link until the rtl838x_eth_stop line is logged, after which the PHYs are set up again and then the remote switch's link light turns on (and continues to work as expected when unplugging/plugging into another port). I'm guessing among the many changes in your wip branch something has diverged with how the PHYs are initialized?
I'll backport the dts to your dev branch and see how that goes. Any other ideas for diagnosing are obviously welcome but you've already done a lot of work on this and I feel I must earn my keep
Edit: The -dev branch also shows no link on the remote end, so the change must be present there already.