Skip to content
Snippets Groups Projects
README 200 KiB
Newer Older
		CONFIG_SPL_BSS_START_ADDR
		Link address for the BSS within the SPL binary.

		CONFIG_SPL_BSS_MAX_SIZE
		Maximum size in memory allocated to the SPL BSS.
		When defined, the linker checks that the actual memory used
		by SPL from __bss_start to __bss_end does not exceed it.
		CONFIG_SPL_MAX_FOOTPRINT and CONFIG_SPL_BSS_MAX_SIZE
		must not be both defined at the same time.

		CONFIG_SPL_STACK
		Adress of the start of the stack SPL will use

		CONFIG_SPL_RELOC_STACK
		Adress of the start of the stack SPL will use after
		relocation.  If unspecified, this is equal to
		CONFIG_SPL_STACK.

		CONFIG_SYS_SPL_MALLOC_START
		Starting address of the malloc pool used in SPL.

		CONFIG_SYS_SPL_MALLOC_SIZE
		The size of the malloc pool used in SPL.
		CONFIG_SPL_FRAMEWORK
		Enable the SPL framework under common/.  This framework
		supports MMC, NAND and YMODEM loading of U-Boot and NAND
		NAND loading of the Linux Kernel.

		CONFIG_SPL_DISPLAY_PRINT
		For ARM, enable an optional function to print more information
		about the running system.

		CONFIG_SPL_INIT_MINIMAL
		Arch init code should be built for a very small image

		CONFIG_SPL_LIBCOMMON_SUPPORT
		Support for common/libcommon.o in SPL binary
		CONFIG_SPL_LIBDISK_SUPPORT
		Support for disk/libdisk.o in SPL binary
		CONFIG_SPL_I2C_SUPPORT
		Support for drivers/i2c/libi2c.o in SPL binary
		CONFIG_SPL_GPIO_SUPPORT
		Support for drivers/gpio/libgpio.o in SPL binary
		CONFIG_SPL_MMC_SUPPORT
		Support for drivers/mmc/libmmc.o in SPL binary
		CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR,
		CONFIG_SYS_U_BOOT_MAX_SIZE_SECTORS,
		CONFIG_SYS_MMC_SD_FAT_BOOT_PARTITION
		Address, size and partition on the MMC to load U-Boot from
		when the MMC is being used in raw mode.

		CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR
		Sector to load kernel uImage from when MMC is being
		used in raw mode (for Falcon mode)

		CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR,
		CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS
		Sector and number of sectors to load kernel argument
		parameters from when MMC is being used in raw mode
		(for falcon mode)

		CONFIG_SPL_FAT_SUPPORT
		Support for fs/fat/libfat.o in SPL binary

		CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME
		Filename to read to load U-Boot when reading from FAT

		CONFIG_SPL_FAT_LOAD_KERNEL_NAME
		Filename to read to load kernel uImage when reading
		from FAT (for Falcon mode)

		CONFIG_SPL_FAT_LOAD_ARGS_NAME
		Filename to read to load kernel argument parameters
		when reading from FAT (for Falcon mode)

		CONFIG_SPL_MPC83XX_WAIT_FOR_NAND
		Set this for NAND SPL on PPC mpc83xx targets, so that
		start.S waits for the rest of the SPL to load before
		continuing (the hardware starts execution after just
		loading the first page rather than the full 4K).

		CONFIG_SPL_NAND_BASE
		Include nand_base.c in the SPL.  Requires
		CONFIG_SPL_NAND_DRIVERS.

		CONFIG_SPL_NAND_DRIVERS
		SPL uses normal NAND drivers, not minimal drivers.

		CONFIG_SPL_NAND_ECC
		Include standard software ECC in the SPL

		CONFIG_SPL_NAND_SIMPLE
		Support for NAND boot using simple NAND drivers that
		expose the cmd_ctrl() interface.

		CONFIG_SYS_NAND_5_ADDR_CYCLE, CONFIG_SYS_NAND_PAGE_COUNT,
		CONFIG_SYS_NAND_PAGE_SIZE, CONFIG_SYS_NAND_OOBSIZE,
		CONFIG_SYS_NAND_BLOCK_SIZE, CONFIG_SYS_NAND_BAD_BLOCK_POS,
		CONFIG_SYS_NAND_ECCPOS, CONFIG_SYS_NAND_ECCSIZE,
		CONFIG_SYS_NAND_ECCBYTES
		Defines the size and behavior of the NAND that SPL uses
		to read U-Boot

		CONFIG_SYS_NAND_U_BOOT_OFFS
		Location in NAND to read U-Boot from

		CONFIG_SYS_NAND_U_BOOT_DST
		Location in memory to load U-Boot to

		CONFIG_SYS_NAND_U_BOOT_SIZE
		Size of image to load

		CONFIG_SYS_NAND_U_BOOT_START
		Entry point in loaded image to jump to

		CONFIG_SYS_NAND_HW_ECC_OOBFIRST
		Define this if you need to first read the OOB and then the
		data. This is used for example on davinci plattforms.

		CONFIG_SPL_OMAP3_ID_NAND
		Support for an OMAP3-specific set of functions to return the
		ID and MFR of the first attached NAND chip, if present.

		CONFIG_SPL_SERIAL_SUPPORT
		Support for drivers/serial/libserial.o in SPL binary
		CONFIG_SPL_SPI_FLASH_SUPPORT
		Support for drivers/mtd/spi/libspi_flash.o in SPL binary
		CONFIG_SPL_SPI_SUPPORT
		Support for drivers/spi/libspi.o in SPL binary

		CONFIG_SPL_RAM_DEVICE
		Support for running image already present in ram, in SPL binary
		CONFIG_SPL_LIBGENERIC_SUPPORT
		Support for lib/libgeneric.o in SPL binary
		CONFIG_SPL_ENV_SUPPORT
		Support for the environment operating in SPL binary

		CONFIG_SPL_NET_SUPPORT
		Support for the net/libnet.o in SPL binary.
		It conflicts with SPL env from storage medium specified by
		CONFIG_ENV_IS_xxx but CONFIG_ENV_IS_NOWHERE

		CONFIG_SPL_PAD_TO
		Image offset to which the SPL should be padded before appending
		the SPL payload. By default, this is defined as
		CONFIG_SPL_MAX_SIZE, or 0 if CONFIG_SPL_MAX_SIZE is undefined.
		CONFIG_SPL_PAD_TO must be either 0, meaning to append the SPL
		payload without any padding, or >= CONFIG_SPL_MAX_SIZE.
		CONFIG_SPL_TARGET
		Final target image containing SPL and payload.  Some SPLs
		use an arch-specific makefile fragment instead, for
		example if more than one image needs to be produced.

		CONFIG_FIT_SPL_PRINT
		Printing information about a FIT image adds quite a bit of
		code to SPL. So this is normally disabled in SPL. Use this
		option to re-enable it. This will affect the output of the
		bootm command when booting a FIT image.

