mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-03 21:48:15 +00: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
 | 
						|
*********************************
 |