We are using the existing EVM board files to try to get functions working on a board we have with 4 C6678 DSPs. In our case, only one of the DSPs is connected to the MArvell 88E1111 PHY. We are connected to SGMII0 instead of SGMII1. The EVM uses a 100Mhz core clock and 312.5Mhz SERDES clock. Our board uses 156.25Mhz for both of these clocks. We believe we have the PLLs adjusted correctly to compensate for our clock rates, but we are still not able to get the SERDES link up. We set the MPY field for 16X as our clock is ½ the rate of the EVM and the EVM had this field set for 8X. Is there an updated user guide for the EMAC? The EVM has the rate field for the RX and TX configuration set to 10 hex and states this is set for quarter rate. The user guide says this field should always be set to 01 hex, “Operating rate. Always write 01b to this register field. All other values are reserved.” We are also wondering if we need to adjust the EQ, SWING, or DEMPHASIS fields as these seem like they could vary from board to board. Additionally, there is a comment in the EVM code regarding a DV value that looks like it is a register value that could be set. We do not see this getting set anywhere, but it looks like several values were tried until the right one was found.
I looked at the SGMII RX and TX lines and the voltage swing appears to be okay, but I’m unsure of the DC offset. I tried to take some measurements on the EVM, but since there is no silkscreen on the capacitors, I am not sure where the RX caps are for the SGMII. I did find the TX lines and the voltages are in line with what we see on our board. The RX on the PHY side has a single ended range of 1.16V to 1.53V. The DSP side is -67mV to 333mv. This doesn’t seem quite right, but I’m not sure what would be causing this since the lines are AC coupled. The 6678 datasheet states the SERDES should operate at 300mV to TBD. Has this been updated? If this needed to be adjusted, I’m not sure if it would need to be done on the PHY side or DSP side, but our PHY setup is the same as on the EVM. The output characteristics can be tweaked via register writes, but that would need to be done over MDIO and we don’t see any MDIO activity on the EVM.
The issue appears to be that the SGMII interface is not autonegotiating correctly as that section of the code gets stuck in a loop.
Any help on these issues would be appreciated.