You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 56 Next »


Table of contents

Overview

A Lattice XO2-1200 CPLD (U19) is used as a System Management Controller (referred to as SC in the manual). The SC is responsible for power sequencing, reset generation and Zynq initial configuration (mode pin strapping). Moreover, some on-board ICs are connected to the SC that provides level shifting. The SC wakes up when the 3.3V input power rises above 2.1V (VIN voltage is not needed). The SC can turn on or off all of the other supplies on the module (except in no power sequencing mode when the 1.0V and 1.8 V supplies are forced to start immediately when power is applied to the module).

System Controller (SC for short) was designed to allow ZYNQ PS system to access module special functions as early as possible without reducing the number of MIO pins that are fully user configurable.This early communication channel is done using MIO52 and MIO53 pins that are used also as Ethernet PHY management interface for the on-board Gigabit PHY. In order to simplify the boot process and reduce the number of time the PS peripherals need to be configured or re-initialized SC uses the same protocol on MIO52/MIO53 as the Gigabit PHY itself. This means that FSBL Configures all peripherals to their final function, allocating MIO52 and MIO53 as Ethernet MDIO Interface. SC Controller appears as "Virtual Ethernet PHY" on the MDIO bus of PS Ethernet 0 Interface. This interface is already available when Zynq PL Fabric is not configured. It would have been possible to use I2C Protocol on MIO52/MIO53 but in such case some multiplexing would be needed to choose between two protocols, also it would be needed to change the peripheral mapping after first init by the FSBL. For use cases where Ethernet PHY on TE0720 is not used at all, it is still possible to configure SC with design that implements I2C Protocol on MIO52/MIO53 pins.For most use cases the only need to use this interface is access to MAC Address info, this is normally done by u-boot loader that fetches the MAC Address bytes and sets its environment variables accordingly. Linux image will then also be started so that the MAC Address from EEPROM is used for Ethernet 0 Physical interface.

Feature Summary

  • Power Management
  • JTAG routing
  • Boot Mode
  • User IO
  • LED

Firmware Revision and supported PCB Revision

See Document Change History

Product Specification

Port Description

Name / opt. VHD NameDirectionPinPullup/DownBank PowerDescription
BOOT_R / BOOTMODE_RoutN12NONE3.3VIf low then the QSPI flash can not be written. (Write protect)
BOOT_R5 / BOOTMODE_R5outM11DOWN3.3VIf low then the QSPI flash will be reset. (HOLD/RESET)
CLK_125MHzinG13NONE1.8V125MHZ Clock Output of Ethernet transceiver chip (88E1512-A0-NNP2C000) that synchronized with the 25MHZ reference clock
EN_3V3outA2DOWN3.3VIf high then the 3.3V power will be switched ON.
EN1inA9UP3.3VUser Enable. Enables the DC-DC converters and on board supplies (Active High). (B2B JM1-28)(DIP Switch on the carrier board) . Not used if NOSEQ = '1'
ETH-CLK-EN / EN_ETH_CLKoutJ14NONE1.8VEnable pin for U9 oscillator chip U9 (SiT8008BI-73-18S-25.000000E) to feed a clock to Ethernet Transceiver(U8). Enabled as default.
ETH-MDC / mdcinL14UP1.8VManagement Data Clock reference for the Ethernet transceiver chip. This pin is connected with MIO52 of FPGA too and can be activated in Zynq7 adjustment.
ETH-MDIO / mdioinoutK14UP1.8VIt is Management Data pin of Ethernet transceiver chip to transfer in and out of the device synchronously to mdc. It is connected with MIO53 of FPGA.
ETH-RSToutE14DOWN1.8VReset pin of Ethernet transceiver chip. (Active low)
INITinC9UP3.3VINIT_B_0 pin of FPGA. (Active low). This pin must be tristate for PL configuratuion. By user or device held low until is ready to be configured.
INT1 / INT2inP4UP3.3VMEMS Interrupt 1 of 3D accelerometer and 3D magnetometer chip U22 (LSM303DTR) (Active High)
INT2 / INT1inP6UP3.3VMEMS Interrupt 2 of 3D accelerometer and 3D magnetometer chip U22 (LSM303DTR) (Active High)
JTAGMODEinB9
3.3VJTAGENB pin of CPLD. Enable JTAG access to CPLD for Firmware update (zero: JTAG routed to module, one: CPLD access)
LED1outP2NONE3.3VDisplay green LED (D2)
LED2outN3DOWN3.3VDisplay red LED (D5)
MEM-MAC / MAC_IOinoutM14UP1.8VSerial Clock/Data input/Output of Serial EEPROM (11AA02E48T-I/TT) U17
MEM-SHA / SHA_IOinoutN14UP1.8VSDA for CryptoAuthentication Chip (ATSHA204A-STUCZ-T) U10
MIO14inoutM4NONE3.3VThis pin is connected to Zynq PS-MIO (B6) .  In firmware rev.05 is used as RX pin of UART0.
MIO15inoutN4NONE3.3VThis pin is connected to Zynq PS-MIO (E6) . In firmware rev.05 is used as TX pin of UART0.
MIO7inP11UP3.3VThis pin is used as GPIO.
MMC_RSToutG14DOWN1.8VReset pin of eMMC memory (MTFC16GJVEC-2M WT) U15
MODE / BOOTMODE_INinC8UP3.3VLatched as BOOTMODE once at power-up, can be used later as I/O, weak pull up. Force low for boot from the SD Card. Latched at power on only, not on soft reset (B2B-JM1 pin 32) 
MODE / BOOTMODE_IN2inM9UP3.3VLatched as BOOTMODE once at power-up, can be used later as I/O, weak pull up. Force low for boot from the SD Card. Latched at power on only, not on soft reset (B2B-JM1 pin 32) 
MR     / POR_BoutP12UP3.3VPower-on-reset pin. This pin is connected with supply voltage monitor chip (TPS3106K33DBVR) U26 and controls the PS_POR_B pin of FPGA. (Active Low)
NetU19_B12
B12

