]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - README
* Patches by Yuli Barcohen, 13 Jul 2003:
[people/ms/u-boot.git] / README
diff --git a/README b/README
index 06fade67fabaddef1c904a71b161327ef922937b..fc1d650136d5173f429fad170c9a8e09a98a92cf 100644 (file)
--- a/README
+++ b/README
@@ -151,6 +151,7 @@ Directory Hierarchy:
 - board/RPXClassic
                Files specific to RPXClassic boards
 - board/RPXlite        Files specific to RPXlite    boards
+- board/at91rm9200dk Files specific to AT91RM9200DK boards
 - board/c2mon  Files specific to c2mon      boards
 - board/cmi    Files specific to cmi        boards
 - board/cogent Files specific to Cogent     boards
@@ -300,6 +301,7 @@ The following options need to be configured:
        or      CONFIG_405GP
        or      CONFIG_440
        or      CONFIG_MPC74xx
+       or      CONFIG_750FX
 
                ARM based CPUs:
                ---------------
@@ -344,7 +346,7 @@ The following options need to be configured:
                CONFIG_IAD210,     CONFIG_RPXlite,    CONFIG_sbc8260,
                CONFIG_EBONY,      CONFIG_sacsng,     CONFIG_FPS860L,
                CONFIG_V37,        CONFIG_ELPT860,    CONFIG_CMI,
-               CONFIG_NETVIA
+               CONFIG_NETVIA,     CONFIG_RBC823
 
                ARM based boards:
                -----------------
@@ -352,7 +354,7 @@ The following options need to be configured:
                CONFIG_HHP_CRADLE,  CONFIG_DNP1110,    CONFIG_EP7312,
                CONFIG_IMPA7,       CONFIG_LART,       CONFIG_LUBBOCK,
                CONFIG_SHANNON,     CONFIG_SMDK2400,   CONFIG_SMDK2410,
-               CONFIG_TRAB
+               CONFIG_TRAB,        CONFIG_AT91RM9200DK
 
 
 - CPU Module Type: (if CONFIG_COGENT is defined)
@@ -565,6 +567,7 @@ The following options need to be configured:
                CFG_CMD_ELF       bootelf, bootvx
                CFG_CMD_ENV       saveenv
                CFG_CMD_FDC     * Floppy Disk Support
+               CFG_CMD_FAT       FAT partition support
                CFG_CMD_FDOS    * Dos diskette Support
                CFG_CMD_FLASH     flinfo, erase, protect
                CFG_CMD_FPGA      FPGA device initialization support
@@ -578,6 +581,7 @@ The following options need to be configured:
                CFG_CMD_LOADS     loads
                CFG_CMD_MEMORY    md, mm, nm, mw, cp, cmp, crc, base,
                                  loop, mtest
+               CFG_CMD_MMC       MMC memory mapped support
                CFG_CMD_MII       MII utility commands
                CFG_CMD_NET       bootp, tftpboot, rarpboot
                CFG_CMD_PCI     * pciinfo
@@ -649,6 +653,9 @@ The following options need to be configured:
                CONFIG_RTC_DS1338       - use Maxim, Inc. DS1338 RTC
                CONFIG_RTC_DS164x       - use Dallas DS164x RTC
 
+               Note that if the RTC uses I2C, then the I2C interface
+               must also be configured. See I2C Support, below.
+
 - Timestamp Support:
 
                When CONFIG_TIMESTAMP is selected, the timestamp
@@ -688,6 +695,9 @@ The following options need to be configured:
                CFG_SCSI_SYM53C8XX_CCF to fix clock timing (80Mhz)
 
 - NETWORK Support (PCI):
+               CONFIG_E1000
+               Support for Intel 8254x gigabit chips.
+
                CONFIG_EEPRO100
                Support for Intel 82557/82559/82559ER chips.
                Optional CONFIG_EEPRO100_SROM_WRITE enables eeprom
