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