Wolfgang Denk's avatar
Wolfgang Denk committed
Modem Support:
--------------

[so far only for SMDK2400 boards]
Wolfgang Denk's avatar
Wolfgang Denk committed

- Modem support enable:
Wolfgang Denk's avatar
Wolfgang Denk committed
		CONFIG_MODEM_SUPPORT

- RTS/CTS Flow control enable:
		CONFIG_HWFLOW

- Modem debug support:
		CONFIG_MODEM_SUPPORT_DEBUG

		Enables debugging stuff (char screen[1024], dbg())
		for modem support. Useful only with BDI2000.
Wolfgang Denk's avatar
Wolfgang Denk committed

- Interrupt support (PPC):

		There are common interrupt_init() and timer_interrupt()
		for all PPC archs. interrupt_init() calls interrupt_init_cpu()
		for CPU specific initialization. interrupt_init_cpu()
		should set decrementer_count to appropriate value. If
		CPU resets decrementer automatically after interrupt
		(ppc4xx) it should set decrementer_count to zero.
		timer_interrupt() calls timer_interrupt_cpu() for CPU
		specific handling. If board has watchdog / status_led
		/ other_activity_monitor it works automatically from
		general timer_interrupt().
Wolfgang Denk's avatar
Wolfgang Denk committed
- General:

		In the target system modem support is enabled when a
		specific key (key combination) is pressed during
		power-on. Otherwise U-Boot will boot normally
		(autoboot). The key_pressed() function is called from
		board_init(). Currently key_pressed() is a dummy
		function, returning 1 and thus enabling modem
		initialization.
Wolfgang Denk's avatar
Wolfgang Denk committed

		If there are no modem init strings in the
		environment, U-Boot proceed to autoboot; the
		previous output (banner, info printfs) will be
		suppressed, though.
Wolfgang Denk's avatar
Wolfgang Denk committed

		See also: doc/README.Modem

Board initialization settings:
------------------------------

During Initialization u-boot calls a number of board specific functions
to allow the preparation of board specific prerequisites, e.g. pin setup
before drivers are initialized. To enable these callbacks the
following configuration macros have to be defined. Currently this is
architecture specific, so please check arch/your_architecture/lib/board.c
typically in board_init_f() and board_init_r().

- CONFIG_BOARD_EARLY_INIT_F: Call board_early_init_f()
- CONFIG_BOARD_EARLY_INIT_R: Call board_early_init_r()
- CONFIG_BOARD_LATE_INIT: Call board_late_init()
- CONFIG_BOARD_POSTCLK_INIT: Call board_postclk_init()
Wolfgang Denk's avatar
Wolfgang Denk committed

Configuration Settings:
-----------------------

- CONFIG_SYS_LONGHELP: Defined when you want long help messages included;
Wolfgang Denk's avatar
Wolfgang Denk committed
		undefine this when you're short of memory.

Peter Tyser's avatar
Peter Tyser committed
- CONFIG_SYS_HELP_CMD_WIDTH: Defined when you want to override the default
		width of the commands listed in the 'help' command output.

- CONFIG_SYS_PROMPT:	This is what U-Boot prints on the console to
Wolfgang Denk's avatar
Wolfgang Denk committed
		prompt for user input.

- CONFIG_SYS_CBSIZE:	Buffer size for input from the Console
Wolfgang Denk's avatar
Wolfgang Denk committed

- CONFIG_SYS_PBSIZE:	Buffer size for Console output
Wolfgang Denk's avatar
Wolfgang Denk committed

- CONFIG_SYS_MAXARGS:	max. Number of arguments accepted for monitor commands
Wolfgang Denk's avatar
Wolfgang Denk committed

- CONFIG_SYS_BARGSIZE: Buffer size for Boot Arguments which are passed to
Wolfgang Denk's avatar
Wolfgang Denk committed
		the application (usually a Linux kernel) when it is
		booted

