1702e6014SWolfgang Denk 2702e6014SWolfgang Denk U-Boot for ARM Integrator Development Platforms 3702e6014SWolfgang Denk 4702e6014SWolfgang Denk Peter Pearse, ARM Ltd. 5702e6014SWolfgang Denk peter.pearse@arm.com 6702e6014SWolfgang Denk www.arm.com 7702e6014SWolfgang Denk 8702e6014SWolfgang DenkManuals available from :- 9702e6014SWolfgang Denkhttp://www.arm.com/products/DevTools/Hardware_Platforms.html 10702e6014SWolfgang Denk 11702e6014SWolfgang DenkOverview : 12702e6014SWolfgang Denk-------- 13702e6014SWolfgang DenkThere are two Integrator variants - Integrator/AP and Integrator/CP. 14702e6014SWolfgang DenkEach may be fitted with a variety of core modules (CMs). 15702e6014SWolfgang DenkEach CM consists of a ARM processor core and associated hardware e.g 16702e6014SWolfgang Denk FPGA implementing various controllers and/or register 17702e6014SWolfgang Denk SSRAM 18702e6014SWolfgang Denk SDRAM 19702e6014SWolfgang Denk RAM controllers 20702e6014SWolfgang Denk clock generators etc. 21702e6014SWolfgang DenkCMs may be fitted with varying amounts of SDRAM using a DIMM socket. 22702e6014SWolfgang Denk 23702e6014SWolfgang DenkBoot Methods : 24702e6014SWolfgang Denk------------ 25702e6014SWolfgang DenkIntegrator platforms can be configured to use U-Boot in at least three ways :- 26702e6014SWolfgang Denka) Run ARM boot monitor, manually run U-Boot image from flash 27702e6014SWolfgang Denkb) Run ARM boot monitor, automatically run U-Boot image from flash 28702e6014SWolfgang Denkc) Run U-Boot image direct from flash. 29702e6014SWolfgang Denk 30702e6014SWolfgang DenkIn cases a) and b) the ARM boot monitor will have configured the CM and mapped 31702e6014SWolfgang Denkwriteable memory to 0x00000000 in the Integrator address space. 32702e6014SWolfgang DenkU-Boot has to carry out minimal configration before standard code is run. 33702e6014SWolfgang Denk 34702e6014SWolfgang DenkIn case c) it may be necessary for U-Boot to perform CM dependent initialization. 35702e6014SWolfgang Denk 36702e6014SWolfgang DenkConfiguring U-Boot : 37702e6014SWolfgang Denk------------------ 38702e6014SWolfgang Denk The makefile contains targets for Integrator platforms of both types 39*c95cafd0SBin Mengfitted with all current variants of CM. 40702e6014SWolfgang Denk 41702e6014SWolfgang Denk There are also targets independent of CM. These may not be suitable for 42702e6014SWolfgang Denkboot process c) above. They have been preserved for backward compatibility with 43702e6014SWolfgang Denkexisting build processes. 44702e6014SWolfgang Denk 45702e6014SWolfgang DenkCode Hierarchy Applied : 46702e6014SWolfgang Denk---------------------- 47702e6014SWolfgang DenkCode specific to initialization of a particular ARM processor has been placed in 48702e6014SWolfgang Denkcpu/arm<>/start.S so that it may be used by other boards. 49702e6014SWolfgang Denk 50702e6014SWolfgang DenkHowever, to avoid duplicating code through all processor files, a generic core 51702e6014SWolfgang Denkfor ARM Integrator CMs has been added 52702e6014SWolfgang Denk 53702e6014SWolfgang Denk arch/arm/cpu/arm_intcm 54702e6014SWolfgang Denk 55702e6014SWolfgang DenkOtherwise. for example, the standard CM reset via the CM control register would 56702e6014SWolfgang Denkneed placing in each CM processor file...... 57702e6014SWolfgang Denk 58702e6014SWolfgang DenkCode specific to the initialization of the CM, rather than the cpu, and initialization 59702e6014SWolfgang Denkof the Integrator board itself, has been placed in 60702e6014SWolfgang Denk 61702e6014SWolfgang Denk board/integrator<>/platform.S 62702e6014SWolfgang Denk board/integrator<>/integrator<>.c 63702e6014SWolfgang Denk 64702e6014SWolfgang DenkTargets 65702e6014SWolfgang Denk======= 66702e6014SWolfgang DenkThe U-Boot make targets map to the available core modules as below. 67702e6014SWolfgang Denk 68702e6014SWolfgang DenkIntegrator/AP is no longer available from ARM. 69702e6014SWolfgang DenkCore modules marked ** are also no longer available. 70702e6014SWolfgang Denk 71702e6014SWolfgang Denkap720t_config ** CM720T 72702e6014SWolfgang Denkap920t_config ** CM920T 73702e6014SWolfgang Denkap926ejs_config Integrator Core Module for ARM926EJ-STM 74702e6014SWolfgang Denkap946es_config Integrator Core Module for ARM946E-STM 75702e6014SWolfgang Denkcp920t_config ** CM920T 76702e6014SWolfgang Denkcp926ejs_config Integrator Core Module for ARM926EJ-STM 77702e6014SWolfgang Denkcp946es_config Integrator Core Module for ARM946E-STM 78702e6014SWolfgang Denkcp1136_config Integrator Core Module ARM1136JF-S TM 79702e6014SWolfgang Denk 80702e6014SWolfgang DenkThe final groups of targets are for core modules where no explicit cpu 81702e6014SWolfgang Denkcode has yet been added to U-Boot i.e. they all use the same U-Boot binary 82702e6014SWolfgang Denkusing the generic "arm_intcm" core: 83702e6014SWolfgang Denk 84702e6014SWolfgang Denkap966_config Integrator Core Module for ARM966E-S TM 85702e6014SWolfgang Denkap922_config Integrator Core Module for ARM922T TM with ETM 86702e6014SWolfgang Denkap922_XA10_config Integrator Core Module for ARM922T using Altera Excalibur 87702e6014SWolfgang Denkap7_config ** CM7TDMI 88702e6014SWolfgang Denkintegratorap_config 89702e6014SWolfgang Denkap_config 90702e6014SWolfgang Denk 91702e6014SWolfgang Denk 92702e6014SWolfgang Denkcp966_config Integrator Core Module for ARM966E-S TM 93702e6014SWolfgang Denkcp922_config Integrator Core Module for ARM922T TM with ETM 94702e6014SWolfgang Denkcp922_XA10_config Integrator Core Module for ARM922T using Altera Excalibur 95702e6014SWolfgang Denkcp1026_config Integrator Core Module ARM1026EJ-S TM 96702e6014SWolfgang Denkintegratorcp_config 97702e6014SWolfgang Denkcp_config 98702e6014SWolfgang Denk 99702e6014SWolfgang DenkThe Makefile targets call board/integrator<>/split_by_variant.sh 100702e6014SWolfgang Denkto configure various defines in include/configs/integrator<>.h 101702e6014SWolfgang Denkto indicate the core module & core configuration and ensure that 102702e6014SWolfgang Denkboard/integrator<>/u-boot.lds loads the cpu object first in the U-Boot image. 103702e6014SWolfgang Denk 104702e6014SWolfgang Denk********************************* 105702e6014SWolfgang DenkBecause of this mechanism 106702e6014SWolfgang Denk> make clean 107702e6014SWolfgang Denkmust be run before each change in configuration 108702e6014SWolfgang Denk********************************* 109