]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - README
Merge branch 'u-boot/master' into 'u-boot-arm/master'
[karo-tx-uboot.git] / README
diff --git a/README b/README
index f27e578e7203a48d5f3a85f10affbd2f282933e1..1130b4f3291628019b86aaf71183a2c6701888d0 100644 (file)
--- a/README
+++ b/README
@@ -139,7 +139,6 @@ Directory Hierarchy:
        /at91           Files specific to Atmel AT91RM9200 CPU
        /imx            Files specific to Freescale MC9328 i.MX CPUs
        /s3c24x0        Files specific to Samsung S3C24X0 CPUs
-      /arm925t         Files specific to ARM 925 CPUs
       /arm926ejs       Files specific to ARM 926 CPUs
       /arm1136         Files specific to ARM 1136 CPUs
       /ixp             Files specific to Intel XScale IXP CPUs
@@ -152,9 +151,6 @@ Directory Hierarchy:
   /blackfin            Files generic to Analog Devices Blackfin architecture
     /cpu               CPU specific files
     /lib               Architecture specific library files
-  /x86                 Files generic to x86 architecture
-    /cpu               CPU specific files
-    /lib               Architecture specific library files
   /m68k                        Files generic to m68k architecture
     /cpu               CPU specific files
       /mcf52x2         Files specific to Freescale ColdFire MCF52x2 CPUs
@@ -178,6 +174,9 @@ Directory Hierarchy:
   /nios2               Files generic to Altera NIOS2 architecture
     /cpu               CPU specific files
     /lib               Architecture specific library files
+  /openrisc            Files generic to OpenRISC architecture
+    /cpu               CPU specific files
+    /lib               Architecture specific library files
   /powerpc             Files generic to PowerPC architecture
     /cpu               CPU specific files
       /74xx_7xx                Files specific to Freescale MPC74xx and 7xx CPUs
@@ -200,12 +199,16 @@ Directory Hierarchy:
       /leon2           Files specific to Gaisler LEON2 SPARC CPU
       /leon3           Files specific to Gaisler LEON3 SPARC CPU
     /lib               Architecture specific library files
