1
0
Fork 0
remarkable-uboot/doc
Masahiro Yamada e02ee2548a kconfig: switch to single .config configuration
When Kconfig for U-boot was examined, one of the biggest issues was
how to support multiple images (Normal, SPL, TPL).  There were
actually two options, "single .config" and "multiple .config".
After some discussions and thought experiments, I chose the latter,
i.e. to create ".config", "spl/.config", "tpl/.config" for Normal,
SPL, TPL, respectively.

It is true that the "multiple .config" strategy provided us the
maximum flexibility and helped to avoid duplicating CONFIGs among
Normal, SPL, TPL, but I have noticed some fatal problems:

[1] It is impossible to share CONFIG options across the images.
  If you change the configuration of Main image, you often have to
  adjust some SPL configurations correspondingly.  Currently, we
  cannot handle the dependencies between them.  It means one of the
  biggest advantages of Kconfig is lost.

[2] It is too painful to change both ".config" and "spl/.config".
  Sunxi guys started to work around this problem by creating a new
  configuration target.  Commit cbdd9a9737 (sunxi: kconfig: Add
  %_felconfig rule to enable FEL build of sunxi platforms.) added
  "make *_felconfig" to enable CONFIG_SPL_FEL on both images.
  Changing the configuration of multiple images in one command is a
  generic demand.  The current implementation cannot propose any
  good solution about this.

[3] Kconfig files are getting ugly and difficult to understand.
  Commit b724bd7d63 (dm: Kconfig: Move CONFIG_SYS_MALLOC_F_LEN to
  Kconfig) has sprinkled "if !SPL_BUILD" over the Kconfig files.

[4] The build system got more complicated than it should be.
  To adjust Linux-originated Kconfig to U-Boot, the helper script
  "scripts/multiconfig.sh" was introduced.  Writing a complicated
  text processor is a shell script sometimes caused problems.

Now I believe the "single .config" will serve us better.  With it,
all the problems above would go away.  Instead, we will have to add
some CONFIG_SPL_* (and CONFIG_TPL_*) options such as CONFIG_SPL_DM,
but we will not have much.  Anyway, this is what we do now in
scripts/Makefile.spl.

I admit my mistake with my apology and this commit switches to the
single .config configuration.

It is not so difficult to do that:

 - Remove unnecessary processings from scripts/multiconfig.sh
  This file will remain for a while to support the current defconfig
  format.  It will be removed after more cleanups are done.

 - Adjust some makefiles and Kconfigs

 - Add some entries to include/config_uncmd_spl.h and the new file
   scripts/Makefile.uncmd_spl.  Some CONFIG options that are not
   supported on SPL must be disabled because one .config is shared
   between SPL and U-Boot proper going forward.  I know this is not
   a beautiful solution and I think we can do better, but let's see
   how much we will have to describe them.

 - update doc/README.kconfig

