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.
- Auto-Negotiation starts automatically when any of the following conditions are
met.
- Power-up/reset
- Upon loss of synchronization
- The link partner initiates auto-negotiation
- An auto-negotiation Restart is requested (See Register 0: Control Register and
an_restart_config
in Configuration and Status Vectors).
- 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 signalan_adv_config_valid
quantifies the contents ofan_adv_config_vector
. See definitions ofan_adv_config_vector
andan_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.
- 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.
- 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.