Marvell phys connected to RGMII interface

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Marvell phys connected to RGMII interface

1,598 次查看
amyovermyer
Contributor I

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

0 项奖励
4 回复数

1,104 次查看
amyovermyer
Contributor I

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.

0 项奖励

1,104 次查看
j_wallace
Contributor II

Hello Amy.

Thanks for sharing information.

I'm having trouble with the same Marvell PHY (1512) on RGMII of LS1043A rev1.1 custom board. In my case the port is working in u-boot with little data transfer but hangs and fails with timeout on large transfer. My u-boot port was based on SDK2.0-1703. I made a new port based on LSDK1806 and the RGMII port doesn't work at all. Could you please tell me which SDK you used? and SoC revision ?

Best regard

0 项奖励

1,104 次查看
amyovermyer
Contributor I

SDK 2.0 1703. Soc rev 1.1. 

I had to change the ls1043ardb.c file in board/freescale/ls1043ardb in order to accomodate our MDIO and phy differences on our custom board, too. 

0 项奖励

1,104 次查看
j_wallace
Contributor II

OK. Thank you so much.

Best Regards.

0 项奖励