+  /x86                 Files generic to x86 architecture
+    /cpu               CPU specific files
+    /lib               Architecture specific library files
 /api                   Machine/arch independent API for external apps
 /board                 Board dependent files
 /common                        Misc architecture independent functions
 /disk                  Code for disk drive partition handling
 /doc                   Documentation (don't expect too much)
 /drivers               Commonly used device drivers
+/dts                   Contains Makefile for building internal U-Boot fdt.
 /examples              Example code for standalone applications, etc.
 /fs                    Filesystem code (cramfs, ext2, jffs2, etc.)
 /include               Header Files
@@ -215,7 +218,7 @@ Directory Hierarchy:
   /lzo                 Library files to support LZO decompression
 /net                   Networking code
 /post                  Power On Self Test
-/rtc                   Real Time Clock drivers
+/spl                   Secondary Program Loader framework
 /tools                 Tools to build S-Record or U-Boot images, etc.
 
 Software Configuration:
@@ -420,16 +423,50 @@ The following options need to be configured:
                CONFIG_SYS_FSL_DSP_CCSRBAR_DEFAULT
                This value denotes start offset of DSP CCSR space.
 
-               CONFIG_SYS_FSL_DDR_EMU
-               Specify emulator support for DDR. Some DDR features such as
-               deskew training are not available.
-
 - Generic CPU options:
                CONFIG_SYS_BIG_ENDIAN, CONFIG_SYS_LITTLE_ENDIAN
 
                Defines the endianess of the CPU. Implementation of those
                values is arch specific.
 
+               CONFIG_SYS_FSL_DDR
+               Freescale DDR driver in use. This type of DDR controller is
+               found in mpc83xx, mpc85xx, mpc86xx as well as some ARM core
+               SoCs.
+
+               CONFIG_SYS_FSL_DDR_ADDR
+               Freescale DDR memory-mapped register base.
+
+               CONFIG_SYS_FSL_DDR_EMU
+               Specify emulator support for DDR. Some DDR features such as
+               deskew training are not available.
+
+               CONFIG_SYS_FSL_DDRC_GEN1
+               Freescale DDR1 controller.
+
+               CONFIG_SYS_FSL_DDRC_GEN2
+               Freescale DDR2 controller.
+
+               CONFIG_SYS_FSL_DDRC_GEN3
+               Freescale DDR3 controller.
+
+               CONFIG_SYS_FSL_DDRC_ARM_GEN3
+               Freescale DDR3 controller for ARM-based SoCs.
+
+               CONFIG_SYS_FSL_DDR1
+               Board config to use DDR1. It can be enabled for SoCs with
+               Freescale DDR1 or DDR2 controllers, depending on the board
+               implemetation.
+
+               CONFIG_SYS_FSL_DDR2
+               Board config to use DDR2. It can be eanbeld for SoCs with
+               Freescale DDR2 or DDR3 controllers, depending on the board
+               implementation.
+
+               CONFIG_SYS_FSL_DDR3
+               Board config to use DDR3. It can be enabled for SoCs with
+               Freescale DDR3 controllers.
+
 - Intel Monahans options:
                CONFIG_SYS_MONAHANS_RUN_MODE_OSC_RATIO
 
@@ -702,6 +739,11 @@ The following options need to be configured:
                the "silent" environment variable. See
                doc/README.silent for more information.
 
+               CONFIG_SYS_CONSOLE_BG_COL: define the backgroundcolor, default
+                       is 0x00.
+               CONFIG_SYS_CONSOLE_FG_COL: define the foregroundcolor, default
+                       is 0xa0.
+
 - Console Baudrate:
                CONFIG_BAUDRATE - in bps
                Select one of the baudrates listed in
@@ -776,6 +818,22 @@ The following options need to be configured:
                as a convenience, when switching between booting from
                RAM and NFS.
 
+- Bootcount:
+               CONFIG_BOOTCOUNT_LIMIT
+               Implements a mechanism for detecting a repeating reboot
+               cycle, see:
+               http://www.denx.de/wiki/view/DULG/UBootBootCountLimit
+
+               CONFIG_BOOTCOUNT_ENV
+               If no softreset save registers are found on the hardware
+               "bootcount" is stored in the environment. To prevent a
+               saveenv on all reboots, the environment variable
+               "upgrade_available" is used. If "upgrade_available" is
+               0, "bootcount" is always 0, if "upgrade_available" is
+               1 "bootcount" is incremented in the environment.
+               So the Userspace Applikation must set the "upgrade_available"
+               and "bootcount" variable to 0, if a boot was successfully.
+
 - Pre-Boot Commands:
                CONFIG_PREBOOT
 
@@ -840,6 +898,7 @@ The following options need to be configured:
                CONFIG_CMD_ELF          * bootelf, bootvx
                CONFIG_CMD_ENV_CALLBACK * display details about env callbacks
                CONFIG_CMD_ENV_FLAGS    * display details about env flags
+               CONFIG_CMD_ENV_EXISTS   * check existence of env variable
                CONFIG_CMD_EXPORTENV    * export the environment
                CONFIG_CMD_EXT2         * ext2 command support
                CONFIG_CMD_EXT4         * ext4 command support
@@ -941,10 +1000,10 @@ The following options need to be configured:
 
 - Regular expression support:
                CONFIG_REGEX
-                If this variable is defined, U-Boot is linked against
-                the SLRE (Super Light Regular Expression) library,
-                which adds regex support to some commands, as for
-                example "env grep" and "setexpr".
+               If this variable is defined, U-Boot is linked against
+               the SLRE (Super Light Regular Expression) library,
+               which adds regex support to some commands, as for
+               example "env grep" and "setexpr".
 
 - Device tree:
                CONFIG_OF_CONTROL
@@ -1024,7 +1083,6 @@ The following options need to be configured:
 
 - GPIO Support:
                CONFIG_PCA953X          - use NXP's PCA953X series I2C GPIO
-               CONFIG_PCA953X_INFO     - enable pca953x info command
 
                The CONFIG_SYS_I2C_PCA953X_WIDTH option specifies a list of
                chip-ngpio pairs that tell the PCA953X driver the number of
@@ -1093,8 +1151,8 @@ The following options need to be configured:
                devices.
                CONFIG_SYS_SCSI_SYM53C8XX_CCF to fix clock timing (80Mhz)
 
-                The environment variable 'scsidevs' is set to the number of
-                SCSI devices found during the last scan.
+               The environment variable 'scsidevs' is set to the number of
+               SCSI devices found during the last scan.
 
 - NETWORK Support (PCI):
                CONFIG_E1000
@@ -1359,6 +1417,13 @@ The following options need to be configured:
                        for your device
                        - CONFIG_USBD_PRODUCTID 0xFFFF
 
+               Some USB device drivers may need to check USB cable attachment.
+               In this case you can enable following config in BoardName.h:
+                       CONFIG_USB_CABLE_CHECK
+                       This enables function definition:
+                       - usb_cable_connected() in include/usb.h
+                       Implementation of this function is board-specific.
+
 - ULPI Layer Support:
                The ULPI (UTMI Low Pin (count) Interface) PHYs are supported via
                the generic ULPI layer. The generic layer accesses the ULPI PHY
@@ -1404,6 +1469,12 @@ The following options need to be configured:
                CONFIG_DFU_NAND
                This enables support for exposing NAND devices via DFU.
 
+               CONFIG_DFU_RAM
+               This enables support for exposing RAM via DFU.
+               Note: DFU spec refer to non-volatile memory usage, but
+               allow usages beyond the scope of spec - here RAM usage,
+               one that would help mostly the developer.
+
                CONFIG_SYS_DFU_DATA_BUF_SIZE
                Dfu transfer uses a buffer before writing data to the
                raw storage device. Make the size (in bytes) of this buffer
@@ -1942,6 +2013,21 @@ CBFS (Coreboot Filesystem) support
                kernel). Defining CONFIG_STATUS_LED enables this
                feature in U-Boot.
 