- CONFIG_SYS_BAUDRATE_TABLE:
Wolfgang Denk's avatar
Wolfgang Denk committed
		List of legal baudrate settings for this board.

- CONFIG_SYS_CONSOLE_INFO_QUIET
Wolfgang Denk's avatar
Wolfgang Denk committed
		Suppress display of console information at boot.
Wolfgang Denk's avatar
Wolfgang Denk committed

- CONFIG_SYS_CONSOLE_IS_IN_ENV
Wolfgang Denk's avatar
Wolfgang Denk committed
		If the board specific function
			extern int overwrite_console (void);
		returns 1, the stdin, stderr and stdout are switched to the
Wolfgang Denk's avatar
Wolfgang Denk committed
		serial port, else the settings in the environment are used.

- CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE
Wolfgang Denk's avatar
Wolfgang Denk committed
		Enable the call to overwrite_console().
Wolfgang Denk's avatar
Wolfgang Denk committed

- CONFIG_SYS_CONSOLE_ENV_OVERWRITE
Wolfgang Denk's avatar
Wolfgang Denk committed
		Enable overwrite of previous console environment settings.

- CONFIG_SYS_MEMTEST_START, CONFIG_SYS_MEMTEST_END:
Wolfgang Denk's avatar
Wolfgang Denk committed
		Begin and End addresses of the area used by the
		simple memory test.

- CONFIG_SYS_ALT_MEMTEST:
Wolfgang Denk's avatar
Wolfgang Denk committed
		Enable an alternate, more extensive memory test.
Wolfgang Denk's avatar
Wolfgang Denk committed

- CONFIG_SYS_MEMTEST_SCRATCH:
		Scratch address used by the alternate memory test
		You only need to set this if address zero isn't writeable

- CONFIG_SYS_MEM_TOP_HIDE (PPC only):
		If CONFIG_SYS_MEM_TOP_HIDE is defined in the board config header,
		this specified memory area will get subtracted from the top
		(end) of RAM and won't get "touched" at all by U-Boot. By
		fixing up gd->ram_size the Linux kernel should gets passed
		the now "corrected" memory size and won't touch it either.
		This should work for arch/ppc and arch/powerpc. Only Linux
		board ports in arch/powerpc with bootwrapper support that
		recalculate the memory size from the SDRAM controller setup
		will have to get fixed in Linux additionally.

		This option can be used as a workaround for the 440EPx/GRx
		CHIP 11 errata where the last 256 bytes in SDRAM shouldn't
		be touched.

		WARNING: Please make sure that this value is a multiple of
		the Linux page size (normally 4k). If this is not the case,
		then the end address of the Linux memory will be located at a
		non page size aligned address and this could cause major
		problems.

- CONFIG_SYS_LOADS_BAUD_CHANGE:
Wolfgang Denk's avatar
Wolfgang Denk committed
		Enable temporary baudrate change while serial download

- CONFIG_SYS_SDRAM_BASE:
Wolfgang Denk's avatar
Wolfgang Denk committed
		Physical start address of SDRAM. _Must_ be 0 here.

- CONFIG_SYS_MBIO_BASE:
Wolfgang Denk's avatar
Wolfgang Denk committed
		Physical start address of Motherboard I/O (if using a
		Cogent motherboard)

- CONFIG_SYS_FLASH_BASE:
Wolfgang Denk's avatar
Wolfgang Denk committed
		Physical start address of Flash memory.

- CONFIG_SYS_MONITOR_BASE:
Wolfgang Denk's avatar
Wolfgang Denk committed
		Physical start address of boot monitor code (set by
		make config files to be same as the text base address
		(CONFIG_SYS_TEXT_BASE) used when linking) - same as
		CONFIG_SYS_FLASH_BASE when booting from flash.
Wolfgang Denk's avatar
Wolfgang Denk committed

- CONFIG_SYS_MONITOR_LEN:
Wolfgang Denk's avatar
Wolfgang Denk committed
		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.
Wolfgang Denk's avatar
Wolfgang Denk committed

- CONFIG_SYS_MALLOC_LEN:
Wolfgang Denk's avatar
Wolfgang Denk committed
		Size of DRAM reserved for malloc() use.

- CONFIG_SYS_BOOTM_LEN:
		Normally compressed uImages are limited to an
		uncompressed size of 8 MBytes. If this is not enough,
		you can define CONFIG_SYS_BOOTM_LEN in your board config file
		to adjust this setting to your needs.

- CONFIG_SYS_BOOTMAPSZ:
Wolfgang Denk's avatar
Wolfgang Denk committed
		Maximum size of memory mapped by the startup code of
		the Linux kernel; all data that must be processed by
		the Linux kernel (bd_info, boot arguments, FDT blob if
		used) must be put below this limit, unless "bootm_low"
		enviroment variable is defined and non-zero. In such case
		all data for the Linux kernel must be between "bootm_low"
		and "bootm_low" + CONFIG_SYS_BOOTMAPSZ.	 The environment
		variable "bootm_mapsize" will override the value of
		CONFIG_SYS_BOOTMAPSZ.  If CONFIG_SYS_BOOTMAPSZ is undefined,
		then the value in "bootm_size" will be used instead.
Wolfgang Denk's avatar
Wolfgang Denk committed