/ currently_not_used
NetU19_B13
B13

/ currently_not_used
NetU19_B2
B2

/ currently_not_used
NetU19_B3
B3

/ currently_not_used
NetU19_B7
B7

/ currently_not_used
NetU19_C1
C1

/ currently_not_used
NetU19_C10
C10

/ currently_not_used
NetU19_C12 / DummyoutC12DOWN3.3V
NetU19_C3
C3

/ currently_not_used
NetU19_C6 / RSTinC6UP3.3V
NetU19_C7
C7

/ currently_not_used
NetU19_E1
E1

/ currently_not_used
NetU19_E12
E12

/ currently_not_used
NetU19_F13
F13

/ currently_not_used
NetU19_F3
F3

/ currently_not_used
NetU19_G3
G3

/ currently_not_used
NetU19_H3
H3

/ currently_not_used
NetU19_J3
J3

/ currently_not_used
NetU19_K13
K13

/ currently_not_used
NetU19_K3
K3

/ currently_not_used
NetU19_L3
L3

/ currently_not_used
NetU19_M12
M12

/ currently_not_used
NetU19_M2
M2

/ currently_not_used
NetU19_M3
M3

/ currently_not_used
NetU19_N13
N13

/ currently_not_used
NetU19_N5
N5

/ currently_not_used
NetU19_N7
N7

/ currently_not_used
NetU19_N8
N8

/ currently_not_used
NOSEQinoutA3DOWN3.3VUsage CPLD Variant depends. (B2B-NOSEQ pin 7) Forces the 1.0V and 1.8V DC-DC converters always ON when high. Can be used as an I/O after boot.
ON_1V0outA12NONE3.3VEnable pin for 1.0 V DC-DC (Active High)
ON_1V5outM7NONE3.3VEnable pin for 1.5 V DC-DC (Active High)
ON_1V8outA11NONE3.3VEnable pin for 1.8 V DC-DC (Active High)
OTG-RSToutB14DOWN1.8VReset pin for high speed USB transceiver (USB3320C-EZK) U18 (Active Low)
PG_1V0inA7UP3.3VPower OK (POK) pin of 1.0V DC-DC converter EN6347QI (U1). If High then the output voltage of regulator is within 10% of nominal value (OK).
PG_1V5inN6UP3.3VPower OK (POK) pin of 1.5V DC-DC converter EP53F8QI (U2). If High then the output voltage of regulator is Ok.
PG_1V8inA10UP3.3VPower OK (POK) pin of 1.8V DC-DC converter EP53F8QI (U3). If High then the output voltage of regulator is Ok.
PG_3V3 / PORinC11UP3.3VPOR Reset pin. This pin is connected with PG_3V3. As long as the VCCIO34 voltage is zero, this pin will remain low.
PGOODinoutB8UP3.3VPower good output as default, can be used as I/O. (B2B JM1-Pin 30) Forced low until all on-board power supplies are working properly.
PHY_CONFIGinoutC14DOWN1.8VHardware configuration pin of Ethernet transceiver (88E1512-A0-NNP2C000).
PHY_LED0inoutF14NONE1.8VLED output 0 of Ehternet transceiver chip
PHY_LED1inoutD12NONE1.8VLED output 1 of Ehternet transceiver chip
PHY_LED2inoutC13NONE1.8VLED output 2 or interrupt output pin (Active Low) of Ehternet transceiver chip
PJTAG_RoutN10NONE3.3VThis pin in the schematic is connected with SPI-DQ0/M0 Pin
PROG_BinA13UP3.3V

By pulsing this pin any configuration that is currently loaded is cleared and the PL prepared to load new configuration. (Active Low)

PS-RST / SRST_BoutM13UP1.8VPS software reset  (Active Low)
PUDC_BinoutE3DOWNVCCIO34

Selects the enable or disable of pull-ups during configuration on the user I/O pins. (Active Low)  Enables internal pull-up resistors on the

select I/O pins after power-up and during configuration.

RESINinC4UP3.3VMaster reset input (Active Low). Default mapping forces POR_B reset to Zynq PS
RST / RST_SENSEinP3NONE3.3VReset pin that is connected with PS_PORT_B (Power-on-reset) (Active Low)
RTC_INTinN2UP3.3VInterrupt output or frequency output of RTC chip (ISL12020MIRZ) U20 (Active Low)
SCLinoutP8UP3.3VI2C clock pin of MEMS chip (LSM303DTR) U22
SDAinoutP7UP3.3VI2C data pin of MEMS chip (LSM303DTR) U22
SPK_L
M5

/ currently_not_used
SPK_R
M8

/ currently_not_used
TCK / C_TCKoutP13DOWN3.3VZynq JTAG clock pin
TDI / C_TDIoutP9DOWN3.3VZynq JTAG data input pin
TDO / C_TDOinM10DOWN3.3VZynq JTAG data output pin
TMS / C_TMSoutN9DOWN3.3VZynq JTAG mode select pin
VCCIO34
E2

