that this requires a (stable) reference clock (32 kHz
RTC clock or CONFIG_SYS_8XX_XIN)
+ CONFIG_SYS_DELAYED_ICACHE
+
+ Define this option if you want to enable the
+ ICache only when Code runs from RAM.
+
- Intel Monahans options:
CONFIG_SYS_MONAHANS_RUN_MODE_OSC_RATIO
CONFIG_SYS_BAUDRATE_TABLE, see below.
CONFIG_SYS_BRGCLK_PRESCALE, baudrate prescale
+- Console Rx buffer length
+ With CONFIG_SYS_SMC_RXBUFLEN it is possible to define
+ the maximum receive buffer length for the SMC.
+ This option is actual only for 82xx and 8xx possible.
+ If using CONFIG_SYS_SMC_RXBUFLEN also CONFIG_SYS_MAXIDLE
+ must be defined, to setup the maximum idle timeout for
+ the SMC.
+
- Interrupt driven serial port input:
CONFIG_SERIAL_SOFTWARE_FIFO
except those marked below with a "*".
CONFIG_CMD_ASKENV * ask for env variable
- CONFIG_CMD_AUTOSCRIPT Autoscript Support
CONFIG_CMD_BDI bdinfo
CONFIG_CMD_BEDBUG * Include BedBug Debugger
CONFIG_CMD_BMP * BMP support
CONFIG_CMD_DATE * support for RTC, date/time...
CONFIG_CMD_DHCP * DHCP support
CONFIG_CMD_DIAG * Diagnostics
- CONFIG_CMD_DOC * Disk-On-Chip Support
CONFIG_CMD_DS4510 * ds4510 I2C gpio commands
CONFIG_CMD_DS4510_INFO * ds4510 I2C info command
CONFIG_CMD_DS4510_MEM * ds4510 I2C eeprom/sram commansd
CONFIG_CMD_ECHO echo arguments
CONFIG_CMD_EEPROM * EEPROM read/write support
CONFIG_CMD_ELF * bootelf, bootvx
- CONFIG_CMD_ENV saveenv
+ CONFIG_CMD_SAVEENV saveenv
CONFIG_CMD_FDC * Floppy Disk Support
CONFIG_CMD_FAT * FAT partition support
CONFIG_CMD_FDOS * Dos diskette Support
CONFIG_CMD_KGDB * kgdb
CONFIG_CMD_LOADB loadb
CONFIG_CMD_LOADS loads
+ CONFIG_CMD_MD5SUM print md5 message digest
+ (requires CONFIG_CMD_MEMORY and CONFIG_MD5)
CONFIG_CMD_MEMORY md, mm, nm, mw, cp, cmp, crc, base,
loop, loopw, mtest
CONFIG_CMD_MISC Misc functions like sleep etc
CONFIG_CMD_MMC * MMC memory mapped support
CONFIG_CMD_MII * MII utility commands
+ CONFIG_CMD_MTDPARTS * MTD partition support
CONFIG_CMD_NAND * NAND support
CONFIG_CMD_NET bootp, tftpboot, rarpboot
CONFIG_CMD_PCA953X * PCA953x I2C gpio commands
(requires CONFIG_CMD_I2C)
CONFIG_CMD_SETGETDCR Support for DCR Register access
(4xx only)
+ CONFIG_CMD_SHA1 print sha1 memory digest
+ (requires CONFIG_CMD_MEMORY)
+ CONFIG_CMD_SOURCE "source" command Support
CONFIG_CMD_SPI * SPI serial bus support
CONFIG_CMD_USB * USB support
CONFIG_CMD_VFD * VFD support (TRAB)
MPC5200 USB requires additional defines:
CONFIG_USB_CLOCK
for 528 MHz Clock: 0x0001bbbb
+ CONFIG_PSC3_USB
+ for USB on PSC3
CONFIG_USB_CONFIG
for differential drivers: 0x00001000
for single ended drivers: 0x00005000
+ for differential drivers on PSC3: 0x00000100
+ for single ended drivers on PSC3: 0x00004100
CONFIG_SYS_USB_EVENT_POLL
May be defined to allow interrupt polling
instead of using asynchronous interrupts
allows for a "silent" boot where a splash screen is
loaded very quickly after power-on.
+ CONFIG_SPLASH_SCREEN_ALIGN
+
+ If this option is set the splash image can be freely positioned
+ on the screen. Environment variable "splashpos" specifies the
+ position as "x,y". If a positive number is given it is used as
+ number of pixel from left/top. If a negative number is given it
+ is used as number of pixel from right/bottom. You can also
+ specify 'm' for centering the image.
+
+ Example:
+ setenv splashpos m,m
+ => image at center of screen
+
+ setenv splashpos 30,20
+ => image at x = 30 and y = 20
+
+ setenv splashpos -10,m
+ => vertically centered image
+ at x = dspWidth - bmpWidth - 9
+
- Gzip compressed BMP image support: CONFIG_VIDEO_BMP_GZIP
If this option is set, additionally to standard BMP
Defines a default value for the IP address of a TFTP
server to contact when using the "tftboot" command.
+ CONFIG_KEEP_SERVERADDR
+
+ Keeps the server's MAC address, in the env 'serveraddr'
+ for passing to bootargs (like Linux's netconsole option)
+
- Multicast TFTP Mode:
CONFIG_MCAST_TFTP
clock chips. See common/cmd_i2c.c for a description of the
command line interface.
- CONFIG_I2C_CMD_TREE is a recommended option that places
- all I2C commands under a single 'i2c' root command. The
- older 'imm', 'imd', 'iprobe' etc. commands are considered
- deprecated and may disappear in the future.
-
CONFIG_HARD_I2C selects a hardware I2C controller.
CONFIG_SOFT_I2C configures u-boot to use a software (aka
therefore be cleared to 0 (See, eg, MPC823e User's Manual
p.16-473). So, set CONFIG_SYS_I2C_SLAVE to 0.
+ CONFIG_SYS_I2C_INIT_MPC5XXX
+
+ When a board is reset during an i2c bus transfer
+ chips might think that the current transfer is still
+ in progress. Reset the slave devices by sending start
+ commands until the slave device responds.
+
That's all that's required for CONFIG_HARD_I2C.
If you use the software i2c interface (CONFIG_SOFT_I2C)
CONFIG_SYS_I2C_NOPROBES
This option specifies a list of I2C devices that will be skipped
- when the 'i2c probe' command is issued (or 'iprobe' using the legacy
- command). If CONFIG_I2C_MULTI_BUS is set, specify a list of bus-device
- pairs. Otherwise, specify a 1D array of device addresses
+ when the 'i2c probe' command is issued. If CONFIG_I2C_MULTI_BUS
+ is set, specify a list of bus-device pairs. Otherwise, specify
+ a 1D array of device addresses
e.g.
#undef CONFIG_I2C_MULTI_BUS
Bus on the MPC8260. But it should be not so difficult
to add this option to other architectures.
+ CONFIG_SOFT_I2C_READ_REPEATED_START
+
+ defining this will force the i2c_read() function in
+ the soft_i2c driver to perform an I2C repeated start
+ between writing the address pointer and reading the
+ data. If this define is omitted the default behaviour
+ of doing a stop-start sequence will be used. Most I2C
+ devices can use either method, but some require one or
+ the other.
- SPI Support: CONFIG_SPI
Note: overly (ab)use of the default environment is
discouraged. Make sure to check other ways to preset
- the environment like the autoscript function or the
+ the environment like the "source" command or the
boot command first.
- DataFlash Support:
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_DEVICE
+
+ Adds the MTD device infrastructure from the Linux kernel.
+ Needed for mtdparts command support.
+
+ CONFIG_MTD_PARTITIONS
+
+ Adds the MTD partitioning infrastructure from the Linux
+ kernel. Needed for UBI support.
+
Legacy uImage format:
Arg Where When
81 common/cmd_net.c NetLoop() back without error
-82 common/cmd_net.c size == 0 (File with size 0 loaded)
82 common/cmd_net.c trying automatic boot
- 83 common/cmd_net.c running autoscript
- -83 common/cmd_net.c some error in automatic boot or autoscript
+ 83 common/cmd_net.c running "source" command
+ -83 common/cmd_net.c some error in automatic boot or "source" command
84 common/cmd_net.c end without errors
FIT uImage format:
- CONFIG_SYS_LONGHELP: Defined when you want long help messages included;
undefine this when you're short of memory.
+- 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
prompt for user input.
to a block boundary, and CONFIG_ENV_SIZE must be a multiple of
the NAND devices block size.
+- 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_SYS_SPI_INIT_OFFSET
Defines offset to the initial SPI buffer area in DPRAM. The
- CONFIG_SYS_64BIT_STRTOUL:
Adds simple_strtoull that returns a 64bit value
+- 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.
+
Low Level (hardware related) configuration options:
---------------------------------------------------
CONFIG_SYS_POCMR2_MASK_ATTRIB: (MPC826x only)
Overrides the default PCI memory map in cpu/mpc8260/pci.c if set.
+- CONFIG_PCI_DISABLE_PCIE:
+ Disable PCI-Express on systems where it is supported but not
+ required.
+
- CONFIG_SPD_EEPROM
Get DDR timing information from an I2C EEPROM. Common
with pluggable memory modules such as SODIMMs
Only for 83xx systems. If specified, then DDR should
be configured using CS0 and CS1 instead of CS2 and CS3.
-- CONFIG_SYS_83XX_DDR_USES_CS0
- Only for 83xx systems. If specified, then DDR should
- be configured using CS0 and CS1 instead of CS2 and CS3.
-
- CONFIG_ETHER_ON_FEC[12]
Define to enable FEC[12] on a 8xx series processor.
some other boot loader or by a debugger which
performs these initializations itself.
+- CONFIG_PRELOADER
+
+ Modifies the behaviour of start.S when compiling a loader
+ that is executed before the actual U-Boot. E.g. when
+ compiling a NAND SPL.
Building the Software:
======================
$ CROSS_COMPILE=ppc_4xx-
$ export CROSS_COMPILE
+Note: If you wish to generate Windows versions of the utilities in
+ the tools directory you can use the MinGW toolchain
+ (http://www.mingw.org). Set your HOST tools to the MinGW
+ toolchain and execute 'make tools'. For example:
+
+ $ make HOSTCC=i586-mingw32msvc-gcc HOSTSTRIP=i586-mingw32msvc-strip tools
+
+ Binaries such as tools/mkimage.exe will be created which can
+ be executed on computers running Windows.
+
U-Boot is intended to be simple to build. After installing the
sources you must configure U-Boot for one specific board type. This
is done by typing:
cp - memory copy
cmp - memory compare
crc32 - checksum calculation
-imd - i2c memory display
-imm - i2c memory modify (auto-incrementing)
-inm - i2c memory modify (constant address)
-imw - i2c memory write (fill)
-icrc32 - i2c checksum calculation
-iprobe - probe to discover valid I2C chip addresses
-iloop - infinite loop on address range
-isdram - print SDRAM configuration information
+i2c - I2C sub-system
sspi - SPI utility commands
base - print or set address offset
printenv- print environment variables
autoscript - if set to "yes" commands like "loadb", "loady",
"bootp", "tftpb", "rarpboot" and "nfs" will attempt
to automatically run script images (by internally
- calling "autoscript").
+ calling "source").
autoscript_uname - if script image is in a format (FIT) this
variable is used to get script subimage unit name.
Useful on scripts which control the retry operation
themselves.
- npe_ucode - see CONFIG_IXP4XX_NPE_EXT_UCOD
- if set load address for the NPE microcode
+ npe_ucode - set load address for the NPE microcode
tftpsrcport - If this is set, the value is used for TFTP's
UDP source port.
average for all boards 752 bytes for the whole U-Boot image,
624 text + 127 data).
-On Blackfin, the normal C ABI (except for P5) is followed as documented here:
+On Blackfin, the normal C ABI (except for P3) is followed as documented here:
http://docs.blackfin.uclinux.org/doku.php?id=application_binary_interface
- ==> U-Boot will use P5 to hold a pointer to the global data
+ ==> U-Boot will use P3 to hold a pointer to the global data
On ARM, the following registers are used:
list, October 2002]
-int main (int argc, char *argv[])
+int main(int argc, char *argv[])
{
sighandler_t no_more_time;
- signal (SIGALRM, no_more_time);
- alarm (PROJECT_DEADLINE - toSec (3 * WEEK));
+ signal(SIGALRM, no_more_time);
+ alarm(PROJECT_DEADLINE - toSec (3 * WEEK));
if (available_money > available_manpower) {
- pay consultant to port U-Boot;
+ Pay consultant to port U-Boot;
return 0;
}
Subscribe to u-boot mailing list;
- if (clueless) {
- email ("Hi, I am new to U-Boot, how do I get started?");
- }
+ if (clueless)
+ email("Hi, I am new to U-Boot, how do I get started?");
while (learning) {
Read the README file in the top level directory;
- Read http://www.denx.de/twiki/bin/view/DULG/Manual ;
+ Read http://www.denx.de/twiki/bin/view/DULG/Manual;
+ Read applicable doc/*.README;
Read the source, Luke;
+ /* find . -name "*.[chS]" | xargs grep -i <keyword> */
}
- if (available_money > toLocalCurrency ($2500)) {
- Buy a BDI2000;
- } else {
+ if (available_money > toLocalCurrency ($2500))
+ Buy a BDI3000;
+ else
Add a lot of aggravation and time;
- }
-
- Create your own board support subdirectory;
-
- Create your own board config file;
- while (!running) {
- do {
- Add / modify source code;
- } until (compiles);
- Debug;
- if (clueless)
- email ("Hi, I am having problems...");
+ if (a similar board exists) { /* hopefully... */
+ cp -a board/<similar> board/<myboard>
+ cp include/configs/<similar>.h include/configs/<myboard>.h
+ } else {
+ Create your own board support subdirectory;
+ Create your own board include/configs/<myboard>.h file;
+ }
+ Edit new board/<myboard> files
+ Edit new include/configs/<myboard>.h
+
+ while (!accepted) {
+ while (!running) {
+ do {
+ Add / modify source code;
+ } until (compiles);
+ Debug;
+ if (clueless)
+ email("Hi, I am having problems...");
+ }
+ Send patch file to the U-Boot email list;
+ if (reasonable critiques)
+ Incorporate improvements from email list code review;
+ else
+ Defend code as written;
}
- Send patch file to Wolfgang;
return 0;
}