⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme

📁 U-boot源码 ARM7启动代码
💻
📖 第 1 页 / 共 5 页
字号:
## (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:========This directory contains the source code for U-Boot, a boot loader forEmbedded boards based on PowerPC, ARM, MIPS and several otherprocessors, which can be installed in a boot ROM and used toinitialize and test the hardware or to download and run applicationcode.The development of U-Boot is closely related to Linux: some parts ofthe source code originate in the Linux source tree, we have someheader files in common, and special provision has been made tosupport booting of Linux images.Some attention has been paid to make this software easilyconfigurable and extendable. For instance, all monitor commands areimplemented with the same call interface, so that it's very easy toadd new commands. Also, instead of permanently adding rarely usedcode (for instance hardware test utilities) to the monitor, you canload and run it dynamically.Status:=======In general, all boards for which a configuration option exists in theMakefile have been tested to some extent and can be considered"working". In fact, many of them are used in production systems.In case of problems see the CHANGELOG and CREDITS files to find outwho contributed the specific port.Where to get help:==================In case you have questions about, problems with or contributions forU-Boot you should send a message to the U-Boot mailing list at<u-boot-users@lists.sourceforge.net>. There is also an archive ofprevious traffic on the mailing list - please search the archivebefore asking FAQ's. Please seehttp://lists.sourceforge.net/lists/listinfo/u-boot-users/Where we 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 boot loader  * 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)Names and Spelling:===================The "official" name of this project is "Das U-Boot". The spelling"U-Boot" shall be used in all written text (documentation, commentsin source files etc.). Example:	This is the README file for the U-Boot project.File names etc. shall be based on the string "u-boot". Examples:	include/asm-ppc/u-boot.h	#include <asm/u-boot.h>Variable names, preprocessor constants etc. shall be either based onthe string "u_boot" or on "U_BOOT". Example:	U_BOOT_VERSION		u_boot_logo	IH_OS_U_BOOT		u_boot_hush_startVersioning:===========U-Boot uses a 3 level version number containing a version, asub-version, and a patchlevel: "U-Boot-2.34.5" means version "2",sub-version "34", and patchlevel "4".The patchlevel is used to indicate certain stages of developmentbetween released versions, i. e. officially released versions ofU-Boot will always have a patchlevel of "0".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  - mcf532x	Files specific to Freescale ColdFire MCF5329 CPUs  - mcf5445x	Files specific to Freescale ColdFire MCF5445x 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- 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- post		Power On Self Test- rtc		Real Time Clock drivers- tools		Tools to build S-Record or U-Boot images, etc.Software Configuration:=======================Configuration is usually done using C preprocessor defines; therationale behind that is to avoid dead code whenever possible.There are two classes of configuration variables:* Configuration _OPTIONS_:  These are selectable by the user and have names beginning with  "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_".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.Selection of Processor Architecture and Board Type:---------------------------------------------------For all supported boards there are ready-to-use defaultconfigurations available; just type "make <board_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.Configuration Options:----------------------Configuration depends on the combination of board and CPU type; allsuch information is kept in a configuration file"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:- CPU Type:	Define exactly one, e.g. CONFIG_MPC85XX.- Board Type:	Define exactly one, e.g. CONFIG_MPC8540ADS.- CPU Daughterboard Type: (if CONFIG_ATSTK1000 is defined)		Define exactly one of		CONFIG_ATSTK1002- CPU Module Type: (if CONFIG_COGENT is defined)		Define exactly one of		CONFIG_CMA286_60_OLD--- 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- 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:		CONFIG_CLOCKS_IN_MHZ		U-Boot stores all clock information in Hz		internally. For binary compatibility with older Linux		kernels (which expect the clocks passed in the		bd_info data to be in MHz) 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.		When CONFIG_CLOCKS_IN_MHZ is defined, 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 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_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 automatically updates 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.		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_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 env" 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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -