u-boot/doc
Simon Glass b725dc458f i2c: Add a mux for GPIO-based I2C bus arbitration
While I2C supports multi-master buses this is difficult to get right.
The implementation on the master side in software is quite complex.
Clock-stretching and the arbitrary time that an I2C transaction can take
make it difficult to share the bus fairly in the face of high traffic.
When one or more masters can be reset independently part-way through a
transaction it is hard to know the state of the bus.

This driver provides a scheme based on two 'claim' GPIOs, one driven by the
AP (Application Processor, meaning the main CPU) and one driven by the EC
(Embedded Controller, a small CPU aimed at handling system tasks). With
these they can communicate and reliably share the bus. This scheme has
minimal overhead and involves very little code. It is used on snow to
permit the EC and the AP to share access to the main system PMIC and
battery. The scheme can survive reboots by either side without difficulty.
This scheme has been tested in the field with millions of devices.

Since U-Boot runs on the AP, the terminology used is 'our' claim GPIO,
meaning the AP's, and 'their' claim GPIO, meaning the EC's. This terminology
is used by the device tree bindings in Linux also.

Signed-off-by: Simon Glass <sjg@chromium.org>
2015-08-05 21:06:10 -06:00
..
device-tree-bindings dm: i2c: Add support for multiplexed I2C buses 2015-08-05 21:06:10 -06:00
DocBook kbuild: docbook: sync with Linux Kernel v3.15-rc1 2014-04-18 11:43:36 -04:00
driver-model doc: dm: Update pci-info.txt for pci support 2015-08-05 08:42:38 -06:00
SPI spi: altera: Add short note about EPCS/EPCQx1 2014-10-27 22:37:03 +05:30
SPL Fix references to the documentation files 2013-05-10 08:16:33 -04:00
uImage.FIT mkimage will now report information about loadable 2015-05-28 08:18:20 -04:00
feature-removal-schedule.txt Change Andy Fleming's email address 2014-08-06 09:12:30 -04:00
git-mailrc MAINTAINERS, git-mailrc: Update Jagan's name and e-mail 2015-05-16 07:34:26 -04:00
I2C_Edge_Conditions rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
kwboot.1 Change e-mail address of Luka Perkov 2012-12-07 08:47:52 -07:00
mkimage.1 Fix cosmetic issues in mkimage manpage 2014-11-04 15:02:08 -05:00
README.440-DDR-performance PPC440 DDR setup: Set SDRAM0_CFG0[PMU]=0 for best performance 2006-07-28 18:34:58 +02:00
README.ag102 board/adp-ag102: add configuration of adp-ag102 2012-04-22 16:58:23 +08:00
README.AMCC-eval-boards-cleanup Major cleanup for AMCC PPC4xx eval boards. 2005-08-01 16:49:12 +02:00
README.android-fastboot usb: CONFIG_USB_FASTBOOT prefix replacement for consistency 2015-07-22 08:57:54 +02:00
README.android-fastboot-protocol usb/gadget: add the fastboot gadget 2014-05-08 10:38:30 +02:00
README.ARC arc: add README for architecture 2014-02-07 08:14:34 -05:00
README.arm-caches doc: ARM: Use the right function name 2015-01-14 11:37:39 -05:00
README.ARM-memory-map Rename TEXT_BASE into CONFIG_SYS_TEXT_BASE 2010-10-18 22:07:10 +02:00
README.arm-relocation nand: mxc: Switch NAND SPL to generic SPL 2013-04-12 07:55:07 +02:00
README.arm64 arm64: core support 2014-01-09 16:08:44 +01:00
README.at91 ARM: at91: add NAND partition table and index 2013-05-21 11:54:21 +02:00
README.at91-soc at91: remove all occourances of CONFIG_AT91_LEGACY 2013-11-13 22:17:57 +01:00
README.atmel_mci ATMEL: remove old atmel_mci driver 2012-03-13 12:06:42 +01:00
README.atmel_pmecc arm:at91: enable ROM loadable atmel image 2014-05-27 00:10:49 +02:00
README.autoboot autoboot.c: Remove CONFIG_AUTOBOOT_STOP_STR2 and CONFIG_AUTOBOOT_DELAY_STR2 2015-06-08 10:45:11 -04:00
README.AVR32 avr32: Update README 2008-09-01 13:41:58 +02:00
README.AVR32-port-muxing doc: Fix some typos in different files 2012-03-27 13:31:37 +02:00
README.b4860qds powerpc/b4860qds: Update README for DIP switch information 2015-07-28 14:41:15 -07:00
README.bedbug Move arch/ppc to arch/powerpc 2010-04-21 23:42:38 +02:00
README.bitbangMII Coding Style cleanup; update CHANGELOG, prepare -rc1 2009-10-28 00:49:47 +01:00
README.blackfin add some more Blackfin docs 2008-02-04 19:26:54 -05:00
README.bootmenu Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
README.bus_vcxk Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
README.cfi board/ti/am335x: add support for beaglebone NOR Cape 2014-08-25 10:47:56 -04:00
README.clang ARM: rpi: rename rpi_b to rpi 2014-12-08 09:35:42 -05:00
README.commands kbuild: rename TOPDIR to stctree 2014-03-12 17:04:55 -04:00
README.commands.itest * Patch by Laurent Mohin, 10 Feb 2004: 2004-02-23 20:48:38 +00:00
README.commands.spl Add cmd_spl command 2012-03-27 22:05:28 +02:00
README.console powerpc: remove genietv board support 2014-04-18 10:42:29 -04:00
README.davinci arm, da850evm: Add an SPL for SPI boot 2011-12-24 10:23:30 +01:00
README.davinci.nand_spl arm, davinci: add cam_enc_4xx support 2011-11-03 22:56:25 +01:00
README.displaying-bmps lcd: implement a callback for splashimage 2013-03-11 11:06:09 -04:00
README.distro README.distro: fix typos 2015-07-08 18:26:41 -04:00
README.dns Coding Style cleanup; update CHANGELOG. 2009-07-23 22:23:23 +02:00
README.drivers.eth net: cosmetic: Fix var naming net <-> eth drivers 2015-04-18 11:11:33 -06:00
README.efi efi: Add a README to explain how things work 2015-08-05 08:44:08 -06:00
README.enetaddr net: Remove all references to CONFIG_ETHADDR and friends 2015-05-19 13:33:21 -05:00
README.esbc_validate SECURE BOOT: Add command for validation of images 2015-03-05 12:04:59 -08:00
README.ext4 Coding Style cleanup: replace leading SPACEs by TABs 2013-10-14 16:06:54 -04:00
README.falcon doc/README.falcon: Clarify steps slightly. 2014-07-07 19:42:34 -04:00
README.fdt-control x86: video: Allow keyboard presence to be controlled by device tree 2015-04-16 19:27:40 -06:00
README.fec_mxc doc/README.fec_mxc: add documentation 2013-01-28 06:57:49 +01:00
README.fsl-ddr README.fsl-ddr typos and update to reflect hotkey 2013-01-30 11:25:13 -06:00
README.fsl-dpaa net/fman: update 10GEC to fit new SoC 2014-12-05 08:06:15 -08:00
README.fsl-esdhc mmc: fsl_esdhc: Add adapter card type identification support 2015-05-04 09:25:19 -07:00
README.fsl-hwconfig powerpc/85xx: Specify hwconfig usage for USB controller 2011-07-11 13:24:20 -05:00
README.fsl-trustzone-components fsl-ch3/lowlevel: TZPC and TZASC programming to configure non-secure accesses 2015-02-24 13:08:06 -08:00
README.fsl_iim Add fsl_iim driver 2013-04-28 11:07:41 +02:00
README.fuse Add fuse API and commands 2013-04-28 11:07:40 +02:00
README.generic-board doc/README.generic-board: Trivial spell check 2015-05-27 13:35:55 -04:00
README.generic_usb_ohci rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
README.gpt gpt: support random UUIDs without setting environment variables 2015-03-05 11:17:53 -05:00
README.Heterogeneous-SoCs powerpc/mpc85xx: Add DSP side awareness for Freescale Heterogeneous SoCs 2015-03-04 10:15:29 -08:00
README.hwconfig Cosmetic: Fix a number of typos, no functional changes. 2013-09-20 10:30:54 -04:00
README.i2c i2c: Add a mux for GPIO-based I2C bus arbitration 2015-08-05 21:06:10 -06:00
README.idma2intr * Patch by Arun Dharankar, 4 Apr 2003: 2003-04-05 00:53:31 +00:00
README.imx5 imx: Document fuse assignments for MAC addresses 2013-04-28 11:07:44 +02:00
README.imx6 doc: README.fuse: Add an example on how to use the fuse API on mx6q 2014-01-02 17:16:50 +01:00
README.imx25 imx: Document fuse assignments for MAC addresses 2013-04-28 11:07:44 +02:00
README.imx27 imx: Document fuse assignments for MAC addresses 2013-04-28 11:07:44 +02:00
README.imx31 move README.imx31 to doc/ and merge with README.mx31 2008-10-08 18:59:04 +02:00
README.imximage README.imximage: Fix the maximum DCD size 2014-09-11 10:14:04 +02:00
README.iomux Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
README.JFFS2 rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
README.JFFS2_NAND doc: Fix a typo in the description in doc/README.JFFS2_NAND 2013-10-07 08:21:13 -04:00
README.kconfig kconfig: switch to single .config configuration 2015-02-24 17:06:23 -05:00
README.kwbimage doc: fix documentation of out-of-tree build 2014-11-07 16:27:07 -05:00
README.LED Move lib_$ARCH directories to arch/$ARCH/lib 2010-04-13 09:13:03 +02:00
README.LED_display led_display: remove unused DISPLAY_MARK define 2010-10-21 22:25:04 +02:00
README.link-local net: cosmetic: Fix checkpatch.pl failures in net.c 2015-04-18 11:11:35 -06:00
README.lynxkdi rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
README.m68k cleanup: Fix typos and misspellings in various files. 2011-07-28 21:27:36 +02:00
README.m54418twr ColdFire: Add Freescale MCF54418TWR ColdFire development board support 2012-10-24 22:27:46 +08:00
README.malta malta: correct tcl script path in README.malta 2014-03-04 23:41:54 +01:00
README.marubun-pcmcia rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
README.memory-test Feature Removal: disable "mtest" command by default 2013-03-11 15:26:59 -04:00
README.menu Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
README.mips MIPS: remove obsolete TODO items 2013-07-24 09:51:05 -04:00
README.Modem * Code cleanup: 2003-06-27 21:31:46 +00:00
README.mpc5xx Move arch/ppc to arch/powerpc 2010-04-21 23:42:38 +02:00
README.mpc74xx Initial revision 2002-11-02 23:30:20 +00:00
README.mpc83xx.ddrecc mpc83xx: Correct the README for DDR ECC 2007-08-10 01:13:11 -05:00
README.mpc83xxads Add support for ep8248 board 2005-08-06 01:42:58 +02:00
README.mpc85xx spl/85xx: new SPL support 2012-11-26 15:41:25 -06:00
README.mpc85xx-sd-spi-boot powerpc: mpc85xx: Support booting from SD Card with SPL 2013-08-20 09:47:26 -07:00
README.mpc85xx-spin-table powerpc/mpc85xx: Rewrite spin table to comply with ePAPR v1.1 2012-10-22 14:31:32 -05:00
README.mpc85xxads doc: Fix some typos in different files 2012-03-27 13:31:37 +02:00
README.mpc85xxcds * Patch by Jon Loeliger, 2005-05-05 2005-07-25 14:05:07 -05:00
README.MPC866 rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
README.mxc_hab Fix mxc_hab documenation 2015-05-15 19:20:46 +02:00
README.mxc_ocotp arm: vf610: Add Vybrid VF610 to mxc_ocotp document 2013-06-03 10:56:54 +02:00
README.mxs mx28evk: Add documentation on how to boot from SPI NOR 2014-06-17 16:39:10 +02:00
README.mxsimage ARM: mxs: tools: Add support for boot progress display flag 2014-11-20 10:13:45 +01:00
README.N1213 doc/README: documents and readme for NDS32 arch 2011-10-22 00:54:45 +02:00
README.nand mtd: vf610_nfc: add Freescale NFC controller configs to Kconfig 2015-05-24 14:27:28 -05:00
README.nand-boot-ppc440 Fix some typos 2008-05-09 20:53:52 +02:00
README.NDS32 doc/README: documents and readme for NDS32 arch 2011-10-22 00:54:45 +02:00
README.ne2000 * Patches by Richard Woodruff, 01 Oct 2004: 2005-01-09 23:16:25 +00:00
README.NetConsole net: Make the netconsole buffer size configurable 2012-09-24 13:55:43 -05:00
README.nokia_rx51 Coding Style cleanup: replace leading SPACEs by TABs 2013-10-14 16:06:54 -04:00
README.odroid Odroid-XU3: Add documentation for Odroid-XU3 2014-12-22 20:37:10 +09:00
README.OFT Code cleanup, especially MIPS for GCC 4.x 2005-12-04 00:40:34 +01:00
README.omap-reset-time ARM: OMAP5: Fix warm reset with USB cable connected 2013-05-10 08:25:55 -04:00
README.omap-ulpi-viewport usb: ulpi: Add omap-ulpi-view port support 2012-02-12 10:11:30 +01:00
README.omap3 mtd: nand: omap: add CONFIG_NAND_OMAP_ECCSCHEME for selection of ecc-scheme 2013-11-21 13:33:41 -06:00
README.pblimage powerpc/tool/pbl: fix pbl image compiling process 2013-10-16 16:13:13 -07:00
README.plan9 cmd_bootm: Add command line arguments to Plan 9 2013-06-26 10:25:22 -04:00
README.POST post/i2c: Add ability to ignore I2C devices 2010-10-22 02:19:14 -05:00
README.power-framework doc:power:pmic: Add doc entry for PMIC(v2) framework 2014-04-18 10:42:30 -04:00
README.ppc440 Remove unused CONFIG_SERIAL_SOFTWARE_FIFO feature 2010-09-23 09:02:05 +02:00
README.pxe Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
README.qemu-mips Coding Style cleanup: drop some excessive empty lines 2013-10-14 16:06:54 -04:00
README.ramboot-ppc85xx Coding Style cleanup: replace leading SPACEs by TABs 2013-10-14 16:06:54 -04:00
README.rmobile arm: rmobile: Update README.rmobile 2013-12-18 16:35:45 +09:00
README.s5pc1xx s5pc1xx: update the README file 2010-04-03 15:24:26 -05:00
README.sata doc: english polishing for README.sata 2008-04-13 14:56:51 -07:00
README.sched * Patch by Arun Dharankar, 4 Apr 2003: 2003-04-05 00:53:31 +00:00
README.scrapyard README.scrapyard: add entries for dead AVR32 boards 2015-06-11 08:27:26 -04:00
README.semihosting armv8: semihosting: add a command to load semihosted images 2015-03-28 12:07:45 -04:00
README.serial_multi rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
README.sh sh: Add support Renesas Solutions R7780MP 2008-03-28 14:16:12 +09:00
README.sh7752evb sh: add support for sh7752evb board 2012-12-20 13:20:17 +09:00
README.sh7753evb sh: add support for sh7753evb board 2013-12-18 16:49:08 +09:00
README.sha1 rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
README.silent Allow u-boot to be silent without forcing Linux to be 2013-03-11 17:01:02 -04:00
README.SNTP doc: Fix some typos in different files 2012-03-27 13:31:37 +02:00
README.socfpga socfpga/dwmmc: Adding DesignWare MMC driver support for SOCFPGA 2014-01-09 11:53:55 +02:00
README.spear SPEAr: Add configuration options for spear3xx and spear6xx boards 2012-07-07 14:07:40 +02:00
README.SPL doc: Update documentation according to the EXT SPL support patch set 2014-10-27 17:54:08 -04:00
README.splashprepare common: convert compulab splash load code to common code 2015-01-29 17:44:08 +01:00
README.srio-pcie-boot-corenet powerpc/doc: Update the README.srio-pcie-boot-corenet 2013-06-20 17:08:47 -05:00
README.standalone Export redesign 2015-01-29 17:09:57 -07:00
README.switch_config arm,davinci: update for enbw_cmc board 2012-07-07 14:07:21 +02:00
README.t1040-l2switch net/vsc9953: Add driver for Vitesse VSC9953 L2 Switch IP 2015-01-16 09:32:38 -08:00
README.TPL kbuild: rename TOPDIR to stctree 2014-03-12 17:04:55 -04:00
README.trace Coding Style cleanup: replace leading SPACEs by TABs 2013-10-14 16:06:54 -04:00
README.ubi Coding Style cleanup: replace leading SPACEs by TABs 2013-10-14 16:06:54 -04:00
README.ublimage Minor coding style cleanup. 2011-09-11 21:24:09 +02:00
README.unaligned-memory-access.txt doc: Fix comparison operator 2014-10-27 11:04:00 -04:00
README.uniphier ARM: UniPhier: document reference support card 2015-07-23 23:42:37 +09:00
README.update add command fitupd to run an update from a FIT image 2011-07-26 16:58:48 +02:00
README.usb usb: net: update README.usb to list all USB ethernet options 2014-03-12 17:04:35 -04:00
README.vf610 arm: vf610: Add Vybrid VF610 CPU support 2013-06-03 10:56:53 +02:00
README.video sunxi: video: Add a hpd_delay parameter to configure hpd delay 2015-01-14 14:56:39 +01:00
README.VLAN Patches by Pantelis Antoniou, 30 Mar 2004: 2004-04-15 21:48:45 +00:00
README.VSC3316-3308 board/freescale/common: VSC3316/VSC3308 initialization code 2012-10-22 14:31:21 -05:00
README.vxworks README.vxworks: add a document describing the new VxWorks boot interface 2013-12-16 08:59:42 -05:00
README.watchdog blackfin: Move blackfin watchdog driver out of the blackfin arch folder. 2013-05-13 16:30:26 +08:00
README.x86 x86: Document how to write PIRQ information in the device tree 2015-08-05 10:49:32 -06:00
README.zfs Coding Style cleanup: replace leading SPACEs by TABs 2013-10-14 16:06:54 -04:00
README.zynq ARM: zynq: add separate configuration for ZC702 and ZC706 2015-05-25 10:52:35 +02:00

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

* 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

 ex. configure and build for zc702 board
   $ make zynq_zc702_config
   $ make

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