Эх сурвалжийг харах

Update make target for ARM supported boards.
Use lowlevel_init() instead of platformsetup() [rename].
Patch by Peter Pearse, 06 Oct 2005

Wolfgang Denk 19 жил өмнө
parent
commit
87cb6862b9
42 өөрчлөгдсөн 445 нэмэгдсэн , 244 устгасан
  1. 4 0
      CHANGELOG
  2. 7 5
      MAINTAINERS
  3. 11 15
      MAKEALL
  4. 36 173
      Makefile
  5. 1 1
      board/integratorap/Makefile
  6. 0 5
      board/integratorap/integratorap.c
  7. 3 3
      board/integratorap/lowlevel_init.S
  8. 106 0
      board/integratorap/split_by_variant.sh
  9. 3 1
      board/integratorap/u-boot.lds.S
  10. 1 1
      board/integratorcp/Makefile
  11. 3 3
      board/integratorcp/lowlevel_init.S
  12. 106 0
      board/integratorcp/split_by_variant.sh
  13. 3 1
      board/integratorcp/u-boot.lds.S
  14. 1 1
      board/ns9750dev/Makefile
  15. 2 2
      board/ns9750dev/lowlevel_init.S
  16. 1 1
      board/omap1510inn/Makefile
  17. 2 2
      board/omap1510inn/lowlevel_init.S
  18. 1 1
      board/omap1610inn/Makefile
  19. 2 2
      board/omap1610inn/lowlevel_init.S
  20. 1 1
      board/omap2420h4/Makefile
  21. 2 2
      board/omap2420h4/lowlevel_init.S
  22. 1 1
      board/omap5912osk/Makefile
  23. 2 2
      board/omap5912osk/lowlevel_init.S
  24. 1 1
      board/omap730p2/Makefile
  25. 2 2
      board/omap730p2/lowlevel_init.S
  26. 1 1
      board/sx1/Makefile
  27. 2 2
      board/sx1/lowlevel_init.S
  28. 1 1
      board/versatile/Makefile
  29. 3 2
      board/versatile/lowlevel_init.S
  30. 45 0
      board/versatile/split_by_variant.sh
  31. 2 2
      board/voiceblue/setup.S
  32. 9 3
      cpu/arm1136/interrupts.c
  33. 7 1
      cpu/arm1136/start.S
  34. 7 0
      cpu/arm720t/cpu.c
  35. 10 0
      cpu/arm720t/interrupts.c
  36. 5 1
      cpu/arm720t/start.S
  37. 0 2
      cpu/arm920t/start.S
  38. 1 1
      cpu/arm925t/start.S
  39. 1 1
      cpu/arm926ejs/start.S
  40. 1 1
      cpu/arm946es/start.S
  41. 46 0
      doc/README-integrator
  42. 2 0
      include/asm-arm/arch-arm720t/hardware.h

+ 4 - 0
CHANGELOG

@@ -2,6 +2,10 @@
 Changes for U-Boot 1.1.4:
 ======================================================================
 
+* Update make target for ARM supported boards.
+  Use lowlevel_init() instead of platformsetup() [rename].
+  Patch by Peter Pearse, 06 Oct 2005
+
 * Fix booting from serial dataflash on AT91RM9200
   Patch by Peter Menzebach, 29 Aug 2005
 

+ 7 - 5
MAINTAINERS

@@ -249,11 +249,13 @@ Frank Panno <fpanno@delphintech.com>
 	ep8260			MPC8260
 
 Peter Pearse <peter.pearse@arm.com>
-
-	Integrator/AP		CM 926EJ-S, CM7x0T, CM9x0T
-	Integrator/CP		CM 926EJ-S  CM920T, CM940T, CM922T-XA10
-	Versatile/AB		ARM926EJ-S
-	Versatile/PB		ARM926EJ-S
+	integratorcp		All current ARM supplied &
+	                        supported core modules
+				- see http://www.arm.com
+				/products/DevTools
+				/Hardware_Platforms.html
+	versatile		ARM926EJ-S
+	versatile		ARM926EJ-S
 
 Denis Peter <d.peter@mpl.ch>
 

+ 11 - 15
MAKEALL

@@ -162,7 +162,7 @@ LIST_SA="assabet dnp1110 gcplus lart shannon"
 
 LIST_ARM7="	\
 	armadillo	B2		ep7312		evb4510		\
-	impa7		integratorap_CM720T	integratorap_CM7TDMI	\
+	impa7		integratorap	ap7		ap720t		\
 	modnet50							\
 "
 
@@ -171,32 +171,28 @@ LIST_ARM7="	\
 #########################################################################
 
 LIST_ARM9="	\
-	at91rm9200dk	cmc_pu2		csb637				\
-	integratorap_CM920T		integratorap_CM920T_ETM		\
-	integratorap_CM922T_XA10	integratorap_CM926EJ_S		\
-	integratorap_CM940T		integratorap_CM946E_S		\
-	integratorap_CM966E_S		integratorcp_CM920T		\
-	integratorcp_CM920T_ETM		integratorcp_CM922T_XA10	\
-	integratorcp_CM926EJ_S		integratorcp_CM940T		\
-	integratorcp_CM946E_S		integratorcp_CM966E_S		\
-	kb9202		lpd7a400	mp2usb		mx1ads		\
-	mx1fs2		omap1510inn	omap1610h2	omap1610inn	\
-	omap730p2	scb9328		smdk2400	smdk2410	\
-	trab		VCMA9		versatile	voiceblue	\
+	at91rm9200dk	cmc_pu2						\
+	ap920t		ap922_XA10	ap926ejs	ap946es		\
+	ap966		cp920t		cp922_XA10	cp926ejs	\
+	cp946es		cp966		lpd7a400	mp2usb		\
+	mx1ads		mx1fs2		omap1510inn	omap1610h2	\
+	omap1610inn	omap730p2	scb9328		smdk2400	\
+	smdk2410	trab		VCMA9		versatile	\
+	versatileab	versatilepb	voiceblue
 "
 
 #########################################################################
 ## ARM10 Systems
 #########################################################################
 LIST_ARM10="	\
-	integratorcp_CM10220E		integratorcp_CM1026EJ_S		\
+	integratorcp	cp1026						\
 "
 
 #########################################################################
 ## ARM11 Systems
 #########################################################################
 LIST_ARM11="	\
-	integratorcp_CM1136JF_S		omap2420h4			\
+	cp1136		omap2420h4					\
 "
 
 #########################################################################

+ 36 - 173
Makefile

