X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=README;h=9283c5eabdbdac080fea728c29945b37fbd1c93e;hb=78549bbf44bd2c8d1a0730fb068836071751afaa;hp=b5a287cbf73ff4eea0fdefaa032c300ec7eda46c;hpb=028ab6b598b628326116acd88e0f35aa9f526d12;p=u-boot diff --git a/README b/README index b5a287cbf7..0df024fb7c 100644 --- a/README +++ b/README @@ -1,5 +1,5 @@ # -# (C) Copyright 2000 - 2004 +# (C) Copyright 2000 - 2005 # Wolfgang Denk, DENX Software Engineering, wd@denx.de. # # See file CREDITS for list of people who contributed to this @@ -25,9 +25,10 @@ Summary: ======== This directory contains the source code for U-Boot, a boot loader for -Embedded boards based on PowerPC and ARM processors, which can be -installed in a boot ROM and used to initialize and test the hardware -or to download and run application code. +Embedded boards based on PowerPC, ARM, MIPS and several other +processors, which can be installed in a boot ROM and used to +initialize and test the hardware or to download and run application +code. The development of U-Boot is closely related to Linux: some parts of the source code originate in the Linux source tree, we have some @@ -122,135 +123,53 @@ Directory Hierarchy: - board Board dependent files - common Misc architecture independent functions - cpu CPU specific files + - 74xx_7xx Files specific to Freescale MPC74xx and 7xx CPUs + - arm720t Files specific to ARM 720 CPUs + - arm920t Files specific to ARM 920 CPUs + - at91rm9200 Files specific to Atmel AT91RM9200 CPU + - imx Files specific to Freescale MC9328 i.MX CPUs + - s3c24x0 Files specific to Samsung S3C24X0 CPUs + - arm925t Files specific to ARM 925 CPUs + - arm926ejs Files specific to ARM 926 CPUs + - arm1136 Files specific to ARM 1136 CPUs + - at32ap Files specific to Atmel AVR32 AP CPUs + - i386 Files specific to i386 CPUs + - ixp Files specific to Intel XScale IXP CPUs + - mcf52x2 Files specific to Freescale ColdFire MCF52x2 CPUs + - mips Files specific to MIPS CPUs + - mpc5xx Files specific to Freescale MPC5xx CPUs + - mpc5xxx Files specific to Freescale MPC5xxx CPUs + - mpc8xx Files specific to Freescale MPC8xx CPUs + - mpc8220 Files specific to Freescale MPC8220 CPUs + - mpc824x Files specific to Freescale MPC824x CPUs + - mpc8260 Files specific to Freescale MPC8260 CPUs + - mpc85xx Files specific to Freescale MPC85xx CPUs + - nios Files specific to Altera NIOS CPUs + - nios2 Files specific to Altera Nios-II CPUs + - ppc4xx Files specific to AMCC PowerPC 4xx CPUs + - pxa Files specific to Intel XScale PXA CPUs + - s3c44b0 Files specific to Samsung S3C44B0 CPUs + - sa1100 Files specific to Intel StrongARM SA1100 CPUs - disk Code for disk drive partition handling - doc Documentation (don't expect too much) - drivers Commonly used device drivers - dtt Digital Thermometer and Thermostat drivers - examples Example code for standalone applications, etc. - include Header Files -- disk Harddisk interface code +- lib_arm Files generic to ARM architecture +- lib_avr32 Files generic to AVR32 architecture +- lib_generic Files generic to all architectures +- lib_i386 Files generic to i386 architecture +- lib_m68k Files generic to m68k architecture +- lib_mips Files generic to MIPS architecture +- lib_nios Files generic to NIOS architecture +- lib_ppc Files generic to PowerPC architecture +- libfdt Library files to support flattened device trees - net Networking code -- ppc Files generic to PowerPC architecture - post Power On Self Test -- post/arch Symlink to architecture specific Power On Self Test -- post/arch-ppc PowerPC architecture specific Power On Self Test -- post/cpu/mpc8260 MPC8260 CPU specific Power On Self Test -- post/cpu/mpc8xx MPC8xx CPU specific Power On Self Test - rtc Real Time Clock drivers - tools Tools to build S-Record or U-Boot images, etc. -- cpu/74xx_7xx Files specific to Motorola MPC74xx and 7xx CPUs -- cpu/arm925t Files specific to ARM 925 CPUs -- cpu/arm926ejs Files specific to ARM 926 CPUs -- cpu/mpc5xx Files specific to Motorola MPC5xx CPUs -- cpu/mpc8xx Files specific to Motorola MPC8xx CPUs -- cpu/mpc824x Files specific to Motorola MPC824x CPUs -- cpu/mpc8260 Files specific to Motorola MPC8260 CPU -- cpu/mpc85xx Files specific to Motorola MPC85xx CPUs -- cpu/ppc4xx Files specific to IBM 4xx CPUs - - -- board/LEOX/ Files specific to boards manufactured by The LEOX team -- board/LEOX/elpt860 Files specific to ELPT860 boards -- board/RPXClassic - Files specific to RPXClassic boards -- board/RPXlite Files specific to RPXlite boards -- board/at91rm9200dk Files specific to AT91RM9200DK boards -- board/c2mon Files specific to c2mon boards -- board/cmi Files specific to cmi boards -- board/cogent Files specific to Cogent boards - (need further configuration) - Files specific to CPCIISER4 boards -- board/cpu86 Files specific to CPU86 boards -- board/cray/ Files specific to boards manufactured by Cray -- board/cray/L1 Files specific to L1 boards -- board/cu824 Files specific to CU824 boards -- board/ebony Files specific to IBM Ebony board -- board/eric Files specific to ERIC boards -- board/esd/ Files specific to boards manufactured by ESD -- board/esd/adciop Files specific to ADCIOP boards -- board/esd/ar405 Files specific to AR405 boards -- board/esd/canbt Files specific to CANBT boards -- board/esd/cpci405 Files specific to CPCI405 boards -- board/esd/cpciiser4 Files specific to CPCIISER4 boards -- board/esd/common Common files for ESD boards -- board/esd/dasa_sim Files specific to DASA_SIM boards -- board/esd/du405 Files specific to DU405 boards -- board/esd/ocrtc Files specific to OCRTC boards -- board/esd/pci405 Files specific to PCI405 boards -- board/esteem192e - Files specific to ESTEEM192E boards -- board/etx094 Files specific to ETX_094 boards -- board/evb64260 - Files specific to EVB64260 boards -- board/fads Files specific to FADS boards -- board/flagadm Files specific to FLAGADM boards -- board/gen860t Files specific to GEN860T and GEN860T_SC boards -- board/genietv Files specific to GENIETV boards -- board/gth Files specific to GTH boards -- board/hermes Files specific to HERMES boards -- board/hymod Files specific to HYMOD boards -- board/icu862 Files specific to ICU862 boards -- board/ip860 Files specific to IP860 boards -- board/iphase4539 - Files specific to Interphase4539 boards -- board/ivm Files specific to IVMS8/IVML24 boards -- board/lantec Files specific to LANTEC boards -- board/lwmon Files specific to LWMON boards -- board/Marvell Files specific to Marvell development boards -- board/Marvell/db64360 Files specific to db64360 board -- board/Marvell/db64460 Files specific to db64460 board -- board/mbx8xx Files specific to MBX boards -- board/mpc8260ads - Files specific to MPC826xADS and PQ2FADS-ZU/VR boards -- board/mpc8540ads - Files specific to MPC8540ADS boards -- board/mpc8560ads - Files specific to MPC8560ADS boards -- board/mpl/ Files specific to boards manufactured by MPL -- board/mpl/common Common files for MPL boards -- board/mpl/pip405 Files specific to PIP405 boards -- board/mpl/mip405 Files specific to MIP405 boards -- board/mpl/vcma9 Files specific to VCMA9 boards -- board/musenki Files specific to MUSEKNI boards -- board/mvs1 Files specific to MVS1 boards -- board/nx823 Files specific to NX823 boards -- board/oxc Files specific to OXC boards -- board/omap1510inn - Files specific to OMAP 1510 Innovator boards -- board/omap1610inn - Files specific to OMAP 1610 Innovator and H2 boards -- board/pcippc2 Files specific to PCIPPC2/PCIPPC6 boards -- board/pm826 Files specific to PM826 boards -- board/ppmc8260 - Files specific to PPMC8260 boards -- board/snmc/qs850 Files specific to QS850/823 boards -- board/snmc/qs860t Files specific to QS860T boards -- board/rpxsuper - Files specific to RPXsuper boards -- board/rsdproto - Files specific to RSDproto boards -- board/sandpoint - Files specific to Sandpoint boards -- board/sbc8260 Files specific to SBC8260 boards -- board/sacsng Files specific to SACSng boards -- board/siemens Files specific to boards manufactured by Siemens AG -- board/siemens/CCM Files specific to CCM boards -- board/siemens/IAD210 Files specific to IAD210 boards -- board/siemens/SCM Files specific to SCM boards -- board/siemens/pcu_e Files specific to PCU_E boards -- board/sixnet Files specific to SIXNET boards -- board/spd8xx Files specific to SPD8xxTS boards -- board/tqm8260 Files specific to TQM8260 boards -- board/tqm8xx Files specific to TQM8xxL boards -- board/w7o Files specific to W7O boards -- board/walnut405 - Files specific to Walnut405 boards -- board/westel/ Files specific to boards manufactured by Westel Wireless -- board/westel/amx860 Files specific to AMX860 boards -- board/utx8245 Files specific to UTX8245 boards -- board/zpc1900 Files specific to Zephyr Engineering ZPC.1900 board - Software Configuration: ======================= @@ -315,6 +234,7 @@ The following options need to be configured: ------------------- CONFIG_MPC823, CONFIG_MPC850, CONFIG_MPC855, CONFIG_MPC860 or CONFIG_MPC5xx + or CONFIG_MPC8220 or CONFIG_MPC824X, CONFIG_MPC8260 or CONFIG_MPC85xx or CONFIG_IOP480 @@ -329,58 +249,97 @@ The following options need to be configured: CONFIG_SA1110 CONFIG_ARM7 CONFIG_PXA250 + CONFIG_PXA27X + CONFIG_CPU_MONAHANS + + MicroBlaze based CPUs: + ---------------------- + CONFIG_MICROBLAZE + + Nios-2 based CPUs: + ---------------------- + CONFIG_NIOS2 + AVR32 based CPUs: + ---------------------- + CONFIG_AT32AP - Board Type: Define exactly one of PowerPC based boards: --------------------- - CONFIG_ADCIOP, CONFIG_ICU862 CONFIG_RPXsuper, - CONFIG_ADS860, CONFIG_IP860, CONFIG_SM850, - CONFIG_AMX860, CONFIG_IPHASE4539, CONFIG_SPD823TS, - CONFIG_AR405, CONFIG_IVML24, CONFIG_SXNI855T, - CONFIG_BAB7xx, CONFIG_IVML24_128, CONFIG_Sandpoint8240, - CONFIG_CANBT, CONFIG_IVML24_256, CONFIG_Sandpoint8245, - CONFIG_CCM, CONFIG_IVMS8, CONFIG_TQM823L, - CONFIG_CPCI405, CONFIG_IVMS8_128, CONFIG_TQM850L, - CONFIG_CPCI4052, CONFIG_IVMS8_256, CONFIG_TQM855L, - CONFIG_CPCIISER4, CONFIG_LANTEC, CONFIG_TQM860L, - CONFIG_CPU86, CONFIG_MBX, CONFIG_TQM8260, - CONFIG_CRAYL1, CONFIG_MBX860T, CONFIG_TTTech, - CONFIG_CU824, CONFIG_MHPC, CONFIG_UTX8245, - CONFIG_DASA_SIM, CONFIG_MIP405, CONFIG_W7OLMC, - CONFIG_DU405, CONFIG_MOUSSE, CONFIG_W7OLMG, - CONFIG_ELPPC, CONFIG_MPC8260ADS, CONFIG_WALNUT405, - CONFIG_ERIC, CONFIG_MUSENKI, CONFIG_ZUMA, - CONFIG_ESTEEM192E, CONFIG_MVS1, CONFIG_c2mon, - CONFIG_ETX094, CONFIG_NX823, CONFIG_cogent_mpc8260, - CONFIG_EVB64260, CONFIG_OCRTC, CONFIG_cogent_mpc8xx, - CONFIG_FADS823, CONFIG_ORSG, CONFIG_ep8260, - CONFIG_FADS850SAR, CONFIG_OXC, CONFIG_gw8260, - CONFIG_FADS860T, CONFIG_PCI405, CONFIG_hermes, - CONFIG_FLAGADM, CONFIG_PCIPPC2, CONFIG_hymod, - CONFIG_FPS850L, CONFIG_PCIPPC6, CONFIG_lwmon, - CONFIG_GEN860T, CONFIG_PIP405, CONFIG_pcu_e, - CONFIG_GENIETV, CONFIG_PM826, CONFIG_ppmc8260, - CONFIG_GTH, CONFIG_RPXClassic, CONFIG_rsdproto, - CONFIG_IAD210, CONFIG_RPXlite, CONFIG_sbc8260, - CONFIG_EBONY, CONFIG_sacsng, CONFIG_FPS860L, - CONFIG_V37, CONFIG_ELPT860, CONFIG_CMI, - CONFIG_NETVIA, CONFIG_RBC823, CONFIG_ZPC1900, - CONFIG_MPC8540ADS, CONFIG_MPC8560ADS, CONFIG_QS850, - CONFIG_QS823, CONFIG_QS860T, CONFIG_DB64360, - CONFIG_DB64460, CONFIG_DUET_ADS + CONFIG_ADCIOP CONFIG_FPS860L CONFIG_OXC + CONFIG_ADS860 CONFIG_GEN860T CONFIG_PCI405 + CONFIG_AMX860 CONFIG_GENIETV CONFIG_PCIPPC2 + CONFIG_AP1000 CONFIG_GTH CONFIG_PCIPPC6 + CONFIG_AR405 CONFIG_gw8260 CONFIG_pcu_e + CONFIG_BAB7xx CONFIG_hermes CONFIG_PIP405 + CONFIG_BC3450 CONFIG_hymod CONFIG_PM826 + CONFIG_c2mon CONFIG_IAD210 CONFIG_ppmc8260 + CONFIG_CANBT CONFIG_ICU862 CONFIG_QS823 + CONFIG_CCM CONFIG_IP860 CONFIG_QS850 + CONFIG_CMI CONFIG_IPHASE4539 CONFIG_QS860T + CONFIG_cogent_mpc8260 CONFIG_IVML24 CONFIG_RBC823 + CONFIG_cogent_mpc8xx CONFIG_IVML24_128 CONFIG_RPXClassic + CONFIG_CPCI405 CONFIG_IVML24_256 CONFIG_RPXlite + CONFIG_CPCI4052 CONFIG_IVMS8 CONFIG_RPXsuper + CONFIG_CPCIISER4 CONFIG_IVMS8_128 CONFIG_rsdproto + CONFIG_CPU86 CONFIG_IVMS8_256 CONFIG_sacsng + CONFIG_CRAYL1 CONFIG_JSE CONFIG_Sandpoint8240 + CONFIG_CSB272 CONFIG_LANTEC CONFIG_Sandpoint8245 + CONFIG_CU824 CONFIG_LITE5200B CONFIG_sbc8260 + CONFIG_DASA_SIM CONFIG_lwmon CONFIG_sbc8560 + CONFIG_DB64360 CONFIG_MBX CONFIG_SM850 + CONFIG_DB64460 CONFIG_MBX860T CONFIG_SPD823TS + CONFIG_DU405 CONFIG_MHPC CONFIG_STXGP3 + CONFIG_DUET_ADS CONFIG_MIP405 CONFIG_SXNI855T + CONFIG_EBONY CONFIG_MOUSSE CONFIG_TQM823L + CONFIG_ELPPC CONFIG_MPC8260ADS CONFIG_TQM8260 + CONFIG_ELPT860 CONFIG_MPC8540ADS CONFIG_TQM850L + CONFIG_ep8260 CONFIG_MPC8540EVAL CONFIG_TQM855L + CONFIG_ERIC CONFIG_MPC8560ADS CONFIG_TQM860L + CONFIG_ESTEEM192E CONFIG_MUSENKI CONFIG_TTTech + CONFIG_ETX094 CONFIG_MVS1 CONFIG_UTX8245 + CONFIG_EVB64260 CONFIG_NETPHONE CONFIG_V37 + CONFIG_FADS823 CONFIG_NETTA CONFIG_W7OLMC + CONFIG_FADS850SAR CONFIG_NETVIA CONFIG_W7OLMG + CONFIG_FADS860T CONFIG_NX823 CONFIG_WALNUT + CONFIG_FLAGADM CONFIG_OCRTC CONFIG_ZPC1900 + CONFIG_FPS850L CONFIG_ORSG CONFIG_ZUMA ARM based boards: ----------------- - CONFIG_HHP_CRADLE, CONFIG_DNP1110, CONFIG_EP7312, - CONFIG_IMPA7, CONFIG_LART, CONFIG_LUBBOCK, - CONFIG_INNOVATOROMAP1510, CONFIG_INNOVATOROMAP1610, - CONFIG_H2_OMAP1610, CONFIG_SHANNON, CONFIG_SMDK2400, - CONFIG_SMDK2410, CONFIG_TRAB, CONFIG_VCMA9, - CONFIG_AT91RM9200DK + CONFIG_ARMADILLO, CONFIG_AT91RM9200DK, CONFIG_CERF250, + CONFIG_CSB637, CONFIG_DELTA, CONFIG_DNP1110, + CONFIG_EP7312, CONFIG_H2_OMAP1610, CONFIG_HHP_CRADLE, + CONFIG_IMPA7, CONFIG_INNOVATOROMAP1510, CONFIG_INNOVATOROMAP1610, + CONFIG_KB9202, CONFIG_LART, CONFIG_LPD7A400, + CONFIG_LUBBOCK, CONFIG_OSK_OMAP5912, CONFIG_OMAP2420H4, + CONFIG_PLEB2, CONFIG_SHANNON, CONFIG_P2_OMAP730, + CONFIG_SMDK2400, CONFIG_SMDK2410, CONFIG_TRAB, + CONFIG_VCMA9 + + MicroBlaze based boards: + ------------------------ + + CONFIG_SUZAKU + + Nios-2 based boards: + ------------------------ + + CONFIG_PCI5441 CONFIG_PK1C20 + CONFIG_EP1C20 CONFIG_EP1S10 CONFIG_EP1S40 + + AVR32 based boards: + ------------------- + + CONFIG_ATSTK1000 + +- CPU Daughterboard Type: (if CONFIG_ATSTK1000 is defined) + Define exactly one of + CONFIG_ATSTK1002 - CPU Module Type: (if CONFIG_COGENT is defined) @@ -410,23 +369,24 @@ The following options need to be configured: CFG_8260ADS - original MPC8260ADS CFG_8266ADS - MPC8266ADS CFG_PQ2FADS - PQ2FADS-ZU or PQ2FADS-VR - + CFG_8272ADS - MPC8272ADS - MPC824X Family Member (if CONFIG_MPC824X is defined) Define exactly one of CONFIG_MPC8240, CONFIG_MPC8245 - 8xx CPU Options: (if using an MPC8xx cpu) - Define one or more of - CONFIG_8xx_GCLK_FREQ - if get_gclk_freq() cannot work + CONFIG_8xx_GCLK_FREQ - deprecated: CPU clock if + get_gclk_freq() cannot work e.g. if there is no 32KHz reference PIT/RTC clock + CONFIG_8xx_OSCLK - PLL input clock (either EXTCLK + or XTAL/EXTAL) -- 859/866 CPU options: (if using a MPC859 or MPC866 CPU): - CFG_866_OSCCLK - CFG_866_CPUCLK_MIN - CFG_866_CPUCLK_MAX - CFG_866_CPUCLK_DEFAULT +- 859/866/885 CPU options: (if using a MPC859 or MPC866 or MPC885 CPU): + CFG_8xx_CPUCLK_MIN + CFG_8xx_CPUCLK_MAX + CONFIG_8xx_CPUCLK_DEFAULT See doc/README.MPC866 CFG_MEASURE_CPUCLK @@ -436,7 +396,21 @@ The following options need to be configured: values. Mostly useful for board bringup to make sure the PLL is locked at the intended frequency. Note that this requires a (stable) reference clock (32 kHz - RTC clock), + RTC clock or CFG_8XX_XIN) + +- Intel Monahans options: + CFG_MONAHANS_RUN_MODE_OSC_RATIO + + Defines the Monahans run mode to oscillator + ratio. Valid values are 8, 16, 24, 31. The core + frequency is this value multiplied by 13 MHz. + + CFG_MONAHANS_TURBO_RUN_MODE_RATIO + + Defines the Monahans turbo mode to oscillator + ratio. Valid values are 1 (default if undefined) and + 2. The core frequency as calculated above is multiplied + by this value. - Linux Kernel Interface: CONFIG_CLOCKS_IN_MHZ @@ -458,6 +432,77 @@ The following options need to be configured: expect it to be in bytes, others in MB. Define CONFIG_MEMSIZE_IN_BYTES to make it in bytes. + CONFIG_OF_LIBFDT / CONFIG_OF_FLAT_TREE + + New kernel versions are expecting firmware settings to be + passed using flattened device trees (based on open firmware + concepts). + + CONFIG_OF_LIBFDT + * New libfdt-based support + * Adds the "fdt" command + * The bootm command does _not_ modify the fdt + + CONFIG_OF_FLAT_TREE + * Deprecated, see CONFIG_OF_LIBFDT + * Original ft_build.c-based support + * Automatically modifies the dft as part of the bootm command + * The environment variable "disable_of", when set, + disables this functionality. + + CONFIG_OF_FLAT_TREE_MAX_SIZE + + The maximum size of the constructed OF tree. + + OF_CPU - The proper name of the cpus node. + OF_SOC - The proper name of the soc node. + OF_TBCLK - The timebase frequency. + OF_STDOUT_PATH - The path to the console device + + CONFIG_OF_HAS_BD_T + + * CONFIG_OF_LIBFDT - enables the "fdt bd_t" command + * CONFIG_OF_FLAT_TREE - The resulting flat device tree + will have a copy of the bd_t. Space should be + pre-allocated in the dts for the bd_t. + + CONFIG_OF_HAS_UBOOT_ENV + + * CONFIG_OF_LIBFDT - enables the "fdt bd_t" command + * CONFIG_OF_FLAT_TREE - The resulting flat device tree + will have a copy of u-boot's environment variables + + CONFIG_OF_BOARD_SETUP + + Board code has addition modification that it wants to make + to the flat device tree before handing it off to the kernel + + CONFIG_OF_BOOT_CPU + + This define fills in the correct boot cpu in the boot + param header, the default value is zero if undefined. + +- Serial Ports: + CFG_PL010_SERIAL + + Define this if you want support for Amba PrimeCell PL010 UARTs. + + CFG_PL011_SERIAL + + Define this if you want support for Amba PrimeCell PL011 UARTs. + + CONFIG_PL011_CLOCK + + If you have Amba PrimeCell PL011 UARTs, set this variable to + the clock speed of the UARTs. + + CONFIG_PL01x_PORTS + + If you have Amba PrimeCell PL010 or PL011 UARTs on your board, + define this to a list of base addresses for each (supported) + port. See e.g. include/configs/versatile.h + + - Console Interface: Depending on board, define exactly one serial port (like CONFIG_8xx_CONS_SMC1, CONFIG_8xx_CONS_SMC2, @@ -497,7 +542,7 @@ The following options need to be configured: CFG_CONSOLE_BLINK_COUNT blink interval (cf. i8042.c) CONFIG_CONSOLE_TIME display time/date info in upper right corner - (requires CFG_CMD_DATE) + (requires CONFIG_CMD_DATE) CONFIG_VIDEO_LOGO display Linux logo in upper left corner CONFIG_VIDEO_BMP_LOGO use bmp_logo.h instead of @@ -531,13 +576,13 @@ The following options need to be configured: (RTS/CTS) and UART's built-in FIFO. Set the number of bytes the interrupt driven input buffer should have. - Set to 0 to disable this feature (this is the default). - This will also disable hardware handshake. + Leave undefined to disable this feature, including + disable the buffer and hardware handshake. - Console UART Number: CONFIG_UART1_CONSOLE - IBM PPC4xx only. + AMCC PPC4xx only. If defined internal UART1 (and not UART0) is used as default U-Boot console. @@ -601,97 +646,96 @@ The following options need to be configured: time on others. This setting #define's the initial value of the "loads_echo" environment variable. -- Kgdb Serial Baudrate: (if CFG_CMD_KGDB is defined) +- Kgdb Serial Baudrate: (if CONFIG_CMD_KGDB is defined) CONFIG_KGDB_BAUDRATE Select one of the baudrates listed in CFG_BAUDRATE_TABLE, see below. - Monitor Functions: - CONFIG_COMMANDS - Most monitor functions can be selected (or - de-selected) by adjusting the definition of - CONFIG_COMMANDS; to select individual functions, - #define CONFIG_COMMANDS by "OR"ing any of the - following values: - - #define enables commands: - ------------------------- - CFG_CMD_ASKENV * ask for env variable - CFG_CMD_AUTOSCRIPT Autoscript Support - CFG_CMD_BDI bdinfo - CFG_CMD_BEDBUG Include BedBug Debugger - CFG_CMD_BMP * BMP support - CFG_CMD_BOOTD bootd - CFG_CMD_CACHE icache, dcache - CFG_CMD_CONSOLE coninfo - CFG_CMD_DATE * support for RTC, date/time... - CFG_CMD_DHCP DHCP support - CFG_CMD_DIAG * Diagnostics - CFG_CMD_DOC * Disk-On-Chip Support - CFG_CMD_DTT Digital Therm and Thermostat - CFG_CMD_ECHO * echo arguments - CFG_CMD_EEPROM * EEPROM read/write support - CFG_CMD_ELF bootelf, bootvx - CFG_CMD_ENV saveenv - CFG_CMD_FDC * Floppy Disk Support - CFG_CMD_FAT FAT partition support - CFG_CMD_FDOS * Dos diskette Support - CFG_CMD_FLASH flinfo, erase, protect - CFG_CMD_FPGA FPGA device initialization support - CFG_CMD_HWFLOW * RTS/CTS hw flow control - CFG_CMD_I2C * I2C serial bus support - CFG_CMD_IDE * IDE harddisk support - CFG_CMD_IMI iminfo - CFG_CMD_IMLS List all found images - CFG_CMD_IMMAP * IMMR dump support - CFG_CMD_IRQ * irqinfo - CFG_CMD_ITEST * Integer/string test of 2 values - CFG_CMD_JFFS2 * JFFS2 Support - CFG_CMD_KGDB * kgdb - CFG_CMD_LOADB loadb - CFG_CMD_LOADS loads - CFG_CMD_MEMORY md, mm, nm, mw, cp, cmp, crc, base, - loop, mtest - CFG_CMD_MISC Misc functions like sleep etc - CFG_CMD_MMC MMC memory mapped support - CFG_CMD_MII MII utility commands - CFG_CMD_NAND * NAND support - CFG_CMD_NET bootp, tftpboot, rarpboot - CFG_CMD_PCI * pciinfo - CFG_CMD_PCMCIA * PCMCIA support - CFG_CMD_PING * send ICMP ECHO_REQUEST to network host - CFG_CMD_PORTIO * Port I/O - CFG_CMD_REGINFO * Register dump - CFG_CMD_RUN run command in env variable - CFG_CMD_SAVES save S record dump - CFG_CMD_SCSI * SCSI Support - CFG_CMD_SDRAM * print SDRAM configuration information - CFG_CMD_SETGETDCR Support for DCR Register access (4xx only) - CFG_CMD_SPI * SPI serial bus support - CFG_CMD_USB * USB support - CFG_CMD_VFD * VFD support (TRAB) - CFG_CMD_BSP * Board SPecific functions - ----------------------------------------------- - CFG_CMD_ALL all - - CFG_CMD_DFL Default configuration; at the moment - this is includes all commands, except - the ones marked with "*" in the list - above. - - If you don't define CONFIG_COMMANDS it defaults to - CFG_CMD_DFL in include/cmd_confdefs.h. A board can - override the default settings in the respective - include file. + Monitor commands can be included or excluded + from the build by using the #include files + "config_cmd_all.h" and #undef'ing unwanted + commands, or using "config_cmd_default.h" + and augmenting with additional #define's + for wanted commands. + + The default command configuration includes all commands + 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_BSP * Board specific commands + CONFIG_CMD_BOOTD bootd + CONFIG_CMD_CACHE * icache, dcache + CONFIG_CMD_CONSOLE coninfo + 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_DTT * Digital Therm and Thermostat + CONFIG_CMD_ECHO echo arguments + CONFIG_CMD_EEPROM * EEPROM read/write support + CONFIG_CMD_ELF * bootelf, bootvx + CONFIG_CMD_ENV saveenv + CONFIG_CMD_FDC * Floppy Disk Support + CONFIG_CMD_FAT * FAT partition support + CONFIG_CMD_FDOS * Dos diskette Support + CONFIG_CMD_FLASH flinfo, erase, protect + CONFIG_CMD_FPGA FPGA device initialization support + CONFIG_CMD_HWFLOW * RTS/CTS hw flow control + CONFIG_CMD_I2C * I2C serial bus support + CONFIG_CMD_IDE * IDE harddisk support + CONFIG_CMD_IMI iminfo + CONFIG_CMD_IMLS List all found images + CONFIG_CMD_IMMAP * IMMR dump support + CONFIG_CMD_IRQ * irqinfo + CONFIG_CMD_ITEST Integer/string test of 2 values + CONFIG_CMD_JFFS2 * JFFS2 Support + CONFIG_CMD_KGDB * kgdb + CONFIG_CMD_LOADB loadb + CONFIG_CMD_LOADS loads + 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_NAND * NAND support + CONFIG_CMD_NET bootp, tftpboot, rarpboot + CONFIG_CMD_PCI * pciinfo + CONFIG_CMD_PCMCIA * PCMCIA support + CONFIG_CMD_PING * send ICMP ECHO_REQUEST to network + host + CONFIG_CMD_PORTIO * Port I/O + CONFIG_CMD_REGINFO * Register dump + CONFIG_CMD_RUN run command in env variable + CONFIG_CMD_SAVES * save S record dump + CONFIG_CMD_SCSI * SCSI Support + CONFIG_CMD_SDRAM * print SDRAM configuration information + (requires CONFIG_CMD_I2C) + CONFIG_CMD_SETGETDCR Support for DCR Register access + (4xx only) + CONFIG_CMD_SPI * SPI serial bus support + CONFIG_CMD_USB * USB support + CONFIG_CMD_VFD * VFD support (TRAB) + CONFIG_CMD_BSP * Board SPecific functions + CONFIG_CMD_CDP * Cisco Discover Protocol support + CONFIG_CMD_FSL * Microblaze FSL support + EXAMPLE: If you want all functions except of network support you can write: - #define CONFIG_COMMANDS (CFG_CMD_ALL & ~CFG_CMD_NET) + #include "config_cmd_all.h" + #undef CONFIG_CMD_NET + Other Commands: + fdt (flattened device tree) command: CONFIG_OF_LIBFDT Note: Don't enable the "icache" and "dcache" commands - (configuration option CFG_CMD_CACHE) unless you know + (configuration option CONFIG_CMD_CACHE) unless you know what you (and your U-Boot users) are doing. Data cache cannot be enabled on systems like the 8xx or 8260 (where accesses to the IMMR region must be @@ -719,7 +763,7 @@ The following options need to be configured: - Real-Time Clock: - When CFG_CMD_DATE is selected, the type of the RTC + When CONFIG_CMD_DATE is selected, the type of the RTC has to be selected, too. Define exactly one of the following options: @@ -730,6 +774,7 @@ The following options need to be configured: CONFIG_RTC_DS1337 - use Maxim, Inc. DS1337 RTC CONFIG_RTC_DS1338 - use Maxim, Inc. DS1338 RTC CONFIG_RTC_DS164x - use Dallas DS164x RTC + CONFIG_RTC_MAX6900 - use Maxim, Inc. MAX6900 RTC Note that if the RTC uses I2C, then the I2C interface must also be configured. See I2C Support, below. @@ -739,27 +784,42 @@ The following options need to be configured: When CONFIG_TIMESTAMP is selected, the timestamp (date and time) of an image is printed by image commands like bootm or iminfo. This option is - automatically enabled when you select CFG_CMD_DATE . + automatically enabled when you select CONFIG_CMD_DATE . - Partition Support: CONFIG_MAC_PARTITION and/or CONFIG_DOS_PARTITION and/or CONFIG_ISO_PARTITION - If IDE or SCSI support is enabled (CFG_CMD_IDE or - CFG_CMD_SCSI) you must configure support for at least + If IDE or SCSI support is enabled (CONFIG_CMD_IDE or + CONFIG_CMD_SCSI) you must configure support for at least one partition type as well. - IDE Reset method: - CONFIG_IDE_RESET_ROUTINE + CONFIG_IDE_RESET_ROUTINE - this is defined in several + board configurations files but used nowhere! - Set this to define that instead of a reset Pin, the - routine ide_set_reset(int idereset) will be used. + CONFIG_IDE_RESET - is this is defined, IDE Reset will + be performed by calling the function + ide_set_reset(int reset) + which has to be defined in a board specific file - ATAPI Support: CONFIG_ATAPI Set this to enable ATAPI support. +- LBA48 Support + CONFIG_LBA48 + + Set this to enable support for disks larger than 137GB + Also look at CFG_64BIT_LBA ,CFG_64BIT_VSPRINTF and CFG_64BIT_STRTOUL + Whithout these , LBA48 support uses 32bit variables and will 'only' + support disks up to 2.1TB. + + CFG_64BIT_LBA: + When enabled, makes the IDE subsystem use 64bit sector addresses. + Default is 32bit. + - SCSI Support: At the moment only there is only support for the SYM53C8XX SCSI controller; define @@ -804,24 +864,128 @@ The following options need to be configured: CONFIG_LAN91C96_USE_32_BIT Define this to enable 32 bit addressing + CONFIG_DRIVER_SMC91111 + Support for SMSC's LAN91C111 chip + + CONFIG_SMC91111_BASE + Define this to hold the physical address + of the device (I/O space) + + CONFIG_SMC_USE_32_BIT + Define this if data bus is 32 bits + + CONFIG_SMC_USE_IOFUNCS + Define this to use i/o functions instead of macros + (some hardware wont work with macros) + - USB Support: At the moment only the UHCI host controller is - supported (PIP405, MIP405); define + supported (PIP405, MIP405, MPC5200); define CONFIG_USB_UHCI to enable it. define CONFIG_USB_KEYBOARD to enable the USB Keyboard - end define CONFIG_USB_STORAGE to enable the USB + and define CONFIG_USB_STORAGE to enable the USB storage devices. Note: Supported are USB Keyboards and USB Floppy drives (TEAC FD-05PUB). + MPC5200 USB requires additional defines: + CONFIG_USB_CLOCK + for 528 MHz Clock: 0x0001bbbb + CONFIG_USB_CONFIG + for differential drivers: 0x00001000 + for single ended drivers: 0x00005000 + CFG_USB_EVENT_POLL + May be defined to allow interrupt polling + instead of using asynchronous interrupts + +- USB Device: + Define the below if you wish to use the USB console. + Once firmware is rebuilt from a serial console issue the + command "setenv stdin usbtty; setenv stdout usbtty" and + attach your usb cable. The Unix command "dmesg" should print + it has found a new device. The environment variable usbtty + can be set to gserial or cdc_acm to enable your device to + appear to a USB host as a Linux gserial device or a + Common Device Class Abstract Control Model serial device. + If you select usbtty = gserial you should be able to enumerate + a Linux host by + # modprobe usbserial vendor=0xVendorID product=0xProductID + else if using cdc_acm, simply setting the environment + variable usbtty to be cdc_acm should suffice. The following + might be defined in YourBoardName.h + + CONFIG_USB_DEVICE + Define this to build a UDC device + + CONFIG_USB_TTY + Define this to have a tty type of device available to + talk to the UDC device + + CFG_CONSOLE_IS_IN_ENV + Define this if you want stdin, stdout &/or stderr to + be set to usbtty. + + mpc8xx: + CFG_USB_EXTC_CLK 0xBLAH + Derive USB clock from external clock "blah" + - CFG_USB_EXTC_CLK 0x02 + + CFG_USB_BRG_CLK 0xBLAH + Derive USB clock from brgclk + - CFG_USB_BRG_CLK 0x04 + + If you have a USB-IF assigned VendorID then you may wish to + define your own vendor specific values either in BoardName.h + or directly in usbd_vendor_info.h. If you don't define + CONFIG_USBD_MANUFACTURER, CONFIG_USBD_PRODUCT_NAME, + CONFIG_USBD_VENDORID and CONFIG_USBD_PRODUCTID, then U-Boot + should pretend to be a Linux device to it's target host. + + CONFIG_USBD_MANUFACTURER + Define this string as the name of your company for + - CONFIG_USBD_MANUFACTURER "my company" + + CONFIG_USBD_PRODUCT_NAME + Define this string as the name of your product + - CONFIG_USBD_PRODUCT_NAME "acme usb device" + + CONFIG_USBD_VENDORID + Define this as your assigned Vendor ID from the USB + Implementors Forum. This *must* be a genuine Vendor ID + to avoid polluting the USB namespace. + - CONFIG_USBD_VENDORID 0xFFFF + + CONFIG_USBD_PRODUCTID + Define this as the unique Product ID + for your device + - CONFIG_USBD_PRODUCTID 0xFFFF + - MMC Support: The MMC controller on the Intel PXA is supported. To enable this define CONFIG_MMC. The MMC can be accessed from the boot prompt by mapping the device to physical memory similar to flash. Command line is - enabled with CFG_CMD_MMC. The MMC driver also works with - the FAT fs. This is enabled with CFG_CMD_FAT. + enabled with CONFIG_CMD_MMC. The MMC driver also works with + the FAT fs. This is enabled with CONFIG_CMD_FAT. + +- Journaling Flash filesystem support: + CONFIG_JFFS2_NAND, CONFIG_JFFS2_NAND_OFF, CONFIG_JFFS2_NAND_SIZE, + CONFIG_JFFS2_NAND_DEV + Define these for a default partition on a NAND device + + CFG_JFFS2_FIRST_SECTOR, + CFG_JFFS2_FIRST_BANK, CFG_JFFS2_NUM_BANKS + Define these for a default partition on a NOR device + + CFG_JFFS_CUSTOM_PART + Define this to create an own partition. You have to provide a + function struct part_info* jffs2_part_info(int part_num) + + If you define only one JFFS2 partition you may also want to + #define CFG_JFFS_SINGLE_PART 1 + to disable the command chpart. This is the default when you + have not defined a custom partition - Keyboard Support: CONFIG_ISA_KEYBOARD @@ -846,17 +1010,30 @@ The following options need to be configured: Enable Chips & Technologies 69000 Video chip CONFIG_VIDEO_SMI_LYNXEM - Enable Silicon Motion SMI 712/710/810 Video chip - Videomode are selected via environment 'videomode' with - standard LiLo mode numbers. - Following modes are supported (* is default): - - 800x600 1024x768 1280x1024 - 256 (8bit) 303* 305 307 - 65536 (16bit) 314 317 31a - 16,7 Mill (24bit) 315 318 31b + Enable Silicon Motion SMI 712/710/810 Video chip. The + video output is selected via environment 'videoout' + (1 = LCD and 2 = CRT). If videoout is undefined, CRT is + assumed. + + For the CT69000 and SMI_LYNXEM drivers, videomode is + selected via environment 'videomode'. Two diferent ways + are possible: + - "videomode=num" 'num' is a standard LiLo mode numbers. + Following standard modes are supported (* is default): + + Colors 640x480 800x600 1024x768 1152x864 1280x1024 + -------------+--------------------------------------------- + 8 bits | 0x301* 0x303 0x305 0x161 0x307 + 15 bits | 0x310 0x313 0x316 0x162 0x319 + 16 bits | 0x311 0x314 0x317 0x163 0x31A + 24 bits | 0x312 0x315 0x318 ? 0x31B + -------------+--------------------------------------------- (i.e. setenv videomode 317; saveenv; reset;) + - "videomode=bootargs" all the video parameters are parsed + from the bootargs. (See drivers/videomodes.c) + + CONFIG_VIDEO_SED13806 Enable Epson SED13806 driver. This driver supports 8bpp and 16bpp modes defined by CONFIG_VIDEO_SED13806_8BPP @@ -923,12 +1100,18 @@ The following options need to be configured: If this option is set, the environment is checked for a variable "splashimage". If found, the usual display of logo, copyright and system information on the LCD - is supressed and the BMP image at the address + is suppressed and the BMP image at the address specified in "splashimage" is loaded instead. The console is redirected to the "nulldev", too. This allows for a "silent" boot where a splash screen is loaded very quickly after power-on. +- Gzip compressed BMP image support: CONFIG_VIDEO_BMP_GZIP + + If this option is set, additionally to standard BMP + images, gzipped BMP images can be displayed via the + splashscreen support or the bmp command. + - Compression support: CONFIG_BZIP2 @@ -940,6 +1123,32 @@ The following options need to be configured: the malloc area (as defined by CFG_MALLOC_LEN) should be at least 4MB. +- MII/PHY support: + CONFIG_PHY_ADDR + + The address of PHY on MII bus. + + CONFIG_PHY_CLOCK_FREQ (ppc4xx) + + The clock frequency of the MII bus + + CONFIG_PHY_GIGE + + If this option is set, support for speed/duplex + detection of Gigabit PHY is included. + + CONFIG_PHY_RESET_DELAY + + Some PHY like Intel LXT971A need extra delay after + reset before any MII register access is possible. + For such PHY, set this option to the usec delay + required. (minimum 300usec for LXT971A) + + CONFIG_PHY_CMD_DELAY (ppc4xx) + + Some PHY like Intel LXT971A need extra delay after + command issued before MII status register can be read + - Ethernet address: CONFIG_ETHADDR CONFIG_ETH2ADDR @@ -973,7 +1182,7 @@ The following options need to be configured: boot, thus flooding the BOOTP server. Defining CONFIG_BOOTP_RANDOM_DELAY causes a random delay to be inserted before sending out BOOTP requests. The - following delays are insterted then: + following delays are inserted then: 1st BOOTP request: delay 0 ... 1 sec 2nd BOOTP request: delay 0 ... 2 sec @@ -982,10 +1191,21 @@ The following options need to be configured: BOOTP requests: delay 0 ... 8 sec - DHCP Advanced Options: - CONFIG_BOOTP_MASK - - You can fine tune the DHCP functionality by adding - these flags to the CONFIG_BOOTP_MASK define: + You can fine tune the DHCP functionality by defining + CONFIG_BOOTP_* symbols: + + CONFIG_BOOTP_SUBNETMASK + CONFIG_BOOTP_GATEWAY + CONFIG_BOOTP_HOSTNAME + CONFIG_BOOTP_NISDOMAIN + CONFIG_BOOTP_BOOTPATH + CONFIG_BOOTP_BOOTFILESIZE + CONFIG_BOOTP_DNS + CONFIG_BOOTP_DNS2 + CONFIG_BOOTP_SEND_HOSTNAME + CONFIG_BOOTP_NTPSERVER + CONFIG_BOOTP_TIMEOFFSET + CONFIG_BOOTP_VENDOREX CONFIG_BOOTP_DNS2 - If a DHCP client requests the DNS serverip from a DHCP server, it is possible that more @@ -994,15 +1214,56 @@ The following options need to be configured: serverip will be stored in the additional environment variable "dnsip2". The first DNS serverip is always stored in the variable "dnsip", when CONFIG_BOOTP_DNS - is added to the CONFIG_BOOTP_MASK. + is defined. CONFIG_BOOTP_SEND_HOSTNAME - Some DHCP servers are capable to do a dynamic update of a DNS server. To do this, they need the hostname of the DHCP requester. - If CONFIG_BOOP_SEND_HOSTNAME is added to the - CONFIG_BOOTP_MASK, the content of the "hostname" - environment variable is passed as option 12 to - the DHCP server. + If CONFIG_BOOP_SEND_HOSTNAME is defined, the content + of the "hostname" environment variable is passed as + option 12 to the DHCP server. + + - CDP Options: + CONFIG_CDP_DEVICE_ID + + The device id used in CDP trigger frames. + + CONFIG_CDP_DEVICE_ID_PREFIX + + A two character string which is prefixed to the MAC address + of the device. + + CONFIG_CDP_PORT_ID + + A printf format string which contains the ascii name of + the port. Normally is set to "eth%d" which sets + eth0 for the first ethernet, eth1 for the second etc. + + CONFIG_CDP_CAPABILITIES + + A 32bit integer which indicates the device capabilities; + 0x00000010 for a normal host which does not forwards. + + CONFIG_CDP_VERSION + + An ascii string containing the version of the software. + + CONFIG_CDP_PLATFORM + + An ascii string containing the name of the platform. + + CONFIG_CDP_TRIGGER + + A 32bit integer sent on the trigger. + + CONFIG_CDP_POWER_CONSUMPTION + + A 16bit integer containing the power consumption of the + device in .1 of milliwatts. + + CONFIG_CDP_APPLIANCE_VLAN_TYPE + + A byte containing the id of the VLAN. - Status LED: CONFIG_STATUS_LED @@ -1028,12 +1289,17 @@ The following options need to be configured: include the appropriate I2C driver for the selected cpu. This will allow you to use i2c commands at the u-boot - command line (as long as you set CFG_CMD_I2C in + command line (as long as you set CONFIG_CMD_I2C in CONFIG_COMMANDS) and communicate with i2c based realtime clock chips. See common/cmd_i2c.c for a description of the command line interface. - CONFIG_HARD_I2C selects the CPM hardware driver for I2C. + 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 bit-banging) driver instead of CPM or similar hardware @@ -1132,6 +1398,58 @@ The following options need to be configured: custom i2c_init_board() routine in boards/xxx/board.c is run early in the boot sequence. + CONFIG_I2CFAST (PPC405GP|PPC405EP only) + + This option enables configuration of bi_iic_fast[] flags + in u-boot bd_info structure based on u-boot environment + variable "i2cfast". (see also i2cfast) + + CONFIG_I2C_MULTI_BUS + + This option allows the use of multiple I2C buses, each of which + must have a controller. At any point in time, only one bus is + active. To switch to a different bus, use the 'i2c dev' command. + Note that bus numbering is zero-based. + + CFG_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 + + e.g. + #undef CONFIG_I2C_MULTI_BUS + #define CFG_I2C_NOPROBES {0x50,0x68} + + will skip addresses 0x50 and 0x68 on a board with one I2C bus + + #define CONFIG_I2C_MULTI_BUS + #define CFG_I2C_MULTI_NOPROBES {{0,0x50},{0,0x68},{1,0x54}} + + will skip addresses 0x50 and 0x68 on bus 0 and address 0x54 on bus 1 + + CFG_SPD_BUS_NUM + + If defined, then this indicates the I2C bus number for DDR SPD. + If not defined, then U-Boot assumes that SPD is on I2C bus 0. + + CFG_RTC_BUS_NUM + + If defined, then this indicates the I2C bus number for the RTC. + If not defined, then U-Boot assumes that RTC is on I2C bus 0. + + CFG_DTT_BUS_NUM + + If defined, then this indicates the I2C bus number for the DTT. + If not defined, then U-Boot assumes that DTT is on I2C bus 0. + + CONFIG_FSL_I2C + + Define this option if you want to use Freescale's I2C driver in + drivers/fsl_i2c.c. + + - SPI Support: CONFIG_SPI Enables SPI driver (so far only tested with @@ -1250,7 +1568,7 @@ The following options need to be configured: remaining RAM in a form that can be passed as boot argument to Linux, for instance like that: - setenv bootargs ... mem=\$(mem) + setenv bootargs ... mem=\${mem} saveenv This way you can tell Linux not to use this memory, @@ -1286,6 +1604,14 @@ The following options need to be configured: default value of 5 is used. - Command Interpreter: + CONFIG_AUTO_COMPLETE + + Enable auto completion of commands using TAB. + + Note that this feature has NOT been implemented yet + for the "hush" shell. + + CFG_HUSH_PARSER Define this variable to enable the "hush" shell (from @@ -1325,6 +1651,12 @@ The following options need to be configured: of the backslashes before semicolons and special symbols. +- Commandline Editing and History: + CONFIG_CMDLINE_EDITING + + Enable editiong and History functions for interactive + commandline input operations + - Default Environment: CONFIG_EXTRA_ENV_SETTINGS @@ -1372,6 +1704,26 @@ The following options need to be configured: When SystemACE support is added, the "ace" device type becomes available to the fat commands, i.e. fatls. +- 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. + - Show boot progress: CONFIG_SHOW_BOOT_PROGRESS @@ -1412,32 +1764,73 @@ The following options need to be configured: 14 common/cmd_bootm.c No initial ramdisk, no multifile, continue. 15 common/cmd_bootm.c All preparation done, transferring control to OS - -30 lib_ppc/board.c Fatal error, hang the system - -31 post/post.c POST test failed, detected by post_output_backlog() - -32 post/post.c POST test failed, detected by post_run_single() - - -1 common/cmd_doc.c Bad usage of "doc" command - -1 common/cmd_doc.c No boot device - -1 common/cmd_doc.c Unknown Chip ID on boot device - -1 common/cmd_doc.c Read Error on boot device - -1 common/cmd_doc.c Image header has bad magic number - - -1 common/cmd_ide.c Bad usage of "ide" command - -1 common/cmd_ide.c No boot device - -1 common/cmd_ide.c Unknown boot device - -1 common/cmd_ide.c Unknown partition table - -1 common/cmd_ide.c Invalid partition type - -1 common/cmd_ide.c Read Error on boot device - -1 common/cmd_ide.c Image header has bad magic number - - -1 common/cmd_nand.c Bad usage of "nand" command - -1 common/cmd_nand.c No boot device - -1 common/cmd_nand.c Unknown Chip ID on boot device - -1 common/cmd_nand.c Read Error on boot device - -1 common/cmd_nand.c Image header has bad magic number - - -1 common/env_common.c Environment has a bad CRC, using default - + -30 lib_ppc/board.c Fatal error, hang the system + -31 post/post.c POST test failed, detected by post_output_backlog() + -32 post/post.c POST test failed, detected by post_run_single() + + 34 common/cmd_doc.c before loading a Image from a DOC device + -35 common/cmd_doc.c Bad usage of "doc" command + 35 common/cmd_doc.c correct usage of "doc" command + -36 common/cmd_doc.c No boot device + 36 common/cmd_doc.c correct boot device + -37 common/cmd_doc.c Unknown Chip ID on boot device + 37 common/cmd_doc.c correct chip ID found, device available + -38 common/cmd_doc.c Read Error on boot device + 38 common/cmd_doc.c reading Image header from DOC device OK + -39 common/cmd_doc.c Image header has bad magic number + 39 common/cmd_doc.c Image header has correct magic number + -40 common/cmd_doc.c Error reading Image from DOC device + 40 common/cmd_doc.c Image header has correct magic number + 41 common/cmd_ide.c before loading a Image from a IDE device + -42 common/cmd_ide.c Bad usage of "ide" command + 42 common/cmd_ide.c correct usage of "ide" command + -43 common/cmd_ide.c No boot device + 43 common/cmd_ide.c boot device found + -44 common/cmd_ide.c Device not available + 44 common/cmd_ide.c Device available + -45 common/cmd_ide.c wrong partition selected + 45 common/cmd_ide.c partition selected + -46 common/cmd_ide.c Unknown partition table + 46 common/cmd_ide.c valid partition table found + -47 common/cmd_ide.c Invalid partition type + 47 common/cmd_ide.c correct partition type + -48 common/cmd_ide.c Error reading Image Header on boot device + 48 common/cmd_ide.c reading Image Header from IDE device OK + -49 common/cmd_ide.c Image header has bad magic number + 49 common/cmd_ide.c Image header has correct magic number + -50 common/cmd_ide.c Image header has bad checksum + 50 common/cmd_ide.c Image header has correct checksum + -51 common/cmd_ide.c Error reading Image from IDE device + 51 common/cmd_ide.c reading Image from IDE device OK + 52 common/cmd_nand.c before loading a Image from a NAND device + -53 common/cmd_nand.c Bad usage of "nand" command + 53 common/cmd_nand.c correct usage of "nand" command + -54 common/cmd_nand.c No boot device + 54 common/cmd_nand.c boot device found + -55 common/cmd_nand.c Unknown Chip ID on boot device + 55 common/cmd_nand.c correct chip ID found, device available + -56 common/cmd_nand.c Error reading Image Header on boot device + 56 common/cmd_nand.c reading Image Header from NAND device OK + -57 common/cmd_nand.c Image header has bad magic number + 57 common/cmd_nand.c Image header has correct magic number + -58 common/cmd_nand.c Error reading Image from NAND device + 58 common/cmd_nand.c reading Image from NAND device OK + + -60 common/env_common.c Environment has a bad CRC, using default + + 64 net/eth.c starting with Ethernetconfiguration. + -64 net/eth.c no Ethernet found. + 65 net/eth.c Ethernet found. + + -80 common/cmd_net.c usage wrong + 80 common/cmd_net.c before calling NetLoop() + -81 common/cmd_net.c some error in NetLoop() occured + 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 + 84 common/cmd_net.c end without errors Modem Support: -------------- @@ -1566,6 +1959,12 @@ Configuration Settings: - CFG_MALLOC_LEN: Size of DRAM reserved for malloc() use. +- CFG_BOOTM_LEN: + Normally compressed uImages are limited to an + uncompressed size of 8 MBytes. If this is not enough, + you can define CFG_BOOTM_LEN in your board config file + to adjust this setting to your needs. + - CFG_BOOTMAPSZ: Maximum size of memory mapped by the startup code of the Linux kernel; all data that must be processed by @@ -1615,6 +2014,12 @@ Configuration Settings: This option also enables the building of the cfi_flash driver in the drivers directory +- CFG_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. + - CFG_RX_ETH_BUFFER: Defines the number of ethernet receive buffers. On some ethernet controllers it is recommended to set this value @@ -1750,6 +2155,17 @@ to save the current settings. The length in bytes of the EEPROM memory array address. Note that this is NOT the chip address length! + - CFG_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. + - CFG_EEPROM_SIZE: The size in bytes of the EEPROM device. @@ -1767,6 +2183,27 @@ to save the current settings. environment area within the total memory of your DataFlash placed at the specified address. +- CFG_ENV_IS_IN_NAND: + + Define this if you have a NAND device which you want to use + for the environment. + + - CFG_ENV_OFFSET: + - CFG_ENV_SIZE: + + These two #defines specify the offset and size of the environment + area within the first NAND device. + + - CFG_ENV_OFFSET_REDUND + + This setting describes a second storage area of CFG_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. + + Note: CFG_ENV_OFFSET and CFG_ENV_OFFSET_REDUND must be aligned + to a block boundary, and CFG_ENV_SIZE must be a multiple of + the NAND devices block size. - CFG_SPI_INIT_OFFSET @@ -1803,6 +2240,13 @@ use the "saveenv" command to store a valid environment. - CFG_FAULT_MII_ADDR: MII address of the PHY to check for the Ethernet link state. +- CFG_64BIT_VSPRINTF: + Makes vsprintf (and all *printf functions) support printing + of 64bit values by using the L quantifier + +- CFG_64BIT_STRTOUL: + Adds simple_strtoull that returns a 64bit value + Low Level (hardware related) configuration options: --------------------------------------------------- @@ -1842,9 +2286,9 @@ Low Level (hardware related) configuration options: source code. It is used to make hardware dependant initializations. -- CFG_IMMR: Physical address of the Internal Memory Mapped - Register; DO NOT CHANGE! (11-4) - [MPC8xx systems only] +- CFG_IMMR: Physical address of the Internal Memory. + DO NOT CHANGE unless you know exactly what you're + doing! (11-4) [MPC8xx/82xx systems only] - CFG_INIT_RAM_ADDR: @@ -1944,6 +2388,85 @@ Low Level (hardware related) configuration options: CFG_POCMR2_MASK_ATTRIB: (MPC826x only) Overrides the default PCI memory map in cpu/mpc8260/pci.c if set. +- 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 + +- CFG_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. + +- CFG_83XX_DDR_USES_CS0 + Only for 83xx systems. If specified, then DDR should be configured + using CS0 and CS1 instead of CS2 and CS3. + +- CFG_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. + +- CONFIG_FEC[12]_PHY + Define to the hardcoded PHY address which corresponds + to the given FEC; i. e. + #define CONFIG_FEC1_PHY 4 + means that the PHY with address 4 is connected to FEC1 + + When set to -1, means to probe for first available. + +- CONFIG_FEC[12]_PHY_NORXERR + The PHY does not have a RXERR line (RMII only). + (so program the FEC to ignore it). + +- CONFIG_RMII + Enable RMII mode for all FECs. + Note that this is a global option, we can't + have one FEC in standard MII mode and another in RMII mode. + +- CONFIG_CRC32_VERIFY + Add a verify option to the crc32 command. + The syntax is: + + => crc32 -v
+ + Where address/count indicate a memory area + and crc32 is the correct crc32 which the + area should have. + +- CONFIG_LOOPW + Add the "loopw" memory command. This only takes effect if + the memory commands are activated globally (CONFIG_CMD_MEM). + +- CONFIG_MX_CYCLIC + Add the "mdc" and "mwc" memory commands. These are cyclic + "md/mw" commands. + Examples: + + => mdc.b 10 4 500 + This command will print 4 bytes (10,11,12,13) each 500 ms. + + => mwc.l 100 12345678 10 + This command will write 12345678 to address 100 all 10 ms. + + This only takes effect if the memory commands are activated + globally (CONFIG_CMD_MEM). + +- CONFIG_SKIP_LOWLEVEL_INIT +- CONFIG_SKIP_RELOCATE_UBOOT + + [ARM only] If these variables are defined, then + certain low level initializations (like setting up + the memory controller) are omitted and/or U-Boot does + not relocate itself into RAM. + Normally these variables MUST NOT be defined. The + only exception is when U-Boot is loaded (to RAM) by + some other boot loader or by a debugger which + performs these intializations itself. + + Building the Software: ====================== @@ -1971,54 +2494,45 @@ is done by typing: where "NAME_config" is the name of one of the existing configurations; the following names are supported: - ADCIOP_config GTH_config TQM850L_config - ADS860_config IP860_config TQM855L_config - AR405_config IVML24_config TQM860L_config - CANBT_config IVMS8_config WALNUT405_config - CPCI405_config LANTEC_config cogent_common_config - CPCIISER4_config MBX_config cogent_mpc8260_config - CU824_config MBX860T_config cogent_mpc8xx_config - ESTEEM192E_config RPXlite_config hermes_config - ETX094_config RPXsuper_config hymod_config - FADS823_config SM850_config lwmon_config - FADS850SAR_config SPD823TS_config pcu_e_config - FADS860T_config SXNI855T_config rsdproto_config - FPS850L_config Sandpoint8240_config sbc8260_config - GENIETV_config TQM823L_config PIP405_config - GEN860T_config EBONY_config FPS860L_config - ELPT860_config cmi_mpc5xx_config NETVIA_config - at91rm9200dk_config omap1510inn_config MPC8260ADS_config - omap1610inn_config ZPC1900_config MPC8540ADS_config - MPC8560ADS_config QS850_config QS823_config - QS860T_config DUET_ADS_config omap1610h2_config - -Note: for some board special configuration names may exist; check if - additional information is available from the board vendor; for - instance, the TQM8xxL systems run normally at 50 MHz and use a - SCC for 10baseT ethernet; there are also systems with 80 MHz - CPU clock, and an optional Fast Ethernet module is available - for CPU's with FEC. You can select such additional "features" + ADCIOP_config FPS860L_config omap730p2_config + ADS860_config GEN860T_config pcu_e_config + Alaska8220_config + AR405_config GENIETV_config PIP405_config + at91rm9200dk_config GTH_config QS823_config + CANBT_config hermes_config QS850_config + cmi_mpc5xx_config hymod_config QS860T_config + cogent_common_config IP860_config RPXlite_config + cogent_mpc8260_config IVML24_config RPXlite_DW_config + cogent_mpc8xx_config IVMS8_config RPXsuper_config + CPCI405_config JSE_config rsdproto_config + CPCIISER4_config LANTEC_config Sandpoint8240_config + csb272_config lwmon_config sbc8260_config + CU824_config MBX860T_config sbc8560_33_config + DUET_ADS_config MBX_config sbc8560_66_config + EBONY_config mpc7448hpc2_config SM850_config + ELPT860_config MPC8260ADS_config SPD823TS_config + ESTEEM192E_config MPC8540ADS_config stxgp3_config + ETX094_config MPC8540EVAL_config SXNI855T_config + FADS823_config NMPC8560ADS_config TQM823L_config + FADS850SAR_config NETVIA_config TQM850L_config + FADS860T_config omap1510inn_config TQM855L_config + FPS850L_config omap1610h2_config TQM860L_config + omap1610inn_config walnut_config + omap5912osk_config Yukon8220_config + omap2420h4_config ZPC1900_config + +Note: for some board special configuration names may exist; check if + additional information is available from the board vendor; for + instance, the TQM823L systems are available without (standard) + or with LCD support. You can select such additional "features" when chosing the configuration, i. e. - make TQM860L_config - - will configure for a plain TQM860L, i. e. 50MHz, no FEC - - make TQM860L_FEC_config - - will configure for a TQM860L at 50MHz with FEC for ethernet - - make TQM860L_80MHz_config - - will configure for a TQM860L at 80 MHz, with normal 10baseT - interface - - make TQM860L_FEC_80MHz_config - - will configure for a TQM860L at 80 MHz with FEC for ethernet + make TQM823L_config + - will configure for a plain TQM823L, i. e. no LCD support make TQM823L_LCD_config - will configure for a TQM823L with U-Boot console on LCD - make TQM823L_LCD_80MHz_config - - will configure for a TQM823L at 80 MHz with U-Boot console on LCD - etc. @@ -2029,6 +2543,26 @@ images ready for download to / installation on your system: - "u-boot" is an image in ELF binary format - "u-boot.srec" is in Motorola S-Record format +By default the build is performed locally and the objects are saved +in the source directory. One of the two methods can be used to change +this behavior and build U-Boot to some external directory: + +1. Add O= to the make command line invocations: + + make O=/tmp/build distclean + make O=/tmp/build NAME_config + make O=/tmp/build all + +2. Set environment variable BUILD_DIR to point to the desired location: + + export BUILD_DIR=/tmp/build + make distclean + make NAME_config + make all + +Note that the command line "O=" setting overrides the BUILD_DIR environment +variable. + Please be aware that the Makefiles assume you are using GNU make, so for instance on NetBSD you might need to use "gmake" instead of @@ -2082,6 +2616,22 @@ or to build on a native PowerPC system you can type CROSS_COMPILE=' ' MAKEALL +When using the MAKEALL script, the default behaviour is to build U-Boot +in the source directory. This location can be changed by setting the +BUILD_DIR environment variable. Also, for each target built, the MAKEALL +script saves two log files (.ERR and .MAKEALL) in the +/LOG directory. This default location can be changed by +setting the MAKEALL_LOGDIR environment variable. For example: + + export BUILD_DIR=/tmp/build + export MAKEALL_LOGDIR=/tmp/log + CROSS_COMPILE=ppc_8xx- MAKEALL + +With the above settings build objects are saved in the /tmp/build, log +files are saved in the /tmp/log and the source tree remains clean during +the whole build process. + + See also "U-Boot Porting Guide" below. @@ -2127,6 +2677,7 @@ iminfo - print header information for application image coninfo - print console devices and informations ide - IDE sub-system loop - infinite loop on address range +loopw - infinite write loop on address range mtest - simple RAM test icache - enable or disable instruction cache dcache - enable or disable data cache @@ -2186,6 +2737,12 @@ Some configuration options can be set using Environment Variables: This can be used to load and uncompress arbitrary data. + i2cfast - (PPC405GP|PPC405EP only) + if set to 'y' configures Linux I2C driver for fast + mode (400kHZ). This environment variable is used in + initialization code. So, for changes to be effective + it must be saved and board must be reset. + initrd_high - restrict positioning of initrd images: If this variable is not set, initrd images will be copied to the highest possible address in RAM; this @@ -2230,6 +2787,35 @@ Some configuration options can be set using Environment Variables: bootstopkey - see CONFIG_AUTOBOOT_STOP_STR + ethprime - When CONFIG_NET_MULTI is enabled controls which + interface is used first. + + ethact - When CONFIG_NET_MULTI is enabled controls which + interface is currently active. For example you + can do the following + + => setenv ethact FEC ETHERNET + => ping 192.168.0.1 # traffic sent on FEC ETHERNET + => setenv ethact SCC ETHERNET + => ping 10.0.0.1 # traffic sent on SCC ETHERNET + + netretry - When set to "no" each network operation will + either succeed or fail without retrying. + When set to "once" the network operation will + fail when all the available network interfaces + are tried once without success. + Useful on scripts which control the retry operation + themselves. + + tftpsrcport - If this is set, the value is used for TFTP's + UDP source port. + + tftpdstport - If this is set, the value is used for TFTP's UDP + destination port instead of the Well Know Port 69. + + vlan - When set to a value < 4095 the traffic over + ethernet is encapsulated/received over 802.1q + VLAN tagged frames. The following environment variables may be used and automatically updated by the network boot commands ("bootp" and "rarpboot"), @@ -2279,10 +2865,10 @@ Old, simple command line parser: - supports environment variables (through setenv / saveenv commands) - several commands on one line, separated by ';' -- variable substitution using "... $(name) ..." syntax +- variable substitution using "... ${name} ..." syntax - special characters ('$', ';') can be escaped by prefixing with '\', for example: - setenv bootcmd bootm \$(address) + setenv bootcmd bootm \${address} - You can also escape text by enclosing in single apostrophes, for example: setenv addip 'setenv bootargs $bootargs ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname::off' @@ -2356,9 +2942,9 @@ defines the following image properties: 4.4BSD, Linux, SVR4, Esix, Solaris, Irix, SCO, Dell, NCR, VxWorks, LynxOS, pSOS, QNX, RTEMS, ARTOS; Currently supported: Linux, NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS). -* Target CPU Architecture (Provisions for Alpha, ARM, Intel x86, +* Target CPU Architecture (Provisions for Alpha, ARM, AVR32, Intel x86, IA64, MIPS, NIOS, PowerPC, IBM S390, SuperH, Sparc, Sparc 64 Bit; - Currently supported: ARM, Intel x86, MIPS, NIOS, PowerPC). + Currently supported: ARM, AVR32, Intel x86, MIPS, NIOS, PowerPC). * Compression Type (uncompressed, gzip, bzip2) * Load Address * Entry Point @@ -2496,8 +3082,9 @@ from a "data file" which is used as image payload: -n ==> set image name to 'name' -d ==> use image data from 'datafile' -Right now, all Linux kernels use the same load address (0x00000000), -but the entry point address depends on the kernel version: +Right now, all Linux kernels for PowerPC systems use the same load +address (0x00000000), but the entry point address depends on the +kernel version: - 2.2.x kernels have the entry point at 0x0000000C, - 2.3.x and later kernels have the entry point at 0x00000000. @@ -2688,6 +3275,55 @@ format!) to the "bootm" command: bash# +Boot Linux and pass a flat device tree: +----------- + +First, U-Boot must be compiled with the appropriate defines. See the section +titled "Linux Kernel Interface" above for a more in depth explanation. The +following is an example of how to start a kernel and pass an updated +flat device tree: + +=> print oftaddr +oftaddr=0x300000 +=> print oft +oft=oftrees/mpc8540ads.dtb +=> tftp $oftaddr $oft +Speed: 1000, full duplex +Using TSEC0 device +TFTP from server 192.168.1.1; our IP address is 192.168.1.101 +Filename 'oftrees/mpc8540ads.dtb'. +Load address: 0x300000 +Loading: # +done +Bytes transferred = 4106 (100a hex) +=> tftp $loadaddr $bootfile +Speed: 1000, full duplex +Using TSEC0 device +TFTP from server 192.168.1.1; our IP address is 192.168.1.2 +Filename 'uImage'. +Load address: 0x200000 +Loading:############ +done +Bytes transferred = 1029407 (fb51f hex) +=> print loadaddr +loadaddr=200000 +=> print oftaddr +oftaddr=0x300000 +=> bootm $loadaddr - $oftaddr +## Booting image at 00200000 ... + Image Name: Linux-2.6.17-dirty + Image Type: PowerPC Linux Kernel Image (gzip compressed) + Data Size: 1029343 Bytes = 1005.2 kB + Load Address: 00000000 + Entry Point: 00000000 + Verifying Checksum ... OK + Uncompressing Kernel Image ... OK +Booting using flat device tree at 0x300000 +Using MPC85xx ADS machine description +Memory CAM mapping: CAM0=256Mb, CAM1=256Mb, CAM2=0Mb residual: 0Mb +[snip] + + More About U-Boot Image Types: ------------------------------ @@ -2861,8 +3497,7 @@ Booting assumes that (the first part of) the image booted is a stage-2 loader which in turn loads and then invokes the kernel proper. Loader sources will eventually appear in the NetBSD source tree (probably in sys/arc/mpc8xx/stand/u-boot_stage2/); in the -meantime, send mail to bruno@exet-ag.de and/or wd@denx.de for -details. +meantime, see ftp://ftp.denx.de/pub/u-boot/ppcboot_stage2.tar.gz Implementation Internals: @@ -2916,7 +3551,7 @@ locked as (mis-) used as memory, etc. CFG_INIT_RAM_ADDR should be somewhere that won't interfere with your processor/board/system design. The default value you will find in any recent u-boot distribution in - Walnut405.h should work for you. I'd set it to a value larger + walnut.h should work for you. I'd set it to a value larger than your SDRAM module. If you have a 64MB SDRAM module, set it above 400_0000. Just make sure your board has no resources that are supposed to respond to that address! That code in @@ -2987,6 +3622,8 @@ On ARM, the following registers are used: ==> U-Boot will use R8 to hold a pointer to the global data +NOTE: DECLARE_GLOBAL_DATA_PTR must be used with file-global scope, +or current versions of GCC may "optimize" the code too much. Memory Management: ------------------ @@ -3137,12 +3774,19 @@ Coding Standards: ----------------- All contributions to U-Boot should conform to the Linux kernel -coding style; see the file "Documentation/CodingStyle" in your Linux -kernel source directory. +coding style; see the file "Documentation/CodingStyle" and the script +"scripts/Lindent" in your Linux kernel source directory. In sources +originating from U-Boot a style corresponding to "Lindent -pcs" (adding +spaces before parameters to function calls) is actually used. -Please note that U-Boot is implemented in C (and to some small parts -in Assembler); no C++ is used, so please do not use C++ style -comments (//) in your code. +Source files originating from a different project (for example the +MTD subsystem) are generally exempt from these guidelines and are not +reformated to ease subsequent migration to newer versions of those +sources. + +Please note that U-Boot is implemented in C (and to some small parts in +Assembler); no C++ is used, so please do not use C++ style comments (//) +in your code. Please also stick to the following formatting rules: - remove any trailing white space @@ -3162,6 +3806,7 @@ Since the number of patches for U-Boot is growing, we need to establish some rules. Submissions which do not conform to these rules may be rejected, even when they contain important and valuable stuff. +Patches shall be sent to the u-boot-users mailing list. When you send a patch, please include the following information with it: @@ -3219,3 +3864,6 @@ Notes: (using #ifdef), and the resulting code with the new feature disabled must not need more memory than the old code without your modification. + +* Remember that there is a size limit of 40 kB per message on the + u-boot-users mailing list. Compression may help.