Forum Discussion
To debug, I've changed my code so that the dev board generates ping requests once a second to my PC from each of the Ethernet ports. i.e. I'm just using the transmit part of the cores. Port A ping requests get through fine but there is no sign of the Port B pings. The transmit LEDs on the ethernet sockets light when the ping requests are sent on both Port A and Port B so something is happening.
I've also dumped the contents of the two Triple Speed Ethernet cores registers for comparison as well as the contents of the registers in the two PHYs. In both cases they are identical apart from where you would expect differences.
I'm at a bit of a loss as to what else I could try and I really need to get this working. Help!
Solution
It turns out to be a timing issue. I've added 1ns of extra delay in the Ethenet Port B GTX clock line and this has solved the problem. Note: I've not tuned the delay to find the optimum value, 1ns was just the first value I found that worked.
As far as I can make out, this isn't mentioned anywhere in the documentation and there is no additional delay in the Board Update Portal Port B example code as far as I can make out. This may explain why it doesn't work for me either.