@@ -1396,178 +1396,34 @@ csb637_config	:	unconfig
 mp2usb_config	:	unconfig
 	@./mkconfig $(@:_config=) arm arm920t mp2usb NULL at91rm9200
 
-########################################################################
-## ARM Integrator boards
-## There are two variants /AP && /CP
-## - many different core modules (CMs) can be used
-## - some share characteristics
-## Those without specific cpu support can still use U-Boot
-## provided the ARM boot monitor (or similar) runs before U-Boot
-## to set up the platform e.g. map writeable memory to 0x00000000
-## setup MMU, setup caches etc.
-## Ported cores are:-
-## 	ARM926EJ-S
-## 	ARM946E-S
-##
-########################################################################
-xtract_int_board = $(subst _$(subst integrator$1_,,$(subst _config,,$2)),,$(subst _config,,$2))
-xtract_int_cm    = $(subst integrator$1_,,$(subst _config,,$2))
-#########################################################################
-## Integrator/AP
-#########################################################################
-integratorap_config	:	unconfig
-	@echo -n "/* Integrator configuration implied " >  tmp.fil;	\
-	 echo    " by Makefile target	*/"		>> tmp.fil;	\
-	 echo    					>> tmp.fil
-	@echo -n "#define CONFIG_INTEGRATOR	1"	>> tmp.fil;	\
-	echo	 "	/* Integrator board	*/"	>> tmp.fil;	\
-	echo  -n "#define CONFIG_ARCH_INTEGRATOR"	>> tmp.fil;	\
-	echo	 "	1	/* Integrator/AP */"	>> tmp.fil;	\
-	echo "/* Core module not defined	*/"	>> tmp.fil;	\
-	echo -n "#define CONFIG_ARM_INTCM	1"	>> tmp.fil;	\
-	echo -n "	/* Integrator core module "	>> tmp.fil;	\
-	echo    "with unknown core	*/"		>> tmp.fil;	\
-	cpu=arm_intcm;							\
-	mv tmp.fil ./include/config.h;					\
-	ubootlds=board/integratorap/u-boot.lds; 			\
-	sed -e 's/cpu\/.*\/st/cpu\/'$$cpu'\/st/' 			\
-	                                   $$ubootlds > $$ubootlds.tmp; \
-	mv -f $$ubootlds.tmp $$ubootlds;				\
-	./mkconfig -a integratorap arm arm_intcm integratorap;
-
-integratorap_CM720T_config		integratorap_CM7TDMI_config	\
-integratorap_CM920T_config		integratorap_CM920T_ETM_config	\
-integratorap_CM922T_XA10_config		integratorap_CM926EJ_S_config	\
-integratorap_CM940T_config		integratorap_CM946E_S_config	\
-integratorap_CM966E_S_config		integratorap_CM10200E_config	\
-integratorap_CM10220E_config		integratorap_CM1026EJ_S_config	\
-integratorap_CM1136JF_S_config	:	unconfig
-	@echo -n "/* Integrator configuration implied " >  tmp.fil;	\
-	 echo    " by Makefile target	*/"		>> tmp.fil;	\
-	 echo    					>> tmp.fil
-	@echo -n "#define CONFIG_INTEGRATOR	1"	>>  tmp.fil;	\
-	echo	 "	/* Integrator board	*/"	>> tmp.fil;	\
-	echo  -n "#define CONFIG_ARCH_INTEGRATOR"	>> tmp.fil;	\
-	echo	 "	1	/* Integrator/AP */"	>> tmp.fil;	\
-	cm=$(call xtract_int_cm,ap,$@); 				\
-	echo  -n "#define CONFIG_$$cm		"	>> tmp.fil;	\
-	echo     "	/* core module */"		>> tmp.fil;	\
-	case $$cm in							\
-	CM920T)								\
-			echo -n	"#define CONFIG_ARM920" >> tmp.fil;	\
-			echo -n "T	1	/* CPU"	>> tmp.fil;	\
-			echo -n " core is ARM920T"	>> tmp.fil;	\
-			echo    "	*/"		>> tmp.fil;	\
-			cpu=arm920t;;					\
-	CM926EJ_S)	echo -n	"#define CONFIG_ARM926" >> tmp.fil;	\
-			echo -n "EJ_S	1	/* CPU"	>> tmp.fil;	\
-			echo -n " core is ARM926EJ-S"	>> tmp.fil;	\
-			echo    "	*/"		>> tmp.fil;	\
-			cpu=arm926ejs;;					\
-	CM946E_S)	echo -n	"#define CONFIG_ARM946" >> tmp.fil;	\
-			echo -n "E_S	1	/* CPU"	>> tmp.fil;	\
-			echo -n " core is ARM946E-S"	>> tmp.fil;	\
-			echo    "	*/"		>> tmp.fil;	\
-			cpu=arm946es;;					\
-	*)		echo -n "#define CONFIG_ARM_IN"	>> tmp.fil;	\
-			echo -n "TCM	1	/* Int"	>> tmp.fil;	\
-			echo -n "egrator core module w" >> tmp.fil;	\
-			echo -n "ith unported core"	>> tmp.fil;	\
-			echo    "	*/"		>> tmp.fil;	\
-			cpu=arm_intcm;;					\
-	esac; 								\
-	mv tmp.fil ./include/config.h;					\
-	ubootlds=board/$(call xtract_int_board,ap,$@)/u-boot.lds; 	\
-	sed -e 's/cpu\/.*\/st/cpu\/'$$cpu'\/st/' 			\
-	                                   $$ubootlds > $$ubootlds.tmp; \
-	mv -f $$ubootlds.tmp $$ubootlds;				\
-	./mkconfig -a $(call xtract_int_board,ap,$@) arm $$cpu 		\
-	              $(call xtract_int_board,ap,$@);
 
