Hi, my design consists of a carrier board that provides Ethernet connection redundancy (among many other things) by two Ethernet ports. On the other hand, I'm using a picoZed 7020 SoM (based on Xilinx Zynq platform) which goes plugged into that carrier board, in order to perform as the "CPU" of my system. That SoM has an Ethernet PHY inside, so that it provides 1Gb Ethernet interface lines directly on the module connector.
In order to get the Ethernet connection redundancy that I've mentioned before, I'm using the Ethernet Switch KSZ9896CTXI on my carrier board. I have connected KSZ9896CTXI Ethernet port 1 directly to the SoM 1Gb Ethernet lines, and ports 2 and 3 to the Ethernet connectors placed in the carrier board. Yo can see this configuration in the attachment.
With this scenario, I'm facing several issues with the Ethernet connection to the SoM (the other Ethernet ports work perfectly once the KSZ9896CTXI is powered). That problem consists in that sometimes (one out of four, approx.) the ARM inside the SoM is not able to initiate the Ethernet link. It looks like the conflict is in the PHY autonegotiation process, which isn't able to be completed and throws an error.
In order to find a solution, I've developed an appplication which is executed at the begining and checks the Ethernet connection:
* If it is OK, the application finishes.
* If there's a link problem, the applicaction resets the KSZ9896CTXI (I can control the reset line from the SoM), waits form 20 seconds and repeat the procedure.
This application could be a good workaround, since once the link is established, it never fails. But the problem is that the first reset not always solves the problem and the procedure has to be repeated several times. The consecuence is that in those cases the Ethernet link takes a lot of time to be available, so we don't meet one of our most important requirements (equipment must be compeltely running within 60 seconds).
I've done many tests in order to discard any software/firmware issue. In that way, I've been testing with the Development Carrier Card that provides the picoZed 7020 SoM manufacturer. That carrier provides a direct Ethernet connector (with no Eth Switch) and Ethernet link works perfectly there.
So, I guess I'm doing something wrong with the connection to the SoM from the KSZ9896CTXI. I've done that connection directly, but maybe some trafos (or any other things) are required (I don't know). I would appreciate that somebody checks the schematics that I have attached (to make it easier I've only included the related to this issue, not the entire carrier board) and let me know if you see something wrong in them. Any piece of advise on this issue will be very welcome, since I'm about to manufacture next PCB revision and I would like to completely solve this issue.
Please, let me know any other thing you linght need to work on this tech case.
Thanks in advance