+               Additional options:
+
+               CONFIG_GPIO_LED
+               The status LED can be connected to a GPIO pin.
+               In such cases, the gpio_led driver can be used as a
+               status LED backend implementation. Define CONFIG_GPIO_LED
+               to include the gpio_led driver in the U-Boot binary.
+
+               CONFIG_GPIO_LED_INVERTED_TABLE
+               Some GPIO connected LEDs may have inverted polarity in which
+               case the GPIO high value corresponds to LED off state and
+               GPIO low value corresponds to LED on state.
+               In such cases CONFIG_GPIO_LED_INVERTED_TABLE may be defined
+               with a list of GPIO LEDs that have inverted polarity.
+
 - CAN Support: CONFIG_CAN_DRIVER
 
                Defining CONFIG_CAN_DRIVER enables CAN driver support
@@ -1978,22 +2064,83 @@ CBFS (Coreboot Filesystem) support
                    offset CONFIG_SYS_FSL_I2C_SPEED for the i2c speed and
                    CONFIG_SYS_FSL_I2C_SLAVE for the slave addr of the first
                    bus.
-                  - If your board supports a second fsl i2c bus, define
+                 - If your board supports a second fsl i2c bus, define
                    CONFIG_SYS_FSL_I2C2_OFFSET for the register offset
                    CONFIG_SYS_FSL_I2C2_SPEED for the speed and
                    CONFIG_SYS_FSL_I2C2_SLAVE for the slave address of the
                    second bus.
 
                - drivers/i2c/tegra_i2c.c:
-                - activate this driver with CONFIG_SYS_I2C_TEGRA
-                - This driver adds 4 i2c buses with a fix speed from
-                  100000 and the slave addr 0!
+                 - activate this driver with CONFIG_SYS_I2C_TEGRA
+                 - This driver adds 4 i2c buses with a fix speed from
+                   100000 and the slave addr 0!
 
                - drivers/i2c/ppc4xx_i2c.c
                  - activate this driver with CONFIG_SYS_I2C_PPC4XX
                  - CONFIG_SYS_I2C_PPC4XX_CH0 activate hardware channel 0
                  - CONFIG_SYS_I2C_PPC4XX_CH1 activate hardware channel 1
 