-#########################################################################
-## Integrator/CP
-#########################################################################
-integratorcp_config	:	unconfig
-	@echo -n "/* Integrator configuration implied " >  tmp.fil;	\
-	 echo    " by Makefile target	*/"		>> tmp.fil;	\
-	 echo    					>> tmp.fil
-	@echo -n "#define CONFIG_INTEGRATOR	1"	>> tmp.fil;	\
-	echo	 "	/* Integrator board	*/"	>> tmp.fil;	\
-	echo  -n "#define CONFIG_ARCH_CINTEGRATOR"	>> tmp.fil;	\
-	echo	 "	1	/* Integrator/CP */"	>> tmp.fil;	\
-	echo     "/* Core module not defined	*/"	>> tmp.fil;	\
-	echo -n "#define CONFIG_ARM_INTCM	1"	>> tmp.fil;	\
-	echo -n "	/* Integrator core module "	>> tmp.fil;	\
-	echo    "with unknown core	*/"		>> tmp.fil;	\
-	cpu=arm_intcm;							\
-	echo -n "#undef CONFIG_CM_MULTIPLE_SSRAM"	>> tmp.fil;	\
-	echo -n "		/* CM may not have "	>> tmp.fil;	\
-	echo    "multiple SSRAM mapping	*/"		>> tmp.fil;	\
-	echo -n "#undef CONFIG_CM_SPD_DETECT	"	>> tmp.fil;	\
-	echo -n "	/* CM may not support SPD "	>> tmp.fil;	\
-	echo    "query */"				>> tmp.fil; 	\
-	echo -n "#undef CONFIG_CM_REMAP		"	>> tmp.fil;	\
-	echo -n "	/* CM may not support "		>> tmp.fil;	\
-	echo    "remapping	*/"			>> tmp.fil; 	\
-	echo -n "#undef CONFIG_CM_INIT		"	>> tmp.fil;	\
-	echo -n "	/* CM may not have  "		>> tmp.fil;	\
-	echo    "initialization reg	*/"		>> tmp.fil; 	\
-	echo -n "#undef CONFIG_CM_TCRAM		"	>> tmp.fil;	\
-	echo -n "	/* CM may not have TCRAM */"	>> tmp.fil; 	\
-	mv tmp.fil ./include/config.h;					\
-	ubootlds=board/integratorcp/u-boot.lds; 			\
-	sed -e 's/cpu\/.*\/st/cpu\/'$$cpu'\/st/' 			\
-	                                   $$ubootlds > $$ubootlds.tmp; \
-	mv -f $$ubootlds.tmp $$ubootlds;				\
-	./mkconfig -a integratorcp arm arm_intcm integratorcp;
-
-integratorcp_CM920T_config		integratorcp_CM920T_ETM_config	\
-integratorcp_CM922T_XA10_config		integratorcp_CM926EJ_S_config	\
-integratorcp_CM940T_config		integratorcp_CM946E_S_config	\
-integratorcp_CM966E_S_config		integratorcp_CM10200E_config	\
-integratorcp_CM10220E_config		integratorcp_CM1026EJ_S_config	\
-integratorcp_CM1136JF_S_config	:	unconfig
-	@echo -n "/* Integrator configuration implied " >  tmp.fil;	\
-	 echo    " by Makefile target	*/"		>> tmp.fil;	\
-	 echo    					>> tmp.fil
-	@echo -n "#define CONFIG_INTEGRATOR	1"	>> tmp.fil;	\
-	echo	 "	/* Integrator board	*/"	>> tmp.fil;	\
-	echo  -n "#define CONFIG_ARCH_CINTEGRATOR"	>> tmp.fil;	\
-	echo	 "	1	/* Integrator/CP */"	>> tmp.fil;	\
-	cm=$(call xtract_int_cm,cp,$@); 				\
-	echo  -n "#define CONFIG_$$cm		"	>> tmp.fil;	\
-	echo     "	/* core module */"		>> tmp.fil;	\
-	echo "/* $$cm core module	*/" 		>> tmp.fil;	\
-	case $$cm in							\
-	CM920T)		echo -n	"#define CONFIG_ARM920" >> tmp.fil;	\
-			echo -n "T	1	/* CPU"	>> tmp.fil;	\
-			echo -n " core is ARM920T"	>> tmp.fil;	\
-			echo    "	*/"		>> tmp.fil;	\
-			cpu=arm920t;;					\
-	CM946E_S)	echo -n	"#define CONFIG_ARM946" >> tmp.fil;	\
-			echo -n "E_S	1	/* CPU"	>> tmp.fil;	\
-			echo -n " core is ARM946E-S"	>> tmp.fil;	\
-			echo    "	*/"		>> tmp.fil;	\
-			cpu=arm946es;;					\
-	CM926EJ_S)	echo -n	"#define CONFIG_ARM926" >> tmp.fil;	\
-			echo -n "EJ_S	1	/* CPU"	>> tmp.fil;	\
-			echo -n " core is ARM926EJ-S"	>> tmp.fil;	\
-			echo    "	*/"		>> tmp.fil;	\
-			cpu=arm926ejs;;					\
-	*)		echo -n "#define CONFIG_ARM_IN"	>> tmp.fil;	\
-			echo -n "TCM	1	/* Int"	>> tmp.fil;	\
-			echo -n "egrator core module w" >> tmp.fil;	\
-			echo -n "ith unported core"	>> tmp.fil;	\
-			echo    "	*/"		>> tmp.fil;	\
-			cpu=arm_intcm;;					\
-	esac; 								\
-	mv tmp.fil ./include/config.h;					\
-	ubootlds=board/$(call xtract_int_board,cp,$@)/u-boot.lds; 	\
-	sed -e 's/cpu\/.*\/st/cpu\/'$$cpu'\/st/' 			\
-	                                   $$ubootlds > $$ubootlds.tmp; \
-	mv -f $$ubootlds.tmp $$ubootlds;				\
-	./mkconfig -a $(call xtract_int_board,cp,$@) arm $$cpu 		\
-	              $(call xtract_int_board,cp,$@);
+########################################################################
+## ARM Integrator boards - see doc/README-integrator for more info.
+integratorap_config	\
+ap_config		\
+ap966_config		\
+ap922_config		\
+ap922_XA10_config	\
+ap7_config		\
+ap720t_config  		\
+ap920t_config		\
+ap926ejs_config		\
+ap946es_config: unconfig
+	@chmod a+x board/integratorap/split_by_variant.sh 
+	@board/integratorap/split_by_variant.sh $@ $(CC)
+
+integratorcp_config	\
+cp_config		\
+cp920t_config		\
+cp926ejs_config		\
+cp946es_config		\
+cp1136_config		\
+cp966_config		\
+cp922_config		\
+cp922_XA10_config	\
+cp1026_config: unconfig
+	@chmod a+x board/integratorcp/split_by_variant.sh 
+	@board/integratorcp/split_by_variant.sh $@ $(CC)
 
 kb9202_config	:	unconfig
 	@./mkconfig $(@:_config=) arm arm920t kb9202 NULL at91rm9200
@@ -1660,8 +1516,14 @@ trab_old_config:	unconfig
 VCMA9_config	:	unconfig
 	@./mkconfig $(@:_config=) arm arm920t vcma9 mpl s3c24x0
 
