mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-21 01:18:52 +09:00
111 lines
3.9 KiB
Plaintext
111 lines
3.9 KiB
Plaintext
|
|
U-Boot for ARM Integrator Development Platforms
|
|
|
|
Peter Pearse, ARM Ltd.
|
|
peter.pearse@arm.com
|
|
www.arm.com
|
|
|
|
Manuals available from :-
|
|
http://www.arm.com/products/DevTools/Hardware_Platforms.html
|
|
|
|
Overview :
|
|
--------
|
|
There are two Integrator variants - Integrator/AP and Integrator/CP.
|
|
Each may be fitted with a variety of core modules (CMs).
|
|
Each CM consists of a ARM processor core and associated hardware e.g
|
|
FPGA implementing various controllers and/or register
|
|
SSRAM
|
|
SDRAM
|
|
RAM controllers
|
|
clock generators etc.
|
|
CMs may be fitted with varying amounts of SDRAM using a DIMM socket.
|
|
|
|
Boot Methods :
|
|
------------
|
|
Integrator platforms can be configured to use U-Boot in at least three ways :-
|
|
a) Run ARM boot monitor, manually run U-Boot image from flash
|
|
b) Run ARM boot monitor, automatically run U-Boot image from flash
|
|
c) Run U-Boot image direct from flash.
|
|
|
|
In cases a) and b) the ARM boot monitor will have configured the CM and mapped
|
|
writeable memory to 0x00000000 in the Integrator address space.
|
|
U-Boot has to carry out minimal configration before standard code is run.
|
|
|
|
In case c) it may be necessary for U-Boot to perform CM dependent initialization.
|
|
|
|
Configuring U-Boot :
|
|
------------------
|
|
The makefile contains targets for Integrator platforms of both types
|
|
fitted with all current variants of CM. If these targets are to be used with
|
|
boot process c) above then CONFIG_INIT_CRITICAL may need to be defined to ensure
|
|
that the CM is correctly configured.
|
|
|
|
There are also targets independent of CM. These may not be suitable for
|
|
boot process c) above. They have been preserved for backward compatibility with
|
|
existing build processes.
|
|
|
|
Code Hierarchy Applied :
|
|
----------------------
|
|
Code specific to initialization of a particular ARM processor has been placed in
|
|
cpu/arm<>/start.S so that it may be used by other boards.
|
|
|
|
However, to avoid duplicating code through all processor files, a generic core
|
|
for ARM Integrator CMs has been added
|
|
|
|
arch/arm/cpu/arm_intcm
|
|
|
|
Otherwise. for example, the standard CM reset via the CM control register would
|
|
need placing in each CM processor file......
|
|
|
|
Code specific to the initialization of the CM, rather than the cpu, and initialization
|
|
of the Integrator board itself, has been placed in
|
|
|
|
board/integrator<>/platform.S
|
|
board/integrator<>/integrator<>.c
|
|
|
|
Targets
|
|
=======
|
|
The U-Boot make targets map to the available core modules as below.
|
|
|
|
Integrator/AP is no longer available from ARM.
|
|
Core modules marked ** are also no longer available.
|
|
|
|
ap720t_config ** CM720T
|
|
ap920t_config ** CM920T
|
|
ap926ejs_config Integrator Core Module for ARM926EJ-STM
|
|
ap946es_config Integrator Core Module for ARM946E-STM
|
|
cp920t_config ** CM920T
|
|
cp926ejs_config Integrator Core Module for ARM926EJ-STM
|
|
cp946es_config Integrator Core Module for ARM946E-STM
|
|
cp1136_config Integrator Core Module ARM1136JF-S TM
|
|
|
|
The final groups of targets are for core modules where no explicit cpu
|
|
code has yet been added to U-Boot i.e. they all use the same U-Boot binary
|
|
using the generic "arm_intcm" core:
|
|
|
|
ap966_config Integrator Core Module for ARM966E-S TM
|
|
ap922_config Integrator Core Module for ARM922T TM with ETM
|
|
ap922_XA10_config Integrator Core Module for ARM922T using Altera Excalibur
|
|
ap7_config ** CM7TDMI
|
|
integratorap_config
|
|
ap_config
|
|
|
|
|
|
cp966_config Integrator Core Module for ARM966E-S TM
|
|
cp922_config Integrator Core Module for ARM922T TM with ETM
|
|
cp922_XA10_config Integrator Core Module for ARM922T using Altera Excalibur
|
|
cp1026_config Integrator Core Module ARM1026EJ-S TM
|
|
integratorcp_config
|
|
cp_config
|
|
|
|
The Makefile targets call board/integrator<>/split_by_variant.sh
|
|
to configure various defines in include/configs/integrator<>.h
|
|
to indicate the core module & core configuration and ensure that
|
|
board/integrator<>/u-boot.lds loads the cpu object first in the U-Boot image.
|
|
|
|
*********************************
|
|
Because of this mechanism
|
|
> make clean
|
|
must be run before each change in configuration
|
|
*********************************
|