Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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 0xE5  0xA5  → WDT enable

if 0xA5 0xE5 → Extra enable


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

...

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

...

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
Description
01
01
-'0'
10'0'

uio

_io

_

data / uio_

id_data

10'1'
If
uio_
sm_cnt(4) Low --→  uio_id_data
io_data 

On-board 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).

...

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.

Functional Description

JTAG

...

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

Power

...

SC Firmware ver 0.05

This is the initial version of the System Controller with only a very limited function set implemented.

System Controller can be accessed as PHY with address 0x1A on the ETH0 Management bus (MIO pins 52, 53). Communication can be established anytime when ETH0 and management interface are enabled also before FPGA PL Fabric is configured. Version check!

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>

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).

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>

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

...