Skip to content
Snippets Groups Projects
README 166 KiB
Newer Older
Wolfgang Denk's avatar
Wolfgang Denk committed
		variable "pram" to the number of kB you want to
		reserve. Note that the board info structure will
		still show the full amount of RAM. If pRAM is
		reserved, a new environment variable "mem" will
		automatically be defined to hold the amount of
		remaining RAM in a form that can be passed as boot
		argument to Linux, for instance like that:

			setenv bootargs ... mem=\${mem}
Wolfgang Denk's avatar
Wolfgang Denk committed
			saveenv

		This way you can tell Linux not to use this memory,
		either, which results in a memory region that will
		not be affected by reboots.

		*WARNING* If your board configuration uses automatic
		detection of the RAM size, you must make sure that
		this memory test is non-destructive. So far, the
		following board configurations are known to be
		"pRAM-clean":

			IVMS8, IVML24, SPD8xx,
Wolfgang Denk's avatar
Wolfgang Denk committed

- Access to physical memory region (> 4GB)
		Some basic support is provided for operations on memory not
		normally accessible to U-Boot - e.g. some architectures
		support access to more than 4GB of memory on 32-bit
		machines using physical address extension or similar.
		Define CONFIG_PHYSMEM to access this basic support, which
		currently only supports clearing the memory.

Wolfgang Denk's avatar
Wolfgang Denk committed
- Error Recovery:
		CONFIG_NET_RETRY_COUNT

		This variable defines the number of retries for
		network operations like ARP, RARP, TFTP, or BOOTP
		before giving up the operation. If not defined, a
		default value of 5 is used.
Wolfgang Denk's avatar
Wolfgang Denk committed

		CONFIG_ARP_TIMEOUT

		Timeout waiting for an ARP reply in milliseconds.

		CONFIG_NFS_TIMEOUT

		Timeout in milliseconds used in NFS protocol.
		If you encounter "ERROR: Cannot umount" in nfs command,
		try longer timeout such as
		#define CONFIG_NFS_TIMEOUT 10000UL

Wolfgang Denk's avatar
Wolfgang Denk committed
- Command Interpreter:
		CONFIG_SYS_PROMPT_HUSH_PS2
Wolfgang Denk's avatar
Wolfgang Denk committed

		This defines the secondary prompt string, which is
		printed when the command interpreter needs more input
		to complete a command. Usually "> ".

	Note:

Wolfgang Denk's avatar
Wolfgang Denk committed
		In the current implementation, the local variables
		space and global environment variables space are
		separated. Local variables are those you define by
		simply typing `name=value'. To access a local
		variable later on, you have write `$name' or
		`${name}'; to execute the contents of a variable
		directly type `$name' at the command prompt.
Wolfgang Denk's avatar
Wolfgang Denk committed

		Global environment variables are those you use
		setenv/printenv to work with. To run a command stored
		in such a variable, you need to use the run command,
		and you must not use the '$' sign to access them.
Wolfgang Denk's avatar
Wolfgang Denk committed

		To store commands and special characters in a
		variable, please use double quotation marks
		surrounding the whole text of the variable, instead
		of the backslashes before semicolons and special
		symbols.

- Command Line Editing and History:
		CONFIG_CMDLINE_PS_SUPPORT

		Enable support for changing the command prompt string
		at run-time. Only static string is supported so far.
		The string is obtained from environment variables PS1
		and PS2.

- Default Environment:
Wolfgang Denk's avatar
Wolfgang Denk committed
		CONFIG_EXTRA_ENV_SETTINGS

		Define this to contain any number of null terminated
		strings (variable = value pairs) that will be part of
		the default environment compiled into the boot image.
		For example, place something like this in your
		board's config file:
Wolfgang Denk's avatar
Wolfgang Denk committed

		#define CONFIG_EXTRA_ENV_SETTINGS \
			"myvar1=value1\0" \
			"myvar2=value2\0"

		Warning: This method is based on knowledge about the
		internal format how the environment is stored by the
		U-Boot code. This is NOT an official, exported
		interface! Although it is unlikely that this format
		will change soon, there is no guarantee either.
Wolfgang Denk's avatar
Wolfgang Denk committed
		You better know what you are doing here.

		Note: overly (ab)use of the default environment is
		discouraged. Make sure to check other ways to preset
		the environment like the "source" command or the
		boot command first.
Wolfgang Denk's avatar
Wolfgang Denk committed

		CONFIG_DELAY_ENVIRONMENT

		Normally the environment is loaded when the board is
		initialised so that it is available to U-Boot. This inhibits
		that so that the environment is not available until
		explicitly loaded later by U-Boot code. With CONFIG_OF_CONTROL
		this is instead controlled by the value of
		/config/load-environment.

