Skip to content
Snippets Groups Projects
README 206 KiB
Newer Older

		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_OS_BOOT
		Enable booting directly to an OS from SPL.
		See also: doc/README.falcon

		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_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION
		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_SYS_MMCSD_FS_BOOT_PARTITION
		Partition on the MMC to load U-Boot from when the MMC is being
		used in fs mode

		CONFIG_SPL_FS_LOAD_PAYLOAD_NAME
		Filename to read to load U-Boot when reading from filesystem

		CONFIG_SPL_FS_LOAD_KERNEL_NAME
		Filename to read to load kernel uImage when reading
		Filename to read to load kernel argument parameters
		when reading from filesystem (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_SKIP_RELOCATE
		Avoid SPL relocation

		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_SPL_UBI
		Support for a lightweight UBI (fastmap) scanner and
		loader

		CONFIG_SPL_NAND_RAW_ONLY
		Support to boot only raw u-boot.bin images. Use this only
		if you need to save space.

		CONFIG_SPL_COMMON_INIT_DDR
		Set for common ddr init with serial presence detect in
		SPL binary.

		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_SPL_NAND_BOOT
		Add support NAND 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 platforms.

		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_RAM_DEVICE
		Support for running image already present in ram, in SPL binary
		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.

- TPL framework
		CONFIG_TPL
		Enable building of TPL globally.

		CONFIG_TPL_PAD_TO
		Image offset to which the TPL should be padded before appending
		the TPL payload. By default, this is defined as
		CONFIG_SPL_MAX_SIZE, or 0 if CONFIG_SPL_MAX_SIZE is undefined.
		CONFIG_SPL_PAD_TO must be either 0, meaning to append the SPL
		payload without any padding, or >= CONFIG_SPL_MAX_SIZE.
- 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

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_SUPPORT_64BIT_DATA: Defined automatically if compiled as 64-bit.
		Optionally it can be defined to support 64-bit memory commands.

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

York Sun's avatar
York Sun committed
- CONFIG_SYS_MEM_RESERVE_SECURE
		Only implemented for ARMv8 for now.
York Sun's avatar
York Sun committed
		If defined, the size of CONFIG_SYS_MEM_RESERVE_SECURE memory
		is substracted from total RAM and won't be reported to OS.
		This memory can be used as secure memory. A variable
		gd->arch.secure_ram is used to track the location. In systems
York Sun's avatar
York Sun committed
		the RAM base is not zero, or RAM is divided into banks,
		this variable needs to be recalcuated to get the address.

- CONFIG_SYS_MEM_TOP_HIDE:
		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_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_MALLOC_F_LEN
		Size of the malloc() pool for use before relocation. If
		this is defined, then a very simple malloc() implementation
		will become available before relocation. The address is just
		below the global data, and the stack is moved down to make
		space.

		This feature allocates regions with increasing addresses
		within the region. calloc() is supported, but realloc()
		is not available. free() is supported but does nothing.
		The memory will be freed (or in fact just forgotten) when
- CONFIG_SYS_MALLOC_SIMPLE
		Provides a simple and small malloc() and calloc() for those
		boards which do not use the full malloc in SPL (which is
		enabled with CONFIG_SYS_SPL_MALLOC_START).

- CONFIG_SYS_NONCACHED_MEMORY:
		Size of non-cached memory area. This area of memory will be
		typically located right below the malloc() area and mapped
		uncached in the MMU. This is useful for drivers that would
		otherwise require a lot of explicit cache maintenance. For
		some drivers it's also impossible to properly maintain the
		cache. For example if the regions that need to be flushed
		are not a multiple of the cache-line size, *and* padding
		cannot be allocated between the regions to align them (i.e.
		if the HW requires a contiguous array of regions, and the
		size of each region is not cache-aligned), then a flush of
		one region may result in overwriting data that hardware has
		written to another region in the same cache-line. This can
		happen for example in network drivers where descriptors for
		buffers are typically smaller than the CPU cache-line (e.g.
		16 bytes vs. 32 or 64 bytes).

		Non-cached memory is only supported on 32-bit ARM at present.

- 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"
		environment variable is defined and non-zero. In such case
		all data for the Linux kernel must be between "bootm_low"
		and "bootm_low" + CONFIG_SYS_BOOTMAPSZ.	 The environment
		variable "bootm_mapsize" will override the value of
		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 environment variables when
	calling env set.  Variables can be restricted to only decimal,
	hexadecimal, or boolean.  If CONFIG_CMD_NET is also defined,
	the variables can also be restricted to IP address or MAC address.

	The format of the list is:
		type_attribute = [s|d|x|b|i|m]
		access_attribute = [a|r|o|c]
		attributes = type_attribute[access_attribute]
		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"
		environment 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.

	If CONFIG_REGEX is defined, the variable_name above is evaluated as a
	regular expression. This allows multiple variables to define the same
	flags without explicitly listing them for each variable.

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

- CONFIG_USE_STDINT
	If stdint.h is available with your toolchain you can define this
	option to enable it. You can provide option 'USE_STDINT=1' when
	building U-Boot to enable this.

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 initialization (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_I2C_EEPROM_BUS:
	  If defined, specified the i2c bus of the EEPROM device.

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

	  #define CONFIG_I2C_ENV_EEPROM_BUS	  1
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_SPI_FLASH:

	Define this if you have a SPI Flash memory 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 SPI Flash. CONFIG_ENV_OFFSET must be
	  aligned to an erase sector boundary.

	- CONFIG_ENV_SECT_SIZE:

	  Define the SPI flash's sector size.

	- 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_REDUND must be
	  aligned to an erase sector boundary.

	- CONFIG_ENV_SPI_BUS (optional):
	- CONFIG_ENV_SPI_CS (optional):

	  Define the SPI bus and chip select. If not defined they will be 0.

	- CONFIG_ENV_SPI_MAX_HZ (optional):

	  Define the SPI max work clock. If not defined then use 1MHz.

	- CONFIG_ENV_SPI_MODE (optional):

	  Define the SPI work mode. If not defined then use SPI_MODE_3.

- 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_REDUND 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_FAT:
       Define this if you want to use the FAT file system for the environment.

       - FAT_ENV_INTERFACE:

         Define this to a string that is the name of the block device.

       - FAT_ENV_DEVICE_AND_PART:

         Define this to a string to specify the partition of the device. It can
         be as following:

           "D:P", "D:0", "D", "D:" or "D:auto" (D, P are integers. And P >= 1)
               - "D:P": device D partition P. Error occurs if device D has no
                        partition table.
               - "D:0": device D.
               - "D" or "D:": device D partition 1 if device D has partition
                              table, or the whole device D if has no partition
                              table.
               - "D:auto": first partition in device D with bootable flag set.
                           If none, first valid partition in device D. If no
                           partition table then means device D.

       - FAT_ENV_FILE:

         It's a string of the FAT file name. This file use to store the
         This must be enabled. Otherwise it cannot save the environment file.
- 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.

- CONFIG_BOARD_SIZE_LIMIT:
		Maximum size of the U-Boot image. When defined, the
		build system checks that the actual size does not
		exceed it.

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