@@ -727,6 +737,14 @@ The following options need to be configured:
                Supported are USB Keyboards and USB Floppy drives
                (TEAC FD-05PUB).
 
+- MMC Support:
+               The MMC controller on the Intel PXA is supported. To
+               enable this define CONFIG_MMC. The MMC can be
+               accessed from the boot prompt by mapping the device
+               to physical memory similar to flash. Command line is
+               enabled with CFG_CMD_MMC. The MMC driver also works with
+               the FAT fs. This is enabled with CFG_CMD_FAT.
+
 - Keyboard Support:
                CONFIG_ISA_KEYBOARD
 
@@ -766,6 +784,13 @@ The following options need to be configured:
                and 16bpp modes defined by CONFIG_VIDEO_SED13806_8BPP
                or CONFIG_VIDEO_SED13806_16BPP
 
+- Keyboard Support:
+               CONFIG_KEYBOARD
+
+               Define this to enable a custom keyboard support.
+               This simply calls drv_keyboard_init() which must be
+               defined in your board-specific files.
+               The only board using this so far is RBC823.
 
 - LCD Support: CONFIG_LCD
 
@@ -812,14 +837,14 @@ The following options need to be configured:
 
 - Spash Screen Support: CONFIG_SPLASH_SCREEN
 
-                If this option is set, the environment is checked for
-                a variable "splashimage". If found, the usual display
-                of logo, copyright and system information on the LCD
-                is supressed and the BMP image at the address
-                specified in "splashimage" is loaded instead. The
-                console is redirected to the "nulldev", too. This
-                allows for a "silent" boot where a splash screen is
-                loaded very quickly after power-on.
+               If this option is set, the environment is checked for
+               a variable "splashimage". If found, the usual display
+               of logo, copyright and system information on the LCD
+               is supressed and the BMP image at the address
+               specified in "splashimage" is loaded instead. The
+               console is redirected to the "nulldev", too. This
+               allows for a "silent" boot where a splash screen is
+               loaded very quickly after power-on.
 
 
 - Ethernet address:
@@ -882,29 +907,48 @@ The following options need to be configured:
 
 - I2C Support: CONFIG_HARD_I2C | CONFIG_SOFT_I2C
 
-               Enables I2C serial bus commands.  If this is selected,
-               either CONFIG_HARD_I2C or CONFIG_SOFT_I2C must be defined
-               to include the appropriate I2C driver.
+               These enable I2C serial bus commands. Defining either of
+               (but not both of) CONFIG_HARD_I2C or CONFIG_SOFT_I2C will 
+               include the appropriate I2C driver for the selected cpu. 
 
-               See also: common/cmd_i2c.c for a description of the
+               This will allow you to use i2c commands at the u-boot 
+               command line (as long as you set CFG_CMD_I2C in 
+               CONFIG_COMMANDS) and communicate with i2c based realtime
+               clock chips. See common/cmd_i2c.c for a description of the
                command line interface.
 
+               CONFIG_HARD_I2C selects the CPM hardware driver for I2C. 
 
-               CONFIG_HARD_I2C
+               CONFIG_SOFT_I2C configures u-boot to use a software (aka 
+               bit-banging) driver instead of CPM or similar hardware
+               support for I2C.
 
-               Selects the CPM hardware driver for I2C.
+               There are several other quantities that must also be 
+               defined when you define CONFIG_HARD_I2C or CONFIG_SOFT_I2C.
 
-               CONFIG_SOFT_I2C
+               In both cases you will need to define CFG_I2C_SPEED
+               to be the frequency (in Hz) at which you wish your i2c bus 
+               to run and CFG_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 CFG_I2C_SLAVE to 0.  
 
-               Use software (aka bit-banging) driver instead of CPM
-               or similar hardware support for I2C.  This is configured
-               via the following defines.
+               That's all that's required for CONFIG_HARD_I2C. 
+
+               If you use the software i2c interface (CONFIG_SOFT_I2C)
+               then the following macros need to be defined (examples are
+               from include/configs/lwmon.h):
 
                I2C_INIT
 