- CONFIG_SYS_BOOT_RAMDISK_HIGH:
		Enable initrd_high functionality.  If defined then the
		initrd_high feature is enabled and the bootm ramdisk subcommand
		is enabled.

- CONFIG_SYS_BOOT_GET_CMDLINE:
		Enables allocating and saving kernel cmdline in space between
		"bootm_low" and "bootm_low" + BOOTMAPSZ.

- CONFIG_SYS_BOOT_GET_KBD:
		Enables allocating and saving a kernel copy of the bd_info in
		space between "bootm_low" and "bootm_low" + BOOTMAPSZ.

- CONFIG_SYS_MAX_FLASH_BANKS:
Wolfgang Denk's avatar
Wolfgang Denk committed
		Max number of Flash memory banks

- CONFIG_SYS_MAX_FLASH_SECT:
Wolfgang Denk's avatar
Wolfgang Denk committed
		Max number of sectors on a Flash chip

- CONFIG_SYS_FLASH_ERASE_TOUT:
Wolfgang Denk's avatar
Wolfgang Denk committed
		Timeout for Flash erase operations (in ms)

- CONFIG_SYS_FLASH_WRITE_TOUT:
Wolfgang Denk's avatar
Wolfgang Denk committed
		Timeout for Flash write operations (in ms)

- CONFIG_SYS_FLASH_LOCK_TOUT
		Timeout for Flash set sector lock bit operation (in ms)

- CONFIG_SYS_FLASH_UNLOCK_TOUT
		Timeout for Flash clear lock bits operation (in ms)

- CONFIG_SYS_FLASH_PROTECTION
		If defined, hardware flash sectors protection is used
		instead of U-Boot software protection.

- CONFIG_SYS_DIRECT_FLASH_TFTP:
Wolfgang Denk's avatar
Wolfgang Denk committed

		Enable TFTP transfers directly to flash memory;
		without this option such a download has to be
		performed in two steps: (1) download to RAM, and (2)
		copy from RAM to flash.

		The two-step approach is usually more reliable, since
		you can check if the download worked before you erase
		the flash, but in some situations (when system RAM is
		too limited to allow for a temporary copy of the
Wolfgang Denk's avatar
Wolfgang Denk committed
		downloaded image) this option may be very useful.

- CONFIG_SYS_FLASH_CFI:
		Define if the flash driver uses extra elements in the
		common flash structure for storing flash geometry.

		This option also enables the building of the cfi_flash driver
		in the drivers directory
Wolfgang Denk's avatar
Wolfgang Denk committed

- CONFIG_FLASH_CFI_MTD
		This option enables the building of the cfi_mtd driver
		in the drivers directory. The driver exports CFI flash
		to the MTD layer.

- CONFIG_SYS_FLASH_USE_BUFFER_WRITE
		Use buffered writes to flash.

- CONFIG_FLASH_SPANSION_S29WS_N
		s29ws-n MirrorBit flash has non-standard addresses for buffered
		write commands.

- CONFIG_SYS_FLASH_QUIET_TEST
		If this option is defined, the common CFI flash doesn't
		print it's warning upon not recognized FLASH banks. This
		is useful, if some of the configured banks are only
		optionally available.

- CONFIG_FLASH_SHOW_PROGRESS
		If defined (must be an integer), print out countdown
		digits and dots.  Recommended value: 45 (9..1) for 80
		column displays, 15 (3..1) for 40 column displays.

- CONFIG_FLASH_VERIFY
		If defined, the content of the flash (destination) is compared
		against the source after the write operation. An error message
		will be printed when the contents are not identical.
		Please note that this option is useless in nearly all cases,
		since such flash programming errors usually are detected earlier
		while unprotecting/erasing/programming. Please only enable
		this option if you really know what you are doing.

- CONFIG_SYS_RX_ETH_BUFFER:
		Defines the number of Ethernet receive buffers. On some
		Ethernet controllers it is recommended to set this value
Stefan Roese's avatar
Stefan Roese committed
		to 8 or even higher (EEPRO100 or 405 EMAC), since all
		buffers can be full shortly after enabling the interface
		on high Ethernet traffic.
Stefan Roese's avatar
Stefan Roese committed
		Defaults to 4 if not defined.

Wolfgang Denk's avatar
Wolfgang Denk committed
	Maximum number of entries in the hash table that is used
	internally to store the environment settings. The default
	setting is supposed to be generous and should work in most
	cases. This setting can be used to tune behaviour; see
	lib/hashtable.c for details.
- CONFIG_ENV_FLAGS_LIST_DEFAULT
- CONFIG_ENV_FLAGS_LIST_STATIC
	Enable validation of the values given to enviroment variables when
	calling env set.  Variables can be restricted to only decimal,
	hexadecimal, or boolean.  If CONFIG_CMD_NET is also defined,
	the variables can also be restricted to IP address or MAC address.

	The format of the list is:
		type_attribute = [s|d|x|b|i|m]
		access_atribute = [a|r|o|c]
		attributes = type_attribute[access_atribute]
		entry = variable_name[:attributes]
		list = entry[,list]

	The type attributes are:
		s - String (default)
		d - Decimal
		x - Hexadecimal
		b - Boolean ([1yYtT|0nNfF])
		i - IP address
		m - MAC address

	The access attributes are:
		a - Any (default)
		r - Read-only
		o - Write-once
		c - Change-default

	- CONFIG_ENV_FLAGS_LIST_DEFAULT
		Define this to a list (string) to define the ".flags"
		envirnoment variable in the default or embedded environment.

	- CONFIG_ENV_FLAGS_LIST_STATIC
		Define this to a list (string) to define validation that
		should be done if an entry is not found in the ".flags"
		environment variable.  To override a setting in the static
		list, simply add an entry for the same variable name to the
		".flags" variable.

