summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/README.kconfig219
-rw-r--r--doc/README.scrapyard6
-rw-r--r--doc/README.t4240qds175
-rw-r--r--doc/git-mailrc2
4 files changed, 227 insertions, 175 deletions
diff --git a/doc/README.kconfig b/doc/README.kconfig
new file mode 100644
index 0000000..cd549a8
--- /dev/null
+++ b/doc/README.kconfig
@@ -0,0 +1,219 @@
+Kconfig in U-Boot
+=================
+
+This document describes the configuration infrastructure of U-Boot.
+
+The conventional configuration was replaced by Kconfig at v2014.10-rc1 release.
+
+
+Language Specification
+----------------------
+
+Kconfig originates in Linux Kernel.
+See the file "Documentation/kbuild/kconfig*.txt" in your Linux Kernel
+source directory for a basic specification of Kconfig.
+
+
+Difference from Linux's Kconfig
+-------------------------------
+
+The biggest difference between Linux Kernel and U-Boot in terms of the
+configuration is that U-Boot has to configure multiple boot images per board:
+Normal, SPL, TPL.
+Kconfig functions need to be expanded for U-Boot to handle multiple images.
+The files scripts/kconfig/* were imported from Linux Kernel and adjusted
+for that purpose.
+
+See below for how each configuration target works in U-Boot:
+
+- config, nconfig, menuconfig, xconfig, gconfig
+
+ These targets are used to configure Normal and create (or modify) the
+ .config file. For SPL configuration, the configutation targets are prefixed
+ with "spl/", for example "make spl/config", "make spl/menuconfig", etc.
+ Those targets create or modify the spl/.config file. Likewise, run
+ "make tpl/config", "make tpl/menuconfig", etc. for TPL.
+
+- silentoldconfig
+
+ This target updates .config, include/generated/autoconf.h and
+ include/configs/*. In U-Boot, the same thing is done for SPL, TPL,
+ if supported by the target board. Depending on whether CONFIG_SPL and
+ CONFIG_TPL are defined, "make silentoldconfig" iterates three times at most
+ changing the work directory.
+
+ To sum up, "make silentoldconfig" possibly updates:
+ - .config, include/generated/autoconf.h, include/config/*
+ - spl/.config, spl/include/generated/autoconf.h, spl/include/config/*
+ (in case CONFIG_SPL=y)
+ - tpl/.config, tpl/include/generated/autoconf.h, tpl/include/config/*
+ (in case CONFIG_TPL=y)
+
+- defconfig, <board>_defconfig
+
+ The target "<board>_defconfig" is used to create the .config based on the
+ file configs/<board>_defconfig. The "defconfig" target is the same
+ except it checks for a file specified with KBUILD_DEFCONFIG environment.
+
+ Note:
+ The defconfig files are placed under the "configs" directory,
+ not "arch/$(ARCH)/configs". This is because "ARCH" is not necessarily
+ given from the command line for the U-Boot configuration and build.
+
+ The defconfig file format in U-Boot has the special syntax; each line has
+ "<condition>:" prefix to show which image(s) the line is valid for.
+ For example,
+
+ CONFIG_FOO=100
+ S:CONFIG_FOO=200
+ T:CONFIG_FOO=300
+ ST:CONFIG_BAR=y
+ +S:CONFIG_BAZ=y
+ +T:CONFIG_QUX=y
+ +ST:CONFIG_QUUX=y
+
+ Here, the "<condition>:" prefix is one of:
+ None - the line is valid only for Normal image
+ S: - the line is valid only for SPL image
+ T: - the line is valid only for TPL image
+ ST: - the line is valid for SPL and TPL images
+ +S: - the line is valid for Normal and SPL images
+ +T: - the line is valid for Normal and TPL images
+ +ST: - the line is valid for Normal, SPL and SPL images
+
+ So, if neither CONFIG_SPL nor CONFIG_TPL is defined, the defconfig file
+ has no "<condition>:" part and therefore has the same form as in Linux.
+ From the example defconfig shown above, three separete configuration sets
+ are generated and used for creating .config, spl/.config and tpl/.config.
+
+ - Input for the default configuration of Normal
+ CONFIG_FOO=100
+ CONFIG_BAZ=y
+ CONFIG_QUX=y
+ CONFIG_QUUX=y
+
+ - Input for the default configuration of SPL
+ CONFIG_FOO=200
+ CONFIG_BAR=y
+ CONFIG_BAZ=y
+ CONFIG_QUUX=y
+
+ - Input for the default configuration of TPL
+ CONFIG_FOO=300
+ CONFIG_BAR=y
+ CONFIG_QUX=y
+ CONFIG_QUUX=y
+
+- savedefconfig
+
+ This is the reverse operation of "make defconfig". If neither CONFIG_SPL
+ nor CONFIG_TPL is defined in the .config file, it works like "savedefconfig"
+ in Linux Kernel: creates the minimal set of config based on the .config
+ and saves it into the "defconfig" file. If CONFIG_SPL (and CONFIG_TPL) is
+ defined, the common lines among .config, spl/.config (and tpl/.config) are
+ coalesced together with "<condition:>" prefix for each line as shown above.
+ This file can be used as an input of "defconfig" target.
+
+
+Migration steps to Kconfig
+--------------------------
+
+Prior to Kconfig, the C preprocessor based board configuration had been used
+in U-Boot.
+
+Although Kconfig was introduced and some configs have been moved to Kconfig,
+many of configs are still defined in C header files. It will take a very
+long term to move all of them to Kconfig. In the interim, the two different
+configuration infrastructures should coexist.
+The configuration files are generated by both Kconfig and the old preprocessor
+based configuration as follows:
+
+Configuration files for use in C sources
+ - include/generated/autoconf.h (generated by Kconfig for Normal)
+ - spl/include/generated/autoconf.h (generated by Kconfig for SPL)
+ - tpl/include/generated/autoconf.h (generated by Kconfig for TPL)
+ - include/configs/<board>.h (exists for all boards)
+
+Configuration file for use in makefiles
+ - include/config/auto.conf (generated by Kconfig for Normal)
+ - spl/include/config/auto.conf (generated by Kconfig for SPL)
+ - tpl/include/config/auto.conf (generated by Kconfig for TPL)
+ - include/autoconf.mk (generated by the old config for Normal)
+ - spl/include/autoconfig.mk (generated by the old config for SPL)
+ - tpl/include/autoconfig.mk (generated by the old config for TPL)
+
+When adding a new CONFIG macro, it is highly recommended to add it to Kconfig
+rather than to a header file.
+
+
+Conversion from boards.cfg to Kconfig
+-------------------------------------
+
+Prior to Kconfig, boards.cfg was a primary database that contained Arch, CPU,
+SoC, etc. of all the supported boards. It was deleted when switching to
+Kconfig. Each field of boards.cfg was converted as follows:
+
+ Status -> "S:" entry of MAINTAINERS
+ Arch -> CONFIG_SYS_ARCH defined by Kconfig
+ CPU -> CONFIG_SYS_CPU defined by Kconfig
+ SoC -> CONFIG_SYS_SOC defined by Kconfig
+ Vendor -> CONFIG_SYS_VENDOR defined by Kconfig
+ Board -> CONFIG_SYS_BOARD defined by Kconfig
+ Target -> File name of defconfig (configs/<target>_defconfig)
+ Options -> CONFIG_SYS_EXTRA_OPTIONS defined by Kconfig
+ Maintainers -> "M:" entry of MAINTAINERS
+
+
+Tips to add/remove boards
+-------------------------
+
+When adding a new board, the following steps are generally needed:
+
+ [1] Add a header file include/configs/<target>.h
+ [2] Make sure to define necessary CONFIG_SYS_* in Kconfig:
+ Define CONFIG_SYS_CPU="cpu" to compile arch/<arch>/cpu/<cpu>
+ Define CONFIG_SYS_SOC="soc" to compile arch/<arch>/cpu/<cpu>/<soc>
+ Define CONFIG_SYS_VENDOR="vendor" to compile board/<vendor>/common/*
+ and board/<vendor>/<board>/*
+ Define CONFIG_SYS_BOARD="board" to compile board/<board>/*
+ (or board/<vendor>/<board>/* if CONFIG_SYS_VENDOR is defined)
+ Define CONFIG_SYS_CONFIG_NAME="target" to include
+ include/configs/<target>.h
+ [3] Add a new entry to the board select menu in Kconfig.
+ The board select menu is located in arch/<arch>/Kconfig or
+ arch/<arch>/*/Kconfig.
+ [4] Add a MAINTAINERS file
+ It is generally placed at board/<board>/MAINTAINERS or
+ board/<vendor>/<board>/MAINTAINERS
+ [5] Add configs/<target>_defconfig
+
+When removing an obsolete board, the following steps are generally needed:
+
+ [1] Remove configs/<target>_defconfig
+ [2] Remove include/configs/<target>.h if it is not used by any other boards
+ [3] Remove board/<vendor>/<board>/* or board/<board>/* if it is not used
+ by any other boards
+ [4] Update MAINTAINERS if necessary
+ [5] Remove the unused entry from the board select menu in Kconfig
+ [6] Add an entry to doc/README.scrapyard
+
+
+TODO
+----
+
+- The option field of boards.cfg, which was used for the pre-Kconfig
+ configuration, moved to CONFIG_SYS_EXTRA_OPTIONS verbatim now.
+ Board maintainers are expected to implement proper Kconfig options
+ and switch over to them. Eventually CONFIG_SYS_EXTRA_OPTIONS will go away.
+ CONFIG_SYS_EXTRA_OPTIONS should not be used for new boards.
+
+- In the pre-Kconfig, a single board had multiple entries in the boards.cfg
+ file with differences in the option fields. The correspoing defconfig files
+ were auto-generated when switching to Kconfig. Now we have too many
+ defconfig files compared with the number of the supported boards. It is
+ recommended to have only one defconfig per board and allow users to select
+ the config options.
+
+- Move the config macros in header files to Kconfig. When we move at least
+ macros used in makefiles, we can drop include/autoconfig.mk, which makes
+ the build scripts much simpler.
diff --git a/doc/README.scrapyard b/doc/README.scrapyard
index b950a41..7ef5a22 100644
--- a/doc/README.scrapyard
+++ b/doc/README.scrapyard
@@ -12,6 +12,12 @@ The list should be sorted in reverse chronological order.
Board Arch CPU Commit Removed Last known maintainer/contact
=================================================================================================
+flagadm powerpc mpc8xx - - Kári Davíðsson <kd@flaga.is>
+gen860t powerpc mpc8xx - - Keith Outwater <Keith_Outwater@mvis.com>
+sixnet powerpc mpc8xx - - Dave Ellis <DGE@sixnetio.com>
+svm_sc8xx powerpc mpc8xx - - John Zhan <zhanz@sinovee.com>
+stxxtc powerpc mpc8xx - - Dan Malek <dan@embeddedalley.com>
+omap5912osk arm arm926ejs - - Rishi Bhattacharya <rishi@ti.com>
p1023rds powerpc mpc85xx d0bc5140 2014-07-22 Roy Zang <tie-fei.zang@freescale.com>
spc1920 powerpc mpc8xx 98ad54be 2014-07-07
v37 powerpc mpc8xx b8c1438a 2014-07-07
diff --git a/doc/README.t4240qds b/doc/README.t4240qds
deleted file mode 100644
index ef8c75f..0000000
--- a/doc/README.t4240qds
+++ /dev/null
@@ -1,175 +0,0 @@
-Overview
---------
-The T4240QDS is a high-performance computing evaluation, development and test
-platform supporting the T4240 QorIQ™ Power Architecture™ processor. T4240QDS is
-optimized to support the high-bandwidth DDR3 memory ports, as well as the
-highly-configurable SerDes ports. The system is lead-free and RoHS-compliant.
-
-Board Features
- SERDES Connections
- 32 lanes grouped into four 8-lane banks
- Two “front side” banks dedicated to Ethernet
- - High-speed crosspoint switch fabric on selected lanes
- - Two PCI Express slots with side-band connector supporting
- - SGMII
- - XAUI
- - HiGig
- - I-pass connectors allow board-to-board and loopback support
- Two “back side” banks dedicated to other protocols
- - High-speed crosspoint switch fabric on all lanes
- - Four PCI Express slots with side-band connector supporting
- - PCI Express 3.0
- - SATA 2.0
- - SRIO 2.0
- - Supports 4X Aurora debug with two connectors
- DDR Controllers
- Three independant 64-bit DDR3 controllers
- Supports rates of 1866 up to 2133 MHz data-rate
- Supports two DDR3/DDR3LP UDIMM/RDIMMs per controller
- DDR power supplies 1.5V to all devices with automatic tracking of VTT.
- Power software-switchable to 1.35V if software detects all DDR3LP devices.
- MT9JSF25672AZ-2G1KZESZF has been tested at 1333, 1600, 1867, 2000 and
- 2133MT/s speeds. For 1867MT/s and above, read-to-write turnaround time
- increases by 1 clock.
-
- IFC/Local Bus
- NAND flash: 8-bit, async or sync, up to 2GB.
- NOR: 16-bit, Address/Data Multiplexed (ADM), up to 128 MB
- NOR: 8-bit or 16-bit, non-multiplexed, up to 512MB
- - NOR devices support 16 virtual banks
- GASIC: Minimal target within Qixis FPGA
- PromJET rapid memory download support
- Address demultiplexing handled within FPGA.
- - Flexible demux allows 8 or 16 bit evaluation.
- IFC Debug/Development card
- - Support for 32-bit devices
- Ethernet
- Support two on-board RGMII 10/100/1G ethernet ports.
- SGMII and XAUI support via SERDES block (see above).
- 1588 support via Symmetricom board.
- QIXIS System Logic FPGA
- Manages system power and reset sequencing
- Manages DUT, board, clock, etc. configuration for dynamic shmoo
- Collects V-I-T data in background for code/power profiling.
- Supports legacy TMT test features (POSt, IRS, SYSCLK-synchronous assertion)
- General fault monitoring and logging
- Runs from ATX “hot” power rails allowing operation while system is off.
- Clocks
- System and DDR clock (SYSCLK, “DDRCLK”)
- - Switch selectable to one of 16 common settings in the interval 33MHz-166MHz.
- - Software selectable in 1MHz increments from 1-200MHz.
- SERDES clocks
- - Provides clocks to all SerDes blocks and slots
- - 100, 125 and 156.25 MHz
- Power Supplies
- Dedicated regulators for VDD
- - Adjustable from (0.7V to 1.3V at 80A
- - Regulators can be controlled by VID and/or software
- Dedicated regulator for GVDD_PL: 1.35/1.5V at 22A
- - VTT/MVREF automatically track operating voltage
- Dedicated regulators/filters for AVDD supplies
- Dedicated regulators for other supplies: OVDD, BVDD, DVDD, LVDD, POVDD, etc.
- USB
- Supports two USB 2.0 ports with integrated PHYs
- - One type A, one type micro-AB with 1.0A power per port.
- Other IO
- eSDHC/MMC
- - SDHC card slot
- eSPI port
- - High-speed serial flash
- Two Serial port
- Four I2C ports
-
-Memory map
-----------
-The addresses in brackets are physical addresses.
-
-0x0_0000_0000 (0x0_0000_0000) - 0x0_7fff_ffff 2GB DDR (more than 2GB is initialized but not mapped under with TLB)
-0x0_8000_0000 (0xc_0000_0000) - 0x0_dfff_ffff 1.5GB PCIE memory
-0x0_f000_0000 (0xf_0000_0000) - 0x0_f1ff_ffff 32MB DCSR (includes trace buffers)
-0x0_f400_0000 (0xf_f400_0000) - 0x0_f5ff_ffff 32MB BMan
-0x0_f600_0000 (0xf_f600_0000) - 0x0_f7ff_ffff 32MB QMan
-0x0_f800_0000 (0xf_f800_0000) - 0x0_f803_ffff 256KB PCIE IO
-0x0_e000_0000 (0xf_e000_0000) - 0x0_efff_ffff 256MB NOR flash
-0x0_fe00_0000 (0xf_fe00_0000) - 0x0_feff_ffff 16MB CCSR
-0x0_ffdf_0000 (0xf_ffdf_0000) - 0x0_ffdf_03ff 4KB QIXIS
-0x0_ffff_f000 (0x0_7fff_fff0) - 0x0_ffff_ffff 4KB Boot page translation for secondary cores
-
-The physical address of the last (boot page translation) varies with the actual DDR size.
-
-Voltage ID and VDD override
---------------------
-T4240 has a VID feature. U-boot reads the VID efuses and adjust the voltage
-accordingly. The voltage can also be override by command vdd_override. The
-syntax is
-
-vdd_override <voltage in mV>, eg. 1050 is for 1.050v.
-
-Upon success, the actual voltage will be read back. The value is checked
-for safety and any invalid value will not adjust the voltage.
-
-Another way to override VDD is to use environmental variable, in case of using
-command is too late for some debugging. The syntax is
-
-setenv t4240qds_vdd_mv <voltage in mV>
-saveenv
-reset
-
-The override voltage takes effect when booting.
-
-Note: voltage adjustment needs to be done step by step. Changing voltage too
-rapidly may cause current surge. The voltage stepping is done by software.
-Users can set the final voltage directly.
-
-2-stage NAND/SD boot loader
--------------------------------
-PBL initializes the internal SRAM and copy SPL(160K) in SRAM.
-SPL further initialise DDR using SPD and environment variables
-and copy u-boot(768 KB) from NAND/SD device to DDR.
-Finally SPL transers control to u-boot for futher booting.
-
-SPL has following features:
- - Executes within 256K
- - No relocation required
-
-Run time view of SPL framework
--------------------------------------------------
-|Area | Address |
--------------------------------------------------
-|SecureBoot header | 0xFFFC0000 (32KB) |
--------------------------------------------------
-|GD, BD | 0xFFFC8000 (4KB) |
--------------------------------------------------
-|ENV | 0xFFFC9000 (8KB) |
--------------------------------------------------
-|HEAP | 0xFFFCB000 (50KB) |
--------------------------------------------------
-|STACK | 0xFFFD8000 (22KB) |
--------------------------------------------------
-|U-boot SPL | 0xFFFD8000 (160KB) |
--------------------------------------------------
-
-NAND Flash memory Map on T4QDS
---------------------------------------------------------------
-Start End Definition Size
-0x000000 0x0FFFFF u-boot img 1MB
-0x140000 0x15FFFF u-boot env 128KB
-0x160000 0x17FFFF FMAN Ucode 128KB
-
-Micro SD Card memory Map on T4QDS
-----------------------------------------------------
-Block #blocks Definition Size
-0x008 2048 u-boot img 1MB
-0x800 0016 u-boot env 8KB
-0x820 0128 FMAN ucode 64KB
-
-Switch Settings: (ON is 1, OFF is 0)
-===============
-NAND boot SW setting:
-SW1[1:8] = 10000010
-SW2[1.1] = 0
-SW6[1:4] = 1001
-
-SD boot SW setting:
-SW1[1:8] = 00100000
-SW2[1.1] = 0
diff --git a/doc/git-mailrc b/doc/git-mailrc
index 70405f2..0fba100 100644
--- a/doc/git-mailrc
+++ b/doc/git-mailrc
@@ -119,3 +119,5 @@ alias net uboot, jhersh
alias spi uboot, jagan
alias usb uboot, marex
alias video uboot, ag
+alias patman uboot, sjg
+alias buildman uboot, sjg