-versatile_config :	unconfig
-	@./mkconfig $(@:_config=) arm arm926ejs versatile
+#========================================================================
+# ARM supplied Versatile development boards
+#========================================================================
+versatile_config	\
+versatileab_config	\
+versatilepb_config :	unconfig
+	@chmod a+x board/versatile/split_by_variant.sh 
+	@board/versatile/split_by_variant.sh $@ $(CC)
 
 voiceblue_smallflash_config	\
 voiceblue_config:	unconfig
@@ -1946,6 +1808,7 @@ clean:
 	rm -f tools/env/fw_printenv tools/env/fw_setenv
 	rm -f board/cray/L1/bootscript.c board/cray/L1/bootscript.image
 	rm -f board/trab/trab_fkt board/voiceblue/eeprom
+	rm -f board/integratorap/u-boot.lds board/integratorcp/u-boot.lds
 
 clobber:	clean
 	find . -type f \( -name .depend \

+ 1 - 1
board/integratorap/Makefile

@@ -30,7 +30,7 @@ include $(TOPDIR)/config.mk
 LIB	= lib$(BOARD).a
 
 OBJS	:= integratorap.o flash.o
-SOBJS	:= platform.o memsetup.o
+SOBJS	:= lowlevel_init.o memsetup.o
 
 $(LIB):	$(OBJS) $(SOBJS)
 	$(AR) crv $@ $^

+ 0 - 5
board/integratorap/integratorap.c

@@ -649,8 +649,3 @@ ulong get_tbclk (void)
 {
 	return CFG_HZ_CLOCK/div_clock;
 }
-
-/* The Integrator/AP timer1 is clocked at 24MHz
- * can be divided by 16 or 256
- * and is a 16-bit counter
- */

+ 3 - 3
board/integratorap/platform.S → board/integratorap/lowlevel_init.S

@@ -37,9 +37,9 @@ reset_cpu:
 reset_failed:
 	b	reset_failed
 
-/* set up the platform, once the cpu has been initialized */
-.globl platformsetup
-platformsetup:
+/* Set up the platform, once the cpu has been initialized */
+.globl lowlevel_init
+lowlevel_init:
 	/* If U-Boot has been run after the ARM boot monitor
 	 * then all the necessary actions have been done
 	 * otherwise we are running from user flash mapped to 0x00000000

+ 106 - 0
board/integratorap/split_by_variant.sh

@@ -0,0 +1,106 @@
+#!/bin/sh
+# ---------------------------------------------------------
+# Set the platform defines
+# ---------------------------------------------------------
+echo -n "/* Integrator configuration implied "   > tmp.fil
+echo    " by Makefile target */"   		>> tmp.fil
+echo -n "#define CONFIG_INTEGRATOR"  		>> tmp.fil
+echo	 " /* Integrator board */"  		>> tmp.fil
+echo -n "#define CONFIG_ARCH_INTEGRATOR"	>> tmp.fil
+echo     " 1 /* Integrator/AP   */"  		>> tmp.fil
+# ---------------------------------------------------------
+#  Set the core module defines according to Core Module
+# ---------------------------------------------------------
+CC=$(CROSS_COMPILE)gcc
+cpu="arm_intcm"
+
+if [ "$2" == "" ]
+then
+	echo "$0:: No preprocessor parameter - using $(CROSS_COMPILE)gcc"
+else
+	CC=$2
+fi
+
+
+if [ "$1" == "" ]
+then
+	echo "$0:: No parameters - using $(CROSS_COMPILE)gcc arm_intcm"
+else
+	case "$1" in
+	ap7_config		|	\
+	ap966_config		|	\
+	ap922_config		|	\
+	integratorap_config	|	\
+	ap_config)
+	cpu="arm_intcm"
+	;;
+
+	ap720t_config)
+	cpu="arm720t"
+	echo -n "#define CONFIG_CM720T"		>> tmp.fil
+	echo    " 1 /* CPU core is ARM720T */ "	>> tmp.fil
+	;;
+
+	ap922_XA10_config)
+	echo -n "#define CONFIG_CM922T_XA10" 		>> tmp.fil
+	echo    " 1 /* CPU core is ARM922T_XA10 */" 	>> tmp.fil
+	cpu="arm_intcm"
+	;;
+
+	ap920t_config)
+	cpu="arm920t"
+	echo -n "#define CONFIG_CM920T" 		>> tmp.fil
+	echo    " 1 /* CPU core is ARM920T */"		>> tmp.fil
+	;;
+
+	ap926ejs_config)
+	cpu="arm926ejs"
+	echo -n "#define CONFIG_CM926EJ_S"		>> tmp.fil
+	echo    " 1 /* CPU core is ARM926EJ-S */ "	>> tmp.fil
+	;;
+
+
+	ap946es_config)
+	cpu="arm946es"
+	echo -n "#define CONFIG_CM946E_S"		>> tmp.fil
+	echo    " 1 /* CPU core is ARM946E-S */ "	>> tmp.fil
+	;;
+
+	*)
+	echo "$0:: Unrecognised target - using arm_intcm"
+	cpu="arm_intcm"
+	;;
+
+	esac
+
+fi
+
+if [ "$cpu" == "arm_intcm" ]
+then
+	echo "/* Core module undefined/not ported */"	>> tmp.fil
+	echo "#define CONFIG_ARM_INTCM 1"  		>> tmp.fil
+	echo -n "#undef CONFIG_CM_MULTIPLE_SSRAM"	>> tmp.fil
+	echo -n "  /* CM may not have " 		>> tmp.fil
+	echo    "multiple SSRAM mapping */"  		>> tmp.fil
+	echo -n "#undef CONFIG_CM_SPD_DETECT " 		>> tmp.fil
+	echo -n " /* CM may not support SPD " 		>> tmp.fil
+	echo    "query */"    				>> tmp.fil
+	echo -n "#undef CONFIG_CM_REMAP  " 		>> tmp.fil
+	echo -n " /* CM may not support "  		>> tmp.fil
+	echo    "remapping */"   			>> tmp.fil
+	echo -n "#undef CONFIG_CM_INIT  " 		>> tmp.fil
+	echo -n " /* CM may not have  "  		>> tmp.fil
+	echo    "initialization reg */"  		>> tmp.fil
+	echo -n "#undef CONFIG_CM_TCRAM  " 		>> tmp.fil
+	echo    " /* CM may not have TCRAM */" 		>> tmp.fil
+fi
+mv tmp.fil ./include/config.h
+# ---------------------------------------------------------
+#  Ensure correct core object loaded first in U-Boot image
+# ---------------------------------------------------------
+$CC -E -P -C -D CPU_FILE=cpu/$cpu/start.o 		\
+-o board/integratorap/u-boot.lds board/integratorap/u-boot.lds.S
+# ---------------------------------------------------------
+# Complete the configuration
+# ---------------------------------------------------------
+./mkconfig -a integratorap arm $cpu integratorap;

