Hi @robimarko and fellow RB5009 users,
while working on a different kernel issue for the RB5009, I went through the relevant source files and found the following.
The current DTS for the RB5009 contains:
/* Actual device is MV88E6393X */
compatible = "marvell,mv88e6190";
The comment in the DTS itself confirms the actual chip is the 88E6393X. The kernel detects it correctly at boot:
mv88e6085 f212a200.mdio-mii:00: switch 0x3930 detected: Marvell 88E6393X, revision 0
The marvell,mv88e6393x compatible string and its ops table (mv88e6393x_ops) have been in the mainline kernel since early 2021. The chip is currently driven by the mv88e6190 ops table instead.
Switching to marvell,mv88e6393x would activate the following chip-specific functions:
mv88e6393x_port_set_speed_duplex — correct speed handling including 5G
mv88e6393x_port_max_speed_mode — correct max speed per port
mv88e6393x_port_set_policy — 6393X-specific ACL/PCL registers (currently falling back to 6352)
mv88e6393x_port_set_ether_type — EPC registers for VLAN
mv88e6393x_port_set_cmode — SerDes mode correctly restricted to ports 0, 9 and 10
mv88e6393x_port_set_upstream_port — per-port CPU path instead of global CPU port
mv88e6393x_watchdog_ops — chip-specific watchdog
mv88e6393x_pcs_ops — dedicated PCS handler for SerDes
mv88e6393x_phylink_get_caps — advertises 5G, 10G and USXGMII on ports 0, 9 and 10
mv88e6393x_serdes_get_lane — recognizes port 0 and 5GBASER, 10GBASER, USXGMII as valid cmodes Correct 10G interrupt register addresses (6390: 0x9001/0x9003, 6393X: 0x9000/0x9001) MAC Link Change IRQ via dedicated registers
(MV88E6393X_G2_MACLINK_INT_SRC/MASK) Device-2 support via global1.h
The 6393X driver has SerDes statistics not yet implemented (/* TODO: serdes stats */). This sounds like a regression but it is not. With the current 6190 driver these statistics are also not being read for the SFP+ port (port 10), because mv88e6390_serdes_get_lane does not recognize the cmode 10GBASER and returns -ENODEV. serdes_get_stats then returns 0 immediately. The existing behavior is therefore unchanged.
I plan to test the DTS change via initramfs:
All 7x 1G ports for functionality 2.5G port (p1, QCA8081) dmesg for correct driver initializationVCT5 timing measurement (that is my actual topic)
I do not have an SFP module available to test port 10 at different speeds. If anyone in the community has one and is willing to test that nothing breaks, that would be very helpful.