1000BASE-X Standard - 16.2 English

1G/2.5G Ethernet PCS/PMA or SGMII LogiCORE IP Product Guide (PG047)

Document ID
Release Date
16.2 English
Figure 1. 1000BASE-X Auto-Negotiation Overview

IEEE 802.3-2008 clause 37 describes the 1000BASE-X auto-negotiation function that allows a device to advertise the modes of operation that it supports to a device at the remote end of a link segment (the link partner) and to detect corresponding operational modes that the link partner advertises. The previous figure shows the operation of 1000BASE-X auto-negotiation.

The following describes typical operation when auto-negotiation is enabled.

  1. Auto-Negotiation starts automatically when any of the following conditions are met.
  2. During auto-negotiation, the contents of the Auto-Negotiation Advertisement register are transferred to the link partner.

    This register is writable through the MDIO, therefore enabling software control of the systems advertised abilities. See Register 4: Auto-Negotiation Advertisement for more information.

    This register is also writable through the dedicated interface signal an_adv_config_vector . If optional MDIO is present, the additional signal an_adv_config_valid quantifies the contents of an_adv_config_vector. See definitions of an_adv_config_vector and an_adv_config_valid in Configuration and Status Vectors for more information.

    Information provided in this register includes:

    • Fault Condition signaling
    • Duplex Mode
    • Flow Control capabilities for the attached Ethernet MAC.
  3. The advertised abilities of the Link Partner are simultaneously transferred into the Auto-Negotiation Link Partner Ability Base register.

    This register contains the same information as in the Auto-Negotiation Advertisement register. See Register 5: Auto-Negotiation Link Partner Base for more information. Remote Fault and pause status bits of this register are also provided in status_vector.

  4. Under normal conditions, this completes the auto-negotiation information exchange.

    It is now the responsibility of system management (for example, software running on an embedded Arm® or MicroBlaze™ processor) to complete the cycle. The results of the auto-negotiation should be read from Auto-Negotiation Link Partner Ability Base register. OR by reading the remote_fault and pause status bits of status_vector if MDIO is not present. Other networking components, such as an attached Ethernet MAC, should be configured accordingly. See Register 5: Auto-Negotiation Link Partner Base for more information.

    There are two methods that a host processor uses to learn of the completion of an auto-negotiation cycle:

    • Polling the auto-negotiation completion bit 1.5 in the Status register (Register 1).
    • Using the auto-negotiation interrupt port of the core (see Using the Auto-Negotiation Interrupt.