+ 3 - 1
board/integratorap/u-boot.lds → board/integratorap/u-boot.lds.S

@@ -20,6 +20,8 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  * MA 02111-1307 USA
  */
+/* Preprocessed during configuration to emsure the core module processor code,
+   from CPU_FILE, is placed at the start of the image */
 
 OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
 OUTPUT_ARCH(arm)
@@ -30,7 +32,7 @@ SECTIONS
 	. = ALIGN(4);
 	.text	:
 	{
-	  cpu/arm926ejs/start.o	(.text)
+	  CPU_FILE (.text)
 	  *(.text)
 	}
 	.rodata : { *(.rodata) }

+ 1 - 1
board/integratorcp/Makefile

@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
 LIB	= lib$(BOARD).a
 
 OBJS	:= integratorcp.o flash.o
-SOBJS	:= platform.o memsetup.o
+SOBJS	:= lowlevel_init.o memsetup.o
 
 $(LIB):	$(OBJS) $(SOBJS)
 	$(AR) crv $@ $^

+ 3 - 3
board/integratorcp/platform.S → board/integratorcp/lowlevel_init.S

@@ -37,9 +37,9 @@ reset_cpu:
 reset_failed:
 	b	reset_failed
 
-/* set up the platform, once the cpu has been initialized */
-.globl platformsetup
-platformsetup:
+/* Set up the platform, once the cpu has been initialized */
+.globl lowlevel_init
+lowlevel_init:
 	/* If U-Boot has been run after the ARM boot monitor
 	 * then all the necessary actions have been done
 	 * otherwise we are running from user flash mapped to 0x00000000

+ 106 - 0
board/integratorcp/split_by_variant.sh

@@ -0,0 +1,106 @@
+#!/bin/sh
+# ---------------------------------------------------------
+# Set the platform defines
+# ---------------------------------------------------------
+echo -n "/* Integrator configuration implied "   > tmp.fil
+echo    " by Makefile target */"   		>> tmp.fil
+echo -n "#define CONFIG_INTEGRATOR"  		>> tmp.fil
+echo	 " /* Integrator board */"  		>> tmp.fil
+echo -n "#define CONFIG_ARCH_CINTEGRATOR"	>> tmp.fil
+echo     " 1 /* Integrator/CP   */"  		>> tmp.fil
+# ---------------------------------------------------------
+#  Set the core module defines according to Core Module
+# ---------------------------------------------------------
+CC=$(CROSS_COMPILE)gcc
+cpu="arm_intcm"
+
+if [ "$2" == "" ]
+then
+	echo "$0:: No preprocessor parameter - using $(CROSS_COMPILE)gcc"
+else
+	CC=$2
+fi
+
+
+if [ "$1" == "" ]
+then
+	echo "$0:: No parameters - using $(CROSS_COMPILE)gcc arm_intcm"
+else
+	case "$1" in
+	cp966_config		|	\
+	cp922_config		|	\
+	cp1026_config		|	\
+	integratorcp_config	|	\
+	cp_config)
+	cpu="arm_intcm"
+	;;
+
+	cp922_XA10_config)
+	echo -n "#define CONFIG_CM922T_XA10" 		>> tmp.fil
+	echo    " 1 /* CPU core is ARM922T_XA10 */" 	>> tmp.fil
+	cpu="arm_intcm"
+	;;
+
+	cp920t_config)
+	cpu="arm920t"
+	echo -n "#define CONFIG_CM920T" 		>> tmp.fil
+	echo    " 1 /* CPU core is ARM920T */"		>> tmp.fil
+	;;
+
+	cp926ejs_config)
+	cpu="arm926ejs"
+	echo -n "#define CONFIG_CM926EJ_S"		>> tmp.fil
+	echo    " 1 /* CPU core is ARM926EJ-S */ "	>> tmp.fil
+	;;
+
+
+	cp946es_config)
+	cpu="arm946es"
+	echo -n "#define CONFIG_CM946E_S"		>> tmp.fil
+	echo    " 1 /* CPU core is ARM946E-S */ "	>> tmp.fil
+	;;
+
+	cp1136_config)
+	cpu="arm1136"
+	echo -n "#define CONFIG_CM1136EJF_S"		>> tmp.fil
+	echo    " 1 /* CPU core is ARM1136JF-S */ "	>> tmp.fil
+	;;
+
+	*)
+	echo "$0:: Unrecognised target - using arm_intcm"
+	cpu="arm_intcm"
+	;;
+
+	esac
+
+fi
+
+if [ "$cpu" == "arm_intcm" ]
+then
+	echo "/* Core module undefined/not ported */"	>> tmp.fil
+	echo "#define CONFIG_ARM_INTCM 1"  		>> tmp.fil
+	echo -n "#undef CONFIG_CM_MULTIPLE_SSRAM"	>> tmp.fil
+	echo -n "  /* CM may not have " 		>> tmp.fil
+	echo    "multiple SSRAM mapping */"  		>> tmp.fil
+	echo -n "#undef CONFIG_CM_SPD_DETECT " 		>> tmp.fil
+	echo -n " /* CM may not support SPD " 		>> tmp.fil
+	echo    "query */"    				>> tmp.fil
+	echo -n "#undef CONFIG_CM_REMAP  " 		>> tmp.fil
+	echo -n " /* CM may not support "  		>> tmp.fil
+	echo    "remapping */"   			>> tmp.fil
+	echo -n "#undef CONFIG_CM_INIT  " 		>> tmp.fil
+	echo -n " /* CM may not have  "  		>> tmp.fil
+	echo    "initialization reg */"  		>> tmp.fil
+	echo -n "#undef CONFIG_CM_TCRAM  " 		>> tmp.fil
+	echo    " /* CM may not have TCRAM */" 		>> tmp.fil
+fi
+mv tmp.fil ./include/config.h
+# ---------------------------------------------------------
+#  Ensure correct core object loaded first in U-Boot image
+# ---------------------------------------------------------
+$CC -E -P -C -D CPU_FILE=cpu/$cpu/start.o 		\
+-o board/integratorcp/u-boot.lds board/integratorcp/u-boot.lds.S
+# ---------------------------------------------------------
+# Complete the configuration
+# ---------------------------------------------------------
+./mkconfig -a integratorcp arm $cpu integratorcp;

+ 3 - 1
board/integratorcp/u-boot.lds → board/integratorcp/u-boot.lds.S

@@ -20,6 +20,8 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  * MA 02111-1307 USA
  */
