u-boot-brain/doc
..
device-tree-bindings
DocBook
driver-model
SPI
SPL
uImage.FIT
feature-removal-schedule.txt
git-mailrc
I2C_Edge_Conditions
kwboot.1
mkimage.1
README.440-DDR-performance
README.ag102
README.AMCC-eval-boards-cleanup
README.android-fastboot
README.android-fastboot-protocol
README.ARC
README.arm64
README.arm-caches
README.ARM-memory-map
README.arm-relocation
README.at91
README.at91-soc
README.atmel_mci
README.atmel_pmecc
README.autoboot
README.AVR32
README.AVR32-port-muxing
README.b4860qds
README.bedbug
README.bitbangMII
README.blackfin
README.bootmenu
README.bus_vcxk
README.cfi
README.clang
README.commands
README.commands.itest
README.commands.spl
README.console
README.davinci
README.davinci.nand_spl
README.displaying-bmps
README.distro
README.dns
README.drivers.eth
README.enetaddr
README.esbc_validate
README.ext4
README.falcon
README.fdt-control
README.fec_mxc
README.fsl_iim
README.fsl-ddr
README.fsl-dpaa
README.fsl-esdhc
README.fsl-hwconfig
README.fsl-trustzone-components
README.fuse
README.generic_usb_ohci
README.generic-board
README.gpt
README.Heterogeneous-SoCs
README.hwconfig
README.idma2intr
README.imx5
README.imx6
README.imx25
README.imx27
README.imx31
README.imximage
README.iomux
README.JFFS2
README.JFFS2_NAND
README.kconfig
README.kwbimage
README.LED
README.LED_display
README.link-local
README.lynxkdi
README.m68k
README.m54418twr
README.malta
README.marubun-pcmcia
README.memory-test
README.menu
README.mips
README.Modem
README.mpc5xx
README.mpc74xx
README.mpc83xx.ddrecc
README.mpc83xxads
README.mpc85xx
README.mpc85xx-sd-spi-boot
README.mpc85xx-spin-table
README.mpc85xxads
README.mpc85xxcds
README.MPC866
README.mxc_hab
README.mxc_ocotp
README.mxs
README.mxsimage
README.N1213
README.nand
README.nand-boot-ppc440
README.NDS32
README.ne2000
README.NetConsole
README.nokia_rx51
README.odroid
README.OFT
README.omap3
README.omap-reset-time
README.omap-ulpi-viewport
README.pblimage
README.plan9
README.POST
README.power-framework
README.ppc440
README.pxe
README.qemu-mips
README.ramboot-ppc85xx
README.rmobile
README.s5pc1xx
README.sata
README.sched
README.scrapyard
README.semihosting
README.serial_multi
README.sh
README.sh7752evb
README.sh7753evb
README.sha1
README.silent
README.SNTP
README.socfpga
README.spear
README.SPL
README.splashprepare
README.srio-pcie-boot-corenet
README.standalone
README.switch_config
README.t1040-l2switch
README.TPL
README.trace
README.ubi
README.ublimage
README.unaligned-memory-access.txt
README.uniphier
README.update
README.usb
README.vf610
README.video
README.VLAN
README.VSC3316-3308
README.vxworks
README.watchdog
README.x86
README.zfs
README.zynq

#
# Xilinx ZYNQ U-Boot
#
# (C) Copyright 2013 Xilinx, Inc.
#
# SPDX-License-Identifier:	GPL-2.0+
#

1. About this

This document describes the information about Xilinx Zynq U-Boot -
like supported boards, ML status and TODO list.

2. Zynq boards

Xilinx Zynq-7000 All Programmable SoCs enable extensive system level
differentiation, integration, and flexibility through hardware, software,
and I/O programmability.

* zc70x
  - zc702 (single qspi, gem0, mmc) [1]
  - zc706 (dual parallel qspi, gem0, mmc) [2]
* zed (single qspi, gem0, mmc) [3]
* microzed (single qspi, gem0, mmc) [4]
* zc770
  - zc770-xm010 (single qspi, gem0, mmc)
  - zc770-xm011 (8 or 16 bit nand)
  - zc770-xm012 (nor)
  - zc770-xm013 (dual parallel qspi, gem1)

3. Building

 # Configure for zc70x board
   $ make zynq_zc70x_config
     Configuring for zynq_zc70x board...

 # Building default dts for zc702 board
   $ make

 # Building specified dts for zc706 board
   $ make DEVICE_TREE=zynq-zc706

4. Bootmode

Zynq has a facility to read the bootmode from the slcr bootmode register
once user is setting through jumpers on the board - see page no:1546 on [5]

All possible bootmode values are defined in Table 6-2:Boot_Mode MIO Pins
on [5].

board_late_init() will read the bootmode values using slcr bootmode register
at runtime and assign the modeboot variable to specific bootmode string which
is intern used in autoboot.

SLCR bootmode register Bit[3:0] values
#define ZYNQ_BM_NOR		0x02
#define ZYNQ_BM_SD		0x05
#define ZYNQ_BM_JTAG		0x0

"modeboot" variable can assign any of "norboot", "sdboot" or "jtagboot"
bootmode strings at runtime.

5. Mainline status

- Added basic board configurations support.
- Added zynq u-boot bsp code - arch/arm/cpu/armv7/zynq
- Added zynq boards named - zc70x, zed, microzed, zc770_xm010, zc770_xm012, zc770_xm013
- Added zynq drivers:
  serial - drivers/serial/serial_zynq.c
  net - drivers/net/zynq_gem.c
  mmc - drivers/mmc/zynq_sdhci.c
  mmc - drivers/mmc/zynq_sdhci.c
  spi-  drivers/spi/zynq_spi.c
  i2c - drivers/i2c/zynq_i2c.c
- Done proper cleanups on board configurations
- Added basic FDT support for zynq boards
- d-cache support for zynq_gem.c

6. TODO

- Add zynq boards support - zc770_xm011
- Add zynq qspi controller driver
- Add zynq nand controller driver
- Add FDT support on individual drivers

[1] http://www.xilinx.com/products/boards-and-kits/EK-Z7-ZC702-G.htm
[2] http://www.xilinx.com/products/boards-and-kits/EK-Z7-ZC706-G.htm
[3] http://zedboard.org/product/zedboard
[4] http://zedboard.org/product/microzed
[5] http://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf

--
Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
Sun Dec 15 14:52:41 IST 2013