- CONFIG_ENV_ACCESS_IGNORE_FORCE
	If defined, don't allow the -f switch to env set override variable
	access flags.

- CONFIG_SYS_GENERIC_BOARD
	This selects the architecture-generic board system instead of the
	architecture-specific board files. It is intended to move boards
	to this new framework over time. Defining this will disable the
	arch/foo/lib/board.c file and use common/board_f.c and
	common/board_r.c instead. To use this option your architecture
	must support it (i.e. must define __HAVE_ARCH_GENERIC_BOARD in
	its config.mk file). If you find problems enabling this option on
	your board please report the problem and send patches!

- CONFIG_SYS_SYM_OFFSETS
	This is set by architectures that use offsets for link symbols
	instead of absolute values. So bss_start is obtained using an
	offset _bss_start_ofs from CONFIG_SYS_TEXT_BASE, rather than
	directly. You should not need to touch this setting.

- CONFIG_OMAP_PLATFORM_RESET_TIME_MAX_USEC (OMAP only)
	This is set by OMAP boards for the max time that reset should
	be asserted. See doc/README.omap-reset-time for details on how
	the value can be calulated on a given board.
Wolfgang Denk's avatar
Wolfgang Denk committed
The following definitions that deal with the placement and management
of environment data (variable area); in general, we support the
following configurations:

- CONFIG_BUILD_ENVCRC:

	Builds up envcrc with the target environment so that external utils
	may easily extract it and embed it in final U-Boot images.

Wolfgang Denk's avatar
Wolfgang Denk committed

	Define this if the environment is in flash memory.

	a) The environment occupies one whole flash sector, which is
	   "embedded" in the text segment with the U-Boot code. This
	   happens usually with "bottom boot sector" or "top boot
	   sector" type flash chips, which have several smaller
	   sectors at the start or the end. For instance, such a
	   layout can have sector sizes of 8, 2x4, 16, Nx32 kB. In
	   such a case you would place the environment in one of the
	   4 kB sectors - with U-Boot code before and after it. With
	   "top boot sector" type flash chips, you would put the
	   environment in one of the last sectors, leaving a gap
	   between U-Boot and the environment.

Wolfgang Denk's avatar
Wolfgang Denk committed

	   Offset of environment data (variable area) to the
	   beginning of flash memory; for instance, with bottom boot
	   type flash chips the second sector can be used: the offset
	   for this sector is given here.

	   CONFIG_ENV_OFFSET is used relative to CONFIG_SYS_FLASH_BASE.
Wolfgang Denk's avatar
Wolfgang Denk committed

Wolfgang Denk's avatar
Wolfgang Denk committed

	   This is just another way to specify the start address of
	   the flash sector containing the environment (instead of
Wolfgang Denk's avatar
Wolfgang Denk committed

	- CONFIG_ENV_SECT_SIZE:
Wolfgang Denk's avatar
Wolfgang Denk committed

	   Size of the sector containing the environment.


	b) Sometimes flash chips have few, equal sized, BIG sectors.
	   In such a case you don't want to spend a whole sector for
	   the environment.

Wolfgang Denk's avatar
Wolfgang Denk committed

	   If you use this in combination with CONFIG_ENV_IS_IN_FLASH
	   and CONFIG_ENV_SECT_SIZE, you can specify to use only a part
Wolfgang Denk's avatar
Wolfgang Denk committed
	   of this flash sector for the environment. This saves
	   memory for the RAM copy of the environment.

	   It may also save flash memory if you decide to use this
	   when your environment is "embedded" within U-Boot code,
	   since then the remainder of the flash sector could be used
	   for U-Boot code. It should be pointed out that this is
	   STRONGLY DISCOURAGED from a robustness point of view:
	   updating the environment in flash makes it always
	   necessary to erase the WHOLE sector. If something goes
	   wrong before the contents has been restored from a copy in
	   RAM, your target system will be dead.

	- CONFIG_ENV_ADDR_REDUND
	  CONFIG_ENV_SIZE_REDUND
Wolfgang Denk's avatar
Wolfgang Denk committed

	   These settings describe a second storage area used to hold
	   a redundant copy of the environment data, so that there is
	   a valid backup copy in case there is a power failure during
	   a "saveenv" operation.
Wolfgang Denk's avatar
Wolfgang Denk committed

BE CAREFUL! Any changes to the flash layout, and some changes to the
source code will make it necessary to adapt <board>/u-boot.lds*
accordingly!


Wolfgang Denk's avatar
Wolfgang Denk committed

	Define this if you have some non-volatile memory device
	(NVRAM, battery buffered SRAM) which you want to use for the
	environment.

	- CONFIG_ENV_ADDR:
	- CONFIG_ENV_SIZE:
Wolfgang Denk's avatar
Wolfgang Denk committed

	  These two #defines are used to determine the memory area you
Wolfgang Denk's avatar
Wolfgang Denk committed
	  want to use for environment. It is assumed that this memory
	  can just be read and written to, without any special
	  provision.