-               (Optional). Any commands necessary to enable I2C
+               (Optional). Any commands necessary to enable the I2C
                controller or configure ports.
 
+               eg: #define I2C_INIT (immr->im_cpm.cp_pbdir |=  PB_SCL)
+
                I2C_PORT
 
                (Only for MPC8260 CPU). The I/O port to use (the code
@@ -917,43 +961,60 @@ The following options need to be configured:
                (driven).  If the data line is open collector, this
                define can be null.
 
+               eg: #define I2C_ACTIVE (immr->im_cpm.cp_pbdir |=  PB_SDA)
+
                I2C_TRISTATE
 
                The code necessary to make the I2C data line tri-stated
                (inactive).  If the data line is open collector, this
                define can be null.
 
+               eg: #define I2C_TRISTATE (immr->im_cpm.cp_pbdir &= ~PB_SDA)
+
                I2C_READ
 
                Code that returns TRUE if the I2C data line is high,
                FALSE if it is low.
 
+               eg: #define I2C_READ ((immr->im_cpm.cp_pbdat & PB_SDA) != 0)
+
                I2C_SDA(bit)
 
                If <bit> is TRUE, sets the I2C data line high. If it
                is FALSE, it clears it (low).
 
+               eg: #define I2C_SDA(bit) \
+                        if(bit) immr->im_cpm.cp_pbdat |=  PB_SDA; \
+                        else    immr->im_cpm.cp_pbdat &= ~PB_SDA
+
                I2C_SCL(bit)
 
                If <bit> is TRUE, sets the I2C clock line high. If it
                is FALSE, it clears it (low).
 
+               eg: #define I2C_SCL(bit) \
+                        if(bit) immr->im_cpm.cp_pbdat |=  PB_SCL; \
+                        else    immr->im_cpm.cp_pbdat &= ~PB_SCL 
+
                I2C_DELAY
 
                This delay is invoked four times per clock cycle so this
                controls the rate of data transfer.  The data rate thus
-               is 1 / (I2C_DELAY * 4).
+               is 1 / (I2C_DELAY * 4). Often defined to be something
+               like: 
+               
+               #define I2C_DELAY  udelay(2)
 
                CFG_I2C_INIT_BOARD
 
-                When a board is reset during an i2c bus transfer
-                chips might think that the current transfer is still
-                in progress. On some boards it is possible to access
-                the i2c SCLK line directly, either by using the
-                processor pin as a GPIO or by having a second pin
-                connected to the bus. If this option is defined a
-                custom i2c_init_board() routine in boards/xxx/board.c
-                is run early in the boot sequence.
+               When a board is reset during an i2c bus transfer
+               chips might think that the current transfer is still
+               in progress. On some boards it is possible to access
+               the i2c SCLK line directly, either by using the
+               processor pin as a GPIO or by having a second pin
+               connected to the bus. If this option is defined a
+               custom i2c_init_board() routine in boards/xxx/board.c
+               is run early in the boot sequence.
 
 - SPI Support: CONFIG_SPI
 
@@ -984,9 +1045,9 @@ The following options need to be configured:
 
                Used to specify the types of FPGA devices. For
                example,
-               #define CONFIG_FPGA  CFG_XILINX_VIRTEX2
+               #define CONFIG_FPGA  CFG_XILINX_VIRTEX2
 
-               CFG_FPGA_PROG_FEEDBACK
+               CFG_FPGA_PROG_FEEDBACK
 
                Enable printing of hash marks during FPGA
                configuration.
@@ -1032,16 +1093,16 @@ The following options need to be configured:
 
 - FPGA Support:        CONFIG_FPGA_COUNT
 
-               Specify the number of FPGA devices to support.
+               Specify the number of FPGA devices to support.
 
-               CONFIG_FPGA
+               CONFIG_FPGA
 
-               Used to specify the types of FPGA devices.  For example,
-               #define CONFIG_FPGA  CFG_XILINX_VIRTEX2
+               Used to specify the types of FPGA devices.  For example,
+               #define CONFIG_FPGA  CFG_XILINX_VIRTEX2
 
-               CFG_FPGA_PROG_FEEDBACK
+               CFG_FPGA_PROG_FEEDBACK
 
-               Enable printing of hash marks during FPGA configuration.
+               Enable printing of hash marks during FPGA configuration.
 
                CFG_FPGA_CHECK_BUSY
 
@@ -1183,13 +1244,13 @@ The following options need to be configured:
 
        Note:
 
-                In the current implementation, the local variables
-                space and global environment variables space are
-                separated. Local variables are those you define by
-                simply typing `name=value'. To access a local
-                variable later on, you have write `$name' or
-                `${name}'; to execute the contents of a variable
-                directly type `$name' at the command prompt.
+               In the current implementation, the local variables
+               space and global environment variables space are
+               separated. Local variables are those you define by
+               simply typing `name=value'. To access a local
+               variable later on, you have write `$name' or
+               `${name}'; to execute the contents of a variable
+               directly type `$name' at the command prompt.
 
                Global environment variables are those you use
                setenv/printenv to work with. To run a command stored
@@ -1228,6 +1289,13 @@ The following options need to be configured:
                the environment like the autoscript function or the
                boot command first.
 
+- DataFlash Support
+               CONFIG_HAS_DATAFLASH
+
+               Defining this option enables DataFlash features and
+               allows to read/write in Dataflash via the standard
+               commands cp, md...
+
 - Show boot progress
                CONFIG_SHOW_BOOT_PROGRESS
 
@@ -1320,8 +1388,6 @@ Modem Support:
                See also: doc/README.Modem
 
 
-
-
 Configuration Settings:
 -----------------------
 
@@ -1345,16 +1411,16 @@ Configuration Settings:
                List of legal baudrate settings for this board.
 
 - CFG_CONSOLE_INFO_QUIET
-               Suppress display of console information at boot.
+               Suppress display of console information at boot.
 
 - CFG_CONSOLE_IS_IN_ENV
-               If the board specific function
-                       extern int overwrite_console (void);
-               returns 1, the stdin, stderr and stdout are switched to the
+               If the board specific function
+                       extern int overwrite_console (void);
+               returns 1, the stdin, stderr and stdout are switched to the
                serial port, else the settings in the environment are used.
 
 - CFG_CONSOLE_OVERWRITE_ROUTINE
-               Enable the call to overwrite_console().
+               Enable the call to overwrite_console().
 
 - CFG_CONSOLE_ENV_OVERWRITE
                Enable overwrite of previous console environment settings.
@@ -1364,7 +1430,7 @@ Configuration Settings:
                simple memory test.
 
 - CFG_ALT_MEMTEST:
-               Enable an alternate, more extensive memory test.
+               Enable an alternate, more extensive memory test.
 
 - CFG_TFTP_LOADADDR:
                Default load address for network file downloads
@@ -1389,10 +1455,10 @@ Configuration Settings:
                CFG_FLASH_BASE when booting from flash.
 
 - CFG_MONITOR_LEN:
-                Size of memory reserved for monitor code, used to
-                determine _at_compile_time_ (!) if the environment is
-                embedded within the U-Boot image, or in a separate
-                flash sector.
+               Size of memory reserved for monitor code, used to
+               determine _at_compile_time_ (!) if the environment is
+               embedded within the U-Boot image, or in a separate
+               flash sector.
 
 - CFG_MALLOC_LEN:
                Size of DRAM reserved for malloc() use.
@@ -1415,6 +1481,16 @@ Configuration Settings:
 - CFG_FLASH_WRITE_TOUT:
                Timeout for Flash write operations (in ms)
 
+- CFG_FLASH_LOCK_TOUT
+               Timeout for Flash set sector lock bit operation (in ms)
+
+- CFG_FLASH_UNLOCK_TOUT
+               Timeout for Flash clear lock bits operation (in ms)
+
+- CFG_FLASH_PROTECTION
+               If defined, hardware flash sectors protection is used
+               instead of U-Boot software protection.
+
 - CFG_DIRECT_FLASH_TFTP:
 
                Enable TFTP transfers directly to flash memory;
@@ -1432,6 +1508,14 @@ Configuration Settings:
                Define if the flash driver uses extra elements in the
                common flash structure for storing flash geometry
 
+- CFG_RX_ETH_BUFFER:
+               Defines the number of ethernet receive buffers. On some
+               ethernet controllers it is recommended to set this value
+               to 8 or even higher (EEPRO100 or 405 EMAC), since all
+               buffers can be full shortly after enabling the interface
+               on high ethernet traffic.
+               Defaults to 4 if not defined.
+
 The following definitions that deal with the placement and management
 of environment data (variable area); in general, we support the
 following configurations:
@@ -1773,6 +1857,7 @@ configurations; the following names are supported:
     GENIETV_config       TQM823L_config        PIP405_config
     GEN860T_config       EBONY_config          FPS860L_config
     ELPT860_config       cmi_mpc5xx_config     NETVIA_config
+    at91rm9200dk_config
 
 Note: for some board special configuration names may exist; check  if
       additional  information is available from the board vendor; for
@@ -1804,7 +1889,6 @@ Note: for some board special configuration names may exist; check  if
       etc.
 
 
-
 Finally, type "make all", and you should get some working U-Boot
 images ready for downlod to / installation on your system:
 
@@ -1868,7 +1952,6 @@ or to build on a native PowerPC system you can type
 See also "U-Boot Porting Guide" below.
 
 
-
 Monitor Commands - Overview:
 ============================
 
@@ -1991,13 +2074,13 @@ Some configuration options can be set using Environment Variables:
 
                  setenv initrd_high 00c00000
 
-                  If you set initrd_high to 0xFFFFFFFF, this is an
-                  indication to U-Boot that all addresses are legal
-                  for the Linux kernel, including addresses in flash
-                  memory. In this case U-Boot will NOT COPY the
-                  ramdisk at all. This may be useful to reduce the
-                  boot time on your system, but requires that this
-                  feature is supported by your Linux kernel.
+                 If you set initrd_high to 0xFFFFFFFF, this is an
+                 indication to U-Boot that all addresses are legal
+                 for the Linux kernel, including addresses in flash
+                 memory. In this case U-Boot will NOT COPY the
+                 ramdisk at all. This may be useful to reduce the
+                 boot time on your system, but requires that this
+                 feature is supported by your Linux kernel.
 
   ipaddr       - IP address; needed for tftpboot command
 
@@ -2127,7 +2210,6 @@ o If neither SROM nor the environment contain a MAC address, an error
   is raised.
 
 
-
 Image Formats:
 ==============
 
@@ -2390,7 +2472,6 @@ corruption happened:
           Verifying Checksum ... OK
 
 
-
 Boot Linux:
 -----------
 
@@ -2480,39 +2561,39 @@ More About U-Boot Image Types:
 U-Boot supports the following image types:
 
    "Standalone Programs" are directly runnable in the environment
-       provided by U-Boot; it is expected that (if they behave
-       well) you can continue to work in U-Boot after return from
-       the Standalone Program.
+       provided by U-Boot; it is expected that (if they behave
+       well) you can continue to work in U-Boot after return from
+       the Standalone Program.
    "OS Kernel Images" are usually images of some Embedded OS which
-       will take over control completely. Usually these programs
-       will install their own set of exception handlers, device
-       drivers, set up the MMU, etc. - this means, that you cannot
-       expect to re-enter U-Boot except by resetting the CPU.
+       will take over control completely. Usually these programs
+       will install their own set of exception handlers, device
+       drivers, set up the MMU, etc. - this means, that you cannot
+       expect to re-enter U-Boot except by resetting the CPU.
    "RAMDisk Images" are more or less just data blocks, and their
-       parameters (address, size) are passed to an OS kernel that is
-       being started.
+       parameters (address, size) are passed to an OS kernel that is
+       being started.
    "Multi-File Images" contain several images, typically an OS
-       (Linux) kernel image and one or more data images like
-       RAMDisks. This construct is useful for instance when you want
-       to boot over the network using BOOTP etc., where the boot
-       server provides just a single image file, but you want to get
-       for instance an OS kernel and a RAMDisk image.
-
-       "Multi-File Images" start with a list of image sizes, each
-       image size (in bytes) specified by an "uint32_t" in network
-       byte order. This list is terminated by an "(uint32_t)0".
-       Immediately after the terminating 0 follow the images, one by
-       one, all aligned on "uint32_t" boundaries (size rounded up to
-       a multiple of 4 bytes).
+       (Linux) kernel image and one or more data images like
+       RAMDisks. This construct is useful for instance when you want
+       to boot over the network using BOOTP etc., where the boot
+       server provides just a single image file, but you want to get
+       for instance an OS kernel and a RAMDisk image.
+
+       "Multi-File Images" start with a list of image sizes, each
+       image size (in bytes) specified by an "uint32_t" in network
+       byte order. This list is terminated by an "(uint32_t)0".
+       Immediately after the terminating 0 follow the images, one by
+       one, all aligned on "uint32_t" boundaries (size rounded up to
+       a multiple of 4 bytes).
 
    "Firmware Images" are binary images containing firmware (like
-       U-Boot or FPGA images) which usually will be programmed to
-       flash memory.
+       U-Boot or FPGA images) which usually will be programmed to
+       flash memory.
 
    "Script files" are command sequences that will be executed by
