]>
Commit | Line | Data |
---|---|---|
74f4304e WD |
1 | |
2 | U-Boot for ARM Integrator Development Platforms | |
3 | ||
4 | Peter Pearse, ARM Ltd. | |
5 | [email protected] | |
6 | www.arm.com | |
7 | ||
8 | Manuals available from :- | |
9 | http://www.arm.com/products/DevTools/Hardware_Platforms.html | |
10 | ||
11 | Overview : | |
12 | -------- | |
13 | There are two Integrator variants - Integrator/AP and Integrator/CP. | |
14 | Each may be fitted with a variety of core modules (CMs). | |
fe7eb5d8 | 15 | Each CM consists of a ARM processor core and associated hardware e.g |
74f4304e WD |
16 | FPGA implementing various controllers and/or register |
17 | SSRAM | |
18 | SDRAM | |
19 | RAM controllers | |
20 | clock generators etc. | |
9b880bd4 | 21 | CMs may be fitted with varying amounts of SDRAM using a DIMM socket. |
74f4304e WD |
22 | |
23 | Boot Methods : | |
24 | ------------ | |
25 | Integrator platforms can be configured to use U-Boot in at least three ways :- | |
26 | a) Run ARM boot monitor, manually run U-Boot image from flash | |
27 | b) Run ARM boot monitor, automatically run U-Boot image from flash | |
28 | c) Run U-Boot image direct from flash. | |
29 | ||
fe7eb5d8 | 30 | In cases a) and b) the ARM boot monitor will have configured the CM and mapped |
74f4304e WD |
31 | writeable memory to 0x00000000 in the Integrator address space. |
32 | U-Boot has to carry out minimal configration before standard code is run. | |
33 | ||
34 | In case c) it may be necessary for U-Boot to perform CM dependent initialization. | |
35 | ||
36 | Configuring U-Boot : | |
fe7eb5d8 | 37 | ------------------ |
74f4304e | 38 | The makefile contains targets for Integrator platforms of both types |
fe7eb5d8 WD |
39 | fitted with all current variants of CM. If these targets are to be used with |
40 | boot process c) above then CONFIG_INIT_CRITICAL may need to be defined to ensure | |
74f4304e WD |
41 | that the CM is correctly configured. |
42 | ||
43 | There are also targets independent of CM. These may not be suitable for | |
fe7eb5d8 | 44 | boot process c) above. They have been preserved for backward compatibility with |
74f4304e WD |
45 | existing build processes. |
46 | ||
47 | Code Hierarchy Applied : | |
48 | ---------------------- | |
fe7eb5d8 | 49 | Code specific to initialization of a particular ARM processor has been placed in |
74f4304e WD |
50 | cpu/arm<>/start.S so that it may be used by other boards. |
51 | ||
fe7eb5d8 | 52 | However, to avoid duplicating code through all processor files, a generic core |
74f4304e WD |
53 | for ARM Integrator CMs has been added |
54 | ||
55 | cpu/arm_intcm | |
56 | ||
57 | Otherwise. for example, the standard CM reset via the CM control register would | |
58 | need placing in each CM processor file...... | |
59 | ||
60 | Code specific to the initialization of the CM, rather than the cpu, and initialization | |
fe7eb5d8 | 61 | of the Integrator board itself, has been placed in |
74f4304e | 62 | |
fe7eb5d8 | 63 | board/integrator<>/platform.S |
74f4304e | 64 | board/integrator<>/integrator<>.c |
87cb6862 WD |
65 | |
66 | Targets | |
67 | ======= | |
68 | The U-Boot make targets map to the available core modules as below. | |
69 | ||
70 | Integrator/AP is no longer available from ARM. | |
71 | Core modules marked ** are also no longer available. | |
72 | ||
73 | ap720t_config ** CM720T | |
74 | ap920t_config ** CM920T | |
75 | ap926ejs_config Integrator Core Module for ARM926EJ-STM | |
76 | ap946es_config Integrator Core Module for ARM946E-STM | |
77 | cp920t_config ** CM920T | |
78 | cp926ejs_config Integrator Core Module for ARM926EJ-STM | |
79 | cp946es_config Integrator Core Module for ARM946E-STM | |
80 | cp1136_config Integrator Core Module ARM1136JF-S TM | |
81 | ||
82 | The final groups of targets are for core modules where no explicit cpu | |
83 | code has yet been added to U-Boot i.e. they all use the same U-Boot binary | |
84 | using the generic "arm_intcm" core: | |
85 | ||
86 | ap966_config Integrator Core Module for ARM966E-S TM | |
87 | ap922_config Integrator Core Module for ARM922T TM with ETM | |
88 | ap922_XA10_config Integrator Core Module for ARM922T using Altera Excalibur | |
53677ef1 | 89 | ap7_config ** CM7TDMI |
87cb6862 WD |
90 | integratorap_config |
91 | ap_config | |
92 | ||
93 | ||
53677ef1 | 94 | cp966_config Integrator Core Module for ARM966E-S TM |
87cb6862 WD |
95 | cp922_config Integrator Core Module for ARM922T TM with ETM |
96 | cp922_XA10_config Integrator Core Module for ARM922T using Altera Excalibur | |
97 | cp1026_config Integrator Core Module ARM1026EJ-S TM | |
98 | integratorcp_config | |
99 | cp_config | |
100 | ||
101 | The Makefile targets call board/integrator<>/split_by_variant.sh | |
102 | to configure various defines in include/configs/integrator<>.h | |
103 | to indicate the core module & core configuration and ensure that | |
104 | board/integrator<>/u-boot.lds loads the cpu object first in the U-Boot image. | |
105 | ||
106 | ********************************* | |
107 | Because of this mechanism | |
108 | > make clean | |
109 | must be run before each change in configuration | |
110 | ********************************* |