+/* Preprocessed during configuration to emsure the core module processor code,
+   from CPU_FILE, is placed at the start of the image */
 
 OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
 OUTPUT_ARCH(arm)
@@ -30,7 +32,7 @@ SECTIONS
 	. = ALIGN(4);
 	.text	:
 	{
-	  cpu/arm926ejs/start.o	(.text)
+	  CPU_FILE (.text)
 	  *(.text)
 	}
 	.rodata : { *(.rodata) }

+ 1 - 1
board/ns9750dev/Makefile

@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
 LIB	= lib$(BOARD).a
 
 OBJS	:= ns9750dev.o flash.o led.o
-SOBJS	:= platform.o
+SOBJS	:= lowlevel_init.o
 
 $(LIB):	$(OBJS) $(SOBJS)
 	$(AR) crv $@ $(OBJS) $(SOBJS)

+ 2 - 2
board/ns9750dev/platform.S → board/ns9750dev/lowlevel_init.S

@@ -75,8 +75,8 @@ _CAS_LATENCY:
 	.word	0x00022000	@ for CAS2 latency
 
 #ifndef CONFIG_SKIP_LOWLEVEL_INIT
-.globl platformsetup
-platformsetup:
+.globl lowlevel_init
+lowlevel_init:
 
 	/* U-Boot may be linked to RAM at 0x780000. But this code will run in
 	   flash from 0x0. But in order to enable RAM we have to disable the

+ 1 - 1
board/omap1510inn/Makefile

@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
 LIB	= lib$(BOARD).a
 
 OBJS	:= omap1510innovator.o
-SOBJS	:= platform.o
+SOBJS	:= lowlevel_init.o
 
 $(LIB):	$(OBJS) $(SOBJS)
 	$(AR) crv $@ $^

+ 2 - 2
board/omap1510inn/platform.S → board/omap1510inn/lowlevel_init.S

@@ -39,8 +39,8 @@
 _TEXT_BASE:
 	.word	TEXT_BASE        /* sdram load addr from config.mk */
 
-.globl platformsetup
-platformsetup:
+.globl lowlevel_init
+lowlevel_init:
 
 	/*
 	 * Configure 1510 pins functions to match our board.

+ 1 - 1
board/omap1610inn/Makefile

@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
 LIB	= lib$(BOARD).a
 
 OBJS	:= omap1610innovator.o flash.o
-SOBJS	:= platform.o
+SOBJS	:= lowlevel_init.o
 
 $(LIB):	$(OBJS) $(SOBJS)
 	$(AR) crv $@ $^

+ 2 - 2
board/omap1610inn/platform.S → board/omap1610inn/lowlevel_init.S

@@ -37,8 +37,8 @@
 _TEXT_BASE:
 	.word	TEXT_BASE	/* sdram load addr from config.mk */
 
-.globl platformsetup
-platformsetup:
+.globl lowlevel_init
+lowlevel_init:
 
 
 	/*------------------------------------------------------*

+ 1 - 1
board/omap2420h4/Makefile

@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
 LIB	= lib$(BOARD).a
 
 OBJS	:= omap2420h4.o mem.o sys_info.o
-SOBJS	:= platform.o
+SOBJS	:= lowlevel_init.o
 
 $(LIB):	$(OBJS) $(SOBJS)
 	$(AR) crv $@ $^

+ 2 - 2
board/omap2420h4/platform.S → board/omap2420h4/lowlevel_init.S

@@ -158,8 +158,8 @@ pll_div_add:
 pll_div_val:
     .word DPLL_VAL	/* DPLL setting (300MHz default) */
 
-.globl platformsetup
-platformsetup:
+.globl lowlevel_init
+lowlevel_init:
 	ldr	sp,	SRAM_STACK
 	str	ip,	[sp]	/* stash old link register */
 	mov	ip,	lr	/* save link reg across call */

+ 1 - 1
board/omap5912osk/Makefile

@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
 LIB	= lib$(BOARD).a
 
 OBJS	:= omap5912osk.o
-SOBJS	:= platform.o
+SOBJS	:= lowlevel_init.o
 
 $(LIB):	$(OBJS) $(SOBJS)
 	$(AR) crv $@ $^

+ 2 - 2
board/omap5912osk/platform.S → board/omap5912osk/lowlevel_init.S

@@ -38,8 +38,8 @@
 _TEXT_BASE:
 	.word	TEXT_BASE	/* sdram load addr from config.mk */
 
-.globl platformsetup
-platformsetup:
+.globl lowlevel_init
+lowlevel_init:
 
 
 	/*------------------------------------------------------*

+ 1 - 1
board/omap730p2/Makefile

@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
 LIB	= lib$(BOARD).a
 
 OBJS	:= omap730p2.o flash.o
-SOBJS	:= platform.o
+SOBJS	:= lowlevel_init.o
 
 $(LIB):	$(OBJS) $(SOBJS)
 	$(AR) crv $@ $^

+ 2 - 2
board/omap730p2/platform.S → board/omap730p2/lowlevel_init.S

@@ -43,8 +43,8 @@
 _TEXT_BASE:
 	.word	TEXT_BASE	/* sdram load addr from config.mk */
 
-.globl platformsetup
-platformsetup:
+.globl lowlevel_init
+lowlevel_init:
 	/* Save callers address in r11 - r11 must never be modified */
 	mov r11, lr
 

+ 1 - 1
board/sx1/Makefile

@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
 LIB	= lib$(BOARD).a
 
 OBJS	:= sx1.o
-SOBJS	:= platform.o
+SOBJS	:= lowlevel_init.o
 
 $(LIB):	$(OBJS) $(SOBJS)
 	$(AR) crv $@ $^

+ 2 - 2
board/sx1/platform.S → board/sx1/lowlevel_init.S

@@ -39,8 +39,8 @@
 _TEXT_BASE:
 	.word	TEXT_BASE	 /* sdram load addr from config.mk */
 
-.globl platformsetup
-platformsetup:
+.globl lowlevel_init
+lowlevel_init:
 
 	/*
 	 * Configure 1510 pins functions to match our board.

+ 1 - 1
board/versatile/Makefile

@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
 LIB	= lib$(BOARD).a
 
 OBJS	:= versatile.o flash.o
-SOBJS	:= platform.o
+SOBJS	:= lowlevel_init.o
 
 $(LIB):	$(OBJS) $(SOBJS)
 	$(AR) crv $@ $^

+ 3 - 2
board/versatile/platform.S → board/versatile/lowlevel_init.S

@@ -26,8 +26,9 @@
 #include <config.h>
 #include <version.h>
 
-.globl platformsetup
-platformsetup:
+/* Set up the platform, once the cpu has been initialized */
+.globl lowlevel_init
+lowlevel_init:
 
 	/* All done by Versatile's boot monitor! */
 	mov pc, lr

