AR# 17631


LogiCORE Ethernet 1000BASE-X PCS/PMA v3.0 - Core continues to transmit even after the fiber optic cable is removed from receiver


Keywords: COREGen, Gigabit, ethernet, MAC, TBI, PHY, auto, negotiation, 1000BASE-X, PCS, PMA, 0.12, 0.9, link, FIP4, FIP_4

Urgency: Standard

General Description:
A problem in the 1000BASE-X PCS/PMA v3.0 core, TBI or PHY versions, causes a conflict with Auto-Negotiation. When the fiber optic cable is pulled out of the receiver, the transmitter continues to transmit data even though it should shut down after 10-20 ms. The problem occurs when Auto-Negotiation is initially disabled by writing to the PCS Control Register 0 (via the MDIO) with the following bits (this causes a conflict in the core):

bit 0.12 (set to 0 - Auto-Negotiation disable)
bit 0.9 (set to 1 - Auto-Negotiation restart).

Since the Auto-Negotiation Restart bit is self-clearing, it only clears after Auto-Negotiation is restarted. However, since Auto-Negotiation is also disabled, it never allows a restart and this causes the bit to remain set. This problem keeps the core in transition between the Auto-Negotiation states "AN_DISABLE_LINK_OK" and "AN_ENABLE", and this prevents the link_timer from incrementing by holding it in reset. Since the link_timer is never incremented, "an_sync_status" does not follow "sync_status" 10-20 ms later and the core keeps transmitting.


To ensure correct operation, the 1000BASE-X PCS/PMA v3.0 core has been updated. The Auto-Negotiation Restart request signal is not formed directly from the PCS Control Register bit 0.9, it is now effectively "ANDed" with PCS Control Register bit 0.12 (Auto-Negotiation Enable). Consequently, Auto-Negotiation Restart only takes effect when Auto-Negotiation is enabled. As a result, when Auto-Negotiation is disabled, the register now self-clears to "0" immediately.

To obtain this fix, apply the patch found in the Release Notes for the 1000BASE-X PCS/PMA v3.0 core in (Xilinx Answer 17335).

Alternatively, you can avoid this problem by ensuring that bit 0.9 (Auto-Negotiation Restart) is always written to "0" whenever bit 0.12 is set to "0" (Auto-Negotiation = Disabled).
AR# 17631
Date 08/31/2006
Status Archive
Type General Article
People Also Viewed