IEEE 802.3 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 following 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 is
- Upon loss of synchronization.
- The link partner initiates Auto-Negotiation.
- An Auto-Negotiation restart is requested (see Register 0: Control Register).
- During Auto-Negotiation, the contents of the Auto-Negotiation Advertisement
register are transferred to the link partner.
This register is writable through AXI4-Lite, therefore, enabling software control of the system's advertised abilities. See Register 4: Auto-Negotiation Advertisement 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
- 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 PowerPC or MicroBlaze
processor) to complete the cycle. The results of the Auto-Negotiation should be read
from the Auto-Negotiation Link Partner Ability Base register or by reading the
remote_faultand pause status bits of
status_vectorif the AXI4-Lite interface is not present.
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).