+ 45 - 0
board/versatile/split_by_variant.sh

@@ -0,0 +1,45 @@
+#!/bin/sh
+# ---------------------------------------------------------
+#  Set the core module defines according to Core Module
+# ---------------------------------------------------------
+CC=$(CROSS_COMPILE)gcc
+config="versatilepb_config"
+
+if [ "$2" == "" ]
+then
+	echo "$0:: No preprocessor parameter - using $(CROSS_COMPILE)gcc"
+else
+	CC=$2
+fi
+
+
+# ---------------------------------------------------------
+# Set up the Versatile type define
+# ---------------------------------------------------------
+if [ "$1" == "" ]
+then
+	echo "$0:: No parameters - using $(CROSS_COMPILE)gcc versatilepb_config"
+
+else
+	case "$config" in
+	versatilepb_config	|	\
+	versatile_config)
+	echo "#define CONFIG_ARCH_VERSATILE_PB" > ./include/config.h
+	;;
+
+	versatileab_config)
+	echo "#define CONFIG_ARCH_VERSATILE_AB" > ./include/config.h
+	;;
+
+
+	*)
+	echo "$0:: Unrecognised config - using versatilepb_config"
+	;;
+
+	esac
+
+fi
+# ---------------------------------------------------------
+# Complete the configuration
+# ---------------------------------------------------------
+./mkconfig -a versatile arm arm926ejs versatile

+ 2 - 2
board/voiceblue/setup.S

@@ -122,8 +122,8 @@ MUX_CONFIG_OFFSETS:
 	.byte 0x0c		@ COMP_MODE_CTRL_0
 	.byte 0xff
 
-.globl platformsetup
-platformsetup:
+.globl lowlevel_init
+lowlevel_init:
 	/* Improve performance a bit... */
 	mrc	p15, 0, r1, c0, c0, 0		@ read C15 ID register
 	mrc	p15, 0, r1, c0, c0, 1		@ read C15 Cache information register

+ 9 - 3
cpu/arm1136/interrupts.c

@@ -32,7 +32,11 @@
 
 #include <common.h>
 #include <asm/arch/bits.h>
-#include <asm/arch/omap2420.h>
+
+#if !defined(CONFIG_INTEGRATOR) || ! defined(CONFIG_ARCH_CINTEGRATOR)
+# include <asm/arch/omap2420.h>
+#endif
+
 #include <asm/proc-armv/ptrace.h>
 
 #define TIMER_LOAD_VAL 0
@@ -175,6 +179,9 @@ void do_irq (struct pt_regs *pt_regs)
 static ulong timestamp;
 static ulong lastinc;
 
+#if defined(CONFIG_INTEGRATOR) && defined(CONFIG_ARCH_CINTEGRATOR)
+/* Use the IntegratorCP function from board/integratorcp.c */
+#else
 /* nothing really to do with interrupts, just starts up a counter. */
 int interrupt_init (void)
 {
@@ -189,7 +196,6 @@ int interrupt_init (void)
 
 	return(0);
 }
-
 /*
  * timer without interrupts
  */
@@ -281,7 +287,6 @@ unsigned long long get_ticks(void)
 {
 	return get_timer(0);
 }
-
 /*
  * This function is derived from PowerPC code (timebase clock frequency).
  * On ARM it returns the number of timer ticks per second.
@@ -292,3 +297,4 @@ ulong get_tbclk (void)
 	tbclk = CFG_HZ;
 	return tbclk;
 }
+#endif /* !Integrator/CP */

+ 7 - 1
cpu/arm1136/start.S

@@ -210,7 +210,7 @@ cpu_init_crit:
 	 * basic memory.  Go here to bump up clock rate and handle wake up conditions.
 	 */
 	mov	ip, lr		/* persevere link reg across call */
-	bl	platformsetup	/* go setup pll,mux,memory */
+	bl	lowlevel_init	/* go setup pll,mux,memory */
 	mov	lr, ip		/* restore link */
 	mov	pc, lr		/* back to my caller */
 /*
@@ -397,6 +397,10 @@ arm1136_cache_flush:
 		mcr	p15, 0, r1, c7, c5, 0	@ invalidate I cache
 		mov	pc, lr			@ back to caller
 
+#if defined(CONFIG_INTEGRATOR) && defined(CONFIG_ARCH_CINTEGRATOR)
+/* Use the IntegratorCP function from board/integratorcp/platform.S */
+#else
+
 	.align	5
 .globl reset_cpu
 reset_cpu:
@@ -408,3 +412,5 @@ _loop_forever:
 	b	_loop_forever
 rstctl:
 	.word	PM_RSTCTRL_WKUP
+
+#endif

+ 7 - 0
cpu/arm720t/cpu.c

@@ -76,6 +76,8 @@ int cleanup_before_linux (void)
 #elif defined(CONFIG_NETARM) || defined(CONFIG_S3C4510B)
 	disable_interrupts ();
 	/* Nothing more needed */
+#elif defined(CONFIG_INTEGRATOR) && defined(CONFIG_ARCH_INTEGRATOR)
+	/* No cleanup before linux for IntegratorAP/CM720T as yet */
 #else
 #error No cleanup_before_linux() defined for this CPU type
 #endif
@@ -245,6 +247,11 @@ int dcache_status (void)
 	return icache_status();
 }
 
+#elif defined(CONFIG_INTEGRATOR) && defined(CONFIG_ARCH_INTEGRATOR)
+	/* No specific cache setup for IntegratorAP/CM720T as yet */
+	void icache_enable (void)
+	{
+	}
 #else
 #error No icache/dcache enable/disable functions defined for this CPU type
 #endif

+ 10 - 0
cpu/arm720t/interrupts.c

@@ -193,6 +193,8 @@ void do_irq (struct pt_regs *pt_regs)
 		/* clear pending interrupt */
 		PUT_REG( REG_INTPEND, (1<<(pending>>2)));
 	}
+#elif defined(CONFIG_INTEGRATOR) && defined(CONFIG_ARCH_INTEGRATOR)
+	/* No do_irq() for IntegratorAP/CM720T as yet */
 #else
 #error do_irq() not defined for this CPU type
 #endif
