xref: /openbmc/u-boot/board/armltd/integrator/README (revision 702e6014)
1*702e6014SWolfgang Denk
2*702e6014SWolfgang Denk		U-Boot for ARM Integrator Development Platforms
3*702e6014SWolfgang Denk
4*702e6014SWolfgang Denk			Peter Pearse, ARM Ltd.
5*702e6014SWolfgang Denk			peter.pearse@arm.com
6*702e6014SWolfgang Denk			     www.arm.com
7*702e6014SWolfgang Denk
8*702e6014SWolfgang DenkManuals available from :-
9*702e6014SWolfgang Denkhttp://www.arm.com/products/DevTools/Hardware_Platforms.html
10*702e6014SWolfgang Denk
11*702e6014SWolfgang DenkOverview :
12*702e6014SWolfgang Denk--------
13*702e6014SWolfgang DenkThere are two Integrator variants - Integrator/AP and Integrator/CP.
14*702e6014SWolfgang DenkEach may be fitted with a variety of core modules (CMs).
15*702e6014SWolfgang DenkEach CM consists of a ARM processor core and associated hardware e.g
16*702e6014SWolfgang Denk	FPGA implementing various controllers and/or register
17*702e6014SWolfgang Denk	SSRAM
18*702e6014SWolfgang Denk	SDRAM
19*702e6014SWolfgang Denk	RAM controllers
20*702e6014SWolfgang Denk	clock generators etc.
21*702e6014SWolfgang DenkCMs may be fitted with varying amounts of SDRAM using a DIMM socket.
22*702e6014SWolfgang Denk
23*702e6014SWolfgang DenkBoot Methods :
24*702e6014SWolfgang Denk------------
25*702e6014SWolfgang DenkIntegrator platforms can be configured to use U-Boot in at least three ways :-
26*702e6014SWolfgang Denka) Run ARM boot monitor, manually run U-Boot image from flash
27*702e6014SWolfgang Denkb) Run ARM boot monitor, automatically run U-Boot image from flash
28*702e6014SWolfgang Denkc) Run U-Boot image direct from flash.
29*702e6014SWolfgang Denk
30*702e6014SWolfgang DenkIn cases a) and b) the ARM boot monitor will have configured the CM and mapped
31*702e6014SWolfgang Denkwriteable memory to 0x00000000 in the Integrator address space.
32*702e6014SWolfgang DenkU-Boot has to carry out minimal configration before standard code is run.
33*702e6014SWolfgang Denk
34*702e6014SWolfgang DenkIn case c) it may be necessary for U-Boot to perform CM dependent initialization.
35*702e6014SWolfgang Denk
36*702e6014SWolfgang DenkConfiguring U-Boot :
37*702e6014SWolfgang Denk------------------
38*702e6014SWolfgang Denk	The makefile contains targets for Integrator platforms of both types
39*702e6014SWolfgang Denkfitted with all current variants of CM. If these targets are to be used with
40*702e6014SWolfgang Denkboot process c) above then CONFIG_INIT_CRITICAL may need to be defined to ensure
41*702e6014SWolfgang Denkthat the CM is correctly configured.
42*702e6014SWolfgang Denk
43*702e6014SWolfgang Denk	There are also targets independent of CM. These may not be suitable for
44*702e6014SWolfgang Denkboot process c) above. They have been preserved for backward compatibility with
45*702e6014SWolfgang Denkexisting build processes.
46*702e6014SWolfgang Denk
47*702e6014SWolfgang DenkCode Hierarchy Applied :
48*702e6014SWolfgang Denk----------------------
49*702e6014SWolfgang DenkCode specific to initialization of a particular ARM processor has been placed in
50*702e6014SWolfgang Denkcpu/arm<>/start.S so that it may be used by other boards.
51*702e6014SWolfgang Denk
52*702e6014SWolfgang DenkHowever, to avoid duplicating code through all processor files, a generic core
53*702e6014SWolfgang Denkfor ARM Integrator CMs has been added
54*702e6014SWolfgang Denk
55*702e6014SWolfgang Denk	arch/arm/cpu/arm_intcm
56*702e6014SWolfgang Denk
57*702e6014SWolfgang DenkOtherwise. for example,  the standard CM reset via the CM control register would
58*702e6014SWolfgang Denkneed placing in each CM processor file......
59*702e6014SWolfgang Denk
60*702e6014SWolfgang DenkCode specific to the initialization of the CM, rather than the cpu, and initialization
61*702e6014SWolfgang Denkof the Integrator board itself, has been placed in
62*702e6014SWolfgang Denk
63*702e6014SWolfgang Denk	board/integrator<>/platform.S
64*702e6014SWolfgang Denk	board/integrator<>/integrator<>.c
65*702e6014SWolfgang Denk
66*702e6014SWolfgang DenkTargets
67*702e6014SWolfgang Denk=======
68*702e6014SWolfgang DenkThe U-Boot make targets map to the available core modules as below.
69*702e6014SWolfgang Denk
70*702e6014SWolfgang DenkIntegrator/AP is no longer available from ARM.
71*702e6014SWolfgang DenkCore modules marked ** are also no longer available.
72*702e6014SWolfgang Denk
73*702e6014SWolfgang Denkap720t_config		** CM720T
74*702e6014SWolfgang Denkap920t_config		** CM920T
75*702e6014SWolfgang Denkap926ejs_config	Integrator Core Module for ARM926EJ-STM
76*702e6014SWolfgang Denkap946es_config		Integrator Core Module for ARM946E-STM
77*702e6014SWolfgang Denkcp920t_config		** CM920T
78*702e6014SWolfgang Denkcp926ejs_config	Integrator Core Module for ARM926EJ-STM
79*702e6014SWolfgang Denkcp946es_config		Integrator Core Module for ARM946E-STM
80*702e6014SWolfgang Denkcp1136_config		Integrator Core Module ARM1136JF-S  TM
81*702e6014SWolfgang Denk
82*702e6014SWolfgang DenkThe final groups of targets are for core modules where no explicit cpu
83*702e6014SWolfgang Denkcode has yet been added to U-Boot i.e. they all use the same U-Boot binary
84*702e6014SWolfgang Denkusing the generic "arm_intcm" core:
85*702e6014SWolfgang Denk
86*702e6014SWolfgang Denkap966_config			Integrator Core Module for ARM966E-S TM
87*702e6014SWolfgang Denkap922_config			Integrator Core Module for ARM922T TM with ETM
88*702e6014SWolfgang Denkap922_XA10_config		Integrator Core Module for ARM922T using Altera Excalibur
89*702e6014SWolfgang Denkap7_config			** CM7TDMI
90*702e6014SWolfgang Denkintegratorap_config
91*702e6014SWolfgang Denkap_config
92*702e6014SWolfgang Denk
93*702e6014SWolfgang Denk
94*702e6014SWolfgang Denkcp966_config			Integrator Core Module for ARM966E-S TM
95*702e6014SWolfgang Denkcp922_config			Integrator Core Module for ARM922T TM with ETM
96*702e6014SWolfgang Denkcp922_XA10_config		Integrator Core Module for ARM922T using Altera Excalibur
97*702e6014SWolfgang Denkcp1026_config			Integrator Core Module ARM1026EJ-S TM
98*702e6014SWolfgang Denkintegratorcp_config
99*702e6014SWolfgang Denkcp_config
100*702e6014SWolfgang Denk
101*702e6014SWolfgang DenkThe Makefile targets call board/integrator<>/split_by_variant.sh
102*702e6014SWolfgang Denkto configure various defines in include/configs/integrator<>.h
103*702e6014SWolfgang Denkto indicate the core module & core configuration and ensure that
104*702e6014SWolfgang Denkboard/integrator<>/u-boot.lds loads the cpu object first in the U-Boot image.
105*702e6014SWolfgang Denk
106*702e6014SWolfgang Denk*********************************
107*702e6014SWolfgang DenkBecause of this mechanism
108*702e6014SWolfgang Denk> make clean
109*702e6014SWolfgang Denkmust be run before each change in configuration
110*702e6014SWolfgang Denk*********************************
111