We have a custom QorIQ T1042 board using SERDES protocl 0xA7. DTSEC1 and DTSEC2 are configured as 2.5G SGMII and are directly connected to an external switch which supports 2.5G SGMII, there are no PHYs attached, this is a direct connection. DTSEC4 is 1G RGMII using a Marvell PHY.
Firstly I cannot seem to correctly configure the SGMII ports. In the u-boot board eth.c file, I set DTSEC3 and DTSEC5 to disabled as they are unused. If we do not set PHY addresses for DTSEC1/2 (effectively the PHY addresses are 0) then even the RGMII port stops working. If I set PHY addresses for DTSEC1/2 then the RGMII port works but of course I get errors for DTSEC1/2 saying that we are unable to connect to the PHY. How do I correctly configure DTSEC1/2 in u-boot?
Secondly, if if change the device tree such that DTSEC1/2 use a fixed link I get and error in u-boot from the fixed PHY driver which appears to be because the fixed PHY driver does not support 2.5G speed. Is there a way for Linux to support 2.5G SGMII without an attached PHY?
Thirdly, when the RGMII port is working I am able to connect to the network in u-boot, update u-boot over Ethernet and also configure and run NFS boot. After the kernel comes up, NFS initially works fine. udev then tries to rename the interface from eth2 to fm1-gb3 and an error is printed because the device is in use. After this, NFS and stops working and I get errors saying that the server is not responding. This happens even if I comment out the line that tries to rename the interface. Can you provide any insight into why this is happening?