- TFTP Fixed UDP Port:
		CONFIG_TFTP_PORT

		If this is defined, the environment variable tftpsrcp
		is used to supply the TFTP UDP source port value.
		If tftpsrcp isn't defined, the normal pseudo-random port
		number generator is used.

		Also, the environment variable tftpdstp is used to supply
		the TFTP UDP destination port value.  If tftpdstp isn't
		defined, the normal port 69 is used.

		The purpose for tftpsrcp is to allow a TFTP server to
		blindly start the TFTP transfer using the pre-configured
		target IP address and UDP port. This has the effect of
		"punching through" the (Windows XP) firewall, allowing
		the remainder of the TFTP transfer to proceed normally.
		A better solution is to properly configure the firewall,
		but sometimes that is not allowed.

		This option defines a board specific value for the
		address where standalone program gets loaded, thus
		overwriting the architecture dependent default
		settings.

- Frame Buffer Address:
		CONFIG_FB_ADDR

		Define CONFIG_FB_ADDR if you want to use specific
		address for frame buffer.  This is typically the case
		when using a graphics controller has separate video
		memory.  U-Boot will then place the frame buffer at
		the given address instead of dynamically reserving it
		in system RAM by calling lcd_setmem(), which grabs
		the memory for the frame buffer depending on the
		configured panel size.

		Please see board_init_f function.

- Automatic software updates via TFTP server
		CONFIG_UPDATE_TFTP
		CONFIG_UPDATE_TFTP_CNT_MAX
		CONFIG_UPDATE_TFTP_MSEC_MAX

		These options enable and control the auto-update feature;
		for a more detailed description refer to doc/README.update.

- MTD Support (mtdparts command, UBI support)
		CONFIG_MTD_UBI_WL_THRESHOLD
		This parameter defines the maximum difference between the highest
		erase counter value and the lowest erase counter value of eraseblocks
		of UBI devices. When this threshold is exceeded, UBI starts performing
		wear leveling by means of moving data from eraseblock with low erase
		counter to eraseblocks with high erase counter.

		The default value should be OK for SLC NAND flashes, NOR flashes and
		other flashes which have eraseblock life-cycle 100000 or more.
		However, in case of MLC NAND flashes which typically have eraseblock
		life-cycle less than 10000, the threshold should be lessened (e.g.,
		to 128 or 256, although it does not have to be power of 2).

		default: 4096
		CONFIG_MTD_UBI_BEB_LIMIT
		This option specifies the maximum bad physical eraseblocks UBI
		expects on the MTD device (per 1024 eraseblocks). If the
		underlying flash does not admit of bad eraseblocks (e.g. NOR
		flash), this value is ignored.

		NAND datasheets often specify the minimum and maximum NVM
		(Number of Valid Blocks) for the flashes' endurance lifetime.
		The maximum expected bad eraseblocks per 1024 eraseblocks
		then can be calculated as "1024 * (1 - MinNVB / MaxNVB)",
		which gives 20 for most NANDs (MaxNVB is basically the total
		count of eraseblocks on the chip).

		To put it differently, if this value is 20, UBI will try to
		reserve about 1.9% of physical eraseblocks for bad blocks
		handling. And that will be 1.9% of eraseblocks on the entire
		NAND chip, not just the MTD partition UBI attaches. This means
		that if you have, say, a NAND flash chip admits maximum 40 bad
		eraseblocks, and it is split on two MTD partitions of the same
		size, UBI will reserve 40 eraseblocks when attaching a
		partition.

		default: 20

		CONFIG_MTD_UBI_FASTMAP
		Fastmap is a mechanism which allows attaching an UBI device
		in nearly constant time. Instead of scanning the whole MTD device it
		only has to locate a checkpoint (called fastmap) on the device.
		The on-flash fastmap contains all information needed to attach
		the device. Using fastmap makes only sense on large devices where
		attaching by scanning takes long. UBI will not automatically install
		a fastmap on old images, but you can set the UBI parameter
		CONFIG_MTD_UBI_FASTMAP_AUTOCONVERT to 1 if you want so. Please note
		that fastmap-enabled images are still usable with UBI implementations
		without	fastmap support. On typical flash devices the whole fastmap
		fits into one PEB. UBI will reserve PEBs to hold two fastmaps.

		CONFIG_MTD_UBI_FASTMAP_AUTOCONVERT
		Set this parameter to enable fastmap automatically on images
		without a fastmap.
		default: 0

		CONFIG_MTD_UBI_FM_DEBUG
		Enable UBI fastmap debug
		default: 0

		CONFIG_SPL
		Enable building of SPL globally.
		CONFIG_SPL_LDSCRIPT
		LDSCRIPT for linking the SPL binary.

		CONFIG_SPL_MAX_FOOTPRINT
		Maximum size in memory allocated to the SPL, BSS included.
		When defined, the linker checks that the actual memory
		used by SPL from _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_MAX_SIZE
		Maximum size of the SPL image (text, data, rodata, and
		linker lists sections), BSS excluded.
		When defined, the linker checks that the actual size does
		not exceed it.
		CONFIG_SPL_RELOC_TEXT_BASE
		Address to relocate to.  If unspecified, this is equal to
		CONFIG_SPL_TEXT_BASE (i.e. no relocation is done).

		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_PANIC_ON_RAW_IMAGE
		When defined, SPL will panic() if the image it has
		loaded does not have a signature.
		Defining this is useful when code which loads images
		in SPL cannot guarantee that absolutely all read errors
		will be caught.
		An example is the LPC32XX MLC NAND driver, which will
		consider that a completely unreadable NAND block is bad,
		and thus should be skipped silently.

		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.
		When this option is set the full malloc is used in SPL and
		it is set up by spl_init() and before that, the simple malloc()
		can be used if CONFIG_SYS_MALLOC_F is defined.

		CONFIG_SYS_SPL_MALLOC_SIZE
		The size of the malloc pool used in SPL.
		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_IDENT
		SPL uses the chip ID list to identify the NAND flash.
		Requires CONFIG_SPL_NAND_BASE.

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

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

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

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

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