More cleaning up patches will follow this.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2015-02-24 17:06:23 -05:00
..
DocBook kbuild: docbook: sync with Linux Kernel v3.15-rc1 2014-04-18 11:43:36 -04: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
device-tree-bindings Documentation: gpio: fix bindings document 2015-02-19 06:19:19 -07:00
driver-model dm: Expand and complete Kconfig in drivers/ 2015-02-12 10:35:33 -07:00
uImage.FIT doc: fix misspellings 2015-01-29 13:38:40 -05:00
I2C_Edge_Conditions rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02: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.AMCC-eval-boards-cleanup Major cleanup for AMCC PPC4xx eval boards. 2005-08-01 16:49:12 +02:00
README.ARC arc: add README for architecture 2014-02-07 08:14:34 -05:00
README.ARM-memory-map Rename TEXT_BASE into CONFIG_SYS_TEXT_BASE 2010-10-18 22:07:10 +02: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.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.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.MPC866 rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
README.Modem * Code cleanup: 2003-06-27 21:31:46 +00:00
README.N1213 doc/README: documents and readme for NDS32 arch 2011-10-22 00:54:45 +02:00
README.NDS32 doc/README: documents and readme for NDS32 arch 2011-10-22 00:54:45 +02:00
README.NetConsole net: Make the netconsole buffer size configurable 2012-09-24 13:55:43 -05:00
README.OFT Code cleanup, especially MIPS for GCC 4.x 2005-12-04 00:40:34 +01:00
README.POST post/i2c: Add ability to ignore I2C devices 2010-10-22 02:19:14 -05:00
README.SNTP doc: Fix some typos in different files 2012-03-27 13:31:37 +02:00
README.SPL doc: Update documentation according to the EXT SPL support patch set 2014-10-27 17:54:08 -04:00
README.TPL kbuild: rename TOPDIR to stctree 2014-03-12 17:04:55 -04: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.ag102 board/adp-ag102: add configuration of adp-ag102 2012-04-22 16:58:23 +08:00
README.android-fastboot usb/gadget: fastboot: add support for flash command 2014-09-24 18:30:27 -04:00
README.android-fastboot-protocol usb/gadget: add the fastboot gadget 2014-05-08 10:38:30 +02:00
README.arm-caches doc: ARM: Use the right function name 2015-01-14 11:37:39 -05: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: add an option to override keyed autoboot 2013-11-08 15:25:14 -05:00
README.b4860qds board/b4qds:Add support of 2 stage NAND boot-loader 2014-04-22 17:58:51 -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 add README.distro file 2015-01-30 09:19:16 -05:00
README.dns Coding Style cleanup; update CHANGELOG. 2009-07-23 22:23:23 +02:00
README.drivers.eth Program net device MAC addresses after initializing 2010-05-03 14:52:49 -07:00
README.enetaddr net: allow setting env enetaddr from net device setting 2012-07-11 13:15:32 -05: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 fdt: Rename the DEV_TREE_BIN Makefile flag to to EXT_DTB 2014-06-19 11:18:56 -04: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 esdhc: Add CONFIG_SYS_FSL_ESDHC_LE and CONFIG_SYS_FSL_ESDHC_BE macros 2014-09-08 10:30:33 -07:00
README.fsl-hwconfig powerpc/85xx: Specify hwconfig usage for USB controller 2011-07-11 13:24:20 -05: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 cosmetic: doc: update README.generic-board 2014-07-07 17:22:29 -06:00
README.generic_usb_ohci rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
README.gpt disk: part_efi: add support for the Backup GPT 2014-05-12 15:20:05 -04:00
README.hwconfig Cosmetic: Fix a number of typos, no functional changes. 2013-09-20 10:30:54 -04: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.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.link-local Minor Coding Style cleanup 2012-07-10 09:18:33 +02: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.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.mxc_hab Coding Style cleanup: replace leading SPACEs by TABs 2013-10-14 16:06:54 -04: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.nand mtd: OMAP: Enable GPMC prefetch mode 2015-01-13 11:51:23 -05:00
README.nand-boot-ppc440 Fix some typos 2008-05-09 20:53:52 +02:00
README.ne2000 * Patches by Richard Woodruff, 01 Oct 2004: 2005-01-09 23:16:25 +00: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.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.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 powerpc: remove icecube_5200, Lite5200, cpci5200, mecp5200, pf5200 2015-01-23 16:56:09 -05:00
README.semihosting arm: Add support for semihosting for armv8 fastmodel targets. 2014-07-03 08:35:45 +02: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.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.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.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: add a simple README file for UniPhier platform 2015-02-07 00:14:57 +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.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: Add Intel Galileo instructions in README.x86 2015-02-06 12:07:46 -07:00
README.zfs Coding Style cleanup: replace leading SPACEs by TABs 2013-10-14 16:06:54 -04:00
README.zynq doc: Update the zynq u-boot status 2014-01-10 15:18:33 +01:00
feature-removal-schedule.txt Change Andy Fleming's email address 2014-08-06 09:12:30 -04:00
git-mailrc powerpc: 74xx_7xx: remove 74xx_7xx cpu support 2015-01-16 10:24:39 -05: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.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