u-boot-brain/doc
Philipp Tomsich 403e9cbcd5 rockchip: rk3368: add DRAM controller driver with DRAM initialisation
This adds a DRAM controller driver for the RK3368 and places it in
drivers/ram/rockchip (where the other DM-enabled DRAM controller
drivers for rockchip devices should also be moved eventually).

At this stage, only the following feature-set is supported:
 - DDR3
 - 32-bit configuration (i.e. fully populated)
 - dual-rank (i.e. no auto-detection of ranks)
 - DDR3-1600K speed-bin

This driver expects to run from a TPL stage that will later return to
the RK3368 BROM.  It communicates with later stages through the
os_reg2 in the pmugrf (i.e. using the same mechanism as Rockchip's DDR
init code).

Unlike other DMC drivers for RK32xx and RK33xx parts, the required
timings are calculated within the driver based on a target frequency
and a DDR3 speed-bin (only the DDR3-1600K speed-bin is support at this
time).

The RK3368 also has the DDRC0_CON0 (DDR ch. 0, control-register 0)
register for controlling the operation of its (single-channel) DRAM
controller in the GRF block.  This provides for selecting DDR3, mobile
DDR modes, and control low-power operation.
As part of this change, DDRC0_CON0 is also added to the GRF structure
definition (at offset 0x600).

Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2017-08-13 17:12:33 +02:00
..
chromium rockchip: jerry: Add a .its file for chromium 2017-06-09 13:45:33 -06:00
device-tree-bindings rockchip: rk3368: add DRAM controller driver with DRAM initialisation 2017-08-13 17:12:33 +02:00
DocBook
driver-model dtoc: Support multiple compatible strings in a node 2017-07-11 10:08:19 -06:00
mvebu arm64: mvebu: Fix A8K memory mapping and add documentation 2016-12-21 09:52:35 +01:00
SPI Fix various typos, scattered over the code. 2016-05-05 21:39:26 -04:00
SPL doc: SPL: Add README for secure boot support 2016-07-21 11:11:29 -07:00
uImage.FIT FIT: List kernel_noload in the list of types 2017-07-26 11:29:15 -04:00
feature-removal-schedule.txt Various, unrelated tree-wide typo fixes. 2016-07-16 09:43:12 -04:00
git-mailrc avr32: Retire AVR32 for good 2017-07-06 16:17:19 -04:00
I2C_Edge_Conditions
kwboot.1 Fix spelling of "transferred". 2016-03-22 12:16:16 -04:00
mkimage.1 mkimage: Allow including a ramdisk in FIT auto mode 2016-11-06 07:33:42 -05:00
README.440-DDR-performance Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
README.ag101p
README.AMCC-eval-boards-cleanup
README.android-fastboot disk: part: refactor generic name creation for DOS and ISO 2016-10-01 20:04:56 -04:00
README.android-fastboot-protocol
README.ARC
README.arm64 doc: update README.arm64 2016-11-05 07:27:44 -04:00
README.arm-caches
README.ARM-memory-map
README.arm-relocation
README.armada-secureboot arm: mvebu: Implement secure boot 2017-02-01 09:04:18 +01:00
README.at91
README.atmel_mci avr32: Retire AVR32 for good 2017-07-06 16:17:19 -04:00
README.atmel_pmecc Change my mailaddress 2016-05-02 18:37:09 -04:00
README.autoboot autoboot: remove CONFIG_ZERO_BOOTDELAY_CHECK 2016-07-01 17:42:55 -04:00
README.b4860qds Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
README.bedbug
README.bitbangMII
README.blackfin
README.bootmenu
README.boston boston: Introduce support for the MIPS Boston development board 2016-09-21 16:24:36 +02:00
README.bus_vcxk
README.cfi doc/README.cfi: Update code snippet, and add example. 2017-01-02 11:14:01 -05:00
README.chromium README: Add instructions for chain-loading U-Boot on jerry 2017-06-09 13:45:34 -06:00
README.clang arm: clang: Update support slightly 2016-04-01 17:17:39 -04:00
README.commands
README.commands.itest
README.commands.spl Fix various typos, scattered over the code. 2016-05-05 21:39:26 -04:00
README.console
README.davinci
README.davinci.nand_spl
README.dfutftp
README.displaying-bmps
README.distro Kconfig: Add a new DISTRO_DEFAULTS Kconfig option 2016-06-20 21:30:13 -04:00
README.dns
README.drivers.eth
README.efi efi: Add support for a hello world test program 2016-11-14 23:24:03 +01:00
README.enetaddr
README.esbc_validate
README.ext4 doc: Updated README.ext4 2016-04-18 17:11:47 -04:00
README.falcon
README.fdt-control Allow boards to initialize the DT at runtime. 2017-05-09 20:35:06 -04:00
README.fec_mxc driver/net/fec: support fixed speed connection 2016-07-12 17:58:48 +02:00
README.fsl_iim
README.fsl-clk doc: restore doc/README.fsl-clk 2017-06-29 21:30:16 -04:00
README.fsl-ddr driver/ddr/fsl: Add address parity support for DDR4 UDIMM/discrete 2016-03-21 12:42:13 -07:00
README.fsl-dpaa
README.fsl-esdhc mmc: fsl_esdhc: drop CONFIG_SYS_FSL_ESDHC_FORCE_VSELECT 2017-07-12 09:44:22 +02:00
README.fsl-hwconfig
README.fsl-trustzone-components
README.fuse
README.generic_usb_ohci powerpc, 5xxx, 512x: remove support for mpc5xxx and mpc512x 2017-06-16 10:14:55 -04:00
README.generic-board Remove/update old generic-board documentation and warning 2016-05-27 15:39:50 -04:00
README.gpt GPT: provide commands to selectively rename partitions 2017-08-04 20:35:27 -04:00
README.Heterogeneous-SoCs
README.hwconfig
README.i2c
README.imx5
README.imx6 Makefile: preserve output for images that can contain HAB Blocks 2017-01-02 17:07:39 +01:00
README.imx25
README.imx27
README.imximage imx: reorganize IMX code as other SOCs 2017-07-12 10:17:44 +02:00
README.iomux
README.JFFS2 fs: Kconfig: Add a separate option for FS_JFFS2 2017-05-22 12:45:31 -04:00
README.JFFS2_NAND README: Drop unused JFFS2 options 2016-10-06 20:40:26 -04:00
README.kconfig treewide: fix "followings" to "following" 2016-08-26 17:04:58 -04:00
README.kwbimage
README.LED powerpc, 8xx: remove support for 8xx 2017-06-12 08:37:55 -04:00
README.LED_display
README.link-local
README.lynxkdi
README.m68k Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
README.m54418twr
README.malta Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
README.marubun-pcmcia Fix various typos, scattered over the code. 2016-05-05 21:39:26 -04:00
README.marvell arm64: mvebu: use single defconfig for Armada8K development boards 2017-07-12 06:57:55 +02:00
README.memory-test Feature Removal: disable "mtest" command by default 2013-03-11 15:26:59 -04:00
README.menu Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
README.mips
README.mpc74xx
README.mpc83xx.ddrecc
README.mpc83xxads README: Drop CONFIG_MPC8349ADS 2016-10-06 20:40:51 -04:00
README.mpc85xx board_f: Rename initdram() to dram_init() 2017-04-13 09:40:57 -04:00
README.mpc85xx-sd-spi-boot powerpc: P2010: Drop configuration for P2010 2016-11-23 23:42:10 -08:00
README.mpc85xx-spin-table Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
README.mpc85xxcds Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
README.mxc_hab README: mxc_hab: Adapt the CONFIG_SECURE_BOOT text to Kconfig 2017-01-27 10:34:14 +01:00
README.mxc_ocotp
README.mxs ARM: mxs: Rename M28EVK 2017-04-05 18:12:04 +02:00
README.mxsimage
README.N1213
README.nand README: Fix CONFIG_SYS_NAND_MAX_DEVICE typo 2016-10-06 20:40:54 -04:00
README.nand-boot-ppc440
README.NDS32
README.ne2000
README.NetConsole
README.nios2
README.nokia_rx51
README.odroid odroid: Update README with correct firmware link and XU4 support 2016-04-14 19:38:40 +09:00
README.OFT
README.omap3
README.omap-ulpi-viewport
README.pblimage
README.plan9
README.POST Fix spelling of "transferred". 2016-03-22 12:16:16 -04:00
README.power-framework
README.pxe pxe: Modify README to add the description about FIT image 2016-09-07 08:49:03 -04:00
README.qemu-mips Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
README.ramboot-ppc85xx powerpc: mpc85xx: Convert CONFIG_SYS_CCSRBAR_DEFAULT to Kconfig option 2016-12-02 08:52:34 -08:00
README.rmobile
README.rockchip rockchip: back-to-bootrom: split BACK_TO_BOOTROM for TPL/SPL 2017-08-13 17:12:19 +02:00
README.s5pc1xx
README.sata Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
README.sched
README.scrapyard avr32: Retire AVR32 for good 2017-07-06 16:17:19 -04:00
README.semihosting
README.serial_multi powerpc, 5xxx, 512x: remove support for mpc5xxx and mpc512x 2017-06-16 10:14:55 -04:00
README.sh
README.sh7752evb
README.sh7753evb
README.sha1 Drop references to MAKEALL in the documentation 2016-07-31 19:37:08 -06:00
README.silent
README.SNTP
README.socfpga ARM: socfpga: add fpga build and bsp handoff instructions to readme 2017-04-14 14:06:38 +02:00
README.spear
README.SPL
README.splashprepare splash: add support for loading splash from a FIT image 2017-01-13 17:40:38 +01:00
README.srio-pcie-boot-corenet
README.standalone
README.t1040-l2switch
README.ti-secure doc: Updates info on using Keystone2 secure devices 2017-04-08 21:35:06 -04:00
README.TPL
README.trace
README.ubi
README.ubispl spl: Lightweight UBI and UBI fastmap support 2016-07-22 09:53:00 -04:00
README.ublimage
README.unaligned-memory-access.txt
README.uniphier doc: uniphier: rework README.uniphier 2017-07-26 22:27:15 +09:00
README.update
README.usb powerpc: remove 4xx support 2017-07-03 17:35:28 -04:00
README.vf610
README.video Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
README.VLAN
README.VSC3316-3308
README.vxworks
README.watchdog
README.x86 x86: Add Intel Edison board files 2017-07-30 10:30:25 +08:00
README.xtensa xtensa: add support for the xtensa processor architecture [1/2] 2016-08-15 18:46:38 -04:00
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.

* 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