@@ -219,6 +221,10 @@ static void timer_isr( void *data) {
 static ulong timestamp;
 static ulong lastdec;
 
+#if defined(CONFIG_INTEGRATOR) && defined(CONFIG_ARCH_INTEGRATOR)
+	/* Use IntegratorAP routines in board/integratorap.c */
+#else
+
 int interrupt_init (void)
 {
 
@@ -296,6 +302,8 @@ int interrupt_init (void)
 	return (0);
 }
 
+#endif /* ! IntegratorAP */
+
 /*
  * timer without interrupts
  */
@@ -398,6 +406,8 @@ void udelay (unsigned long usec)
 
 }
 
+#elif defined(CONFIG_INTEGRATOR) && defined(CONFIG_ARCH_INTEGRATOR)
+	/* No timer routines for IntegratorAP/CM720T as yet */
 #else
 #error Timer routines not defined for this CPU type
 #endif

+ 5 - 1
cpu/arm720t/start.S

@@ -301,6 +301,8 @@ cpu_init_crit:
 	ldr r1, =0x83ffffa0	/* cache-disabled  */
 	str r1, [r0]
 
+#elif defined(CONFIG_INTEGRATOR) && defined(CONFIG_ARCH_INTEGRATOR)
+	/* No specific initialisation for IntegratorAP/CM720T as yet */
 #else
 #error No cpu_init_crit() defined for current CPU type
 #endif
@@ -316,12 +318,12 @@ cpu_init_crit:
 	str	r1, [r0]
 #endif
 
+	mov	ip, lr
 	/*
 	 * before relocating, we have to setup RAM timing
 	 * because memory timing is board-dependent, you will
 	 * find a lowlevel_init.S in your board directory.
 	 */
-	mov	ip, lr
 	bl	lowlevel_init
 	mov	lr, ip
 
@@ -530,6 +532,8 @@ reset_cpu:
 #elif defined(CONFIG_S3C4510B)
 /* Nothing done here as reseting the CPU is board specific, depending
  * on external peripherals such as watchdog timers, etc. */
+#elif defined(CONFIG_INTEGRATOR) && defined(CONFIG_ARCH_INTEGRATOR)
+	/* No specific reset actions for IntegratorAP/CM720T as yet */
 #else
 #error No reset_cpu() defined for current CPU type
 #endif

+ 0 - 2
cpu/arm920t/start.S

@@ -255,7 +255,6 @@ cpu_init_crit:
 	orr	r0, r0, #0x00001000	@ set bit 12 (I) I-Cache
 	mcr	p15, 0, r0, c1, c0, 0
 
-
 	/*
 	 * before relocating, we have to setup RAM timing
 	 * because memory timing is board-dependend, you will
@@ -264,7 +263,6 @@ cpu_init_crit:
 	mov	ip, lr
 	bl	lowlevel_init
 	mov	lr, ip
-
 	mov	pc, lr
 
 

+ 1 - 1
cpu/arm925t/start.S

@@ -246,7 +246,7 @@ cpu_init_crit:
 	 * Go setup Memory and board specific bits prior to relocation.
 	 */
 	mov	ip, lr          /* perserve link reg across call */
-	bl	platformsetup   /* go setup pll,mux,memory */
+	bl	lowlevel_init   /* go setup pll,mux,memory */
 	mov	lr, ip          /* restore link */
 	mov	pc, lr          /* back to my caller */
 /*

+ 1 - 1
cpu/arm926ejs/start.S

@@ -222,7 +222,7 @@ cpu_init_crit:
 	 * Go setup Memory and board specific bits prior to relocation.
 	 */
 	mov	ip, lr		/* perserve link reg across call */
-	bl	platformsetup	/* go setup pll,mux,memory */
+	bl	lowlevel_init	/* go setup pll,mux,memory */
 	mov	lr, ip		/* restore link */
 	mov	pc, lr		/* back to my caller */
 /*

+ 1 - 1
cpu/arm946es/start.S

@@ -214,7 +214,7 @@ cpu_init_crit:
 	 * Go setup Memory and board specific bits prior to relocation.
 	 */
 	mov	ip, lr		/* perserve link reg across call */
-	bl	platformsetup	/* go setup memory */
+	bl	lowlevel_init	/* go setup memory */
 	mov	lr, ip		/* restore link */
 	mov	pc, lr		/* back to my caller */
 /*

+ 46 - 0
doc/README-integrator

@@ -62,3 +62,49 @@ of the Integrator board itself, has been placed in
 
 	board/integrator<>/platform.S
 	board/integrator<>/integrator<>.c
+
+Targets
+=======
+The U-Boot make targets map to the available core modules as below.
+
+Integrator/AP is no longer available from ARM.
+Core modules marked ** are also no longer available.
+
+ap720t_config		** CM720T
+ap920t_config		** CM920T
+ap926ejs_config	Integrator Core Module for ARM926EJ-STM
+ap946es_config		Integrator Core Module for ARM946E-STM
+cp920t_config		** CM920T
+cp926ejs_config	Integrator Core Module for ARM926EJ-STM
+cp946es_config		Integrator Core Module for ARM946E-STM
+cp1136_config		Integrator Core Module ARM1136JF-S  TM
+
+The final groups of targets are for core modules where no explicit cpu
+code has yet been added to U-Boot i.e. they all use the same U-Boot binary
+using the generic "arm_intcm" core:
+
+ap966_config			Integrator Core Module for ARM966E-S TM
+ap922_config			Integrator Core Module for ARM922T TM with ETM
+ap922_XA10_config		Integrator Core Module for ARM922T using Altera Excalibur
+ap7_config	       		** CM7TDMI
+integratorap_config
+ap_config
+
+
+cp966_config  			Integrator Core Module for ARM966E-S TM
+cp922_config			Integrator Core Module for ARM922T TM with ETM
+cp922_XA10_config		Integrator Core Module for ARM922T using Altera Excalibur
+cp1026_config			Integrator Core Module ARM1026EJ-S TM
+integratorcp_config
+cp_config
+
+The Makefile targets call board/integrator<>/split_by_variant.sh
+to configure various defines in include/configs/integrator<>.h
+to indicate the core module & core configuration and ensure that
+board/integrator<>/u-boot.lds loads the cpu object first in the U-Boot image.
+
+*********************************
+Because of this mechanism
+> make clean
+must be run before each change in configuration
+*********************************

+ 2 - 0
include/asm-arm/arch-arm720t/hardware.h

@@ -34,6 +34,8 @@
 /* include EP7312 specific hardware file if there was one */
 #elif defined(CONFIG_ARMADILLO)
 /* include armadillo specific hardware file if there was one */
+#elif defined(CONFIG_INTEGRATOR) && defined(CONFIG_ARCH_INTEGRATOR)
+/* include IntegratorCP/CM720T specific hardware file if there was one */
 #else
 #error No hardware file defined for this configuration
 #endif