+               - drivers/i2c/i2c_mxc.c
+                 - activate this driver with CONFIG_SYS_I2C_MXC
+                 - define speed for bus 1 with CONFIG_SYS_MXC_I2C1_SPEED
+                 - define slave for bus 1 with CONFIG_SYS_MXC_I2C1_SLAVE
+                 - define speed for bus 2 with CONFIG_SYS_MXC_I2C2_SPEED
+                 - define slave for bus 2 with CONFIG_SYS_MXC_I2C2_SLAVE
+                 - define speed for bus 3 with CONFIG_SYS_MXC_I2C3_SPEED
+                 - define slave for bus 3 with CONFIG_SYS_MXC_I2C3_SLAVE
+               If thoses defines are not set, default value is 100000
+               for speed, and 0 for slave.
+
+               - drivers/i2c/rcar_i2c.c:
+                 - activate this driver with CONFIG_SYS_I2C_RCAR
+                 - This driver adds 4 i2c buses
+
+                 - CONFIG_SYS_RCAR_I2C0_BASE for setting the register channel 0
+                 - CONFIG_SYS_RCAR_I2C0_SPEED for for the speed channel 0
+                 - CONFIG_SYS_RCAR_I2C1_BASE for setting the register channel 1
+                 - CONFIG_SYS_RCAR_I2C1_SPEED for for the speed channel 1
+                 - CONFIG_SYS_RCAR_I2C2_BASE for setting the register channel 2
+                 - CONFIG_SYS_RCAR_I2C2_SPEED for for the speed channel 2
+                 - CONFIG_SYS_RCAR_I2C3_BASE for setting the register channel 3
+                 - CONFIG_SYS_RCAR_I2C3_SPEED for for the speed channel 3
+                 - CONFIF_SYS_RCAR_I2C_NUM_CONTROLLERS for number of i2c buses
+
+               - drivers/i2c/sh_i2c.c:
+                 - activate this driver with CONFIG_SYS_I2C_SH
+                 - This driver adds from 2 to 5 i2c buses
+
+                 - CONFIG_SYS_I2C_SH_BASE0 for setting the register channel 0
+                 - CONFIG_SYS_I2C_SH_SPEED0 for for the speed channel 0
+                 - CONFIG_SYS_I2C_SH_BASE1 for setting the register channel 1
+                 - CONFIG_SYS_I2C_SH_SPEED1 for for the speed channel 1
+                 - CONFIG_SYS_I2C_SH_BASE2 for setting the register channel 2
+                 - CONFIG_SYS_I2C_SH_SPEED2 for for the speed channel 2
+                 - CONFIG_SYS_I2C_SH_BASE3 for setting the register channel 3
+                 - CONFIG_SYS_I2C_SH_SPEED3 for for the speed channel 3
+                 - CONFIG_SYS_I2C_SH_BASE4 for setting the register channel 4
+                 - CONFIG_SYS_I2C_SH_SPEED4 for for the speed channel 4
+                 - CONFIG_SYS_I2C_SH_BASE5 for setting the register channel 5
+                 - CONFIG_SYS_I2C_SH_SPEED5 for for the speed channel 5
+                 - CONFIF_SYS_I2C_SH_NUM_CONTROLLERS for nummber of i2c buses
+
+               - drivers/i2c/omap24xx_i2c.c
+                 - activate this driver with CONFIG_SYS_I2C_OMAP24XX
+                 - CONFIG_SYS_OMAP24_I2C_SPEED speed channel 0
+                 - CONFIG_SYS_OMAP24_I2C_SLAVE slave addr channel 0
+                 - CONFIG_SYS_OMAP24_I2C_SPEED1 speed channel 1
+                 - CONFIG_SYS_OMAP24_I2C_SLAVE1 slave addr channel 1
+                 - CONFIG_SYS_OMAP24_I2C_SPEED2 speed channel 2
+                 - CONFIG_SYS_OMAP24_I2C_SLAVE2 slave addr channel 2
+                 - CONFIG_SYS_OMAP24_I2C_SPEED3 speed channel 3
+                 - CONFIG_SYS_OMAP24_I2C_SLAVE3 slave addr channel 3
+                 - CONFIG_SYS_OMAP24_I2C_SPEED4 speed channel 4
+                 - CONFIG_SYS_OMAP24_I2C_SLAVE4 slave addr channel 4
+
+               - drivers/i2c/zynq_i2c.c
+                 - activate this driver with CONFIG_SYS_I2C_ZYNQ
+                 - set CONFIG_SYS_I2C_ZYNQ_SPEED for speed setting
+                 - set CONFIG_SYS_I2C_ZYNQ_SLAVE for slave addr
+
                additional defines:
 
                CONFIG_SYS_NUM_I2C_BUSES