-       U-Boot's command interpreter; this feature is especially
-       useful when you configure U-Boot to use a real shell (hush)
-       as command interpreter.
+       U-Boot's command interpreter; this feature is especially
+       useful when you configure U-Boot to use a real shell (hush)
+       as command interpreter.
 
 
 Standalone HOWTO:
@@ -2603,7 +2684,6 @@ Hit 'q':
        [q, b, e, ?] ## Application terminated, rc = 0x0
 
 
-
 Minicom warning:
 ================
 
@@ -2614,6 +2694,14 @@ Unix, I recommend to use C-Kermit for general purpose use (and
 especially for kermit binary protocol download ("loadb" command), and
 use "cu" for S-Record download ("loads" command).
 
+Nevertheless, if you absolutely want to use it try adding this
+configuration to your "File transfer protocols" section:
+
+          Name    Program                      Name U/D FullScr IO-Red. Multi
+       X  kermit  /usr/bin/kermit -i -l %l -s   Y    U    Y       N      N
+       Y  kermit  /usr/bin/kermit -i -l %l -r   N    D    Y       N      N
+
+
 NetBSD Notes:
 =============
 
@@ -2767,7 +2855,6 @@ On ARM, the following registers are used:
     ==> U-Boot will use R8 to hold a pointer to the global data
 
 
-
 Memory Management:
 ------------------
 
@@ -2913,7 +3000,6 @@ void no_more_time (int sig)
 }
 
 
-
 Coding Standards:
 -----------------
 
@@ -2965,6 +3051,13 @@ it:
   We accept patches as plain text, MIME attachments or as uuencoded
   gzipped text.
 
+* If one logical set of modifications affects or creates several
+  files, all these changes shall be submitted in a SINGLE patch file.
+
+* Changesets that contain different, unrelated modifications shall be
+  submitted as SEPARATE patches, one patch per changeset.
+
+
 Notes:
 
 * Before sending the patch, run the MAKEALL script on your patched