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