Skip to content
Snippets Groups Projects
README 109 KiB
Newer Older
Wolfgang Denk's avatar
Wolfgang Denk committed
#
# (C) Copyright 2000 - 2004
Wolfgang Denk's avatar
Wolfgang Denk committed
# 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 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.
Wolfgang Denk's avatar
Wolfgang Denk committed

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
header files in common, and special provision has been made to
Wolfgang Denk's avatar
Wolfgang Denk committed
support booting of Linux images.

Some attention has been paid to make this software easily
configurable and extendable. For instance, all monitor commands are
implemented with the same call interface, so that it's very easy to
add new commands. Also, instead of permanently adding rarely used
code (for instance hardware test utilities) to the monitor, you can
load and run it dynamically.


Status:
=======

In general, all boards for which a configuration option exists in the
Makefile have been tested to some extent and can be considered
Wolfgang Denk's avatar
Wolfgang Denk committed
"working". In fact, many of them are used in production systems.

In case of problems see the CHANGELOG and CREDITS files to find out
Wolfgang Denk's avatar
Wolfgang Denk committed
who contributed the specific port.


Where to get help:
==================

In case you have questions about, problems with or contributions for
U-Boot you should send a message to the U-Boot mailing list at
<u-boot-users@lists.sourceforge.net>. There is also an archive of
previous traffic on the mailing list - please search the archive
Wolfgang Denk's avatar
Wolfgang Denk committed
before asking FAQ's. Please see
http://lists.sourceforge.net/lists/listinfo/u-boot-users/


Where we come from:
===================

- start from 8xxrom sources
- create PPCBoot project (http://sourceforge.net/projects/ppcboot)
Wolfgang Denk's avatar
Wolfgang Denk committed
- 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)
Wolfgang Denk's avatar
Wolfgang Denk committed
- 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, comments
in 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 on
the string "u_boot" or on "U_BOOT". Example:

	U_BOOT_VERSION		u_boot_logo
	IH_OS_U_BOOT		u_boot_hush_start
Versioning:
===========

U-Boot uses 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".

The patchlevel is used to indicate certain stages of development
between released versions, i. e. officially released versions of
U-Boot will always have a patchlevel of "0".


Wolfgang Denk's avatar
Wolfgang Denk committed
Directory Hierarchy:
====================

- board		Board dependent files
- common	Misc architecture independent functions
Wolfgang Denk's avatar
Wolfgang Denk committed
- cpu		CPU specific files
  - 74xx_7xx	Files specific to Motorola MPC74xx and 7xx CPUs
  - arm720t	Files specific to ARM 720 CPUs
  - arm920t	Files specific to ARM 920 CPUs
  - arm925t	Files specific to ARM 925 CPUs
  - arm926ejs	Files specific to ARM 926 CPUs
  - at91rm9200	Files specific to Atmel AT91RM9200 CPUs
  - i386	Files specific to i386 CPUs
  - ixp		Files specific to Intel XScale IXP CPUs
  - mcf52x2	Files specific to Motorola ColdFire MCF52x2 CPUs
  - mips	Files specific to MIPS CPUs
  - mpc5xx	Files specific to Motorola MPC5xx  CPUs
  - mpc5xxx	Files specific to Motorola MPC5xxx CPUs
  - mpc8xx	Files specific to Motorola MPC8xx  CPUs
  - mpc824x	Files specific to Motorola MPC824x CPUs
  - mpc8260	Files specific to Motorola MPC8260 CPUs
  - mpc85xx	Files specific to Motorola MPC85xx CPUs
  - nios	Files specific to Altera NIOS CPUs
  - ppc4xx	Files specific to IBM 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
Wolfgang Denk's avatar
Wolfgang Denk committed
- disk		Code for disk drive partition handling
- doc		Documentation (don't expect too much)
- drivers	Commonly used device drivers
Wolfgang Denk's avatar
Wolfgang Denk committed
- dtt		Digital Thermometer and Thermostat drivers
- examples	Example code for standalone applications, etc.
- include	Header Files
- lib_arm	Files generic to ARM	 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
Wolfgang Denk's avatar
Wolfgang Denk committed
- 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; the
rationale 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 even
identical to what's used for the Linux kernel. Right now, we have to
do the configuration by hand, which means creating some symbolic
links and editing some configuration files. We use the TQM8xxL boards
as an example here.


Selection of Processor Architecture and Board Type:
---------------------------------------------------

For all supported boards there are ready-to-use default
configurations available; just type "make <board_name>_config".

Example: For a TQM823L module type:

	cd u-boot
	make TQM823L_config

For the Cogent platform, you need to specify the cpu type as well;
e.g. "make cogent_mpc8xx_config". And also configure the cogent
Loading
Loading full blame...