Uboot_readme中文注释版这是本人在网上搜集整理的,希望和我对大家能够有帮助,希望大家不断的将其完善,大家的改进版希望能够给我回发一份,感谢大家。前面是Uboot的发展,下载地址,如何获得帮助,以及版本说明Directory Hierarchy:目录层次====================- board Board dependent files 开发板相关文件- common Misc architecture independent functions 多体系结构独立函数- cpu CPU specific files CPU相关文件 - 74xx_7xx Files specific to Freescale MPC74xx and 7xx CPUs Freescale MPC74XX的CPU相关文件 - arm720t Files specific to ARM 720 CPUs ARM720相关文件 - arm920t Files specific to ARM 920 CPUs ARM920相关文件 - at91rm9200 Files specific to Atmel AT91RM9200 CPU AT91RM9200相关 - imx Files specific to Freescale MC9328 i.MX CPUs Freescale i.MX相关 - 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 - leon2 Files specific to Gaisler LEON2 SPARC CPU - leon3 Files specific to Gaisler LEON3 SPARC CPU - mcf52x2 Files specific to Freescale ColdFire MCF52x2 CPUs - mcf5227x Files specific to Freescale ColdFire MCF5227x CPUs - mcf532x Files specific to Freescale ColdFire MCF5329 CPUs - mcf5445x Files specific to Freescale ColdFire MCF5445x CPUs - mcf547x_8x Files specific to Freescale ColdFire MCF547x_8x 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 头文件- lib_arm Files generic to ARM architecture ARM体系结构通用的文件- 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- lib_sparc Files generic to SPARC architecture- libfdt Library files to support flattened device trees 支持平板设备树的库文件- net Networking code 网络代码- post Power On Self Test 上电自检- rtc Real Time Clock drivers 实时时钟驱动- tools Tools to build S-Record or U-Boot images, etc. 编译S-Record和U-Boot镜像的工具- api 1.3版本的UBOOT还增加了一个API的文件夹, 这里放的是一些扩展应用的独立的API函数 Software Configuration:软件配置:=======================Configuration is usually done using C preprocessor defines; therationale behind that is to avoid dead code whenever possible.配置是通过C预处理程序完成。There are two classes of configuration variables:有两类配置变量:* Configuration _OPTIONS_: 配置选项: These are selectable by the user and have names beginning with "CONFIG_". 是可由用户选择并以“CONFIG_”开头* Configuration _SETTINGS_: 配置设置 These depend on the hardware etc. and should not be meddled with if you don't know what you're doing; they have names beginning with "CFG_". 依赖于硬件,由“CFG_”开头Later we will add a configuration tool - probably similar to or evenidentical to what's used for the Linux kernel. Right now, we have todo the configuration by hand, which means creating some symboliclinks and editing some configuration files. We use the TQM8xxL boardsas an example here.以后我们将加入类似Linux内核一样的配置工具。但现在只能手工配置。我们将以TQM8XXL为例。第一步:Selection of Processor Architecture and Board Type:选择处理器架构和板类型:---------------------------------------------------For all supported boards there are ready-to-use defaultconfigurations available; just type "make <board_name>_config".对所有已至此的板都已经有可用的默认配置,只要执行:make <boare_name>_config下面是例子Example: For a TQM823L module type: cd u-boot make TQM823L_configFor the Cogent platform, you need to specify the CPU type as well;e.g. "make cogent_mpc8xx_config". And also configure the cogentdirectory according to the instructions in cogent/README.对于加强型平台还要指定CPU类型,请阅读cogent/READM第二步Configuration Options:配置选项:----------------------Configuration depends on the combination of board and CPU type; allsuch information is kept in a configuration file配置依赖于板和CPU,所有配置设置信息保存在:"include/configs/<board_name>.h".Example: For a TQM823L module, all configuration settings are in"include/configs/TQM823L.h".Many of the options are named exactly as the corresponding Linuxkernel configuration options. The intention is to make it easier tobuild a config tool - later.The following options need to be configured:以下的选项需要被配置:这里MPC的配置比较多,如果是SMDK2410的话配置会少很多- CPU Type: Define exactly one, e.g. CONFIG_MPC85XX.CPU类型:正确地定义一个种类,比如:CONFIG_MPC85XX- Board Type: Define exactly one, e.g. CONFIG_MPC8540ADS.板类型:比如:CONFIG_MPC8540ADS- CPU Daughterboard Type: (if CONFIG_ATSTK1000 is defined) Define exactly one, e.g. CONFIG_ATSTK1002CPU子类- CPU Module Type: (if CONFIG_COGENT is defined) Define exactly one of CONFIG_CMA286_60_OLDCPU模型--- FIXME --- not tested yet: 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) Define one or more of CONFIG_CMA302主板I/O模式- 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) 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) Define exactly one of CONFIG_MPC8240, CONFIG_MPC8245- 8xx CPU Options: (if using an MPC8xx 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): CFG_8xx_CPUCLK_MIN CFG_8xx_CPUCLK_MAX CONFIG_8xx_CPUCLK_DEFAULT See doc/README.MPC866 CFG_MEASURE_CPUCLK Define this to measure the actual CPU clock instead of relying on the correctness of the 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 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:- Linux内核接口 CONFIG_CLOCKS_IN_MHZ U-Boot stores all clock information in Hz internally. UBOOT以Hz位单位存储时钟信息For binary compatibility with older Linux kernels (which expect the clocks passed in the bd_info data to be in MHzLinux内核期望时钟是以MHz位单位传到bd_info的) the environment variable为了和内核兼容可以定义环境变量 "clocks_in_mhz" can be defined so that U-Boot converts clock data to MHZ before passing it to the Linux kernel. 把UBOOT的时钟数据转换位MHz后传入内核 When CONFIG_CLOCKS_IN_MHZ is defined, a definition of "clocks_in_mhz=1" is automatically included in the default environment. 当CONFIG_CLOCKS_IN_MHZ被定义后clocks_in_mhz=1会被自动包含到环境中 CONFIG_MEMSIZE_IN_BYTES [relevant for MIPS only] 只跟MIPS相关 When transferring memsize parameter to linux, some versions expect it to be in bytes, others in MB. Define CONFIG_MEMSIZE_IN_BYTES to make it in bytes. 对于内存大小的参数可以定义CONFIG_MEMSIZE_IN_BYTES 以BYTES位单位 CONFIG_OF_LIBFDT 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 automatically updates the fdt 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 boards with QUICC Engines require OF_QE to set UCC MAC addresses 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. 要支持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, CONFIG_8xx_CONS_SCC1, ...), or switch off the serial console by defining CONFIG_8xx_CONS_NONE 依赖于板,定义一个串口 Note: if CONFIG_8xx_CONS_NONE is defined, the serial port routines must be defined elsewhere (i.e. serial_init(), serial_getc(), ...)