User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 510
UG585 (v1.11) September 27, 2016
Chapter 16: Gigabit Ethernet Controller
Gigabit Ethernet Controller using EMIO
The EMIO interface allows for derivation of other physical MII interfaces using appropriate
shim-logic in the PL. The Controller provides a GMII interface through the EMIO.
Example: Configure Controllers for EMIO
1. Unlock the SLCR module. Write a value of 0xDF0D to the slcr.SLCR_UNLOCK register.
2. Enable the level shifters for PS user inputs to FPGA in FPGA tile 1. Write a value of 0b11 to
bit slcr.LVL_SHFTR_EN[USER_INP_ICT_EN_1].
3. Enable the level shifter for PS user inputs to FPGA in FPGA tile 0. Write 0b11 to bit
slcr.LVL_SHFTR_EN[USER_INP_ICT_EN_0].
4. Write a value of 0 to the slcr.FPGA_RST_CTRL register.
5. Perform a software reset. Write 0b1 to bits slcr.FPGA_RST_CTRL[FPGA{0-3}_OUT_RST].
6. Write a value of 0 to the slcr.FPGA_RST_CTRL register.
7. Lock the SLCR module. Write a value of 0x767B to the slcr.SLCR_LOCK register.
Configure Clocks
The Gigabit Ethernet Controller clocks are controlled through four registers in the SLCR module.
Example: Configuring Clocks for MIO
1. Unlock the SLCR module. Write a value of 0xDF0D to slcr.SLCR_UNLOCK register.
2. Configure the clock by writing to the slcr.GEM0_CLK_CTRL register.
Example: A value of 0x0050_0801 enables the Controller0 reference clock, first divisor for the
source clock is 8 and second divisor is 5. This gives a default speed of 100 Mb/s if the Ethernet
source clock is IO PLL which has a frequency of 1,000 MHz.
3. Enable Controller 0 receive clock control. Write a value of 0x0000_0001 to the
slcr.GEM0_RCLK_CTRL register.
4. Lock the SLCR module. Write a value of 0x767B to slcr.SLCR_LOCK register.
Similar steps must be followed for Controller 1 by writing to the appropriate registers.
16.3.4 Configure the PHY
The PHY connected to the controller is initialized through the available management interface
(MDIO) using the PHY maintenance register (gem.phy_maint). Writing to this register starts a shift
operation which is signaled as complete when the bit gem.net_status[phy_mgmt_idle] is set.
The MDIO interface clock (MDC) for GigE is generated by dividing down the CPU_1x clock.
Note: MDC is active only during MDIO read or write operations during which the PHY registers are
read or written.