/ currently_not_used
VCCIO34
F2

/ currently_not_used
VCCIO34
H2

/ currently_not_used
VCCIO34
J2

/ currently_not_used
VCCIO34
K2

/ currently_not_used
X_TCK / M_TCKinB6DOWN3.3VFTDI JTAG clock pin (B2B-JM1-pin 99)
X_TDI / M_TDIinB4DOWN3.3VFTDI JTAG data input pin (B2B-JM1-pin 95)
X_TDO / M_TDOoutA4DOWN3.3VFTDI JTAG data output pin (B2B-JM1-pin 97)
X_TMS / M_TMSinA6DOWN3.3VFTDI JTAG mode select pin (B2B-JM1-pin 93)
X1inF1UPVCCIO34CPLD pin to the FPGA (L16). I2C clock from FPGA
X2 / XIO4inoutC2UP

VCCIO34

CPLD pin to the FPGA (M15). ETH PHY LED0
X3 / XIO5inoutB1UPVCCIO34CPLD pin to the FPGA (N15). ETH PHY LED1
X4 / XIO6inoutD1UPVCCIO34CPLD pin to the FPGA (P16). ETH PHY LED2
X5outJ1NONEVCCIO34CPLD pin to the FPGA (P22). I2C data to FPGA
X6
H1

/ currently_not_used
X7inM1UPVCCIO34CPLD pin to the FPGA (N22). I2C data from FPGA
XCLKoutK1NONEVCCIO34CPLD pin to the FPGA (K19). ETH PHY clock to FPGA
- / SIG1inE13NONE1.8VThis pin is connected with VCCIO34 directly in the schematic REV03 and has no lable in the schematic.

Functional Description

To access and control the following functions it must be accessed CR registers. For more information about how to access these registers refer to TE0720 CPLD#CR registers access methods

JTAG

JTAG signals routed directly through the CPLD to FPGA. Access between CPLD and FPGA can be multiplexed via JTAGENB pin of CPLD (B9) (logical one for CPLD, logical zero for FPGA). This pin is connected to B2B (JM1-pin 89) directly. On the carrier board can be this pin enabled or disabled with a dip switch.

CPLD JTAGENB (B2B JM1-89)Description
0FPGA access
1CPLD access

Watchdog Timer

Watchdog timer is an added option in the CPLD code. To control and to use watchdog timer correctly , it must be written correct values in the related CR registers.

Watchdog timer signal / registerRelated CPLD RegisterAccess in FSBL codeAccess in LinuxDescription
WDT input clockCR1(14)

CR1 = Register5

XEmacPs_PhyWrite / XEmacPs_PhyreadPhytool command
WDT_timeCR4[7:0]
CR4 = Register12
XEmacPs_PhyWrite / XEmacPs_PhyreadPhytool command

If CR4[7:0] = 0x00 → WDT_time = 0x07
If CR4[7:0] /= 0x00 → WDT_time = CR4[7:0]

WDT_EnableCR3[15:8]
CR3 = Register7
XEmacPs_PhyWrite / XEmacPs_PhyreadPhytool commandIf CR3[15:8] = 0xA5 → WDT enable
If CR3[15:8] /= 0xA5 → WDT disable

For example to access these registers in FSBL code it can be used the following instruction:

Status = XEmacPs_PhyWrite(&Emac, 0x1A, 7, 0xA500); if(Status != XST_SUCCESS){ return XST_FAILURE; } →  To enable WDT
Status = XEmacPs_PhyWrite(&Emac, 0x1A, 7, 0x0000); if(Status != XST_SUCCESS){ return XST_FAILURE; } →  To disable WDT
Status = XEmacPs_PhyWrite(&Emac, 0x1A, 12, 0x001F); if(Status != XST_SUCCESS){ return XST_FAILURE; } → To adjust desired time for WDT  

Another way to access the related registers for WDT is to use phytool command. It must be added the ethtool package in Linux. To add this package it must be chosen in petalinux configuration for rootfs this option. The path in petalinux rootfs is:
Filesystem packages/console/network/ethtool
The phytool instruntion format is :

  • Phytool read device/addr/register
  • Phytool write device/addr/register <value>

To write desired value in the related WDT registers for example can be written the following instructions in Linux console:


phytool write eth0/0x1A/7 0xA500 → WDT enable
phytool write eth0/0x1A/7 0x0000 → WDT disable
phytool write eth0/0x1A/12 0x001F → Adjusted WDT time. It depends on the period of the CPLD colck.
phytool write eth0/0x1A/6 0x0200 → To set the WDT input clock high
phytool write eth0/0x1A/6 0x0000 → To set the WDT input clock low

If the WDT is activated and the generated clock is fed to WDT input clock , it will not be reset the board (WDT_RST signal low). But if the generation of this clock is stopped , the board will be reset (WDT_RST signal high) after a period of time depending on the WDT_time register value. The following shell script file generates a clock for WDT input clock. This file must be copies as init.sh to the SD card. The Boot.bin and image.ub files must be copied to the SD card too. This shell script file will be executed by bootng the board and generates the WDT input clock. As long as 1 key and enter key is not pressed, the WDT clock will be generated and subdequently the board will not be reset.  Note that WDT must already be activated either in FSBL code or directly by phytool command in linux console.    

#WDT test
#!/bin/sh
echo "Starting the WDT Clock"
sleep 1
while :
do
    phytool read eth0/0x1A/6
    phytool write eth0/0x1A/6 0x0200
    sleep 1
    phytool read eth0/0x1A/6
    phytool write eth0/0x1A/6 0x0000
    sleep 1
    read -r -t 1 -p "Press 1 to exit: \n\r" b
    if (( b == 1 )) ; then
      break
    fi