- 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
- 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 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: IMMR (internal memory of the CPU)
Wolfgang Denk's avatar
Wolfgang Denk committed

- 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 -
		GENERATED_GBL_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
Wolfgang Denk's avatar
Wolfgang Denk committed
		point to an otherwise UNUSED address space between
		the top of RAM and the start of the PCI space.

- CONFIG_SYS_SCCR:	System Clock and reset Control Register (15-27)
Wolfgang Denk's avatar
Wolfgang Denk committed

- CONFIG_SYS_OR_TIMING_SDRAM:
Wolfgang Denk's avatar
Wolfgang Denk committed
		SDRAM timing

- CONFIG_SYS_MAMR_PTA:
Wolfgang Denk's avatar
Wolfgang Denk committed
		periodic timer for refresh

- FLASH_BASE0_PRELIM, FLASH_BASE1_PRELIM, CONFIG_SYS_REMAP_OR_AM,
  CONFIG_SYS_PRELIM_OR_AM, CONFIG_SYS_OR_TIMING_FLASH, CONFIG_SYS_OR0_REMAP,
  CONFIG_SYS_OR0_PRELIM, CONFIG_SYS_BR0_PRELIM, CONFIG_SYS_OR1_REMAP, CONFIG_SYS_OR1_PRELIM,
  CONFIG_SYS_BR1_PRELIM:
Wolfgang Denk's avatar
Wolfgang Denk committed
		Memory Controller Definitions: BR0/1 and OR0/1 (FLASH)

- SDRAM_BASE2_PRELIM, SDRAM_BASE3_PRELIM, SDRAM_MAX_SIZE,
  CONFIG_SYS_OR_TIMING_SDRAM, CONFIG_SYS_OR2_PRELIM, CONFIG_SYS_BR2_PRELIM,
  CONFIG_SYS_OR3_PRELIM, CONFIG_SYS_BR3_PRELIM:
Wolfgang Denk's avatar
Wolfgang Denk committed
		Memory Controller Definitions: BR2/3 and OR2/3 (SDRAM)

		Only scan through and get the devices on the buses.
		Don't do any setup work, presumably because someone or
		something has already done it, and we don't need to do it
		a second time.	Useful for platforms that are pre-booted
		by coreboot or similar.

- CONFIG_PCI_INDIRECT_BRIDGE:
		Enable support for indirect PCI bridges.

- CONFIG_SYS_SRIO:
		Chip has SRIO or not

- CONFIG_SRIO1:
		Board has SRIO 1 port available

- CONFIG_SRIO2:
		Board has SRIO 2 port available

- CONFIG_SRIO_PCIE_BOOT_MASTER
		Board can support master function for Boot from SRIO and PCIE

- CONFIG_SYS_SRIOn_MEM_VIRT:
		Virtual Address of SRIO port 'n' memory region

- CONFIG_SYS_SRIOn_MEM_PHYxS:
		Physical Address of SRIO port 'n' memory region

- CONFIG_SYS_SRIOn_MEM_SIZE:
		Size of SRIO port 'n' memory region

- CONFIG_SYS_NAND_BUSWIDTH_16BIT
		Defined to tell the NAND controller that the NAND chip is using
		a 16 bit bus.
		Not all NAND drivers use this symbol.
		Example of drivers that use it:
		- drivers/mtd/nand/raw/ndfc.c
		- drivers/mtd/nand/raw/mxc_nand.c

- CONFIG_SYS_NDFC_EBC0_CFG
		Sets the EBC0_CFG register for the NDFC. If not defined
		a default value will be used.

- CONFIG_SPD_EEPROM
		Get DDR timing information from an I2C EEPROM. Common
		with pluggable memory modules such as SODIMMs

  SPD_EEPROM_ADDRESS
		I2C address of the SPD EEPROM

- CONFIG_SYS_SPD_BUS_NUM
		If SPD EEPROM is on an I2C bus other than the first
		one, specify here. Note that the value must resolve
		to something your driver can deal with.
- CONFIG_SYS_DDR_RAW_TIMING
		Get DDR timing information from other than SPD. Common with
		soldered DDR chips onboard without SPD. DDR raw timing
		parameters are extracted from datasheet and hard-coded into
		header files or board specific files.

- CONFIG_FSL_DDR_INTERACTIVE
		Enable interactive DDR debugging. See doc/README.fsl-ddr.

- CONFIG_FSL_DDR_SYNC_REFRESH
		Enable sync of refresh for multiple controllers.