We have a custom board based on a LS1043A. It has 3 ethernet ports and phys on it. 1 is connected to mdio0 and it is RGMII the other two are SGMII connected to mdio1.
The 2 SGMIIs are working in both u-boot and linux.
The RGMII works in u-boot but only works in linux if it is prevented from resetting itself or reconfiguring itself in autonegotation in the marvell phy driver. Since autonegotiation succeeds in u-boot we are wondering why it does not in linux and if others have used the marvell phy (in our case 1512) with the ls1043a and dpa/fman etc.
Thank you,
Amy Overmyer
For anyone else having this problem, the answer was a fix in the marvell phy driver (drivers/net/phy/marvell.c) the fix is in the mainline 4.15-rc2 kernel (and probably earlier ones as well). Basically in m88e1121_config_aneg() in the RGMII cases, don't mask off after reading the MII_88E1121_PHY_MSCR_REG, because it will be written back and some bits will get lost.