Skip to content
Snippets Groups Projects
README 85.3 KiB
Newer Older
# SPDX-License-Identifier: GPL-2.0+
Wolfgang Denk's avatar
Wolfgang Denk committed
#
# (C) Copyright 2000 - 2013
Wolfgang Denk's avatar
Wolfgang Denk committed
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.

Summary:
========

This directory contains the source code for U-Boot, a boot loader for
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.
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 default configuration file exists in the
configs/ directory 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 you can use
Wolfgang Denk's avatar
Wolfgang Denk committed

     scripts/get_maintainer.pl <path>
to identify the people or companies responsible for various boards and
subsystems. Or have a look at the git log.
Wolfgang Denk's avatar
Wolfgang Denk committed

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@lists.denx.de>. There is also an archive of previous traffic
on the mailing list - please search the archive before asking FAQ's.
Please see https://lists.denx.de/pipermail/u-boot and
https://marc.info/?l=u-boot
Wolfgang Denk's avatar
Wolfgang Denk committed

Where to get source code:
=========================

The U-Boot source code is maintained in the Git repository at
https://source.denx.de/u-boot/u-boot.git ; you can browse it online at
https://source.denx.de/u-boot/u-boot
The "Tags" links on this page allow you to download tarballs of
any version you might be interested in. Official releases are also
available from the DENX file server through HTTPS or FTP.
https://ftp.denx.de/pub/u-boot/
ftp://ftp.denx.de/pub/u-boot/
Wolfgang Denk's avatar
Wolfgang Denk committed
Where we come from:
===================

- start from 8xxrom sources
- create PPCBoot project (https://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
Simon Glass's avatar
Simon Glass committed
  * ATA disk / SCSI ... boot
- create ARMBoot project (https://sourceforge.net/projects/armboot)
Wolfgang Denk's avatar
Wolfgang Denk committed
- add other CPU families (starting with ARM)
- create U-Boot project (https://sourceforge.net/projects/u-boot)
- current project page: see https://www.denx.de/wiki/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
Wolfgang Denk's avatar
Wolfgang Denk committed


Software Configuration:
=======================

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

For all supported boards there are ready-to-use default
configurations available; just type "make <board_name>_defconfig".
Wolfgang Denk's avatar
Wolfgang Denk committed

Example: For a TQM823L module type:

	cd u-boot
Wolfgang Denk's avatar
Wolfgang Denk committed

Note: If you're looking for the default configuration file for a board
you're sure used to be there but is now missing, check the file
doc/README.scrapyard for a list of no longer supported boards.
Wolfgang Denk's avatar
Wolfgang Denk committed

Sandbox Environment:
--------------------

U-Boot can be built natively to run on a Linux host using the 'sandbox'
board. This allows feature development which is not board- or architecture-
specific to be undertaken on a native platform. The sandbox is also used to
run some of U-Boot's tests.

See doc/arch/sandbox/sandbox.rst for more details.
Wolfgang Denk's avatar
Wolfgang Denk committed
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.
		CONFIG_SYS_PPC64

		Specifies that the core is a 64-bit PowerPC implementation (implements
		the "64" category of the Power ISA). This is necessary for ePAPR
		compliance, among other possible reasons.

		CONFIG_SYS_FSL_ERRATUM_A004510

		Enables a workaround for erratum A004510.  If set,
		then CONFIG_SYS_FSL_ERRATUM_A004510_SVR_REV and
		CFG_SYS_FSL_CORENET_SNOOPVEC_COREONLY must be set.

		CONFIG_SYS_FSL_ERRATUM_A004510_SVR_REV
		CONFIG_SYS_FSL_ERRATUM_A004510_SVR_REV2 (optional)

		Defines one or two SoC revisions (low 8 bits of SVR)
		for which the A004510 workaround should be applied.

		The rest of SVR is either not relevant to the decision
		of whether the erratum is present (e.g. p2040 versus
		p2041) or is implied by the build target, which controls
		whether CONFIG_SYS_FSL_ERRATUM_A004510 is set.

		See Freescale App Note 4493 for more information about
		this erratum.

		CFG_SYS_FSL_CORENET_SNOOPVEC_COREONLY

		This is the value to write into CCSR offset 0x18600
		according to the A004510 workaround.

		CONFIG_SYS_FSL_SINGLE_SOURCE_CLK
		Single Source Clock is clocking mode present in some of FSL SoC's.
		In this mode, a single differential clock is used to supply
		clocks to the sysclock, ddrclock and usbclock.

- Generic CPU options:

		CONFIG_SYS_FSL_DDR
		Freescale DDR driver in use. This type of DDR controller is
Tom Rini's avatar
Tom Rini committed
		found in mpc83xx, mpc85xx as well as some ARM core SoCs.
		Freescale DDR memory-mapped register base.

		CONFIG_SYS_FSL_IFC_CLK_DIV
		Defines divider of platform clock(clock input to IFC controller).

		CONFIG_SYS_FSL_LBC_CLK_DIV
		Defines divider of platform clock(clock input to eLBC controller).

		CFG_SYS_FSL_DDR_SDRAM_BASE_PHY
		Physical address from the view of DDR controllers. It is the
		same as CFG_SYS_DDR_SDRAM_BASE for  all Power SoCs. But
		it could be different for ARM SoCs.

		CFG_SYS_EXCEPTION_VECTORS_HIGH
Loading
Loading full blame...