diff options
| author | Wolfgang Denk <wd@pollux.denx.de> | 2005-10-06 17:08:18 +0200 | 
|---|---|---|
| committer | Wolfgang Denk <wd@pollux.denx.de> | 2005-10-06 17:08:18 +0200 | 
| commit | 87cb6862b94e342d6c99467e0dbb0d4f625cc7ef (patch) | |
| tree | 82c6530f0de6cc1e224cdc17458ab6a503cf072f | |
| parent | bccae9039e59ac09a776429119389a6a4e679fd7 (diff) | |
| download | olio-uboot-2014.01-87cb6862b94e342d6c99467e0dbb0d4f625cc7ef.tar.xz olio-uboot-2014.01-87cb6862b94e342d6c99467e0dbb0d4f625cc7ef.zip | |
Update make target for ARM supported boards.
Use lowlevel_init() instead of platformsetup() [rename].
Patch by Peter Pearse, 06 Oct 2005
42 files changed, 444 insertions, 243 deletions
| @@ -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 diff --git a/MAINTAINERS b/MAINTAINERS index d251cd8e5..a9d433d8b 100644 --- a/MAINTAINERS +++ b/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> @@ -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					\  "  ######################################################################### @@ -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; +######################################################################## +## 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_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,$@); +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 \ diff --git a/board/integratorap/Makefile b/board/integratorap/Makefile index cf76dedb2..358df6251 100644 --- a/board/integratorap/Makefile +++ b/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 $@ $^ diff --git a/board/integratorap/integratorap.c b/board/integratorap/integratorap.c index 4baf39a67..d4f61d640 100644 --- a/board/integratorap/integratorap.c +++ b/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 - */ diff --git a/board/integratorap/platform.S b/board/integratorap/lowlevel_init.S index b208adb37..1aacbf4a7 100644 --- a/board/integratorap/platform.S +++ b/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 diff --git a/board/integratorap/split_by_variant.sh b/board/integratorap/split_by_variant.sh new file mode 100644 index 000000000..23fc7b324 --- /dev/null +++ b/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; diff --git a/board/integratorap/u-boot.lds b/board/integratorap/u-boot.lds.S index cb6ee188b..486b5da27 100644 --- a/board/integratorap/u-boot.lds +++ b/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) } diff --git a/board/integratorcp/Makefile b/board/integratorcp/Makefile index 71532d113..3d589fcd5 100644 --- a/board/integratorcp/Makefile +++ b/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 $@ $^ diff --git a/board/integratorcp/platform.S b/board/integratorcp/lowlevel_init.S index 612a2c458..e679215f3 100644 --- a/board/integratorcp/platform.S +++ b/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 diff --git a/board/integratorcp/split_by_variant.sh b/board/integratorcp/split_by_variant.sh new file mode 100644 index 000000000..3f6363314 --- /dev/null +++ b/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; diff --git a/board/integratorcp/u-boot.lds b/board/integratorcp/u-boot.lds.S index cb6ee188b..486b5da27 100644 --- a/board/integratorcp/u-boot.lds +++ b/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) } diff --git a/board/ns9750dev/Makefile b/board/ns9750dev/Makefile index d2718cc68..fb4333c19 100644 --- a/board/ns9750dev/Makefile +++ b/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) diff --git a/board/ns9750dev/platform.S b/board/ns9750dev/lowlevel_init.S index afcad1540..3a0978663 100644 --- a/board/ns9750dev/platform.S +++ b/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 diff --git a/board/omap1510inn/Makefile b/board/omap1510inn/Makefile index bd6285cb2..902b24ea1 100644 --- a/board/omap1510inn/Makefile +++ b/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 $@ $^ diff --git a/board/omap1510inn/platform.S b/board/omap1510inn/lowlevel_init.S index 8045e84b2..1c68e5b81 100644 --- a/board/omap1510inn/platform.S +++ b/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. diff --git a/board/omap1610inn/Makefile b/board/omap1610inn/Makefile index 4a96b8334..456010232 100644 --- a/board/omap1610inn/Makefile +++ b/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 $@ $^ diff --git a/board/omap1610inn/platform.S b/board/omap1610inn/lowlevel_init.S index d694f94bb..eaf1742cc 100644 --- a/board/omap1610inn/platform.S +++ b/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:  	/*------------------------------------------------------* diff --git a/board/omap2420h4/Makefile b/board/omap2420h4/Makefile index 38dec00d3..ed4786879 100644 --- a/board/omap2420h4/Makefile +++ b/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 $@ $^ diff --git a/board/omap2420h4/platform.S b/board/omap2420h4/lowlevel_init.S index 73ba46285..9752fc488 100644 --- a/board/omap2420h4/platform.S +++ b/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 */ diff --git a/board/omap5912osk/Makefile b/board/omap5912osk/Makefile index 64804663a..4b564217b 100644 --- a/board/omap5912osk/Makefile +++ b/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 $@ $^ diff --git a/board/omap5912osk/platform.S b/board/omap5912osk/lowlevel_init.S index 33c72423a..3b9633ad9 100644 --- a/board/omap5912osk/platform.S +++ b/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:  	/*------------------------------------------------------* diff --git a/board/omap730p2/Makefile b/board/omap730p2/Makefile index 105850807..29467ac39 100644 --- a/board/omap730p2/Makefile +++ b/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 $@ $^ diff --git a/board/omap730p2/platform.S b/board/omap730p2/lowlevel_init.S index f30c2424f..6c6f48240 100644 --- a/board/omap730p2/platform.S +++ b/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 diff --git a/board/sx1/Makefile b/board/sx1/Makefile index 8cd02d141..8fbdf2a5e 100644 --- a/board/sx1/Makefile +++ b/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 $@ $^ diff --git a/board/sx1/platform.S b/board/sx1/lowlevel_init.S index bd54df18c..bdf812e05 100644 --- a/board/sx1/platform.S +++ b/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. diff --git a/board/versatile/Makefile b/board/versatile/Makefile index 42b6ed5b5..fbdc627e3 100644 --- a/board/versatile/Makefile +++ b/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 $@ $^ diff --git a/board/versatile/platform.S b/board/versatile/lowlevel_init.S index 68c3e8b18..bdfce2d3c 100644 --- a/board/versatile/platform.S +++ b/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 diff --git a/board/versatile/split_by_variant.sh b/board/versatile/split_by_variant.sh new file mode 100644 index 000000000..b462b7e1f --- /dev/null +++ b/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 diff --git a/board/voiceblue/setup.S b/board/voiceblue/setup.S index 4a110e846..dcf37b5dc 100644 --- a/board/voiceblue/setup.S +++ b/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 diff --git a/cpu/arm1136/interrupts.c b/cpu/arm1136/interrupts.c index 23236dcb0..6b1449e97 100644 --- a/cpu/arm1136/interrupts.c +++ b/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 */ diff --git a/cpu/arm1136/start.S b/cpu/arm1136/start.S index c3bf6e37e..05c9128d8 100644 --- a/cpu/arm1136/start.S +++ b/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 diff --git a/cpu/arm720t/cpu.c b/cpu/arm720t/cpu.c index fcca36073..a5b6de760 100644 --- a/cpu/arm720t/cpu.c +++ b/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 diff --git a/cpu/arm720t/interrupts.c b/cpu/arm720t/interrupts.c index d0eaca5e0..575d923a3 100644 --- a/cpu/arm720t/interrupts.c +++ b/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 diff --git a/cpu/arm720t/start.S b/cpu/arm720t/start.S index eb26476a6..43582b328 100644 --- a/cpu/arm720t/start.S +++ b/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 diff --git a/cpu/arm920t/start.S b/cpu/arm920t/start.S index 74a97d529..4603cf573 100644 --- a/cpu/arm920t/start.S +++ b/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 diff --git a/cpu/arm925t/start.S b/cpu/arm925t/start.S index 238925936..acd77426d 100644 --- a/cpu/arm925t/start.S +++ b/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 */  /* diff --git a/cpu/arm926ejs/start.S b/cpu/arm926ejs/start.S index 5f5a1c596..fc6b20b21 100644 --- a/cpu/arm926ejs/start.S +++ b/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 */  /* diff --git a/cpu/arm946es/start.S b/cpu/arm946es/start.S index ef3be8ec9..e8c908bf2 100644 --- a/cpu/arm946es/start.S +++ b/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 */  /* diff --git a/doc/README-integrator b/doc/README-integrator index 827221f1e..ce8a9d26a 100644 --- a/doc/README-integrator +++ b/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 +********************************* diff --git a/include/asm-arm/arch-arm720t/hardware.h b/include/asm-arm/arch-arm720t/hardware.h index 9404acd45..3056ca7f6 100644 --- a/include/asm-arm/arch-arm720t/hardware.h +++ b/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 |