Skip to content
Snippets Groups Projects
README 90.6 KiB
Newer Older
  • Learn to ignore specific revisions
  • Wolfgang Denk's avatar
    Wolfgang Denk committed
    #
    # (C) Copyright 2000 - 2002
    # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
    #
    # See file CREDITS for list of people who contributed to this
    # project.
    #
    # This program is free software; you can redistribute it and/or
    # modify it under the terms of the GNU General Public License as
    # published by the Free Software Foundation; either version 2 of
    # the License, or (at your option) any later version.
    #
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the
    # GNU General Public License for more details.
    #
    # You should have received a copy of the GNU General Public License
    # along with this program; if not, write to the Free Software
    # Foundation, Inc., 59 Temple Place, Suite 330, Boston,
    # MA 02111-1307 USA
    #
    
    Summary:
    ========
    
    
    This directory contains the source code for U-Boot, a boot loader for
    Embedded boards based on PowerPC and ARM processors, which can be
    installed in a boot ROM and used to initialize and test the hardware
    or to download and run application code.
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    The development of U-Boot is closely related to Linux: some parts of
    
    the source code originate in the Linux source tree, we have some
    header files in common, and special provision has been made to
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    support booting of Linux images.
    
    Some attention has been paid to make this software easily
    configurable and extendable. For instance, all monitor commands are
    implemented with the same call interface, so that it's very easy to
    add new commands. Also, instead of permanently adding rarely used
    code (for instance hardware test utilities) to the monitor, you can
    load and run it dynamically.
    
    
    Status:
    =======
    
    In general, all boards for which a configuration option exists in the
    
    Makefile have been tested to some extent and can be considered
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    "working". In fact, many of them are used in production systems.
    
    
    In case of problems see the CHANGELOG and CREDITS files to find out
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    who contributed the specific port.
    
    
    Where to get help:
    ==================
    
    
    In case you have questions about, problems with or contributions for
    U-Boot you should send a message to the U-Boot mailing list at
    <u-boot-users@lists.sourceforge.net>. There is also an archive of
    previous traffic on the mailing list - please search the archive
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    before asking FAQ's. Please see
    http://lists.sourceforge.net/lists/listinfo/u-boot-users/
    
    
    Where we come from:
    ===================
    
    - start from 8xxrom sources
    
    - create PPCBoot project (http://sourceforge.net/projects/ppcboot)
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    - clean up code
    - make it easier to add custom boards
    - make it possible to add other [PowerPC] CPUs
    - extend functions, especially:
      * Provide extended interface to Linux boot loader
      * S-Record download
      * network boot
      * PCMCIA / CompactFLash / ATA disk / SCSI ... boot
    
    - create ARMBoot project (http://sourceforge.net/projects/armboot)
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    - add other CPU families (starting with ARM)
    
    - create U-Boot project (http://sourceforge.net/projects/u-boot)
    
    
    Names and Spelling:
    ===================
    
    The "official" name of this project is "Das U-Boot". The spelling
    "U-Boot" shall be used in all written text (documentation, comments
    in source files etc.). Example:
    
    	This is the README file for the U-Boot project.
    
    File names etc. shall be based on the string "u-boot". Examples:
    
    	include/asm-ppc/u-boot.h
    
    	#include <asm/u-boot.h>
    
    Variable names, preprocessor constants etc. shall be either based on
    the string "u_boot" or on "U_BOOT". Example:
    
    	U_BOOT_VERSION		u_boot_logo
    	IH_OS_U_BOOT		u_boot_hush_start
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    
    Directory Hierarchy:
    ====================
    
    - board		Board dependend files
    - common	Misc architecture independend functions
    - cpu		CPU specific files
    - disk		Code for disk drive partition handling
    - doc		Documentation (don't expect too much)
    - drivers	Common used device drivers
    - dtt		Digital Thermometer and Thermostat drivers
    - examples	Example code for standalone applications, etc.
    - include	Header Files
    - disk		Harddisk interface code
    - net		Networking code
    - ppc		Files generic to PowerPC architecture
    - post		Power On Self Test
    - post/arch		Symlink to architecture specific Power On Self Test
    - post/arch-ppc		PowerPC architecture specific Power On Self Test
    - post/cpu/mpc8260	MPC8260 CPU specific Power On Self Test
    - post/cpu/mpc8xx	MPC8xx CPU specific Power On Self Test
    - rtc		Real Time Clock drivers
    - tools		Tools to build S-Record or U-Boot images, etc.
    
    - cpu/74xx_7xx	Files specific to Motorola MPC74xx and 7xx CPUs
    - cpu/mpc8xx	Files specific to Motorola MPC8xx  CPUs
    - cpu/mpc824x	Files specific to Motorola MPC824x CPUs
    - cpu/mpc8260	Files specific to Motorola MPC8260 CPU
    - cpu/ppc4xx	Files specific to IBM	   4xx	   CPUs
    
    - board/RPXClassic
    		Files specific to RPXClassic boards
    - board/RPXlite	Files specific to RPXlite    boards
    - board/c2mon	Files specific to c2mon	     boards
    - board/cogent	Files specific to Cogent     boards
    		(need further configuration)
    		Files specific to CPCIISER4  boards
    - board/cpu86	Files specific to CPU86      boards
    - board/cray/	Files specific to boards manufactured by Cray
    - board/cray/L1		Files specific to L1         boards
    - board/cu824	Files specific to CU824	     boards
    - board/ebony   Files specific to IBM Ebony board
    - board/eric	Files specific to ERIC	     boards
    - board/esd/	Files specific to boards manufactured by ESD
    - board/esd/adciop	Files specific to ADCIOP     boards
    - board/esd/ar405	Files specific to AR405	     boards
    - board/esd/canbt	Files specific to CANBT	     boards
    - board/esd/cpci405	Files specific to CPCI405    boards
    - board/esd/cpciiser4	Files specific to CPCIISER4  boards
    - board/esd/common	Common files for ESD boards
    - board/esd/dasa_sim	Files specific to DASA_SIM   boards
    - board/esd/du405	Files specific to DU405      boards
    - board/esd/ocrtc	Files specific to OCRTC      boards
    - board/esd/pci405	Files specific to PCI405     boards
    - board/esteem192e
    		Files specific to ESTEEM192E boards
    - board/etx094	Files specific to ETX_094    boards
    - board/evb64260
    		Files specific to EVB64260   boards
    - board/fads	Files specific to FADS	     boards
    - board/flagadm Files specific to FLAGADM    boards
    - board/gen860t Files specific to GEN860T    boards
    - board/genietv Files specific to GENIETV    boards
    - board/gth	Files specific to GTH	     boards
    - board/hermes	Files specific to HERMES     boards
    - board/hymod	Files specific to HYMOD	     boards
    - board/icu862	Files specific to ICU862     boards
    - board/ip860	Files specific to IP860	     boards
    - board/iphase4539
    		Files specific to Interphase4539 boards
    - board/ivm	Files specific to IVMS8/IVML24 boards
    - board/lantec	Files specific to LANTEC     boards
    - board/lwmon	Files specific to LWMON	     boards
    - board/mbx8xx	Files specific to MBX	     boards
    - board/mpc8260ads
    		Files specific to MMPC8260ADS boards
    - board/mpl/	Files specific to boards manufactured by MPL
    - board/mpl/common	Common files for MPL boards
    - board/mpl/pip405	Files specific to PIP405     boards
    - board/mpl/mip405	Files specific to MIP405     boards
    - board/musenki	Files specific to MUSEKNI    boards
    - board/mvs1	Files specific to MVS1       boards
    - board/nx823   Files specific to NX823      boards
    - board/oxc	Files specific to OXC        boards
    - board/pcippc2	Files specific to PCIPPC2/PCIPPC6 boards
    - board/pm826	Files specific to PM826      boards
    - board/ppmc8260
    		Files specific to PPMC8260   boards
    - board/rpxsuper
    		Files specific to RPXsuper   boards
    - board/rsdproto
    		Files specific to RSDproto   boards
    - board/sandpoint
    		Files specific to Sandpoint  boards
    - board/sbc8260	Files specific to SBC8260    boards
    - board/sacsng	Files specific to SACSng     boards
    - board/siemens Files specific to boards manufactured by Siemens AG
    - board/siemens/CCM	Files specific to CCM	     boards
    - board/siemens/IAD210	Files specific to IAD210     boards
    - board/siemens/SCM	Files specific to SCM        boards
    - board/siemens/pcu_e	Files specific to PCU_E	     boards
    - board/sixnet	Files specific to SIXNET     boards
    - board/spd8xx	Files specific to SPD8xxTS   boards
    - board/tqm8260 Files specific to TQM8260    boards
    - board/tqm8xx	Files specific to TQM8xxL    boards
    - board/w7o	Files specific to W7O        boards
    - board/walnut405
    		Files specific to Walnut405  boards
    - board/westel/	Files specific to boards manufactured by Westel Wireless
    - board/westel/amx860	Files specific to AMX860     boards
    - board/utx8245	Files specific to UTX8245   boards
    
    Software Configuration:
    =======================
    
    Configuration is usually done using C preprocessor defines; the
    rationale behind that is to avoid dead code whenever possible.
    
    There are two classes of configuration variables:
    
    * Configuration _OPTIONS_:
      These are selectable by the user and have names beginning with
      "CONFIG_".
    
    * Configuration _SETTINGS_:
      These depend on the hardware etc. and should not be meddled with if
      you don't know what you're doing; they have names beginning with
      "CFG_".
    
    Later we will add a configuration tool - probably similar to or even
    identical to what's used for the Linux kernel. Right now, we have to
    do the configuration by hand, which means creating some symbolic
    links and editing some configuration files. We use the TQM8xxL boards
    as an example here.
    
    
    Selection of Processor Architecture and Board Type:
    ---------------------------------------------------
    
    For all supported boards there are ready-to-use default
    configurations available; just type "make <board_name>_config".
    
    Example: For a TQM823L module type:
    
    	cd u-boot
    	make TQM823L_config
    
    For the Cogent platform, you need to specify the cpu type as well;
    e.g. "make cogent_mpc8xx_config". And also configure the cogent
    directory according to the instructions in cogent/README.
    
    
    Configuration Options:
    ----------------------
    
    Configuration depends on the combination of board and CPU type; all
    such information is kept in a configuration file
    "include/configs/<board_name>.h".
    
    Example: For a TQM823L module, all configuration settings are in
    "include/configs/TQM823L.h".
    
    
    The following options need to be configured:
    
    - CPU Type:	Define exactly one of
    
    		PowerPC based CPUs:
    		-------------------
    		CONFIG_MPC823,	CONFIG_MPC850,	CONFIG_MPC855,	CONFIG_MPC860
    	or	CONFIG_MPC824X, CONFIG_MPC8260
    	or	CONFIG_IOP480
    	or	CONFIG_405GP
    	or	CONFIG_440
    	or	CONFIG_MPC74xx
    
    		ARM based CPUs:
    		---------------
    		CONFIG_SA1110
    		CONFIG_ARM7
    		CONFIG_PXA250
    
    
    - Board Type:	Define exactly one of
    
    		PowerPC based boards:
    		---------------------
    
    		CONFIG_ADCIOP,     CONFIG_ICU862      CONFIG_RPXsuper,
    		CONFIG_ADS860,     CONFIG_IP860,      CONFIG_SM850,
    		CONFIG_AMX860,     CONFIG_IPHASE4539, CONFIG_SPD823TS,
    		CONFIG_AR405,      CONFIG_IVML24,     CONFIG_SXNI855T,
    		CONFIG_BAB7xx,     CONFIG_IVML24_128, CONFIG_Sandpoint8240,
    		CONFIG_CANBT,      CONFIG_IVML24_256, CONFIG_Sandpoint8245,
    		CONFIG_CCM,        CONFIG_IVMS8,      CONFIG_TQM823L,
    		CONFIG_CPCI405,    CONFIG_IVMS8_128,  CONFIG_TQM850L,
    		CONFIG_CPCI4052,   CONFIG_IVMS8_256,  CONFIG_TQM855L,
    		CONFIG_CPCIISER4,  CONFIG_LANTEC,     CONFIG_TQM860L,
    		CONFIG_CPU86,      CONFIG_MBX,        CONFIG_TQM8260,
    		CONFIG_CRAYL1,     CONFIG_MBX860T,    CONFIG_TTTech,
    		CONFIG_CU824,      CONFIG_MHPC,       CONFIG_UTX8245,
    		CONFIG_DASA_SIM,   CONFIG_MIP405,     CONFIG_W7OLMC,
    		CONFIG_DU405,      CONFIG_MOUSSE,     CONFIG_W7OLMG,
    		CONFIG_ELPPC,      CONFIG_MPC8260ADS, CONFIG_WALNUT405,
    		CONFIG_ERIC,       CONFIG_MUSENKI,    CONFIG_ZUMA,
    		CONFIG_ESTEEM192E, CONFIG_MVS1,       CONFIG_c2mon,
    		CONFIG_ETX094,     CONFIG_NX823,      CONFIG_cogent_mpc8260,
    		CONFIG_EVB64260,   CONFIG_OCRTC,      CONFIG_cogent_mpc8xx,
    		CONFIG_FADS823,    CONFIG_ORSG,       CONFIG_ep8260,
    		CONFIG_FADS850SAR, CONFIG_OXC,        CONFIG_gw8260,
    		CONFIG_FADS860T,   CONFIG_PCI405,     CONFIG_hermes,
    		CONFIG_FLAGADM,    CONFIG_PCIPPC2,    CONFIG_hymod,
    		CONFIG_FPS850L,    CONFIG_PCIPPC6,    CONFIG_lwmon,
    		CONFIG_GEN860T,    CONFIG_PIP405,     CONFIG_pcu_e,
    		CONFIG_GENIETV,    CONFIG_PM826,      CONFIG_ppmc8260,
    		CONFIG_GTH,        CONFIG_RPXClassic, CONFIG_rsdproto,
    		CONFIG_IAD210,     CONFIG_RPXlite,    CONFIG_sbc8260,
    
    		CONFIG_EBONY,      CONFIG_sacsng,     CONFIG_FPS860L
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000
    
    		ARM based boards:
    		-----------------
    
    		CONFIG_HHP_CRADLE,  CONFIG_DNP1110,    CONFIG_EP7312,
    		CONFIG_IMPA7,       CONFIG_LART,       CONFIG_LUBBOCK,
    		CONFIG_SHANNON,     CONFIG_SMDK2400,   CONFIG_SMDK2410,
    		CONFIG_TRAB
    
    
    - CPU Module Type: (if CONFIG_COGENT is defined)
    		Define exactly one of
    		CONFIG_CMA286_60_OLD
    --- FIXME --- not tested yet:
    		CONFIG_CMA286_60, CONFIG_CMA286_21, CONFIG_CMA286_60P,
    		CONFIG_CMA287_23, CONFIG_CMA287_50
    
    - Motherboard Type: (if CONFIG_COGENT is defined)
    		Define exactly one of
    		CONFIG_CMA101, CONFIG_CMA102
    
    - Motherboard I/O Modules: (if CONFIG_COGENT is defined)
    		Define one or more of
    		CONFIG_CMA302
    
    - Motherboard Options: (if CONFIG_CMA101 or CONFIG_CMA102 are defined)
    		Define one or more of
    		CONFIG_LCD_HEARTBEAT	- update a character position on
    					  the lcd display every second with
    					  a "rotator" |\-/|\-/
    
    - MPC824X Family Member (if CONFIG_MPC824X is defined)
    	Define exactly one of
    	CONFIG_MPC8240, CONFIG_MPC8245
    
    - 8xx CPU Options: (if using an 8xx cpu)
    		Define one or more of
    		CONFIG_8xx_GCLK_FREQ	- if get_gclk_freq() can not work e.g.
    					  no 32KHz reference PIT/RTC clock
    
    - Clock Interface:
    		CONFIG_CLOCKS_IN_MHZ
    
    		U-Boot stores all clock information in Hz
    		internally. For binary compatibility with older Linux
    		kernels (which expect the clocks passed in the
    		bd_info data to be in MHz) the environment variable
    		"clocks_in_mhz" can be defined so that U-Boot
    		converts clock data to MHZ before passing it to the
    		Linux kernel.
    
    		When CONFIG_CLOCKS_IN_MHZ is defined, a definition of
    		"clocks_in_mhz=1" is  automatically  included  in  the
    		default environment.
    
    - Console Interface:
                    Depending on board, define exactly one serial port
                    (like CONFIG_8xx_CONS_SMC1, CONFIG_8xx_CONS_SMC2,
                    CONFIG_8xx_CONS_SCC1, ...), or switch off the serial
                    console by defining CONFIG_8xx_CONS_NONE
    
    		Note: if CONFIG_8xx_CONS_NONE is defined, the serial
    		port routines must be defined elsewhere
    		(i.e. serial_init(), serial_getc(), ...)
    
    		CONFIG_CFB_CONSOLE
    		Enables console device for a color framebuffer. Needs following
    		defines (cf. smiLynxEM, i8042, board/eltec/bab7xx)
    			VIDEO_FB_LITTLE_ENDIAN	graphic memory organisation
    						(default big endian)
    			VIDEO_HW_RECTFILL	graphic chip supports
    						rectangle fill
    						(cf. smiLynxEM)
    			VIDEO_HW_BITBLT		graphic chip supports
    						bit-blit (cf. smiLynxEM)
    			VIDEO_VISIBLE_COLS	visible pixel columns
    						(cols=pitch)
    			VIDEO_VISIBLE_ROWS      visible pixel rows
    			VIDEO_PIXEL_SIZE        bytes per pixel
    			VIDEO_DATA_FORMAT	graphic data format
    						(0-5, cf. cfb_console.c)
    			VIDEO_FB_ADRS           framebuffer address
    			VIDEO_KBD_INIT_FCT	keyboard int fct
    						(i.e. i8042_kbd_init())
    			VIDEO_TSTC_FCT		test char fct
    						(i.e. i8042_tstc)
    			VIDEO_GETC_FCT		get char fct
    						(i.e. i8042_getc)
    			CONFIG_CONSOLE_CURSOR	cursor drawing on/off
    						(requires blink timer
    						cf. i8042.c)
    			CFG_CONSOLE_BLINK_COUNT blink interval (cf. i8042.c)
    			CONFIG_CONSOLE_TIME	display time/date info in
    						upper right corner
    						(requires CFG_CMD_DATE)
    			CONFIG_VIDEO_LOGO	display Linux logo in
    						upper left corner
    			CONFIG_CONSOLE_EXTRA_INFO
    						addional board info beside
    						the logo
    
                    When CONFIG_CFB_CONSOLE is defined, video console is
                    default i/o. Serial console can be forced with
                    environment 'console=serial'.
    
    - Console Baudrate:
    		CONFIG_BAUDRATE - in bps
    		Select one of the baudrates listed in
    		CFG_BAUDRATE_TABLE, see below.
    
    - Interrupt driven serial port input:
    		CONFIG_SERIAL_SOFTWARE_FIFO
    
    		PPC405GP only.
    		Use an interrupt handler for receiving data on the
    		serial port. It also enables using hardware handshake
    		(RTS/CTS) and UART's built-in FIFO. Set the number of
    		bytes the interrupt driven input buffer should have.
    
    		Set to 0 to disable this feature (this is the default).
    		This will also disable hardware handshake.
    
    - Boot Delay:	CONFIG_BOOTDELAY - in seconds
    		Delay before automatically booting the default image;
    		set to -1 to disable autoboot.
    
    		See doc/README.autoboot for these options that
    		work with CONFIG_BOOTDELAY. None are required.
    		CONFIG_BOOT_RETRY_TIME
    		CONFIG_BOOT_RETRY_MIN
    		CONFIG_AUTOBOOT_KEYED
    		CONFIG_AUTOBOOT_PROMPT
    		CONFIG_AUTOBOOT_DELAY_STR
    		CONFIG_AUTOBOOT_STOP_STR
    		CONFIG_AUTOBOOT_DELAY_STR2
    		CONFIG_AUTOBOOT_STOP_STR2
    		CONFIG_ZERO_BOOTDELAY_CHECK
    		CONFIG_RESET_TO_RETRY
    
    - Autoboot Command:
    		CONFIG_BOOTCOMMAND
    		Only needed when CONFIG_BOOTDELAY is enabled;
    		define a command string that is automatically executed
    		when no character is read on the console interface
    		within "Boot Delay" after reset.
    
    		CONFIG_BOOTARGS
                    This can be used to pass arguments to the bootm
                    command. The value of CONFIG_BOOTARGS goes into the
                    environment value "bootargs".
    
    		CONFIG_RAMBOOT and CONFIG_NFSBOOT
                    The value of these goes into the environment as
                    "ramboot" and "nfsboot" respectively, and can be used
                    as a convenience, when switching between booting from
                    ram and nfs.
    
    - Pre-Boot Commands:
    		CONFIG_PREBOOT
    
    		When this option is #defined, the existence of the
    		environment variable "preboot" will be checked
    		immediately before starting the CONFIG_BOOTDELAY
    		countdown and/or running the auto-boot command resp.
    		entering interactive mode.
    
    		This feature is especially useful when "preboot" is
    		automatically generated or modified. For an example
    		see the LWMON board specific code: here "preboot" is
    		modified when the user holds down a certain
    		combination of keys on the (special) keyboard when
    		booting the systems
    
    - Serial Download Echo Mode:
    		CONFIG_LOADS_ECHO
    		If defined to 1, all characters received during a
    		serial download (using the "loads" command) are
    		echoed back. This might be needed by some terminal
    		emulations (like "cu"), but may as well just take
    		time on others. This setting #define's the initial
    		value of the "loads_echo" environment variable.
    
    - Kgdb Serial Baudrate: (if CFG_CMD_KGDB is defined)
    		CONFIG_KGDB_BAUDRATE
    		Select one of the baudrates listed in
    		CFG_BAUDRATE_TABLE, see below.
    
    - Monitor Functions:
    		CONFIG_COMMANDS
    		Most monitor functions can be selected (or
    		de-selected) by adjusting the definition of
    		CONFIG_COMMANDS; to select individual functions,
    		#define CONFIG_COMMANDS by "OR"ing any of the
    		following values:
    
    		#define enables commands:
    		-------------------------
    		CFG_CMD_ASKENV	* ask for env variable
    		CFG_CMD_BDI	  bdinfo
    		CFG_CMD_BEDBUG	  Include BedBug Debugger
    		CFG_CMD_BOOTD	  bootd
    		CFG_CMD_CACHE	  icache, dcache
    		CFG_CMD_CONSOLE	  coninfo
    		CFG_CMD_DATE	* support for RTC, date/time...
    		CFG_CMD_DHCP	  DHCP support
    		CFG_CMD_ECHO	* echo arguments
    		CFG_CMD_EEPROM	* EEPROM read/write support
    		CFG_CMD_ELF	  bootelf, bootvx
    		CFG_CMD_ENV	  saveenv
    		CFG_CMD_FDC	* Floppy Disk Support
    		CFG_CMD_FLASH	  flinfo, erase, protect
    		CFG_CMD_FPGA	  FPGA device initialization support
    		CFG_CMD_I2C	* I2C serial bus support
    		CFG_CMD_IDE	* IDE harddisk support
    		CFG_CMD_IMI	  iminfo
    		CFG_CMD_IMMAP	* IMMR dump support
    		CFG_CMD_IRQ	* irqinfo
    		CFG_CMD_KGDB	* kgdb
    		CFG_CMD_LOADB	  loadb
    		CFG_CMD_LOADS	  loads
    		CFG_CMD_MEMORY	  md, mm, nm, mw, cp, cmp, crc, base,
    				  loop, mtest
    		CFG_CMD_MII	  MII utility commands
    		CFG_CMD_NET	  bootp, tftpboot, rarpboot
    		CFG_CMD_PCI	* pciinfo
    		CFG_CMD_PCMCIA	* PCMCIA support
    		CFG_CMD_REGINFO * Register dump
    		CFG_CMD_RUN	  run command in env variable
    		CFG_CMD_SCSI	* SCSI Support
    		CFG_CMD_SETGETDCR Support for DCR Register access (4xx only)
    		CFG_CMD_SPI	* SPI serial bus support
    		CFG_CMD_USB	* USB support
    		CFG_CMD_BSP	* Board SPecific functions
    		-----------------------------------------------
    		CFG_CMD_ALL	all
    
    		CFG_CMD_DFL	Default configuration; at the moment
    				this is includes all commands, except
    				the ones marked with "*" in the list
    				above.
    
    		If you don't define CONFIG_COMMANDS it defaults to
    		CFG_CMD_DFL in include/cmd_confdefs.h. A board can
    		override the default settings in the respective
    		include file.
    
    		EXAMPLE: If you want all functions except of network
    		support you can write:
    
    		#define CONFIG_COMMANDS (CFG_CMD_ALL & ~CFG_CMD_NET)
    
    
    	Note:	Don't enable the "icache" and "dcache" commands
                    (configuration option CFG_CMD_CACHE) unless you know
                    what you (and your U-Boot users) are doing. Data
                    cache cannot be enabled on systems like the 8xx or
                    8260 (where accesses to the IMMR region must be
                    uncached), and it cannot be disabled on all other
                    systems where we (mis-) use the data cache to hold an
                    initial stack and some data.
    
    
    		XXX - this list needs to get updated!
    
    - Watchdog:
    		CONFIG_WATCHDOG
    		If this variable is defined, it enables watchdog
    		support. There must support in the platform specific
    		code for a watchdog. For the 8xx and 8260 CPUs, the
    		SIU Watchdog feature is enabled in the SYPCR
    		register.
    
    - Real-Time Clock:
    
    		When CFG_CMD_DATE is selected, the type of the RTC
    		has to be selected, too. Define exactly one of the
    		following options:
    
    		CONFIG_RTC_MPC8xx	- use internal RTC of MPC8xx
    		CONFIG_RTC_PCF8563	- use Philips PCF8563 RTC
    		CONFIG_RTC_MC146818	- use MC146818 RTC
    		CONFIG_RTC_DS1337	- use Maxim, Inc. DS1337 RTC
    
    - Timestamp Support:
    
                    When CONFIG_TIMESTAMP is selected, the timestamp
                    (date and time) of an image is printed by image
                    commands like bootm or iminfo. This option is
                    automatically enabled when you select CFG_CMD_DATE .
    
    - Partition Support:
    		CONFIG_MAC_PARTITION and/or CONFIG_DOS_PARTITION
    		and/or CONFIG_ISO_PARTITION
    
    		If IDE or SCSI support	is  enabled  (CFG_CMD_IDE  or
    		CFG_CMD_SCSI) you must configure support for at least
    		one partition type as well.
    
    - IDE Reset method:
    		CONFIG_IDE_RESET_ROUTINE
    
    		Set this to define that instead of a reset Pin, the
    		routine ide_set_reset(int idereset) will be used.
    
    - ATAPI Support:
    		CONFIG_ATAPI
    
    		Set this to enable ATAPI support.
    
    - SCSI Support:
    		At the moment only there is only support for the
    		SYM53C8XX SCSI controller; define
    		CONFIG_SCSI_SYM53C8XX to enable it.
    
    		CFG_SCSI_MAX_LUN [8], CFG_SCSI_MAX_SCSI_ID [7] and
    		CFG_SCSI_MAX_DEVICE [CFG_SCSI_MAX_SCSI_ID *
    		CFG_SCSI_MAX_LUN] can be adjusted to define the
    		maximum numbers of LUNs, SCSI ID's and target
    		devices.
    		CFG_SCSI_SYM53C8XX_CCF to fix clock timing (80Mhz)
    
    - NETWORK Support (PCI):
    		CONFIG_EEPRO100
    		Support for Intel 82557/82559/82559ER chips.
    		Optional CONFIG_EEPRO100_SROM_WRITE enables eeprom
    		write routine for first time initialisation.
    
    		CONFIG_TULIP
    		Support for Digital 2114x chips.
    		Optional CONFIG_TULIP_SELECT_MEDIA for board specific
    		modem chip initialisation (KS8761/QS6611).
    
    		CONFIG_NATSEMI
    		Support for National dp83815 chips.
    
    		CONFIG_NS8382X
    		Support for National dp8382[01] gigabit chips.
    
    - USB Support:
    		At the moment only the UHCI host controller is
    		supported (PIP405, MIP405); define
    		CONFIG_USB_UHCI to enable it.
    		define CONFIG_USB_KEYBOARD to enable the USB Keyboard
    		end define CONFIG_USB_STORAGE to enable the USB
    		storage devices.
    		Note:
    		Supported are USB Keyboards and USB Floppy drives
    		(TEAC FD-05PUB).
    
    - Keyboard Support:
    		CONFIG_ISA_KEYBOARD
    
    		Define this to enable standard (PC-Style) keyboard
    		support
    
    		CONFIG_I8042_KBD
    		Standard PC keyboard driver with US (is default) and
    		GERMAN key layout (switch via environment 'keymap=de') support.
    		Export function i8042_kbd_init, i8042_tstc and i8042_getc
    		for cfb_console. Supports cursor blinking.
    
    - Video support:
    		CONFIG_VIDEO
    
    		Define this to enable video support (for output to
    		video).
    
    		CONFIG_VIDEO_CT69000
    
    		Enable Chips & Technologies 69000 Video chip
    
    		CONFIG_VIDEO_SMI_LYNXEM
    		Enable Silicon Motion SMI 712/710/810 Video chip
    		Videomode are selected via environment 'videomode' with
    		standard LiLo mode numbers.
    		Following modes are supported  (* is default):
    
                                800x600  1024x768  1280x1024
                  256  (8bit)     303*      305       307
                65536 (16bit)     314       317       31a
            16,7 Mill (24bit)     315       318       31b
    		(i.e. setenv videomode 317; saveenv; reset;)
    
    - LCD Support:	CONFIG_LCD
    
    		Define this to enable LCD support (for output to LCD
    		display); also select one of the supported displays
    		by defining one of these:
    
    		CONFIG_NEC_NL6648AC33:
    
    			NEC NL6648AC33-18. Active, color, single scan.
    
    		CONFIG_NEC_NL6648BC20
    
    			NEC NL6648BC20-08. 6.5", 640x480.
    			Active, color, single scan.
    
    		CONFIG_SHARP_16x9
    
    			Sharp 320x240. Active, color, single scan.
    			It isn't 16x9, and I am not sure what it is.
    
    		CONFIG_SHARP_LQ64D341
    
    			Sharp LQ64D341 display, 640x480.
    			Active, color, single scan.
    
    		CONFIG_HLD1045
    
    			HLD1045 display, 640x480.
    			Active, color, single scan.
    
    		CONFIG_OPTREX_BW
    
    			Optrex	 CBL50840-2 NF-FW 99 22 M5
    			or
    			Hitachi	 LMG6912RPFC-00T
    			or
    			Hitachi	 SP14Q002
    
    			320x240. Black & white.
    
    		Normally display is black on white background; define
    		CFG_WHITE_ON_BLACK to get it inverted.
    
    - Ethernet address:
    		CONFIG_ETHADDR
    		CONFIG_ETH2ADDR
    		CONFIG_ETH3ADDR
    
    		Define a default value for ethernet address to use
    		for the respective ethernet interface, in case this
    		is not determined automatically.
    
    - IP address:
    		CONFIG_IPADDR
    
    		Define a default value for the IP address to use for
    		the default ethernet interface, in case this is not
    		determined through e.g. bootp.
    
    - Server IP address:
    		CONFIG_SERVERIP
    
    		Defines a default value for theIP address of a TFTP
    		server to contact when using the "tftboot" command.
    
    - BOOTP Recovery Mode:
    		CONFIG_BOOTP_RANDOM_DELAY
    
    		If you have many targets in a network that try to
    		boot using BOOTP, you may want to avoid that all
    		systems send out BOOTP requests at precisely the same
    		moment (which would happen for instance at recovery
    		from a power failure, when all systems will try to
    		boot, thus flooding the BOOTP server. Defining
    		CONFIG_BOOTP_RANDOM_DELAY causes a random delay to be
    		inserted before sending out BOOTP requests. The
    		following delays are insterted then:
    
    		1st BOOTP request:	delay 0 ... 1 sec
    		2nd BOOTP request:	delay 0 ... 2 sec
    		3rd BOOTP request:	delay 0 ... 4 sec
    		4th and following
    		BOOTP requests:		delay 0 ... 8 sec
    
    - Status LED:	CONFIG_STATUS_LED
    
    		Several configurations allow to display the current
    		status using a LED. For instance, the LED will blink
    		fast while running U-Boot code, stop blinking as
    		soon as a reply to a BOOTP request was received, and
    		start blinking slow once the Linux kernel is running
    		(supported by a status LED driver in the Linux
    		kernel). Defining CONFIG_STATUS_LED enables this
    		feature in U-Boot.
    
    - CAN Support:	CONFIG_CAN_DRIVER
    
    		Defining CONFIG_CAN_DRIVER enables CAN driver support
    		on those systems that support this (optional)
    		feature, like the TQM8xxL modules.
    
    - 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.
    
                    See also: common/cmd_i2c.c for a description of the
                    command line interface.
    
    
    		CONFIG_HARD_I2C
    
    		Selects the CPM hardware driver for I2C.
    
    		CONFIG_SOFT_I2C
    
    		Use software (aka bit-banging) driver instead of CPM
    		or similar hardware support for I2C.  This is configured
    		via the following defines.
    
    		I2C_INIT
    
                    (Optional). Any commands necessary to enable I2C
                    controller or configure ports.
    
    		I2C_PORT
    
                    (Only for MPC8260 CPU). The I/O port to use (the code
                    assumes both bits are on the same port). Valid values
                    are 0..3 for ports A..D.
    
    		I2C_ACTIVE
    
    		The code necessary to make the I2C data line active
    		(driven).  If the data line is open collector, this
    		define can be null.
    
    		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.
    
    		I2C_READ
    
    		Code that returns TRUE if the I2C data line is high,
    		FALSE if it is low.
    
    		I2C_SDA(bit)
    
    		If <bit> is TRUE, sets the I2C data line high. If it
    		is FALSE, it clears it (low).
    
    		I2C_SCL(bit)
    
    		If <bit> is TRUE, sets the I2C clock line high. If it
    		is FALSE, it clears it (low).
    
    		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).
    
    - SPI Support:	CONFIG_SPI
    
    		Enables SPI driver (so far only tested with
    		SPI EEPROM, also an instance works with Crystal A/D and
    		D/As on the SACSng board)
    
    		CONFIG_SPI_X
    
    		Enables extended (16-bit) SPI EEPROM addressing.
    		(symmetrical to CONFIG_I2C_X)
    
    		CONFIG_SOFT_SPI
    
                    Enables a software (bit-bang) SPI driver rather than
                    using hardware support. This is a general purpose
                    driver that only requires three general I/O port pins
                    (two outputs, one input) to function. If this is
                    defined, the board configuration must define several
                    SPI configuration items (port pins to use, etc). For
                    an example, see include/configs/sacsng.h.
    
    - FPGA Support: CONFIG_FPGA_COUNT
    
                    Specify the number of FPGA devices to support.
    
                    CONFIG_FPGA
    
                    Used to specify the types of FPGA devices. For
    		example,
     		#define CONFIG_FPGA  CFG_XILINX_VIRTEX2
    
     		CFG_FPGA_PROG_FEEDBACK
    
                    Enable printing of hash marks during FPGA
    		configuration.
    
    		CFG_FPGA_CHECK_BUSY
    
                    Enable checks on FPGA configuration interface busy
                    status by the configuration function. This option
                    will require a board or device specific function to
                    be written.
    
    		CONFIG_FPGA_DELAY
    
                    If defined, a function that provides delays in the
                    FPGA configuration driver.
    
    		CFG_FPGA_CHECK_CTRLC
    
    		Allow Control-C to interrupt FPGA configuration
    
    		CFG_FPGA_CHECK_ERROR
    
                    Check for configuration errors during FPGA bitfile
                    loading. For example, abort during Virtex II
                    configuration if the INIT_B line goes low (which
                    indicated a CRC error).
    
    		CFG_FPGA_WAIT_INIT
    
                    Maximum time to wait for the INIT_B line to deassert
                    after PROB_B has been deasserted during a Virtex II
                    FPGA configuration sequence. The default time is 500 mS.
    
    		CFG_FPGA_WAIT_BUSY
    
                    Maximum time to wait for BUSY to deassert during
                    Virtex II FPGA configuration. The default is 5 mS.
    
    		CFG_FPGA_WAIT_CONFIG
    
                    Time to wait after FPGA configuration. The default is
    		200 mS.
    
    - FPGA Support:	CONFIG_FPGA_COUNT
    
     		Specify the number of FPGA devices to support.
    
     		CONFIG_FPGA
    
     		Used to specify the types of FPGA devices.  For example,
     		#define CONFIG_FPGA  CFG_XILINX_VIRTEX2
    
     		CFG_FPGA_PROG_FEEDBACK
    
     		Enable printing of hash marks during FPGA configuration.
    
    		CFG_FPGA_CHECK_BUSY
    
                    Enable checks on FPGA configuration interface busy
                    status by the configuration function. This option
                    will require a board or device specific function to
                    be written.
    
    		CONFIG_FPGA_DELAY
    
    		If defined, a function that provides delays in the FPGA
    		configuration driver.
    
    		CFG_FPGA_CHECK_CTRLC
    		Allow Control-C to interrupt FPGA configuration
    
    		CFG_FPGA_CHECK_ERROR
    
                    Check for configuration errors during FPGA bitfile
                    loading. For example, abort during Virtex II
                    configuration if the INIT_B line goes low (which
                    indicated a CRC error).
    
    		CFG_FPGA_WAIT_INIT
    
                    Maximum time to wait for the INIT_B line to deassert
                    after PROB_B has been deasserted during a Virtex II
                    FPGA configuration sequence. The default time is 500
                    mS.
    
    		CFG_FPGA_WAIT_BUSY
    
                    Maximum time to wait for BUSY to deassert during
                    Virtex II FPGA configuration. The default is 5 mS.
    
    		CFG_FPGA_WAIT_CONFIG
    
                    Time to wait after FPGA configuration. The default is
                    200 mS.
    
    - Configuration Management:
    		CONFIG_IDENT_STRING