BE CAREFUL! The first access to the environment happens quite early
in U-Boot initalization (when we try to get the setting of for the
console baudrate). You *MUST* have mapped your NVRAM area then, or
Wolfgang Denk's avatar
Wolfgang Denk committed
U-Boot will hang.

Please note that even with NVRAM we still use a copy of the
environment in RAM: we could work on NVRAM directly, but we want to
keep settings there always unmodified except somebody uses "saveenv"
to save the current settings.


Wolfgang Denk's avatar
Wolfgang Denk committed

	Use this if you have an EEPROM or similar serial access
	device and a driver for it.

	- CONFIG_ENV_OFFSET:
	- CONFIG_ENV_SIZE:
Wolfgang Denk's avatar
Wolfgang Denk committed

	  These two #defines specify the offset and size of the
	  environment area within the total memory of your EEPROM.

	- CONFIG_SYS_I2C_EEPROM_ADDR:
Wolfgang Denk's avatar
Wolfgang Denk committed
	  If defined, specified the chip address of the EEPROM device.
	  The default address is zero.

	- CONFIG_SYS_EEPROM_PAGE_WRITE_BITS:
Wolfgang Denk's avatar
Wolfgang Denk committed
	  If defined, the number of bits used to address bytes in a
	  single page in the EEPROM device.  A 64 byte page, for example
	  would require six bits.

	- CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS:
Wolfgang Denk's avatar
Wolfgang Denk committed
	  If defined, the number of milliseconds to delay between
	  page writes.	The default is zero milliseconds.
Wolfgang Denk's avatar
Wolfgang Denk committed

	- CONFIG_SYS_I2C_EEPROM_ADDR_LEN:
Wolfgang Denk's avatar
Wolfgang Denk committed
	  The length in bytes of the EEPROM memory array address.  Note
	  that this is NOT the chip address length!

	- CONFIG_SYS_I2C_EEPROM_ADDR_OVERFLOW:
	  EEPROM chips that implement "address overflow" are ones
	  like Catalyst 24WC04/08/16 which has 9/10/11 bits of
	  address and the extra bits end up in the "chip address" bit
	  slots. This makes a 24WC08 (1Kbyte) chip look like four 256
	  byte chips.

	  Note that we consider the length of the address field to
	  still be one byte because the extra address bits are hidden
	  in the chip address.

	- CONFIG_SYS_EEPROM_SIZE:
Wolfgang Denk's avatar
Wolfgang Denk committed
	  The size in bytes of the EEPROM device.

Heiko Schocher's avatar
Heiko Schocher committed
	- 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:

Wolfgang Denk's avatar
Wolfgang Denk committed
	  #define CONFIG_I2C_ENV_EEPROM_BUS	  "pca9547:70:d\0"
Heiko Schocher's avatar
Heiko Schocher committed

	  EEPROM which holds the environment, is reached over
	  a pca9547 i2c mux with address 0x70, channel 3.
Wolfgang Denk's avatar
Wolfgang Denk committed

	Define this if you have a DataFlash memory device which you
	want to use for the environment.

	- CONFIG_ENV_OFFSET:
	- CONFIG_ENV_ADDR:
	- CONFIG_ENV_SIZE:

	  These three #defines specify the offset and size of the
	  environment area within the total memory of your DataFlash placed
	  at the specified address.

- CONFIG_ENV_IS_IN_REMOTE:

	Define this if you have a remote memory space which you
	want to use for the local device's environment.

	- CONFIG_ENV_ADDR:
	- CONFIG_ENV_SIZE:

	  These two #defines specify the address and size of the
	  environment area within the remote memory space. The
	  local device can get the environment from remote memory

BE CAREFUL! For some special cases, the local device can not use
"saveenv" command. For example, the local device will get the
environment stored in a remote NOR flash by SRIO or PCIE link,
but it can not erase, write this NOR flash by SRIO or PCIE interface.

	Define this if you have a NAND device which you want to use
	for the environment.

	- CONFIG_ENV_OFFSET:
	- CONFIG_ENV_SIZE:

	  These two #defines specify the offset and size of the environment
	  area within the first NAND device.  CONFIG_ENV_OFFSET must be
	  aligned to an erase block boundary.
	- CONFIG_ENV_OFFSET_REDUND (optional):
	  This setting describes a second storage area of CONFIG_ENV_SIZE
	  size used to hold a redundant copy of the environment data, so
	  that there is a valid backup copy in case there is a power failure
	  during a "saveenv" operation.	 CONFIG_ENV_OFFSET_RENDUND must be
	  aligned to an erase block boundary.

	- CONFIG_ENV_RANGE (optional):

	  Specifies the length of the region in which the environment
	  can be written.  This should be a multiple of the NAND device's
	  block size.  Specifying a range with more erase blocks than
	  are needed to hold CONFIG_ENV_SIZE allows bad blocks within
	  the range to be avoided.

	- CONFIG_ENV_OFFSET_OOB (optional):

	  Enables support for dynamically retrieving the offset of the
	  environment from block zero's out-of-band data.  The
	  "nand env.oob" command can be used to record this offset.
	  Currently, CONFIG_ENV_OFFSET_REDUND is not supported when
	  using CONFIG_ENV_OFFSET_OOB.
