注:以下的阅读笔记的源程序版本为:u-boot-1.1.6
#
#(C) Copyright 2000 - 2005
#Wolfgang Denk, DENX Software Engineering, wd@denx.de.
#
#See file CREDITS for list of people who contributed to this
#project.
#
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License as
#published by the Free Software Foundation; either version 2 of
#the License, or (at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 59 Temple Place, Suite 330, Boston,
#MA 02111-1307 USA
#
Summary:摘要
========
Thisdirectory contains the source code for U-Boot, a boot loader for
Embeddedboards based on PowerPC, ARM, MIPS and several other
processors,which can be installed in a boot ROM and used to
initializeand test the hardware or to download and run application
code.
这个目录包含了U-Boot的源码,U-Boot是一个基于PowerPC, ARM, MIPS
和若干其他嵌入式处理板的boot引导,它能够下载到一个boot ROM中并
用于初始化和测试硬件或者下载和运行应用程序。
Thedevelopment of U-Boot is closely related to Linux: some parts of
thesource code originate in the Linux source tree, we have some
headerfiles in common, and special provision has been made to
supportbooting of Linux images.
U-boot的开发非常接近Linux,它的某部分源码来自于Linux代码目录树,
在common里面,我们有着相同的头文件,以及特别规定其必须支持引
导Linux镜像。
Someattention has been paid to make this software easily
configurableand extendable. For instance, all monitor commands are
implementedwith the same call interface, so that it's very easy to
addnew commands. Also, instead of permanently adding rarely used
code(for instance hardware test utilities) to the monitor, you can
loadand run it dynamically.
某部分已经用于使软件易于配置和扩展。例如,所有监控命令被应用于
相同调用接口,所以它非常容易去添加新命令。而且,这永远代替了使
用添加一些代码到监控器(例如,硬件测试工具),以动态地加载和运
行它。
Status:情形
=======
Ingeneral, all boards for which a configuration option exists in the
Makefilehave been tested to some extent and can be considered
"working".In fact, many of them are used in production systems.
Incase of problems see the CHANGELOG and CREDITS files to find out
whocontributed the specific port.
通常,在Makefile中存在配置选项的所有板已经被一定程度的测试,可
以认为是可行的。事实上,它们中有许多已经应用于生产系统中了。假
使有问题,请参考CHANGELOG 和 CREDITS文件,找出是谁贡献的
指定部分。
Whereto get help:在哪里找到帮助
==================
Incase you have questions about, problems with or contributions for
U-Bootyou should send a message to the U-Boot mailing list at
<u-boot-users@lists.sourceforge.net>.There is also an archive of
previoustraffic on the mailing list - please search the archive
beforeasking FAQ's. Please see
http://lists.sourceforge.net/lists/listinfo/u-boot-users/
Wherewe come from:我们从哪里来
===================
-start from 8xxrom sources
-create PPCBoot project (http://sourceforge.net/projects/ppcboot)
-clean up code
-make it easier to add custom boards
-make it possible to add other [PowerPC] CPUs
-extend functions, especially:
* Provide extended interface to Linux bootloader
* S-Record download
* network boot
* PCMCIA / CompactFLash / ATA disk / SCSI ...boot
-create ARMBoot project (http://sourceforge.net/projects/armboot)
-add other CPU families (starting with ARM)
-create U-Boot project (http://sourceforge.net/projects/u-boot)
Namesand Spelling:名称和拼写
===================
The"official" name of this project is "Das U-Boot". Thespelling
"U-Boot"shall be used in all written text (documentation, comments
insource files etc.). Example:
This is the README file for the U-Bootproject.
Filenames etc. shall be based on the string "u-boot". Examples:
include/asm-ppc/u-boot.h
#include <asm/u-boot.h>
Variablenames, preprocessor constants etc. shall be either based on
thestring "u_boot" or on "U_BOOT". Example:
U_BOOT_VERSION u_boot_logo
IH_OS_U_BOOT u_boot_hush_start
Versioning:版本管理
===========
U-Bootuses a 3 level version number containing a version, a
sub-version,and a patchlevel: "U-Boot-2.34.5" means version "2",
sub-version"34", and patchlevel "4".
Thepatchlevel is used to indicate certain stages of development
betweenreleased versions, i. e. officially released versions of
U-Bootwill always have a patchlevel of "0".
DirectoryHierarchy:目录层次
====================
-board Board dependent files板子依赖文件
-common Misc architecture independentfunctions多体系结构独立函数
-cpu CPU specific filesCPU相关文件
- 74xx_7xx Filesspecific to Freescale MPC74xx and 7xx CPUs
- arm720t Filesspecific to ARM 720 CPUs
- arm920t Filesspecific to ARM 920 CPUs
- at91rm9200 Files specific to AtmelAT91RM9200 CPU
- imx Filesspecific to Freescale MC9328 i.MX CPUs
- s3c24x0 Filesspecific to Samsung S3C24X0 CPUs
- arm925t Filesspecific to ARM 925 CPUs
- arm926ejs Filesspecific to ARM 926 CPUs
- arm1136 Filesspecific to ARM 1136 CPUs
- at32ap Filesspecific to Atmel AVR32 AP CPUs
- i386 Filesspecific to i386 CPUs
- ixp Filesspecific to Intel XScale IXP CPUs
- mcf52x2 Filesspecific to Freescale ColdFire MCF52x2 CPUs
- mips Filesspecific to MIPS CPUs
- mpc5xx Filesspecific to Freescale MPC5xx CPUs
- mpc5xxx Filesspecific to Freescale MPC5xxx CPUs
- mpc8xx Filesspecific to Freescale MPC8xx CPUs
- mpc8220 Filesspecific to Freescale MPC8220 CPUs
- mpc824x Filesspecific to Freescale MPC824x CPUs
- mpc8260 Filesspecific to Freescale MPC8260 CPUs
- mpc85xx Filesspecific to Freescale MPC85xx CPUs
- nios Filesspecific to Altera NIOS CPUs
- nios2 Filesspecific to Altera Nios-II CPUs
- ppc4xx Filesspecific to AMCC PowerPC 4xx CPUs
- pxa Filesspecific to Intel XScale PXA CPUs
- s3c44b0 Filesspecific to Samsung S3C44B0 CPUs
- sa1100 Filesspecific to Intel StrongARM SA1100 CPUs
-disk Code for disk drivepartition handling磁盘驱动及分区处理代码
-doc Documentation (don'texpect too much) 文档
-drivers Commonly used device drivers通用设备驱动
-dtt Digital Thermometer andThermostat drivers数字温度器和调温装置驱动
-examples Example code for standaloneapplications, etc.独立应用程序的示例代码
-include Header Files头文件
-lib_arm Files generic to ARM architectureARM体系结构通用文件
-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 PowerPCarchitecture
-net Networking code网络代码
-post Power On Self Test上电自检
-rtc Real Time Clock drivers实时时钟驱动
-tools Tools to build S-Record orU-Boot images, etc. 例如编译S-Record和U-Boot镜像工具
SoftwareConfiguration:软件配置
=======================
Configurationis usually done using C preprocessor defines; the
rationalebehind that is to avoid dead code whenever possible.
配置通常使用C预定义;在这背后的基本原理是尽可能避免死代码。
Thereare two classes of configuration variables:
有两种级别的配置变量
*Configuration _OPTIONS_:
These are selectable by the user and havenames beginning with
"CONFIG_".
*Configuration _SETTINGS_:
These depend on the hardware etc. and shouldnot be meddled with if
you don't know what you're doing; they havenames beginning with
"CFG_".
Laterwe will add a configuration tool - probably similar to or even
identicalto what's used for the Linux kernel. Right now, we have to
dothe configuration by hand, which means creating some symbolic
linksand editing some configuration files. We use the TQM8xxL boards
asan example here.
Selectionof Processor Architecture and Board Type:
---------------------------------------------------
Forall supported boards there are ready-to-use default
configurationsavailable; just type "make <board_name>_config".
Example:For a TQM823L module type:
cd u-boot
make TQM823L_config
Forthe Cogent platform, you need to specify the cpu type as well;
e.g."make cogent_mpc8xx_config". And also configure the cogent
directoryaccording to the instructions in cogent/README.
ConfigurationOptions:配置选项
----------------------
Configurationdepends on the combination of board and CPU type; all
suchinformation is kept in a configuration file
"include/configs/<board_name>.h".
配置依靠结合板和CPU类型;在配置文件中所有信息是活跃的。
Example:For a TQM823L module, all configuration settings are in
"include/configs/TQM823L.h".
Manyof the options are named exactly as the corresponding Linux
kernelconfiguration options. The intention is to make it easier to
builda config tool - later.
Thefollowing options need to be configured:
接下来的选项需要配置
-CPU Type: Define exactly one of CPU类型
PowerPC based CPUs:
-------------------
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
or CONFIG_405GP
or CONFIG_405EP
or CONFIG_440
or CONFIG_MPC74xx
or CONFIG_750FX
ARM based CPUs:
---------------
CONFIG_SA1110
CONFIG_ARM7
CONFIG_PXA250
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_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_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_EP1S10CONFIG_EP1S40
AVR32 based boards:
-------------------
CONFIG_ATSTK1000
-CPU Daughterboard Type: (if CONFIG_ATSTK1000 is defined) CPU子类型
Define exactly one of
CONFIG_ATSTK1002
-CPU Module Type: (if CONFIG_COGENT is defined)CPU模块类型
Define exactly one of
CONFIG_CMA286_60_OLD
---FIXME --- not tested yet:FIXME
CONFIG_CMA286_60,CONFIG_CMA286_21, CONFIG_CMA286_60P,
CONFIG_CMA287_23, CONFIG_CMA287_50
-Motherboard Type: (if CONFIG_COGENT is defined)母板类型
Define exactly one of
CONFIG_CMA101, CONFIG_CMA102
-Motherboard I/O Modules: (if CONFIG_COGENT is defined)母板IO模块
Define one or more of
CONFIG_CMA302
-Motherboard Options: (if CONFIG_CMA101 or CONFIG_CMA102 are defined)母板选项
Define one or more of
CONFIG_LCD_HEARTBEAT - update a character position on
the lcd display every second with
a "rotator" |\-/|\-/
-Board flavour: (if CONFIG_MPC8260ADS is defined)板flavour
CONFIG_ADSTYPE
Possible values are:
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) MPC824X家族内存
Define exactly one of
CONFIG_MPC8240, CONFIG_MPC8245
-8xx CPU Options: (if using an MPC8xx cpu) 8xx CPU选项
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/885 CPU options: (if using a MPC859 or MPC866 or MPC885 CPU): 859/866/885 CPU选项
CFG_8xx_CPUCLK_MIN
CFG_8xx_CPUCLK_MAX
CONFIG_8xx_CPUCLK_DEFAULT
See doc/README.MPC866
CFG_MEASURE_CPUCLK
Define this to measure the actualCPU clock instead
of relying on the correctness ofthe configured
values. Mostly useful for boardbringup to make sure
the PLL is locked at the intendedfrequency. Note
that this requires a (stable)reference clock (32 kHz
RTC clock or CFG_8XX_XIN)
-Intel Monahans options:英特尔系列选项
CFG_MONAHANS_RUN_MODE_OSC_RATIO
Defines the Monahans run mode tooscillator
ratio. Valid values are 8, 16, 24,31. The core
frequency is this value multipliedby 13 MHz.
CFG_MONAHANS_TURBO_RUN_MODE_RATIO
Defines the Monahans turbo mode tooscillator
ratio. Valid values are 1 (defaultif undefined) and
2. The core frequency ascalculated above is multiplied
by this value.
-Linux Kernel Interface:Linux内核接口
CONFIG_CLOCKS_IN_MHZ
U-Boot stores all clockinformation in Hz
internally. For binarycompatibility with older Linux
kernels (which expect the clockspassed in the
bd_info data to be in MHz) theenvironment variable
"clocks_in_mhz" can bedefined so that U-Boot
converts clock data to MHZ beforepassing it to the
Linux kernel.
When CONFIG_CLOCKS_IN_MHZ isdefined, a definition of
"clocks_in_mhz=1"is automatically included in the
default environment.
CONFIG_MEMSIZE_IN_BYTES [relevant for MIPS only]
When transfering memsize parameterto linux, some versions
expect it to be in bytes, othersin MB.
Define CONFIG_MEMSIZE_IN_BYTES tomake it in bytes.
CONFIG_OF_FLAT_TREE
New kernel versions are expectingfirmware settings to be
passed using flat open firmwaretrees.
The environment variable"disable_of", when set, disables this
functionality.
CONFIG_OF_FLAT_TREE_MAX_SIZE
The maximum size of theconstructed OF tree.
OF_CPU - The proper name of thecpus node.
OF_SOC - The proper name of thesoc node.
OF_TBCLK - The timebase frequency.
OF_STDOUT_PATH - The path to theconsole device
CONFIG_OF_HAS_BD_T
The resulting flat device treewill have a copy of the bd_t.
Space should be pre-allocated inthe dts for the bd_t.
CONFIG_OF_HAS_UBOOT_ENV
The resulting flat device treewill have a copy of u-boot's
environment variables
CONFIG_OF_BOARD_SETUP
Board code has additionmodification that it wants to make
to the flat device tree beforehanding it off to the kernel
CONFIG_OF_BOOT_CPU
This define fills in the correctboot cpu in the boot
param header, the default value iszero if undefined.
-Serial Ports:串口
CFG_PL010_SERIAL
Define this if you want supportfor Amba PrimeCell PL010 UARTs.
CFG_PL011_SERIAL
Define this if you want supportfor Amba PrimeCell PL011 UARTs.
CONFIG_PL011_CLOCK
If you have Amba PrimeCell PL011UARTs, set this variable to
the clock speed of the UARTs.
CONFIG_PL01x_PORTS
If you have Amba PrimeCell PL010or PL011 UARTs on your board,
define this to a list of baseaddresses for each (supported)
port. See e.g.include/configs/versatile.h
-Console Interface:控制台接口
Depending on board, define exactlyone serial port
(like CONFIG_8xx_CONS_SMC1,CONFIG_8xx_CONS_SMC2,
CONFIG_8xx_CONS_SCC1, ...), orswitch off the serial
console by definingCONFIG_8xx_CONS_NONE
Note: if CONFIG_8xx_CONS_NONE isdefined, the serial
port routines must be definedelsewhere
(i.e. serial_init(),serial_getc(), ...)
CONFIG_CFB_CONSOLE
Enables console device for a colorframebuffer. Needs following
defines (cf. smiLynxEM, i8042,board/eltec/bab7xx)
VIDEO_FB_LITTLE_ENDIAN graphic memory organisation
(defaultbig endian)
VIDEO_HW_RECTFILL graphic chip supports
rectanglefill
(cf.smiLynxEM)
VIDEO_HW_BITBLT graphic chip supports
bit-blit(cf. smiLynxEM)
VIDEO_VISIBLE_COLS visible pixel columns
(cols=pitch)
VIDEO_VISIBLE_ROWS visible pixel rows
VIDEO_PIXEL_SIZE bytes per pixel
VIDEO_DATA_FORMAT graphic data format
(0-5,cf. cfb_console.c)
VIDEO_FB_ADRS framebuffer address
VIDEO_KBD_INIT_FCT keyboard int fct
(i.e. i8042_kbd_init())
VIDEO_TSTC_FCT test char fct
(i.e.i8042_tstc)
VIDEO_GETC_FCT get char fct
(i.e.i8042_getc)
CONFIG_CONSOLE_CURSOR cursor drawing on/off
(requiresblink timer
cf.i8042.c)
CFG_CONSOLE_BLINK_COUNTblink interval (cf. i8042.c)
CONFIG_CONSOLE_TIME display time/date info in
upperright corner
(requiresCFG_CMD_DATE)
CONFIG_VIDEO_LOGO display Linux logo in
upperleft corner
CONFIG_VIDEO_BMP_LOGO use bmp_logo.h instead of
linux_logo.hfor logo.
RequiresCONFIG_VIDEO_LOGO
CONFIG_CONSOLE_EXTRA_INFO
addionalboard info beside
thelogo
When CONFIG_CFB_CONSOLE isdefined, video console is
default i/o. Serial console can beforced with
environment 'console=serial'.
When CONFIG_SILENT_CONSOLE isdefined, all console
messages (by U-Boot and Linux!)can be silenced with
the "silent" environmentvariable. See
doc/README.silent for moreinformation.
-Console Baudrate:控制台波特率
CONFIG_BAUDRATE - in bps
Select one of the baudrates listedin
CFG_BAUDRATE_TABLE, see below.
CFG_BRGCLK_PRESCALE, baudrateprescale
-Interrupt driven serial port input:中断驱动串口输入
CONFIG_SERIAL_SOFTWARE_FIFO
PPC405GP only.
Use an interrupt handler forreceiving data on the
serial port. It also enables usinghardware handshake
(RTS/CTS) and UART's built-inFIFO. Set the number of
bytes the interrupt driven inputbuffer should have.
Leave undefined to disable thisfeature, including
disable the buffer and hardwarehandshake.
-Console UART Number:控制台串口数量
CONFIG_UART1_CONSOLE
AMCC PPC4xx only.
If defined internal UART1 (and notUART0) is used
as default U-Boot console.
-Boot Delay: CONFIG_BOOTDELAY - in secondsBoot延时
Delay before automatically bootingthe default image;
set to -1 to disable autoboot.
See doc/README.autoboot for theseoptions that
work with CONFIG_BOOTDELAY. Noneare required.
CONFIG_BOOT_RETRY_TIME
CONFIG_BOOT_RETRY_MIN
CONFIG_AUTOBOOT_KEYED
CONFIG_AUTOBOOT_PROMPT
CONFIG_AUTOBOOT_DELAY_STR
CONFIG_AUTOBOOT_STOP_STR
CONFIG_AUTOBOOT_DELAY_STR2
CONFIG_AUTOBOOT_STOP_STR2
CONFIG_ZERO_BOOTDELAY_CHECK
CONFIG_RESET_TO_RETRY
-Autoboot Command:自动boot命令
CONFIG_BOOTCOMMAND
Only needed when CONFIG_BOOTDELAYis enabled;
define a command string that isautomatically executed
when no character is read on theconsole interface
within "Boot Delay"after reset.
CONFIG_BOOTARGS
This can be used to pass argumentsto the bootm
command. The value ofCONFIG_BOOTARGS goes into the
environment value"bootargs".
CONFIG_RAMBOOT and CONFIG_NFSBOOT
The value of these goes into theenvironment as
"ramboot" and"nfsboot" respectively, and can be used
as a convenience, when switchingbetween booting from
ram and nfs.
-Pre-Boot Commands: Pre-Boot命令
CONFIG_PREBOOT
When this option is #defined, theexistence of the
environment variable"preboot" will be checked
immediately before starting theCONFIG_BOOTDELAY
countdown and/or running theauto-boot command resp.
entering interactive mode.
This feature is especially usefulwhen "preboot" is
automatically generated ormodified. For an example
see the LWMON board specific code:here "preboot" is
modified when the user holds downa certain
combination of keys on the(special) keyboard when
booting the systems
-Serial Download Echo Mode:串口下载Echo模式
CONFIG_LOADS_ECHO
If defined to 1, all charactersreceived during a
serial download (using the"loads" command) are
echoed back. This might be neededby some terminal
emulations (like "cu"),but may as well just take
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串口波特率
CONFIG_KGDB_BAUDRATE
Select one of the baudrates listedin
CFG_BAUDRATE_TABLE, see below.
-Monitor Functions:监控功能
CONFIG_COMMANDS
Most monitor functions can beselected (or
de-selected) by adjusting thedefinition of
CONFIG_COMMANDS; to selectindividual 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 AutoscriptSupport
CFG_CMD_BDI bdinfo
CFG_CMD_BEDBUG * Include BedBug Debugger
CFG_CMD_BMP * BMP support
CFG_CMD_BSP * Board specific commands
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 echoarguments
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 FPGAdevice 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 Listall 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, loopw, mtest
CFG_CMD_MISC Miscfunctions 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 envvariable
CFG_CMD_SAVES * save S record dump
CFG_CMD_SCSI * SCSI Support
CFG_CMD_SDRAM * print SDRAM configuration information
(requires CFG_CMD_I2C)
CFG_CMD_SETGETDCR Support for DCRRegister 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_CDP *