done
printf "\Quit.......................\n\n"

Reset

Zynq will be reset, when it occures one of the following conditions:

Reset nameReset reasonerelated reset pin / signalActive 
ResetReset push buttonRESINLOW
TE0720 CPLD#Extra ResetReset command in softwareCR1(15)HIGH
WDT resetOverflowing the WDT counter and no existance WDT input clock (For more information refer to TE0720 CPLD#Watchdog Timer)WD_RSTHIGH
Extra Reset

The board can also be reset through software.

Extra resetrelated registerAccess in FSBL codeAccess in LinuxDescription
Enable registerCR3[15:8]
CR3 = Register7
XEmacPs_PhyWrite / XEmacPs_PhyreadPhytool commandIf CR3[15:8] = 0xE5 → Extra reset enable
If CR3[15:8] /= 0xE5 → Extra reset disable
Reset bitCR1(15)
Phytool command

If CR1(15) = '1' → Reset the board

For example the following instructions can reset the board:

phytool write eth0/0x1A/7 0xE500 → Extra reset enable
phytool write eth0/0x1A/5 0x8000 → Reset the board

It can be activated this option in FSBL code too:


Status = XEmacPs_PhyWrite(&Emac, 0x1A, 7, 0xE500); if(Status != XST_SUCCESS){ return XST_FAILURE; }


SC B2B Pins

NameB2BModeDefault functionAlternativeDescription
EN1JM1-Pin 28input, weak pull-upPower EnableIOHigh enables the DC-DC converters and on-board supplies. Not used if NOSEQ=1
MODEJM1-Pin 32input, weak pull-upBoot modeSDA or IOForce low for boot from the SD Card. Latched at power on only, not on soft reset!
NOSEQJM1-Pin 7input, weak pull-downPower sequencing ControlOutputForces the 1.0V and 1.8V DC-DC converters always ON when high. Can be used as an I/O after boot.
PGOODJM1-Pin 30output, open drainPower goodSCL or IOForced low until all on-board power supplies are working properly.
Attention: During CPLD programming, this pins is high impedance.
RESINJM2-Pin 18input, weak pull-upReset inputIOActive Low Reset input, default mapping forces POR_B reset to Zynq PS

SC Pins to the FPGA

Schematic net nameVHDL NameDefault functionDirectionSC pinFPGA pinDescription
XCLKXCLKETH PHY Clock to FPGAto FPGAK1K19
X7X7I2C Data from FPGAfrom FPGAM1N22SDA from EMIO I2Cx
X5X5I2C Data to FPGAto FPGAJ1P22SDA to EMIO I2Cx
X4XIO6ETH PHY LED2to FPGAD1P16
X3XIO5ETH PHY LED1to FPGAB1N15RTC, MEMS Interrupt or PHY LED1
X2XIO4ETH PHY LED0to FPGAC2M15
X1X1I2C Clock from FPGAfrom FPGAF1L16SCL from EMIO I2Cx
PUDC_BPUDC_BEnables internal pull-up resistors on the IOsto FPGAE3K16normally not used tied to fixed level by SC

NOSEQ Pin

This is a dedicated input that forces the module's 1.0V and 1.8V supplies to be enabled if high. This pin has a weak pull-down on the module. If left open the module will power up in normal power sequencing enabled mode. This pin is 3.3V tolerant. This pin is also connected to the System Management Controller. The SC can read the status of this pin (it can be detected if the module is in power sequencing enabled mode). The SC can also use this pin as output after normal power on sequence.

No Sequencing mode

If the module is powered from a single 3.3V supply and power sequencing is disabled, then NOSEQ pin should be powered from the main 3.3V input. That is VIN, 3.3Vin and NOSEQ should all be tied together to the input 3.3V power rail. Sequencing mode should not be used if VIN is not 3.3V.

Normal mode

For normal operation leave NOSEQ open or pull down with a resistor.

Normal mode with user function on NOSEQ

NOSEQ can be used as an output after boot. NOSEQ must be low when 3.3V power is applied to the module. Common usage is an LED connected between NOSEQ and GND. The mapping of NOSEQ pin can be changed by CR1 register. The CR1 register is control register of MDIO slave interface that its content can be changed with u-boot functions or FSBL code or in the linux console directly.

Value (CR1[11:8])NOSEQ
0001PHY_LED0
0010PHY_LED1
0011PHY_LED2
0100MIO7
0101RTC_INT
0110OFF
0111ON
1000XIO6
1001uio_unidir
1010Undefined
DefaultPHY_LED0


SC registers

Most registers and functions are available via ETH PHY Management interface (MIO pins 52 and 53).

AddrR/WRegister nameDescripion
0RO

1RO

2ROID1PHY Identifier Register 1
3ROID2PHY Identifier Register 2
4RWID3PHY Identifier Register 3
5RWCR1Control Register 1: LED's
6RWCR2Control Register 2; XIO Control
7RWCR3Control Register 3; Reset, Interrupt
8ROSR1Status Register
9ROMAChiHighest bytes of primary MAC Address
0xAROMACmiMiddle bytes of primary MAC Address
0xBROMACloLowest bytes of primary MAC Address
0xCROCR4reserved do not use
0xDRWMMD_CRMMD Control Register
0xERWMMD_ADMMD Address/Data
0xF-
reserved do no use
other-
reserved do not use

Register CR1

CR1related function
15Enable Extra_Enable
14WD_HIT generation
13Undefined
12Undefined
11:8NOSEQ Mux
7:4LED1 Mux
3:0LED2 Mux

Register CR2

CR2related function
15:12XCLK Mux
11:8XIO6 Mux
7:4XIO5 Mux
3:0XIO4 Mux

Register CR3

CR3 bitrelated functionrelated port/signal
0MEMS interrupt 1INT1
1MEMS interrupt 2INT2
2Real time clock interruptRTC_RST
3Interrupt output pin of ethernet transceiverPHY_LED2
4Reset for high speed USB transceiverOTG_RST
5Reset for ethernet transceiver / Reset for serial for  unio mac read coreETH_RST
6Reset for MMCMMC_RST
7Enable for ETH clockEN_ETH_CLK
15:8Enable for watch dog timer / Extra enable

if 0xA5  → WDT enable

if 0xE5 → Extra enable

Register CR4

CR4 bitsrelated functionDescription
7:0WDT timeif CR4[7:0]=0x00 → WDT time=0x07

The mapping of CPLD IOs (XIO4,XIO5,XIO6 and XCLK) that are connected directly with FPGA, can be changed using CR2 register.  

Signal XIO4

Value (CR2[3:0])XIO4
0001

MIO7

0010

SHA_IO

0011MAC_IO
1000uio_unidir
0110'Z'
0111Undefined
DefaultPHY_LED0

Signal XIO5

Value (CR2[7:4])XIO5Description
0001

MIO14

RX pin of UART0 (FPGA Zynq PS)
0010Undefined
0011RTC_INT
1000uio_unidir
0110'Z'
0111Undefined
DefaultPHY_LED1

Signal XIO6

Value (CR2[11:8])XIO6Description
0001

MIO15

TX pin of UART0 (FPGA Zynq PS)
0010Undefined
0011osc_clkThis pin is directly connected to on-chip oscillator signal. (24.18MHZ)
1000uio_unidir
0110'Z'
0111INTRINTR signal can be depending on CR3 register value connected to one of the following interrupt signals: INT1, INT2, RTC_INT, PHY_LED2
DefaultPHY_LED2

Signal XCLK

Value (CR2[15:12])XCLKDescription
0001RTC_INT
0010osc_clkThis pin is directly connected to on-chip oscillator signal. (24.18MHZ)
0011Undefined
1000Undefined
0110Undefined
0111Undefined
DefaultCLK_125MHZThis pin is connected to output clock pin of ethernet transceiver chip.

Signal SHA_IO

Value XIO4[3:0]Value XIO5SHA_IO
0010'0''0'
else'Z'

Signal MAC_IO

Value XIO4[3:0]MAC_IO
0011'0'
elseConnected to internal MAC read block

Signals MIO14 and MIO15

Value (CR2[7:4])MIO14Value (CR2[11:8])MIO15Description
1001XIO5_in1001XIO6_inXIO5_in and XIO6_in are equal to XIO5 and XIO6 respectively if VCCIO34 voltage equal to 1.8V.
else'Z'else'Z'

Status register bits mapping:

SR1Description
0

INT1

1INT2
2RTC_INT
3PHY_LED2
7BOOTMODE_LATCHED
8BOOTMODE_IN2
9BOOTMODE_IN
10NOSEQ
11NOSEQ_LATCHED
12WD_EVENT
13PG_1V5
14EXTRA_ENABLED or WDOG_ENABLED
15mac_valid

The subsystem I2C to GPIO port mapping is according the following table:

I2C to GPIOPin nameCPLD PinDirectionFPGA PinDescription
sda_in (SDA)X7M1from FPGAN22
sda_outX5J1to FPGAP22If X7 is High. If X7 is Low, this pin will be disconnected.
sclk (SCL)X1F1from FPGAL16
GPIO_input

Mapping the GPIO_input bits to various ports or signals

GPIO_outputNot used

GPIO input bit mapping:

GPIO_input bitConnected to:
0

PHY_LED0

1PHY_LED1
2MIO7
3NOSEQ
4RESIN_g
5EN1_g
6BOOTMODE_LATCHED
7BOOTMODE_IN
8INT1
9INT2
10RTC_INT
11PHY_LED2
12'0'
13'0'

UNI/O MAC read core IO data mapping:

Value (uio_sm_cnt[8:5])uio_io_data
0000

MIO7

0001RTC_INT
0010INT1
0100INT2
0011PHY_LED0
0100PHY_LED1
0101PHY_LED2
0110BOOTMODE_IN
0111MIO14
1000MIO15
1001XIO4
1010XIO5
1011XIO6
1100WD_HIT
1101'0'
1110'0'

Multiplexing uio data output between uio-id and uio-io:

Value (uio_sm_cnt[2:1])Value (uio_sm_cnt(4))uio_unidir
01-'0'
10'0'

uio_id_data

10'1'uio_io_data 

Pins / Functions default map

At power up the System Management Controller starts with the following default settings:

Pin/FunctionUsed as / Mapped toNotes
ETH PHY LED0XIO to FPGA
ETH PHY LED1XIO to FPGA
ETH PHY LED2XIO to FPGA
ETH PHY CONFIGTied logic lowPHY Address set to 0
ETH CLK125MHzPass through FPGA B34 SRCC pin
ETH Clock EnableTied logic high
ETH PHY ResetInternal RESET
MIO7LED1
MEMS/RTC I2CXIO to FPGA
RTC Interrupt
MEMS Interrupt 1 
MEMS Interrupt 2-
eMMC ResetInternal RESET
USB PHY ResetInternal RESET
FPGA PUDCTied logic low 
FPGA PROG_BTied logic high
Zynq Cascaded JTAG Enabled (pulled low) 
Zynq boot mode SPI or SD, depending on bootmode pin 
Zynq SRSTTied logic high 
Zynq PORInternal POR/Reset
PLLNot used
LED2System Status LED
LED1MIO7
NOSEQ InputNOSEQ at power, LED out after boot
Power Good 1.5V

Power Good VTT

MODE Input

On-board LEDs

There are 3 on-board LEDs, with two of them connected to the System Management Controller and one to the Zynq PL (Done pin).

NameColorConnected to:Default mapping:
LED1GreenSCPL MIO[7]
LED2RedSCBoot Mode Blink (Fast → SPI, Slow→ SD Card)
LED3GreenZynq PLFPGA Done - Active Low
LED Status Codes
#LED1 GreenLED2 RedLED3 GreenStatusDescription
1OFFOFFONFatal power errorThis combination after power up is only possible in no sequencing compatibility mode were 3.3Vout is supplied externally. The 1.0V and 1.8V DC-DC supplies are forced on (NOSEQ=1), and the SC is not able to start (3.3Vin below 2.1V). This should never happen if the external power supplies are OK.
2OFFONOFFVIN missing (or EN1 low)3.3Vin is present, but the DC-DC supplies are not powered or 3.3Vin is below 3.05V. If the LEDs stay on in this state then 3.3Vout is not turned on, and the Zynq is kept in the POR state.
3OFF1/2 Blink Fast 4 HzONOKBoot mode selected is SPI Flash. This status remains after boot also if the LED settings are not changed and user is not controlling MIO7 and FPGA is not loaded.
4OFF1/2 Blink Slow 1 HzONOKBoot mode selected is SD Card. This status remains after boot also if the LED settings are not changed and user is not controlling MIO7 and FPGA is not loaded.
5MIO7 or user functionBlink or user functionOFFOKLED3 goes off when the FPGA is configured. NOTE: The FPGA design can control this LED too using STARTUPE2, so it may remain ON or be flashing when the FPGA is configured.
6ONSlow blink 0.5Hz, 1/8 on, 7/8 offOFFPowerdownEN1 input to the module is low. If sequencing is enabled in this mode, then all power supplies on the module are OFF.
7ONSlow blink 0.5Hz, 1/8 on, 7/8 offON
EN1 input to the module is low. Sequencing is disabled module is in reset state.
8ONONONResetPowered, RESIN input is active low or Bank B34 Supply Voltage is missing.
LED1 Green

This LED is mapped to MIO7 after power up. After the Zynq PS has booted it can change the mapping of this LED. If SC can not enable power to the Zynq then this LED will remain under SC control. It is available to the user only after the power supplies have stabilized and the POR reset to the Zynq is released. If watch dog timer is activated this LED will be assigned to the 7th bit of the counter of watch dog timer.

Value (CR1[3:0])LED1 (Green)
0001

PHY_LED0

0010

PHY_LED1

0011

PHY_LED2

0100

MIO7

0101

RTC_INT

0110

OFF

0111

ON

1000XIO4
1001Not MIO14
1010Not MIO14/Not MIO15
DefaultMIO7
LED1(Green)ConditionDescription
WD_counter(7)WDOG_ENABLED = '1'
ONPOR_B_i = '0'POR_B_i is '0' if one of the following signals is '0' --->   EN1 or RESIN or PG_ALL or PORDONE
Variableelse

Mapping depending on the CR1[3:0] value

LED2 Red

This LED is used to show various signal or port states. The function of this LED can be changed by CR1 register.

Value (CR1[7:4])LED2 (Red)
0001PHY_LED0
0010PHY_LED1
0011PHY_LED2
0100MIO7
0101RTC_INT
0110OFF
0111ON
1000XIO5
1001Not MIO15
1010Not MIO14/Not MIO15
Defaultmodeblink
LED2(Red)ConditionDescription
powerblinkEN1_g = '0'EN1_g is delayed EN1.
ONPOR_B_i = '0'
Variableelse

Mapping depending on the CR1[7:4] value

LED3 Green (FPGA Done)

This green LED is connected to the FPGA Done pin which has an active low state. As soon as the Zynq is powered and the 3.3V I/O voltage is enabled, this LED will illuminate. This indicates that the Zynq PL is not configured. Once the Zynq PL has been configured the LED will go off.

During normal operation when the Zynq PL has been configured, the LED can be controlled from the FPGA fabric. Control of the LED in a user design requires the use of Xilinx startup primitive rather than a normal I/O primitive. If the startup primitive is not used then the LED will go off after configuration and remain off irrespectively of the user design.

This LED can not be controlled by the SC. If green LED3 does not light up at least for short time at power then there is major problem with power supplies, FPGA core and aux voltages may be missing.

CR registers access methods

System Controller can be accessed as PHY with address 0x1A on the ETH0 Management bus (MIO pins 52, 53). PHY at address 0x00 is the ETH0 onboard ethernet PHY Marvell 88E1512. PHY at address 0x1A is the System Controller. OUI 0x7201 should be decoded as Model TE0720-01. Model 0x01 is Assembly option. Rev 0x00 is the firmware major revision for the System Controller (Rev 0 is the initial version). The CR registers have individual number to be accessed in FSBL code or Linux console. These numbers are defined in mdio_slave_interface sunsystem in CPLD VHDL code. The following tabel shows these numbers.

CR registerRegisterNum
CR15
CR26
CR37
CR412

The CR registers can be accessed in three methods. It can be used u-boot functions , FSBl code or phytool command in linnux console to access these registers.

U-boot functions

Communication between Zynq and CPLD chip in mdio bus can be established anytime when ETH0 and management interface are enabled also before FPGA PL Fabric is configured too. 
System Controller Firmware version and some other version info can be read with u-boot command mii info:

zynq-uboot> mii info
PHY 0x00: OUI = 0x5043, Model = 0x1D, Rev = 0x01, 100baseT, FDX
PHY 0x1A: OUI = 0x7201, Model = 0x01, Rev = 0x00,  10baseT, HDX
zynq-uboot>


Bit Decoding

Reg AddrBitsU-BOOT ENV VariableDescription
215:0boardupper bits of SoM Model
315:10boardlower bits of SoM Model
415:14boardFPGA Speed Grade (1, 2 or 3)
413:12boardFPGA Temperature Range (0=Commercial, 1=Extended, 2=Industrial, 3=Automotive)
411:8-Assembly Variant
47:0scverSC Firmware Revision Minor number

Customized u-boot reads and decodes the model and assembly variant information and stores in readable format in environment variables.

zynq-uboot> printenv board
board=TE0720-01-2IF
zynq-uboot>

FSBL code

It is possible to access the CR registers in FSBL code. The following functions are used to write or read these resgisters.

LONG XEmacPs_PhyWrite(XEmacPs *InstancePtr, u32 PhyAddress, u32 RegisterNum, u16 PhyData) → To write in CR registers
LONG XEmacPs_PhyRead(XEmacPs *InstancePtr, u32 PhyAddress, u32 RegisterNum, u16 *PhyDataPtr) → To read CR registers

For example to write 0x0077 in CR1 regiater the following instruction is used: 

 XEmacPs_PhyWrite(&Emac, 0x1A, 5, 0x0077);

Note that the CR register names are CR1, CR2 , CR3 and CR4. But these registers are named in FSBL code register5, register6, register7 and register12 subsequently.

CR registerRegisterNum
CR15
CR26
CR37
CR412

Linux console

It is possible to write and read in Linux console directly. To access the CR registers it must be added ethtool package , while linux image file is generated. To activate this option in Petalinux this package must be chosen in configuration of rootfs in petalinux. The path for this package is:   Filesystem packages/console/network/ethtool
If this package is installed , phytool command can be used to access the CR registers. Phytool command format is: 

  • Phytool read device/addr/register
  • Phytool write device/addr/register <value>

For example to write 0x0077 on the register CR1 can be written: phytool eth0/0x1A/5 0x0066


Reading MAC Address

With u-boot command mii read:

zynq-uboot> mii read 1a 9-b
addr=1a reg=09 data=0004
addr=1a reg=0a data=A3AC
addr=1a reg=0b data=3911
zynq-uboot>

This command will read MAC Address from the System Controller. Note: This only works if the ETH0 interface is enabled and if FSBL has enabled MII Management console on ETH0 Interface. 0004A3 is OUI part, AC3911 is the serialized part (lower bits of MAC address).

Customized u-boot does read MAC Address and stores it in environment variables as required, as a result, proper MAC address is used both in u-boot as also in Linux. Setting up MAC Address for Linux involves dynamic rewrite of FDT, this is done with u-boot script that starts Linux.



Appx. A: Change History and Legal Notices

Revision Changes

  • changes REV04 to REV05:
    •  0.05 watchdog
  • changes REV03 to REV04:
    • NA
  • changes REV02 to REV03:
    • NA
  • changes REV01 to REV02:
    • added deglicht for EN1 and RESIN inputs
    • added VCORE ON when 3.3 OK signalled

Document Change History

To get content of older revision  got to "Change History"  of this page and select older document revision number.

DateDocument RevisionCPLD Firmware RevisionSupported PCB RevisionAuthorsDescription

Error rendering macro 'page-info'

Ambiguous method overloading for method jdk.proxy244.$Proxy3589#hasContentLevelPermission. Cannot resolve which method to invoke for [null, class java.lang.String, class com.atlassian.confluence.pages.Page] due to overlapping prototypes between: [interface com.atlassian.confluence.user.ConfluenceUser, class java.lang.String, class com.atlassian.confluence.core.ContentEntityObject] [interface com.atlassian.user.User, class java.lang.String, class com.atlassian.confluence.core.ContentEntityObject]

Error rendering macro 'page-info'

Ambiguous method overloading for method jdk.proxy244.$Proxy3589#hasContentLevelPermission. Cannot resolve which method to invoke for [null, class java.lang.String, class com.atlassian.confluence.pages.Page] due to overlapping prototypes between: [interface com.atlassian.confluence.user.ConfluenceUser, class java.lang.String, class com.atlassian.confluence.core.ContentEntityObject] [interface com.atlassian.user.User, class java.lang.String, class com.atlassian.confluence.core.ContentEntityObject]



Error rendering macro 'page-info'

Ambiguous method overloading for method jdk.proxy244.$Proxy3589#hasContentLevelPermission. Cannot resolve which method to invoke for [null, class java.lang.String, class com.atlassian.confluence.pages.Page] due to overlapping prototypes between: [interface com.atlassian.confluence.user.ConfluenceUser, class java.lang.String, class com.atlassian.confluence.core.ContentEntityObject] [interface com.atlassian.user.User, class java.lang.String, class com.atlassian.confluence.core.ContentEntityObject]


Work in progress
2017-06-07

Error rendering macro 'page-info'

Ambiguous method overloading for method jdk.proxy244.$Proxy3589#hasContentLevelPermission. Cannot resolve which method to invoke for [null, class java.lang.String, class com.atlassian.confluence.pages.Page] due to overlapping prototypes between: [interface com.atlassian.confluence.user.ConfluenceUser, class java.lang.String, class com.atlassian.confluence.core.ContentEntityObject] [interface com.atlassian.user.User, class java.lang.String, class com.atlassian.confluence.core.ContentEntityObject]


Initial release

All

Error rendering macro 'page-info'

Ambiguous method overloading for method jdk.proxy244.$Proxy3589#hasContentLevelPermission. Cannot resolve which method to invoke for [null, class java.lang.String, class com.atlassian.confluence.pages.Page] due to overlapping prototypes between: [interface com.atlassian.confluence.user.ConfluenceUser, class java.lang.String, class com.atlassian.confluence.core.ContentEntityObject] [interface com.atlassian.user.User, class java.lang.String, class com.atlassian.confluence.core.ContentEntityObject]


Legal Notices

Data Privacy

Please also note our data protection declaration at https://www.trenz-electronic.de/en/Data-protection-Privacy

Document Warranty

The material contained in this document is provided “as is” and is subject to being changed at any time without notice. Trenz Electronic does not warrant the accuracy and completeness of the materials in this document. Further, to the maximum extent permitted by applicable law, Trenz Electronic disclaims all warranties, either express or implied, with regard to this document and any information contained herein, including but not limited to the implied warranties of merchantability, fitness for a particular purpose or non infringement of intellectual property. Trenz Electronic shall not be liable for errors or for incidental or consequential damages in connection with the furnishing, use, or performance of this document or of any information contained herein.

Limitation of Liability

In no event will Trenz Electronic, its suppliers, or other third parties mentioned in this document be liable for any damages whatsoever (including, without limitation, those resulting from lost profits, lost data or business interruption) arising out of the use, inability to use, or the results of use of this document, any documents linked to this document, or the materials or information contained at any or all such documents. If your use of the materials or information from this document results in the need for servicing, repair or correction of equipment or data, you assume all costs thereof.

Copyright Notice

No part of this manual may be reproduced in any form or by any means (including electronic storage and retrieval or translation into a foreign language) without prior agreement and written consent from Trenz Electronic.

Technology Licenses

The hardware / firmware / software described in this document are furnished under a license and may be used /modified / copied only in accordance with the terms of such license.

Environmental Protection

To confront directly with the responsibility toward the environment, the global community and eventually also oneself. Such a resolution should be integral part not only of everybody's life. Also enterprises shall be conscious of their social responsibility and contribute to the preservation of our common living space. That is why Trenz Electronic invests in the protection of our Environment.

REACH, RoHS and WEEE

REACH

Trenz Electronic is a manufacturer and a distributor of electronic products. It is therefore a so called downstream user in the sense of REACH. The products we supply to you are solely non-chemical products (goods). Moreover and under normal and reasonably foreseeable circumstances of application, the goods supplied to you shall not release any substance. For that, Trenz Electronic is obliged to neither register nor to provide safety data sheet. According to present knowledge and to best of our knowledge, no SVHC (Substances of Very High Concern) on the Candidate List are contained in our products. Furthermore, we will immediately and unsolicited inform our customers in compliance with REACH - Article 33 if any substance present in our goods (above a concentration of 0,1 % weight by weight) will be classified as SVHC by the European Chemicals Agency (ECHA).

RoHS

Trenz Electronic GmbH herewith declares that all its products are developed, manufactured and distributed RoHS compliant.

WEEE

Information for users within the European Union in accordance with Directive 2002/96/EC of the European Parliament and of the Council of 27 January 2003 on waste electrical and electronic equipment (WEEE).

Users of electrical and electronic equipment in private households are required not to dispose of waste electrical and electronic equipment as unsorted municipal waste and to collect such waste electrical and electronic equipment separately. By the 13 August 2005, Member States shall have ensured that systems are set up allowing final holders and distributors to return waste electrical and electronic equipment at least free of charge. Member States shall ensure the availability and accessibility of the necessary collection facilities. Separate collection is the precondition to ensure specific treatment and recycling of waste electrical and electronic equipment and is necessary to achieve the chosen level of protection of human health and the environment in the European Union. Consumers have to actively contribute to the success of such collection and the return of waste electrical and electronic equipment. Presence of hazardous substances in electrical and electronic equipment results in potential effects on the environment and human health. The symbol consisting of the crossed-out wheeled bin indicates separate collection for waste electrical and electronic equipment.

Trenz Electronic is registered under WEEE-Reg.-Nr. DE97922676.


Error rendering macro 'page-info'

Ambiguous method overloading for method jdk.proxy244.$Proxy3589#hasContentLevelPermission. Cannot resolve which method to invoke for [null, class java.lang.String, class com.atlassian.confluence.pages.Page] due to overlapping prototypes between: [interface com.atlassian.confluence.user.ConfluenceUser, class java.lang.String, class com.atlassian.confluence.core.ContentEntityObject] [interface com.atlassian.user.User, class java.lang.String, class com.atlassian.confluence.core.ContentEntityObject]


Table of contents

  • No labels