- 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_ENV_IS_IN_UBI:

	Define this if you have an UBI volume that you want to use for the
	environment.  This has the benefit of wear-leveling the environment
	accesses, which is important on NAND.

	- CONFIG_ENV_UBI_PART:

	  Define this to a string that is the mtd partition containing the UBI.

	- CONFIG_ENV_UBI_VOLUME:

	  Define this to the name of the volume that you want to store the
	  environment in.

	- CONFIG_ENV_UBI_VOLUME_REDUND:

	  Define this to the name of another volume to store a second copy of
	  the environment in.  This will enable redundant environments in UBI.
	  It is assumed that both volumes are in the same MTD partition.

	- CONFIG_UBI_SILENCE_MSG
	- CONFIG_UBIFS_SILENCE_MSG

	  You will probably want to define these to avoid a really noisy system
	  when storing the env in UBI.

- CONFIG_ENV_IS_IN_MMC:

	Define this if you have an MMC device which you want to use for the
	environment.

	- CONFIG_SYS_MMC_ENV_DEV:

	  Specifies which MMC device the environment is stored in.

	- CONFIG_SYS_MMC_ENV_PART (optional):

	  Specifies which MMC partition the environment is stored in. If not
	  set, defaults to partition 0, the user area. Common values might be
	  1 (first MMC boot partition), 2 (second MMC boot partition).

	- CONFIG_ENV_OFFSET:
	- CONFIG_ENV_SIZE:

	  These two #defines specify the offset and size of the environment
	  area within the specified MMC device.

	  If offset is positive (the usual case), it is treated as relative to
	  the start of the MMC partition. If offset is negative, it is treated
	  as relative to the end of the MMC partition. This can be useful if
	  your board may be fitted with different MMC devices, which have
	  different sizes for the MMC partitions, and you always want the
	  environment placed at the very end of the partition, to leave the
	  maximum possible space before it, to store other data.

	  These two values are in units of bytes, but must be aligned to an
	  MMC sector boundary.

	- CONFIG_ENV_OFFSET_REDUND (optional):

	  Specifies a second storage area, of CONFIG_ENV_SIZE size, used to
	  hold a redundant copy of the environment data. This provides a
	  valid backup copy in case the other copy is corrupted, e.g. due
	  to a power failure during a "saveenv" operation.

	  This value may also be positive or negative; this is handled in the
	  same way as CONFIG_ENV_OFFSET.

	  This value is also in units of bytes, but must also be aligned to
	  an MMC sector boundary.

	- CONFIG_ENV_SIZE_REDUND (optional):

	  This value need not be set, even when CONFIG_ENV_OFFSET_REDUND is
	  set. If this value is set, it must be set to the same value as
	  CONFIG_ENV_SIZE.

- CONFIG_SYS_SPI_INIT_OFFSET
Wolfgang Denk's avatar
Wolfgang Denk committed

	Defines offset to the initial SPI buffer area in DPRAM. The
	area is used at an early stage (ROM part) if the environment
	is configured to reside in the SPI EEPROM: We need a 520 byte
	scratch DPRAM area. It is used between the two initialization
	calls (spi_init_f() and spi_init_r()). A value of 0xB00 seems
	to be a good choice since it makes it far enough from the
	start of the data area as well as from the stack pointer.

Bruce Adler's avatar
Bruce Adler committed
Please note that the environment is read-only until the monitor
Wolfgang Denk's avatar
Wolfgang Denk committed
has been relocated to RAM and a RAM copy of the environment has been
created; also, when using EEPROM you will have to use getenv_f()
Wolfgang Denk's avatar
Wolfgang Denk committed
until then to read environment variables.

The environment is protected by a CRC32 checksum. Before the monitor
is relocated into RAM, as a result of a bad CRC you will be working
with the compiled-in default environment - *silently*!!! [This is
necessary, because the first environment variable we need is the
"baudrate" setting for the console - if we have a bad CRC, we don't
have any device yet where we could complain.]
Wolfgang Denk's avatar
Wolfgang Denk committed

Note: once the monitor has been relocated, then it will complain if
the default environment is used; a new CRC is computed as soon as you
use the "saveenv" command to store a valid environment.
Wolfgang Denk's avatar
Wolfgang Denk committed

- CONFIG_SYS_FAULT_ECHO_LINK_DOWN:
		Echo the inverted Ethernet link state to the fault LED.
		Note: If this option is active, then CONFIG_SYS_FAULT_MII_ADDR
		      also needs to be defined.

- CONFIG_SYS_FAULT_MII_ADDR:
		MII address of the PHY to check for the Ethernet link state.
Wolfgang Denk's avatar
Wolfgang Denk committed

- 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.

- CONFIG_DISPLAY_BOARDINFO
		Display information about the board that U-Boot is running on
		when U-Boot starts up. The board function checkboard() is called
		to do this.

- CONFIG_DISPLAY_BOARDINFO_LATE
		Similar to the previous option, but display this information
		later, once stdio is running and output goes to the LCD, if
		present.

Wolfgang Denk's avatar
Wolfgang Denk committed
Low Level (hardware related) configuration options:
---------------------------------------------------
Wolfgang Denk's avatar
Wolfgang Denk committed

- CONFIG_SYS_CACHELINE_SIZE:
Wolfgang Denk's avatar
Wolfgang Denk committed
		Cache Line Size of the CPU.

