u-boot-brain/doc
Nishanth Menon ddf56bc7e3 drivers: Introduce a simplified remoteproc framework
Many System on Chip(SoC) solutions are complex with multiple processors
on the same die dedicated to either general purpose of specialized
functions. Many examples do exist in today's SoCs from various vendors.
Typical examples are micro controllers such as an ARM M3/M0 doing a
offload of specific function such as event integration or power
management or controlling camera etc.

Traditionally, the responsibility of loading up such a processor with a
firmware and communication has been with a High Level Operating
System(HLOS) such as Linux. However, there exists classes of products
where Linux would need to expect services from such a processor or the
delay of Linux and operating system being able to load up such a
firmware is unacceptable.

To address these needs, we need some minimal capability to load such a
system and ensure it is started prior to an Operating System(Linux or
any other) is started up.

NOTE: This is NOT meant to be a solve-all solution, instead, it tries to
address certain class of SoCs and products that need such a solution.

A very simple model is introduced here as part of the initial support
that supports microcontrollers with internal memory (no MMU, no
execution from external memory, or specific image format needs). This
basic framework can then (hopefully) be extensible to other complex SoC
processor support as need be.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Nishanth Menon <nm@ti.com>
Acked-by: Simon Glass <sjg@chromium.org>
2015-10-22 14:18:38 -04:00
..
device-tree-bindings drivers: Introduce a simplified remoteproc framework 2015-10-22 14:18:38 -04:00
DocBook
driver-model drivers: Introduce a simplified remoteproc framework 2015-10-22 14:18:38 -04:00
SPI
SPL
uImage.FIT mkimage will now report information about loadable 2015-05-28 08:18:20 -04:00
feature-removal-schedule.txt
git-mailrc git-mailrc: add Alexey as ARC maintainer 2015-09-11 14:05:33 -04:00
I2C_Edge_Conditions
kwboot.1
mkimage.1
README.440-DDR-performance
README.ag101p NDS32: Generic Board Support and Unsupport 2015-08-28 11:46:35 -04:00
README.AMCC-eval-boards-cleanup
README.android-fastboot usb: CONFIG_USB_FASTBOOT prefix replacement for consistency 2015-07-22 08:57:54 +02:00
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 autoboot.c: Remove CONFIG_AUTOBOOT_STOP_STR2 and CONFIG_AUTOBOOT_DELAY_STR2 2015-06-08 10:45:11 -04:00
README.AVR32
README.AVR32-port-muxing
README.b4860qds powerpc/b4860qds: Update README for DIP switch information 2015-07-28 14:41:15 -07:00
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.dfutftp doc: dfu: tftp: README entry for TFTP extension of DFU 2015-09-07 13:41:04 +02:00
README.displaying-bmps
README.distro README.distro: fix typos 2015-07-08 18:26:41 -04:00
README.dns
README.drivers.eth net: cosmetic: Fix var naming net <-> eth drivers 2015-04-18 11:11:33 -06:00
README.efi efi: Update README.efi to clarify build and test instructions 2015-08-26 07:54:09 -07: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
README.falcon
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 imx: fec: add MAC reading from eFuses to README 2015-09-02 15:34:11 +02:00
README.fsl_iim
README.fsl-ddr
README.fsl-dpaa
README.fsl-esdhc mmc: fsl_esdhc: Add adapter card type identification support 2015-05-04 09:25:19 -07:00
README.fsl-hwconfig
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.fuse
README.generic_usb_ohci
README.generic-board doc/README.generic-board: Trivial spell check 2015-05-27 13:35:55 -04: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
README.i2c i2c: Add a mux for GPIO-based I2C bus arbitration 2015-08-05 21:06:10 -06:00
README.idma2intr
README.imx5 imx: fec: add MAC reading from eFuses to README 2015-09-02 15:34:11 +02:00
README.imx6
README.imx25
README.imx27
README.imx31
README.imximage
README.iomux
README.JFFS2
README.JFFS2_NAND
README.kconfig kconfig: switch to single .config configuration 2015-02-24 17:06:23 -05:00
README.kwbimage
README.LED
README.LED_display
README.link-local net: cosmetic: Fix checkpatch.pl failures in net.c 2015-04-18 11:11:35 -06:00
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 Fix mxc_hab documenation 2015-05-15 19:20:46 +02:00
README.mxc_ocotp
README.mxs
README.mxsimage ARM: mxs: tools: Add support for boot progress display flag 2014-11-20 10:13:45 +01:00
README.N1213
README.nand mtd: vf610_nfc: add Freescale NFC controller configs to Kconfig 2015-05-24 14:27:28 -05:00
README.nand-boot-ppc440
README.NDS32
README.ne2000
README.NetConsole
README.nokia_rx51
README.odroid
README.OFT
README.omap3 arm: Remove omap3_mvblx board 2015-09-11 14:56:51 -04:00
README.omap-reset-time
README.omap-ulpi-viewport
README.pblimage
README.plan9
README.POST
README.power-framework
README.ppc440
README.pxe doc: document the fdtdir PXE command 2015-09-03 16:59:07 -04:00
README.qemu-mips
README.ramboot-ppc85xx
README.rmobile
README.rockchip rockchip: Put README image creation commands on one line 2015-09-02 21:28:25 -06:00
README.s5pc1xx
README.sata
README.sched
README.scrapyard doc/README.scrapyard: Add more entries 2015-10-19 13:32:09 -04:00
README.semihosting armv8: semihosting: add a command to load semihosted images 2015-03-28 12:07:45 -04:00
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 Export redesign 2015-01-29 17:09:57 -07:00
README.t1040-l2switch
README.TPL
README.trace
README.ubi
README.ublimage
README.unaligned-memory-access.txt
README.uniphier ARM: uniphier: fix address mapping in README.uniphier 2015-10-15 08:42:30 -04:00
README.update doc: dfu: tftp: README entry for TFTP extension of DFU 2015-09-07 13:41:04 +02:00
README.usb
README.vf610
README.video sunxi: display: Add overscan correction 2015-08-14 08:37:36 +02:00
README.VLAN
README.VSC3316-3308
README.vxworks doc: Complement document about booting VxWorks 2015-10-21 07:46:26 -06:00
README.watchdog arm: Remove vision2 board 2015-09-11 16:05:03 -04:00
README.x86 x86: Enable mrc cache for bayleybay and minnowmax 2015-10-21 07:46:27 -06:00
README.zfs
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