summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWolfgang Denk <wd@pollux.denx.de>2005-10-06 17:08:18 +0200
committerWolfgang Denk <wd@pollux.denx.de>2005-10-06 17:08:18 +0200
commit87cb6862b94e342d6c99467e0dbb0d4f625cc7ef (patch)
tree82c6530f0de6cc1e224cdc17458ab6a503cf072f
parentbccae9039e59ac09a776429119389a6a4e679fd7 (diff)
Update make target for ARM supported boards.
Use lowlevel_init() instead of platformsetup() [rename]. Patch by Peter Pearse, 06 Oct 2005
-rw-r--r--CHANGELOG4
-rw-r--r--MAINTAINERS12
-rwxr-xr-xMAKEALL26
-rw-r--r--Makefile209
-rw-r--r--board/integratorap/Makefile2
-rw-r--r--board/integratorap/integratorap.c5
-rw-r--r--board/integratorap/lowlevel_init.S (renamed from board/integratorap/platform.S)6
-rw-r--r--board/integratorap/split_by_variant.sh106
-rw-r--r--board/integratorap/u-boot.lds.S (renamed from board/integratorap/u-boot.lds)4
-rw-r--r--board/integratorcp/Makefile2
-rw-r--r--board/integratorcp/lowlevel_init.S (renamed from board/integratorcp/platform.S)6
-rw-r--r--board/integratorcp/split_by_variant.sh106
-rw-r--r--board/integratorcp/u-boot.lds.S (renamed from board/integratorcp/u-boot.lds)4
-rw-r--r--board/ns9750dev/Makefile2
-rw-r--r--board/ns9750dev/lowlevel_init.S (renamed from board/ns9750dev/platform.S)4
-rw-r--r--board/omap1510inn/Makefile2
-rw-r--r--board/omap1510inn/lowlevel_init.S (renamed from board/omap1510inn/platform.S)4
-rw-r--r--board/omap1610inn/Makefile2
-rw-r--r--board/omap1610inn/lowlevel_init.S (renamed from board/omap1610inn/platform.S)4
-rw-r--r--board/omap2420h4/Makefile2
-rw-r--r--board/omap2420h4/lowlevel_init.S (renamed from board/omap2420h4/platform.S)4
-rw-r--r--board/omap5912osk/Makefile2
-rw-r--r--board/omap5912osk/lowlevel_init.S (renamed from board/omap5912osk/platform.S)4
-rw-r--r--board/omap730p2/Makefile2
-rw-r--r--board/omap730p2/lowlevel_init.S (renamed from board/omap730p2/platform.S)4
-rw-r--r--board/sx1/Makefile2
-rw-r--r--board/sx1/lowlevel_init.S (renamed from board/sx1/platform.S)4
-rw-r--r--board/versatile/Makefile2
-rw-r--r--board/versatile/lowlevel_init.S (renamed from board/versatile/platform.S)5
-rw-r--r--board/versatile/split_by_variant.sh45
-rw-r--r--board/voiceblue/setup.S4
-rw-r--r--cpu/arm1136/interrupts.c12
-rw-r--r--cpu/arm1136/start.S8
-rw-r--r--cpu/arm720t/cpu.c7
-rw-r--r--cpu/arm720t/interrupts.c10
-rw-r--r--cpu/arm720t/start.S6
-rw-r--r--cpu/arm920t/start.S2
-rw-r--r--cpu/arm925t/start.S2
-rw-r--r--cpu/arm926ejs/start.S2
-rw-r--r--cpu/arm946es/start.S2
-rw-r--r--doc/README-integrator46
-rw-r--r--include/asm-arm/arch-arm720t/hardware.h2
42 files changed, 445 insertions, 244 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 802f5d30e6b..ce0a51f1e18 100644
--- a/CHANGELOG
+++ b/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
diff --git a/MAINTAINERS b/MAINTAINERS
index d251cd8e520..a9d433d8b8b 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>
diff --git a/MAKEALL b/MAKEALL
index 7235b70e80e..0472cfb1a49 100755
--- a/MAKEALL
+++ b/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 \
"
#########################################################################
diff --git a/Makefile b/Makefile
index c41e8f54df8..023bcb5d15f 100644
--- a/Makefile
+++ b/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 \
diff --git a/board/integratorap/Makefile b/board/integratorap/Makefile
index cf76dedb2da..358df62519a 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 4baf39a6778..d4f61d6403d 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 b208adb3713..1aacbf4a7a8 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 00000000000..23fc7b32441
--- /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 cb6ee188b19..486b5da27b2 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 71532d11367..3d589fcd5ad 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 612a2c4586a..e679215f3f2 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 00000000000..3f6363314af
--- /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 cb6ee188b19..486b5da27b2 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 d2718cc683a..fb4333c19c0 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 afcad154082..3a0978663a7 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 bd6285cb231..902b24ea1ac 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 8045e84b2dd..1c68e5b816e 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 4a96b8334be..4560102327e 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 d694f94bb9d..eaf1742cc73 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 38dec00d367..ed4786879a1 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 73ba4628575..9752fc488da 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 64804663a96..4b564217b74 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 33c72423ab0..3b9633ad988 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 10585080739..29467ac39e6 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 f30c2424ffb..6c6f48240a2 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 8cd02d1411b..8fbdf2a5e33 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 bd54df18c44..bdf812e05af 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 42b6ed5b5c9..fbdc627e386 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 68c3e8b1857..bdfce2d3c13 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 00000000000..b462b7e1f5f
--- /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 4a110e846dc..dcf37b5dce5 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 23236dcb0ff..6b1449e97a7 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 c3bf6e37e1c..05c9128d848 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 fcca360732b..a5b6de76055 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 d0eaca5e027..575d923a373 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 eb26476a666..43582b3284d 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 74a97d52903..4603cf57337 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 238925936ea..acd77426d30 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 5f5a1c59690..fc6b20b21e3 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 ef3be8ec935..e8c908bf281 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 827221f1ea0..ce8a9d26ad4 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 9404acd4553..3056ca7f673 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