]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - glsdk/glsdk-u-boot.git/blobdiff - README
Merge branch 'master' of git://git.denx.de/u-boot-i2c
[glsdk/glsdk-u-boot.git] / README
diff --git a/README b/README
index b23a51258ed75bed57a114b71851b0d728f18547..cdd81d4efe3efafd8e8e3653303eec1af2e599f5 100644 (file)
--- a/README
+++ b/README
@@ -1,5 +1,5 @@
 #
-# (C) Copyright 2000 - 2008
+# (C) Copyright 2000 - 2009
 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
 #
 # See file CREDITS for list of people who contributed to this
@@ -138,64 +138,91 @@ U-Boot will always have a patchlevel of "0".
 Directory Hierarchy:
 ====================
 
-- board                Board dependent files
-- common       Misc architecture independent functions
-- cpu          CPU specific files
-  - 74xx_7xx   Files specific to Freescale MPC74xx and 7xx CPUs
-  - arm720t    Files specific to ARM 720 CPUs
-  - arm920t    Files specific to ARM 920 CPUs
-    - at91rm9200 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
-  - at32ap     Files specific to Atmel AVR32 AP CPUs
-  - blackfin   Files specific to Analog Devices Blackfin CPUs
-  - i386       Files specific to i386 CPUs
-  - ixp                Files specific to Intel XScale IXP CPUs
-  - leon2      Files specific to Gaisler LEON2 SPARC CPU
-  - leon3      Files specific to Gaisler LEON3 SPARC CPU
-  - mcf52x2    Files specific to Freescale ColdFire MCF52x2 CPUs
-  - mcf5227x   Files specific to Freescale ColdFire MCF5227x CPUs
-  - mcf532x    Files specific to Freescale ColdFire MCF5329 CPUs
-  - mcf5445x   Files specific to Freescale ColdFire MCF5445x CPUs
-  - mcf547x_8x Files specific to Freescale ColdFire MCF547x_8x CPUs
-  - mips       Files specific to MIPS CPUs
-  - mpc5xx     Files specific to Freescale MPC5xx  CPUs
-  - mpc5xxx    Files specific to Freescale MPC5xxx CPUs
-  - mpc8xx     Files specific to Freescale MPC8xx  CPUs
-  - mpc8220    Files specific to Freescale MPC8220 CPUs
-  - mpc824x    Files specific to Freescale MPC824x CPUs
-  - mpc8260    Files specific to Freescale MPC8260 CPUs
-  - mpc85xx    Files specific to Freescale MPC85xx CPUs
-  - nios       Files specific to Altera NIOS CPUs
-  - nios2      Files specific to Altera Nios-II CPUs
-  - ppc4xx     Files specific to AMCC PowerPC 4xx CPUs
-  - pxa                Files specific to Intel XScale PXA CPUs
-  - s3c44b0    Files specific to Samsung S3C44B0 CPUs
-  - sa1100     Files specific to Intel StrongARM SA1100 CPUs
-- disk         Code for disk drive partition handling
-- doc          Documentation (don't expect too much)
-- drivers      Commonly used device drivers
-- dtt          Digital Thermometer and Thermostat drivers
-- examples     Example code for standalone applications, etc.
-- include      Header Files
-- lib_arm      Files generic to ARM     architecture
-- lib_avr32    Files generic to AVR32   architecture
-- lib_blackfin Files generic to Blackfin architecture
-- lib_generic  Files generic to all     architectures
-- lib_i386     Files generic to i386    architecture
-- lib_m68k     Files generic to m68k    architecture
-- lib_mips     Files generic to MIPS    architecture
-- lib_nios     Files generic to NIOS    architecture
-- lib_ppc      Files generic to PowerPC architecture
-- lib_sparc    Files generic to SPARC   architecture
-- libfdt       Library files to support flattened device trees
-- net          Networking code
-- post         Power On Self Test
-- rtc          Real Time Clock drivers
-- tools                Tools to build S-Record or U-Boot images, etc.
+/arch                  Architecture specific files
+  /arm                 Files generic to ARM architecture
+    /cpu               CPU specific files
+      /arm720t         Files specific to ARM 720 CPUs
+      /arm920t         Files specific to ARM 920 CPUs
+        /at91rm9200    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
+      /pxa             Files specific to Intel XScale PXA CPUs
+      /s3c44b0         Files specific to Samsung S3C44B0 CPUs
+      /sa1100          Files specific to Intel StrongARM SA1100 CPUs
+    /lib               Architecture specific library files
+  /avr32               Files generic to AVR32 architecture
+    /cpu               CPU specific files
+    /lib               Architecture specific library files
+  /blackfin            Files generic to Analog Devices Blackfin architecture
+    /cpu               CPU specific files
+    /lib               Architecture specific library files
+  /i386                        Files generic to i386 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
+      /mcf5227x                Files specific to Freescale ColdFire MCF5227x CPUs
+      /mcf532x         Files specific to Freescale ColdFire MCF5329 CPUs
+      /mcf5445x                Files specific to Freescale ColdFire MCF5445x CPUs
+      /mcf547x_8x      Files specific to Freescale ColdFire MCF547x_8x CPUs
+    /lib               Architecture specific library files
+  /microblaze          Files generic to microblaze architecture
+    /cpu               CPU specific files
+    /lib               Architecture specific library files
+  /mips                        Files generic to MIPS architecture
+    /cpu               CPU specific files
+    /lib               Architecture specific library files
+  /nios                        Files generic to Altera NIOS architecture
+    /cpu               CPU specific files
+    /lib               Architecture specific library files
+  /nios2               Files generic to Altera NIOS2 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
+      /mpc5xx          Files specific to Freescale MPC5xx CPUs
+      /mpc5xxx         Files specific to Freescale MPC5xxx CPUs
+      /mpc8xx          Files specific to Freescale MPC8xx CPUs
+      /mpc8220         Files specific to Freescale MPC8220 CPUs
+      /mpc824x         Files specific to Freescale MPC824x CPUs
+      /mpc8260         Files specific to Freescale MPC8260 CPUs
+      /mpc85xx         Files specific to Freescale MPC85xx CPUs
+      /ppc4xx          Files specific to AMCC PowerPC 4xx CPUs
+    /lib               Architecture specific library files
+  /sh                  Files generic to SH architecture
+    /cpu               CPU specific files
+      /sh2             Files specific to sh2 CPUs
+      /sh3             Files specific to sh3 CPUs
+      /sh4             Files specific to sh4 CPUs
+    /lib               Architecture specific library files
+  /sparc               Files generic to SPARC architecture
+    /cpu               CPU specific files
+      /leon2           Files specific to Gaisler LEON2 SPARC CPU
+      /leon3           Files specific to Gaisler LEON3 SPARC CPU
+    /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
+/examples              Example code for standalone applications, etc.
+/fs                    Filesystem code (cramfs, ext2, jffs2, etc.)
+/include               Header Files
+/lib                   Files generic to all architectures
+  /libfdt              Library files to support flattened device trees
+  /lzma                        Library files to support LZMA decompression
+  /lzo                 Library files to support LZO decompression
+/net                   Networking code
+/post                  Power On Self Test
+/rtc                   Real Time Clock drivers
+/tools                 Tools to build S-Record or U-Boot images, etc.
 
 Software Configuration:
 =======================
@@ -318,6 +345,11 @@ The following options need to be configured:
                that this requires a (stable) reference clock (32 kHz
                RTC clock or CONFIG_SYS_8XX_XIN)
 
+               CONFIG_SYS_DELAYED_ICACHE
+
+               Define this option if you want to enable the
+               ICache only when Code runs from RAM.
+
 - Intel Monahans options:
                CONFIG_SYS_MONAHANS_RUN_MODE_OSC_RATIO
 
@@ -363,8 +395,10 @@ The following options need to be configured:
                 * Adds the "fdt" command
                 * The bootm command automatically updates the fdt
 
-               OF_CPU - The proper name of the cpus node.
-               OF_SOC - The proper name of the soc node.
+               OF_CPU - The proper name of the cpus node (only required for
+                       MPC512X and MPC5xxx based boards).
+               OF_SOC - The proper name of the soc node (only required for
+                       MPC512X and MPC5xxx based boards).
                OF_TBCLK - The timebase frequency.
                OF_STDOUT_PATH - The path to the console device
 
@@ -381,6 +415,15 @@ The following options need to be configured:
                This define fills in the correct boot CPU in the boot
                param header, the default value is zero if undefined.
 
+               CONFIG_OF_IDE_FIXUP
+
+               U-Boot can detect if an IDE device is present or not.
+               If not, and this new config option is activated, U-Boot
+               removes the ATA node from the DTS before booting Linux,
+               so the Linux IDE driver does not probe the device and
+               crash. This is needed for buggy hardware (uc101) where
+               no pull down resistor is connected to the signal IDE5V_DD7.
+
 - vxWorks boot parameters:
 
                bootvx constructs a valid bootline using the following
@@ -588,7 +631,6 @@ The following options need to be configured:
                except those marked below with a "*".
 
                CONFIG_CMD_ASKENV       * ask for env variable
-               CONFIG_CMD_AUTOSCRIPT     Autoscript Support
                CONFIG_CMD_BDI            bdinfo
                CONFIG_CMD_BEDBUG       * Include BedBug Debugger
                CONFIG_CMD_BMP          * BMP support
@@ -599,16 +641,16 @@ The following options need to be configured:
                CONFIG_CMD_DATE         * support for RTC, date/time...
                CONFIG_CMD_DHCP         * DHCP support
                CONFIG_CMD_DIAG         * Diagnostics
-               CONFIG_CMD_DOC          * Disk-On-Chip Support
                CONFIG_CMD_DS4510       * ds4510 I2C gpio commands
                CONFIG_CMD_DS4510_INFO  * ds4510 I2C info command
                CONFIG_CMD_DS4510_MEM   * ds4510 I2C eeprom/sram commansd
                CONFIG_CMD_DS4510_RST   * ds4510 I2C rst command
                CONFIG_CMD_DTT          * Digital Therm and Thermostat
                CONFIG_CMD_ECHO           echo arguments
+               CONFIG_CMD_EDITENV        edit env variable
                CONFIG_CMD_EEPROM       * EEPROM read/write support
                CONFIG_CMD_ELF          * bootelf, bootvx
-               CONFIG_CMD_ENV            saveenv
+               CONFIG_CMD_SAVEENV        saveenv
                CONFIG_CMD_FDC          * Floppy Disk Support
                CONFIG_CMD_FAT          * FAT partition support
                CONFIG_CMD_FDOS         * Dos diskette Support
@@ -626,11 +668,14 @@ The following options need to be configured:
                CONFIG_CMD_KGDB         * kgdb
                CONFIG_CMD_LOADB          loadb
                CONFIG_CMD_LOADS          loads
+               CONFIG_CMD_MD5SUM         print md5 message digest
+                                         (requires CONFIG_CMD_MEMORY and CONFIG_MD5)
                CONFIG_CMD_MEMORY         md, mm, nm, mw, cp, cmp, crc, base,
                                          loop, loopw, mtest
                CONFIG_CMD_MISC           Misc functions like sleep etc
                CONFIG_CMD_MMC          * MMC memory mapped support
                CONFIG_CMD_MII          * MII utility commands
+               CONFIG_CMD_MTDPARTS     * MTD partition support
                CONFIG_CMD_NAND         * NAND support
                CONFIG_CMD_NET            bootp, tftpboot, rarpboot
                CONFIG_CMD_PCA953X      * PCA953x I2C gpio commands
@@ -648,6 +693,9 @@ The following options need to be configured:
                                          (requires CONFIG_CMD_I2C)
                CONFIG_CMD_SETGETDCR      Support for DCR Register access
                                          (4xx only)
+               CONFIG_CMD_SHA1           print sha1 memory digest
+                                         (requires CONFIG_CMD_MEMORY)
+               CONFIG_CMD_SOURCE         "source" command Support
                CONFIG_CMD_SPI          * SPI serial bus support
                CONFIG_CMD_USB          * USB support
                CONFIG_CMD_VFD          * VFD support (TRAB)
@@ -752,7 +800,7 @@ The following options need to be configured:
                CONFIG_LBA48
 
                Set this to enable support for disks larger than 137GB
-               Also look at CONFIG_SYS_64BIT_LBA ,CONFIG_SYS_64BIT_VSPRINTF and CONFIG_SYS_64BIT_STRTOUL
+               Also look at CONFIG_SYS_64BIT_LBA.
                Whithout these , LBA48 support uses 32bit variables and will 'only'
                support disks up to 2.1TB.
 
@@ -797,6 +845,16 @@ The following options need to be configured:
 
 - NETWORK Support (other):
 
+               CONFIG_DRIVER_AT91EMAC
+               Support for AT91RM9200 EMAC.
+
+                       CONFIG_RMII
+                       Define this to use reduced MII inteface
+
+                       CONFIG_DRIVER_AT91EMAC_QUIET
+                       If this defined, the driver is quiet.
+                       The driver doen't show link status messages.
+
                CONFIG_DRIVER_LAN91C96
                Support for SMSC's LAN91C96 chips.
 
@@ -821,20 +879,20 @@ The following options need to be configured:
                        Define this to use i/o functions instead of macros
                        (some hardware wont work with macros)
 
-               CONFIG_DRIVER_SMC911X
+               CONFIG_SMC911X
                Support for SMSC's LAN911x and LAN921x chips
 
-                       CONFIG_DRIVER_SMC911X_BASE
+                       CONFIG_SMC911X_BASE
                        Define this to hold the physical address
                        of the device (I/O space)
 
-                       CONFIG_DRIVER_SMC911X_32_BIT
+                       CONFIG_SMC911X_32_BIT
                        Define this if data bus is 32 bits
 
-                       CONFIG_DRIVER_SMC911X_16_BIT
+                       CONFIG_SMC911X_16_BIT
                        Define this if data bus is 16 bits. If your processor
                        automatically converts one 32 bit word to two 16 bit
-                       words you may also try CONFIG_DRIVER_SMC911X_32_BIT.
+                       words you may also try CONFIG_SMC911X_32_BIT.
 
 - USB Support:
                At the moment only the UHCI host controller is
@@ -849,9 +907,13 @@ The following options need to be configured:
                MPC5200 USB requires additional defines:
                        CONFIG_USB_CLOCK
                                for 528 MHz Clock: 0x0001bbbb
+                       CONFIG_PSC3_USB
+                               for USB on PSC3
                        CONFIG_USB_CONFIG
                                for differential drivers: 0x00001000
                                for single ended drivers: 0x00005000
+                               for differential drivers on PSC3: 0x00000100
+                               for single ended drivers on PSC3: 0x00004100
                        CONFIG_SYS_USB_EVENT_POLL
                                May be defined to allow interrupt polling
                                instead of using asynchronous interrupts
@@ -1068,12 +1130,38 @@ The following options need to be configured:
                allows for a "silent" boot where a splash screen is
                loaded very quickly after power-on.
 
+               CONFIG_SPLASH_SCREEN_ALIGN
+
+               If this option is set the splash image can be freely positioned
+               on the screen. Environment variable "splashpos" specifies the
+               position as "x,y". If a positive number is given it is used as
+               number of pixel from left/top. If a negative number is given it
+               is used as number of pixel from right/bottom. You can also
+               specify 'm' for centering the image.
+
+               Example:
+               setenv splashpos m,m
+                       => image at center of screen
+
+               setenv splashpos 30,20
+                       => image at x = 30 and y = 20
+
+               setenv splashpos -10,m
+                       => vertically centered image
+                          at x = dspWidth - bmpWidth - 9
+
 - Gzip compressed BMP image support: CONFIG_VIDEO_BMP_GZIP
 
                If this option is set, additionally to standard BMP
                images, gzipped BMP images can be displayed via the
                splashscreen support or the bmp command.
 
+- Run length encoded BMP image (RLE8) support: CONFIG_VIDEO_BMP_RLE8
+
+               If this option is set, 8-bit RLE compressed BMP images
+               can be displayed via the splashscreen support or the
+               bmp command.
+
 - Compression support:
                CONFIG_BZIP2
 
@@ -1159,6 +1247,11 @@ The following options need to be configured:
                Defines a default value for the IP address of a TFTP
                server to contact when using the "tftboot" command.
 
+               CONFIG_KEEP_SERVERADDR
+
+               Keeps the server's MAC address, in the env 'serveraddr'
+               for passing to bootargs (like Linux's netconsole option)
+
 - Multicast TFTP Mode:
                CONFIG_MCAST_TFTP
 
@@ -1309,11 +1402,6 @@ The following options need to be configured:
                clock chips. See common/cmd_i2c.c for a description of the
                command line interface.
 
-               CONFIG_I2C_CMD_TREE is a recommended option that places
-               all I2C commands under a single 'i2c' root command.  The
-               older 'imm', 'imd', 'iprobe' etc. commands are considered
-               deprecated and may disappear in the future.
-
                CONFIG_HARD_I2C selects a hardware I2C controller.
 
                CONFIG_SOFT_I2C configures u-boot to use a software (aka
@@ -1328,10 +1416,18 @@ The following options need to be configured:
                to run and CONFIG_SYS_I2C_SLAVE to be the address of this node (ie
                the CPU's i2c node address).
 
-               Now, the u-boot i2c code for the mpc8xx (cpu/mpc8xx/i2c.c)
-               sets the CPU up as a master node and so its address should
-               therefore be cleared to 0 (See, eg, MPC823e User's Manual
-               p.16-473). So, set CONFIG_SYS_I2C_SLAVE to 0.
+               Now, the u-boot i2c code for the mpc8xx
+               (arch/powerpc/cpu/mpc8xx/i2c.c) sets the CPU up as a master node
+               and so its address should therefore be cleared to 0 (See,
+               eg, MPC823e User's Manual p.16-473). So, set
+               CONFIG_SYS_I2C_SLAVE to 0.
+
+               CONFIG_SYS_I2C_INIT_MPC5XXX
+
+               When a board is reset during an i2c bus transfer
+               chips might think that the current transfer is still
+               in progress.  Reset the slave devices by sending start
+               commands until the slave device responds.
 
                That's all that's required for CONFIG_HARD_I2C.
 
@@ -1413,6 +1509,17 @@ The following options need to be configured:
                custom i2c_init_board() routine in boards/xxx/board.c
                is run early in the boot sequence.
 
+               CONFIG_SYS_I2C_BOARD_LATE_INIT
+
+               An alternative to CONFIG_SYS_I2C_INIT_BOARD. If this option is
+               defined a custom i2c_board_late_init() routine in
+               boards/xxx/board.c is run AFTER the operations in i2c_init()
+               is completed. This callpoint can be used to unreset i2c bus
+               using CPU i2c controller register accesses for CPUs whose i2c
+               controller provide such a method. It is called at the end of
+               i2c_init() to allow i2c_init operations to setup the i2c bus
+               controller on the CPU (e.g. setting bus speed & slave address).
+
                CONFIG_I2CFAST (PPC405GP|PPC405EP only)
 
                This option enables configuration of bi_iic_fast[] flags
@@ -1429,9 +1536,9 @@ The following options need to be configured:
                CONFIG_SYS_I2C_NOPROBES
 
                This option specifies a list of I2C devices that will be skipped
-               when the 'i2c probe' command is issued (or 'iprobe' using the legacy
-               command).  If CONFIG_I2C_MULTI_BUS is set, specify a list of bus-device
-               pairs.  Otherwise, specify a 1D array of device addresses
+               when the 'i2c probe' command is issued.  If CONFIG_I2C_MULTI_BUS
+               is set, specify a list of bus-device pairs.  Otherwise, specify
+               a 1D array of device addresses
 
                e.g.
                        #undef  CONFIG_I2C_MULTI_BUS
@@ -1783,7 +1890,7 @@ The following options need to be configured:
 
                Note: overly (ab)use of the default environment is
                discouraged. Make sure to check other ways to preset
-               the environment like the autoscript function or the
+               the environment like the "source" command or the
                boot command first.
 
 - DataFlash Support:
@@ -1837,14 +1944,6 @@ The following options need to be configured:
                example, some LED's) on your board. At the moment,
                the following checkpoints are implemented:
 
-- Automatic software updates via TFTP server
-               CONFIG_UPDATE_TFTP
-               CONFIG_UPDATE_TFTP_CNT_MAX
-               CONFIG_UPDATE_TFTP_MSEC_MAX
-
-               These options enable and control the auto-update feature;
-               for a more detailed description refer to doc/README.update.
-
 Legacy uImage format:
 
   Arg  Where                   When
@@ -1876,9 +1975,9 @@ Legacy uImage format:
    13  common/image.c          Start multifile image verification
    14  common/image.c          No initial ramdisk, no multifile, continue.
 
-   15  lib_<arch>/bootm.c      All preparation done, transferring control to OS
+   15  arch/<arch>/lib/bootm.c All preparation done, transferring control to OS
 
-  -30  lib_ppc/board.c         Fatal error, hang the system
+  -30  arch/powerpc/lib/board.c        Fatal error, hang the system
   -31  post/post.c             POST test failed, detected by post_output_backlog()
   -32  post/post.c             POST test failed, detected by post_run_single()
 
@@ -1942,8 +2041,8 @@ Legacy uImage format:
    81  common/cmd_net.c        NetLoop() back without error
   -82  common/cmd_net.c        size == 0 (File with size 0 loaded)
    82  common/cmd_net.c        trying automatic boot
-   83  common/cmd_net.c        running autoscript
-  -83  common/cmd_net.c        some error in automatic boot or autoscript
+   83  common/cmd_net.c        running "source" command
+  -83  common/cmd_net.c        some error in automatic boot or "source" command
    84  common/cmd_net.c        end without errors
 
 FIT uImage format:
@@ -1998,6 +2097,25 @@ FIT uImage format:
  -150  common/cmd_nand.c       Incorrect FIT image format
   151  common/cmd_nand.c       FIT image format OK
 
+- Automatic software updates via TFTP server
+               CONFIG_UPDATE_TFTP
+               CONFIG_UPDATE_TFTP_CNT_MAX
+               CONFIG_UPDATE_TFTP_MSEC_MAX
+
+               These options enable and control the auto-update feature;
+               for a more detailed description refer to doc/README.update.
+
+- MTD Support (mtdparts command, UBI support)
+               CONFIG_MTD_DEVICE
+
+               Adds the MTD device infrastructure from the Linux kernel.
+               Needed for mtdparts command support.
+
+               CONFIG_MTD_PARTITIONS
+
+               Adds the MTD partitioning infrastructure from the Linux
+               kernel. Needed for UBI support.
+
 
 Modem Support:
 --------------
@@ -2380,6 +2498,19 @@ to save the current settings.
        - CONFIG_SYS_EEPROM_SIZE:
          The size in bytes of the EEPROM device.
 
+       - CONFIG_ENV_EEPROM_IS_ON_I2C
+         define this, if you have I2C and SPI activated, and your
+         EEPROM, which holds the environment, is on the I2C bus.
+
+       - CONFIG_I2C_ENV_EEPROM_BUS
+         if you have an Environment on an EEPROM reached over
+         I2C muxes, you can define here, how to reach this
+         EEPROM. For example:
+
+         #define CONFIG_I2C_ENV_EEPROM_BUS       "pca9547:70:d\0"
+
+         EEPROM which holds the environment, is reached over
+         a pca9547 i2c mux with address 0x70, channel 3.
 
 - CONFIG_ENV_IS_IN_DATAFLASH:
 
@@ -2416,6 +2547,12 @@ to save the current settings.
        to a block boundary, and CONFIG_ENV_SIZE must be a multiple of
        the NAND devices block size.
 
+- CONFIG_NAND_ENV_DST
+
+       Defines address in RAM to which the nand_spl code should copy the
+       environment. If redundant environment is used, it will be copied to
+       CONFIG_NAND_ENV_DST + CONFIG_ENV_SIZE.
+
 - CONFIG_SYS_SPI_INIT_OFFSET
 
        Defines offset to the initial SPI buffer area in DPRAM. The
@@ -2451,12 +2588,12 @@ use the "saveenv" command to store a valid environment.
 - CONFIG_SYS_FAULT_MII_ADDR:
                MII address of the PHY to check for the Ethernet link state.
 
-- CONFIG_SYS_64BIT_VSPRINTF:
-               Makes vsprintf (and all *printf functions) support printing
-               of 64bit values by using the L quantifier
-
-- CONFIG_SYS_64BIT_STRTOUL:
-               Adds simple_strtoull that returns a 64bit value
+- CONFIG_NS16550_MIN_FUNCTIONS:
+               Define this if you desire to only have use of the NS16550_init
+               and NS16550_putc functions for the serial driver located at
+               drivers/serial/ns16550.c.  This option is useful for saving
+               space for already greatly restricted images, including but not
+               limited to NAND_SPL configurations.
 
 Low Level (hardware related) configuration options:
 ---------------------------------------------------
@@ -2601,7 +2738,7 @@ Low Level (hardware related) configuration options:
   CONFIG_SYS_PCI_MSTR_MEMIO_SIZE, CONFIG_SYS_POCMR1_MASK_ATTRIB, CONFIG_SYS_PCI_MSTR_IO_LOCAL,
   CONFIG_SYS_PCI_MSTR_IO_BUS, CONFIG_SYS_CPU_PCI_IO_START, CONFIG_SYS_PCI_MSTR_IO_SIZE,
   CONFIG_SYS_POCMR2_MASK_ATTRIB: (MPC826x only)
-               Overrides the default PCI memory map in cpu/mpc8260/pci.c if set.
+               Overrides the default PCI memory map in arch/powerpc/cpu/mpc8260/pci.c if set.
 
 - CONFIG_PCI_DISABLE_PCIE:
                Disable PCI-Express on systems where it is supported but not
@@ -2623,10 +2760,6 @@ Low Level (hardware related) configuration options:
                Only for 83xx systems. If specified, then DDR should
                be configured using CS0 and CS1 instead of CS2 and CS3.
 
-- CONFIG_SYS_83XX_DDR_USES_CS0
-               Only for 83xx systems. If specified, then DDR should
-               be configured using CS0 and CS1 instead of CS2 and CS3.
-
 - CONFIG_ETHER_ON_FEC[12]
                Define to enable FEC[12] on a 8xx series processor.
 
@@ -2687,6 +2820,11 @@ Low Level (hardware related) configuration options:
                some other boot loader or by a debugger which
                performs these initializations itself.
 
+- CONFIG_PRELOADER
+
+               Modifies the behaviour of start.S when compiling a loader
+               that is executed before the actual U-Boot. E.g. when
+               compiling a NAND SPL.
 
 Building the Software:
 ======================
@@ -2707,6 +2845,16 @@ necessary. For example using the ELDK on a 4xx CPU, please enter:
        $ CROSS_COMPILE=ppc_4xx-
        $ export CROSS_COMPILE
 
+Note: If you wish to generate Windows versions of the utilities in
+      the tools directory you can use the MinGW toolchain
+      (http://www.mingw.org).  Set your HOST tools to the MinGW
+      toolchain and execute 'make tools'.  For example:
+
+       $ make HOSTCC=i586-mingw32msvc-gcc HOSTSTRIP=i586-mingw32msvc-strip tools
+
+      Binaries such as tools/mkimage.exe will be created which can
+      be executed on computers running Windows.
+
 U-Boot is intended to be simple to build. After installing the
 sources you must configure U-Boot for one specific board type. This
 is done by typing:
@@ -2852,14 +3000,7 @@ mw       - memory write (fill)
 cp     - memory copy
 cmp    - memory compare
 crc32  - checksum calculation
-imd    - i2c memory display
-imm    - i2c memory modify (auto-incrementing)
-inm    - i2c memory modify (constant address)
-imw    - i2c memory write (fill)
-icrc32 - i2c checksum calculation
-iprobe - probe to discover valid I2C chip addresses
-iloop  - infinite loop on address range
-isdram - print SDRAM configuration information
+i2c    - I2C sub-system
 sspi   - SPI utility commands
 base   - print or set address offset
 printenv- print environment variables
@@ -2905,7 +3046,9 @@ environment. As long as you don't save the environment you are
 working with an in-memory copy. In case the Flash area containing the
 environment is erased by accident, a default environment is provided.
 
-Some configuration options can be set using Environment Variables:
+Some configuration options can be set using Environment Variables.
+
+List of environment variables (most likely not complete):
 
   baudrate     - see CONFIG_BAUDRATE
 
@@ -2940,14 +3083,6 @@ Some configuration options can be set using Environment Variables:
                  configuration from the BOOTP server, but not try to
                  load any image using TFTP
 
-  autoscript   - if set to "yes" commands like "loadb", "loady",
-                 "bootp", "tftpb", "rarpboot" and "nfs" will attempt
-                 to automatically run script images (by internally
-                 calling "autoscript").
-
-  autoscript_uname - if script image is in a format (FIT) this
-                    variable is used to get script subimage unit name.
-
   autostart    - if set to "yes", an image loaded using the "bootp",
                  "rarpboot", "tftpboot" or "diskboot" commands will
                  be automatically started (by internally calling
@@ -3025,7 +3160,7 @@ Some configuration options can be set using Environment Variables:
                  available network interfaces.
                  It just stays at the currently selected interface.
 
-   netretry    - When set to "no" each network operation will
+  netretry     - When set to "no" each network operation will
                  either succeed or fail without retrying.
                  When set to "once" the network operation will
                  fail when all the available network interfaces
@@ -3041,7 +3176,18 @@ Some configuration options can be set using Environment Variables:
   tftpdstport  - If this is set, the value is used for TFTP's UDP
                  destination port instead of the Well Know Port 69.
 
-   vlan                - When set to a value < 4095 the traffic over
+  tftpblocksize - Block size to use for TFTP transfers; if not set,
+                 we use the TFTP server's default block size
+
+  tftptimeout  - Retransmission timeout for TFTP packets (in milli-
+                 seconds, minimum value is 1000 = 1 second). Defines
+                 when a packet is considered to be lost so it has to
+                 be retransmitted. The default is 5000 = 5 seconds.
+                 Lowering this value may make downloads succeed
+                 faster in networks with high packet loss rates or
+                 with unreliable TFTP servers.
+
+  vlan         - When set to a value < 4095 the traffic over
                  Ethernet is encapsulated/received over 802.1q
                  VLAN tagged frames.
 
@@ -3238,7 +3384,7 @@ configure the Linux device drivers for use with your target hardware
 (no, we don't intend to provide a full virtual machine interface to
 Linux :-).
 
-But now you can ignore ALL boot loader code (in arch/ppc/mbxboot).
+But now you can ignore ALL boot loader code (in arch/powerpc/mbxboot).
 
 Just make sure your machine specific header file (for instance
 include/asm-ppc/tqm8xx.h) includes the same definition of the Board
@@ -3336,7 +3482,7 @@ So a typical call to build a U-Boot image would read:
 
        -> tools/mkimage -n '2.4.4 kernel for TQM850L' \
        > -A ppc -O linux -T kernel -C gzip -a 0 -e 0 \
-       > -d /opt/elsk/ppc_8xx/usr/src/linux-2.4.4/arch/ppc/coffboot/vmlinux.gz \
+       > -d /opt/elsk/ppc_8xx/usr/src/linux-2.4.4/arch/powerpc/coffboot/vmlinux.gz \
        > examples/uImage.TQM850L
        Image Name:   2.4.4 kernel for TQM850L
        Created:      Wed Jul 19 02:34:59 2000
@@ -3360,10 +3506,10 @@ speed for memory and install an UNCOMPRESSED image instead: this
 needs more space in Flash, but boots much faster since it does not
 need to be uncompressed:
 
-       -> gunzip /opt/elsk/ppc_8xx/usr/src/linux-2.4.4/arch/ppc/coffboot/vmlinux.gz
+       -> gunzip /opt/elsk/ppc_8xx/usr/src/linux-2.4.4/arch/powerpc/coffboot/vmlinux.gz
        -> tools/mkimage -n '2.4.4 kernel for TQM850L' \
        > -A ppc -O linux -T kernel -C none -a 0 -e 0 \
-       > -d /opt/elsk/ppc_8xx/usr/src/linux-2.4.4/arch/ppc/coffboot/vmlinux \
+       > -d /opt/elsk/ppc_8xx/usr/src/linux-2.4.4/arch/powerpc/coffboot/vmlinux \
        > examples/uImage.TQM850L-uncompressed
        Image Name:   2.4.4 kernel for TQM850L
        Created:      Wed Jul 19 02:34:59 2000
@@ -3840,7 +3986,9 @@ For PowerPC, the following registers have specific use:
        R30:    GOT pointer
        R31:    frame pointer
 
-       (U-Boot also uses R14 as internal GOT pointer.)
+       (U-Boot also uses R12 as internal GOT pointer. r12
+       is a volatile register so r12 needs to be reset when
+       going back and forth between asm and C)
 
     ==> U-Boot will use R2 to hold a pointer to the global data
 
@@ -3851,10 +3999,10 @@ For PowerPC, the following registers have specific use:
     average for all boards 752 bytes for the whole U-Boot image,
     624 text + 127 data).
 
-On Blackfin, the normal C ABI (except for P5) is followed as documented here:
+On Blackfin, the normal C ABI (except for P3) is followed as documented here:
        http://docs.blackfin.uclinux.org/doku.php?id=application_binary_interface
 
-    ==> U-Boot will use P5 to hold a pointer to the global data
+    ==> U-Boot will use P3 to hold a pointer to the global data
 
 On ARM, the following registers are used:
 
@@ -3963,15 +4111,15 @@ U-Boot Porting Guide:
 list, October 2002]
 
 
-int main (int argc, char *argv[])
+int main(int argc, char *argv[])
 {
        sighandler_t no_more_time;
 
-       signal (SIGALRM, no_more_time);
-       alarm (PROJECT_DEADLINE - toSec (3 * WEEK));
+       signal(SIGALRM, no_more_time);
+       alarm(PROJECT_DEADLINE - toSec (3 * WEEK));
 
        if (available_money > available_manpower) {
-               pay consultant to port U-Boot;
+               Pay consultant to port U-Boot;
                return 0;
        }
 
@@ -3979,35 +4127,47 @@ int main (int argc, char *argv[])
 
        Subscribe to u-boot mailing list;
 
-       if (clueless) {
-               email ("Hi, I am new to U-Boot, how do I get started?");
-       }
+       if (clueless)
+               email("Hi, I am new to U-Boot, how do I get started?");
 
        while (learning) {
                Read the README file in the top level directory;
-               Read http://www.denx.de/twiki/bin/view/DULG/Manual ;
+               Read http://www.denx.de/twiki/bin/view/DULG/Manual;
+               Read applicable doc/*.README;
                Read the source, Luke;
+               /* find . -name "*.[chS]" | xargs grep -i <keyword> */
        }
 
-       if (available_money > toLocalCurrency ($2500)) {
-               Buy a BDI2000;
-       } else {
+       if (available_money > toLocalCurrency ($2500))
+               Buy a BDI3000;
+       else
                Add a lot of aggravation and time;
-       }
 
-       Create your own board support subdirectory;
-
-       Create your own board config file;
-
-       while (!running) {
-               do {
-                       Add / modify source code;
-               } until (compiles);
-               Debug;
-               if (clueless)
-                       email ("Hi, I am having problems...");
+       if (a similar board exists) {   /* hopefully... */
+               cp -a board/<similar> board/<myboard>
+               cp include/configs/<similar>.h include/configs/<myboard>.h
+       } else {
+               Create your own board support subdirectory;
+               Create your own board include/configs/<myboard>.h file;
+       }
+       Edit new board/<myboard> files
+       Edit new include/configs/<myboard>.h
+
+       while (!accepted) {
+               while (!running) {
+                       do {
+                               Add / modify source code;
+                       } until (compiles);
+                       Debug;
+                       if (clueless)
+                               email("Hi, I am having problems...");
+               }
+               Send patch file to the U-Boot email list;
+               if (reasonable critiques)
+                       Incorporate improvements from email list code review;
+               else
+                       Defend code as written;
        }
-       Send patch file to Wolfgang;
 
        return 0;
 }