- CONFIG_SYS_DEFAULT_IMMR:
Wolfgang Denk's avatar
Wolfgang Denk committed
		Default address of the IMMR after system reset.
		Needed on some 8260 systems (MPC8260ADS, PQ2FADS-ZU,
		and RPXsuper) to be able to adjust the position of
		the IMMR register after a reset.
Wolfgang Denk's avatar
Wolfgang Denk committed

- CONFIG_SYS_CCSRBAR_DEFAULT:
		Default (power-on reset) physical address of CCSR on Freescale
		PowerPC SOCs.

- CONFIG_SYS_CCSRBAR:
		Virtual address of CCSR.  On a 32-bit build, this is typically
		the same value as CONFIG_SYS_CCSRBAR_DEFAULT.

		CONFIG_SYS_DEFAULT_IMMR must also be set to this value,
		for cross-platform code that uses that macro instead.

- CONFIG_SYS_CCSRBAR_PHYS:
		Physical address of CCSR.  CCSR can be relocated to a new
		physical address, if desired.  In this case, this macro should
		be set to that address.	 Otherwise, it should be set to the
		same value as CONFIG_SYS_CCSRBAR_DEFAULT.  For example, CCSR
		is typically relocated on 36-bit builds.  It is recommended
		that this macro be defined via the _HIGH and _LOW macros:

		#define CONFIG_SYS_CCSRBAR_PHYS ((CONFIG_SYS_CCSRBAR_PHYS_HIGH
			* 1ull) << 32 | CONFIG_SYS_CCSRBAR_PHYS_LOW)

- CONFIG_SYS_CCSRBAR_PHYS_HIGH:
		Bits 33-36 of CONFIG_SYS_CCSRBAR_PHYS.	This value is typically
		either 0 (32-bit build) or 0xF (36-bit build).	This macro is
		used in assembly code, so it must not contain typecasts or
		integer size suffixes (e.g. "ULL").

- CONFIG_SYS_CCSRBAR_PHYS_LOW:
		Lower 32-bits of CONFIG_SYS_CCSRBAR_PHYS.  This macro is
		used in assembly code, so it must not contain typecasts or
		integer size suffixes (e.g. "ULL").

- CONFIG_SYS_CCSR_DO_NOT_RELOCATE:
		If this macro is defined, then CONFIG_SYS_CCSRBAR_PHYS will be
		forced to a value that ensures that CCSR is not relocated.

- Floppy Disk Support:
		CONFIG_SYS_FDC_DRIVE_NUMBER

		the default drive number (default value 0)

		CONFIG_SYS_ISA_IO_STRIDE
		defines the spacing between FDC chipset registers
		(default value 1)

		CONFIG_SYS_ISA_IO_OFFSET
		defines the offset of register from address. It
		depends on which part of the data bus is connected to
		the FDC chipset. (default value 0)
		If CONFIG_SYS_ISA_IO_STRIDE CONFIG_SYS_ISA_IO_OFFSET and
		CONFIG_SYS_FDC_DRIVE_NUMBER are undefined, they take their
		default value.
		if CONFIG_SYS_FDC_HW_INIT is defined, then the function
		fdc_hw_init() is called at the beginning of the FDC
		setup. fdc_hw_init() must be provided by the board
		source code. It is used to make hardware dependant
		initializations.
- CONFIG_IDE_AHB:
		Most IDE controllers were designed to be connected with PCI
		interface. Only few of them were designed for AHB interface.
		When software is doing ATA command and data transfer to
		IDE devices through IDE-AHB controller, some additional
		registers accessing to these kind of IDE-AHB controller
		is requierd.

- CONFIG_SYS_IMMR:	Physical address of the Internal Memory.
Wolfgang Denk's avatar
Wolfgang Denk committed
		DO NOT CHANGE unless you know exactly what you're
		doing! (11-4) [MPC8xx/82xx systems only]
Wolfgang Denk's avatar
Wolfgang Denk committed

- CONFIG_SYS_INIT_RAM_ADDR:
Wolfgang Denk's avatar
Wolfgang Denk committed

		Start address of memory area that can be used for
Wolfgang Denk's avatar
Wolfgang Denk committed
		initial data and stack; please note that this must be
		writable memory that is working WITHOUT special
		initialization, i. e. you CANNOT use normal RAM which
		will become available only after programming the
		memory controller and running certain initialization
		sequences.

		U-Boot uses the following memory types:
		- MPC8xx and MPC8260: IMMR (internal memory of the CPU)
		- MPC824X: data cache
		- PPC4xx:  data cache

- CONFIG_SYS_GBL_DATA_OFFSET:
Wolfgang Denk's avatar
Wolfgang Denk committed

		Offset of the initial data structure in the memory
		area defined by CONFIG_SYS_INIT_RAM_ADDR. Usually
		CONFIG_SYS_GBL_DATA_OFFSET is chosen such that the initial
Wolfgang Denk's avatar
Wolfgang Denk committed
		data is located at the end of the available space
		(sometimes written as (CONFIG_SYS_INIT_RAM_SIZE -
		CONFIG_SYS_INIT_DATA_SIZE), and the initial stack is just
		below that area (growing from (CONFIG_SYS_INIT_RAM_ADDR +
		CONFIG_SYS_GBL_DATA_OFFSET) downward.
Wolfgang Denk's avatar
Wolfgang Denk committed

	Note:
		On the MPC824X (or other systems that use the data
		cache for initial memory) the address chosen for
		CONFIG_SYS_INIT_RAM_ADDR is basically arbitrary - it must