@@ -3100,7 +3247,7 @@ FIT uImage format:
 
                CONFIG_SPL_MPC8XXX_INIT_DDR_SUPPORT
                Set for the SPL on PPC mpc8xxx targets, support for
-               arch/powerpc/cpu/mpc8xxx/ddr/libddr.o in SPL binary.
+               drivers/ddr/fsl/libddr.o in SPL binary.
 
                CONFIG_SPL_COMMON_INIT_DDR
                Set for common ddr init with serial presence detect in
@@ -3182,9 +3329,9 @@ FIT uImage format:
                CONFIG_TPL_PAD_TO
                Image offset to which the TPL should be padded before appending
                the TPL payload. By default, this is defined as
-                CONFIG_SPL_MAX_SIZE, or 0 if CONFIG_SPL_MAX_SIZE is undefined.
-                CONFIG_SPL_PAD_TO must be either 0, meaning to append the SPL
-                payload without any padding, or >= CONFIG_SPL_MAX_SIZE.
+               CONFIG_SPL_MAX_SIZE, or 0 if CONFIG_SPL_MAX_SIZE is undefined.
+               CONFIG_SPL_PAD_TO must be either 0, meaning to append the SPL
+               payload without any padding, or >= CONFIG_SPL_MAX_SIZE.
 
 Modem Support:
 --------------
@@ -3359,7 +3506,7 @@ Configuration Settings:
                the Linux kernel; all data that must be processed by
                the Linux kernel (bd_info, boot arguments, FDT blob if
                used) must be put below this limit, unless "bootm_low"
-               enviroment variable is defined and non-zero. In such case
+               environment variable is defined and non-zero. In such case
                all data for the Linux kernel must be between "bootm_low"
                and "bootm_low" + CONFIG_SYS_BOOTMAPSZ.  The environment
                variable "bootm_mapsize" will override the value of
@@ -3472,7 +3619,7 @@ Configuration Settings:
 
 - CONFIG_ENV_FLAGS_LIST_DEFAULT
 - CONFIG_ENV_FLAGS_LIST_STATIC
-       Enable validation of the values given to enviroment variables when
+       Enable validation of the values given to environment variables when
        calling env set.  Variables can be restricted to only decimal,
        hexadecimal, or boolean.  If CONFIG_CMD_NET is also defined,
        the variables can also be restricted to IP address or MAC address.
@@ -4257,6 +4404,9 @@ Low Level (hardware related) configuration options:
 
                NOTE : currently only supported on AM335x platforms.
 
+- CONFIG_SPL_AM33XX_ENABLE_RTC32K_OSC:
+               Enables the RTC32K OSC on AM33xx based plattforms
+
 Freescale QE/FMAN Firmware Support:
 -----------------------------------
 
@@ -5587,15 +5737,17 @@ On ARM, the following registers are used:
 
        R0:     function argument word/integer result
        R1-R3:  function argument word
-       R9:     GOT pointer
-       R10:    stack limit (used only if stack checking if enabled)
+       R9:     platform specific
+       R10:    stack limit (used only if stack checking is enabled)
        R11:    argument (frame) pointer
        R12:    temporary workspace
        R13:    stack pointer
        R14:    link register
        R15:    program counter
 
-    ==> U-Boot will use R8 to hold a pointer to the global data
+    ==> U-Boot will use R9 to hold a pointer to the global data
+
+    Note: on ARM, only R_ARM_RELATIVE relocations are supported.
 
 On Nios II, the ABI is documented here:
        http://www.altera.com/literature/hb/nios2/n2cpu_nii51016.pdf