
Completely replaces the patch [PATCH][ARM] Move ARM supplied dev boards to new board/armltd directory submitted Tue, 18 Mar 2008.
This patch will allow code common to all ARM supplied development boards to be shared.
This patch is also available for test from git://linux-arm.org/u-boot-armdev.git as branch 080312_move
This patch is made against u-boot commit commit fdeb932b1c8a3b615463995c3452d30ee0b12a33 Merge: 3515fd1... 1f2a997... Author: Wolfgang Denk wd@denx.de Date: Tue Mar 18 22:15:58 2008 +0100
Merge branch 'master' of git://www.denx.de/git/u-boot-blackfin --- Move ARM supplied dev boards to new board/arm directory Signed-off-by Peter Pearse peter.pearse@arm.com --- diff --git a/Makefile b/Makefile old mode 100644 new mode 100755 index 4fde699..a7a6778 --- a/Makefile +++ b/Makefile @@ -2330,7 +2330,7 @@ ap720t_config \ ap920t_config \ ap926ejs_config \ ap946es_config: unconfig - @board/integratorap/split_by_variant.sh $@ + @board/arm/integratorap/split_by_variant.sh $@
integratorcp_config \ cp_config \ @@ -2342,7 +2342,7 @@ cp966_config \ cp922_config \ cp922_XA10_config \ cp1026_config: unconfig - @board/integratorcp/split_by_variant.sh $@ + @board/arm/integratorcp/split_by_variant.sh $@
kb9202_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t kb9202 NULL at91rm9200 @@ -2459,7 +2459,7 @@ VCMA9_config : unconfig versatile_config \ versatileab_config \ versatilepb_config : unconfig - @board/versatile/split_by_variant.sh $@ + @board/arm/versatile/split_by_variant.sh $@
voiceblue_config: unconfig @$(MKCONFIG) $(@:_config=) arm arm925t voiceblue diff --git a/cpu/arm926ejs/versatile/reset.S b/board/arm/asm.S old mode 100644 new mode 100755 similarity index 57% rename from cpu/arm926ejs/versatile/reset.S rename to board/arm/asm.S index e898902..aec0d7a --- a/cpu/arm926ejs/versatile/reset.S +++ b/board/arm/asm.S @@ -1,15 +1,7 @@ /* - * armboot - Startup Code for ARM926EJS CPU-core + * asm.S - Assembler code common to development boards supplied by ARM Ltd. * - * Copyright (c) 2003 Texas Instruments - * - * ----- Adapted for OMAP1610 OMAP730 from ARM925t code ------ - * - * Copyright (c) 2001 Marius Gröger mag@sysgo.de - * Copyright (c) 2002 Alex Züpke azu@sysgo.de - * Copyright (c) 2002 Gary Jennejohn gj@denx.de - * Copyright (c) 2003 Richard Woodruff r-woodruff2@ti.com - * Copyright (c) 2003 Kshitij kshitij@ti.com + * Copyright (c) 2008 ARM Ltd. * * See file CREDITS for list of people who contributed to this * project. @@ -30,16 +22,15 @@ * MA 02111-1307 USA */
+/* + * Whilst some cores and/or core modules may provide explicit + * software reset, these are not used because they may have unwanted + * side effects. For U-Boot's purposes calling the reset vector suffices. + * If necessary, we could set some registers, update the MMU, etc. + */ + .align 5 .globl reset_cpu reset_cpu: - ldr r1, rstctl1 /* get clkm1 reset ctl */ - mov r3, #0x0 - strh r3, [r1] /* clear it */ - mov r3, #0x8 - strh r3, [r1] /* force dsp+arm reset */ -_loop_forever: - b _loop_forever + b 0
-rstctl1: - .word 0xfffece10 diff --git a/board/integratorap/Makefile b/board/arm/integratorap/Makefile similarity index 100% rename from board/integratorap/Makefile rename to board/arm/integratorap/Makefile diff --git a/board/integratorap/config.mk b/board/arm/integratorap/config.mk similarity index 100% rename from board/integratorap/config.mk rename to board/arm/integratorap/config.mk diff --git a/board/integratorap/flash.c b/board/arm/integratorap/flash.c similarity index 100% rename from board/integratorap/flash.c rename to board/arm/integratorap/flash.c diff --git a/board/integratorap/integratorap.c b/board/arm/integratorap/integratorap.c similarity index 100% rename from board/integratorap/integratorap.c rename to board/arm/integratorap/integratorap.c diff --git a/board/integratorap/lowlevel_init.S b/board/arm/integratorap/lowlevel_init.S similarity index 100% rename from board/integratorap/lowlevel_init.S rename to board/arm/integratorap/lowlevel_init.S diff --git a/board/integratorap/memsetup.S b/board/arm/integratorap/memsetup.S similarity index 100% rename from board/integratorap/memsetup.S rename to board/arm/integratorap/memsetup.S diff --git a/board/integratorap/split_by_variant.sh b/board/arm/integratorap/split_by_variant.sh similarity index 80% rename from board/integratorap/split_by_variant.sh rename to board/arm/integratorap/split_by_variant.sh index 4b94d8f..25f4fd2 100755 --- a/board/integratorap/split_by_variant.sh +++ b/board/arm/integratorap/split_by_variant.sh @@ -12,32 +12,32 @@ echo " 1 /* Integrator/AP */" >> tmp.fil # Set the core module defines according to Core Module # --------------------------------------------------------- cpu="arm_intcm" -variant="unknown core module" +variant="generic core module"
if [ "$1" = "" ] then - echo "$0:: No parameters - using arm_intcm" + echo "$0:: No parameters - using core arm_unknown" else case "$1" in ap7_config) - cpu="arm_intcm" + cpu="arm_unknown" variant="unported core module CM7TDMI" ;;
ap966) - cpu="arm_intcm" + cpu="arm_unknown" variant="unported core module CM966E-S" ;;
ap922_config) - cpu="arm_intcm" + cpu="arm_unknown" variant="unported core module CM922T" ;;
integratorap_config | \ ap_config) - cpu="arm_intcm" - variant="unspecified core module" + cpu="arm_unknown" + variant="generic core module" ;;
ap720t_config) @@ -48,7 +48,7 @@ else ;;
ap922_XA10_config) - cpu="arm_intcm" + cpu="arm_unknown" variant="unported core module CM922T_XA10" echo -n "#define CONFIG_CM922T_XA10" >> tmp.fil echo " 1 /* CPU core is ARM922T_XA10 */" >> tmp.fil @@ -76,18 +76,18 @@ else ;;
*) - echo "$0:: Unknown core module" - variant="unknown core module" - cpu="arm_intcm" + echo "$0:: Unknown core, generic core module" + variant="generic core module" + cpu="arm_unknown" ;;
esac fi
-if [ "$cpu" = "arm_intcm" ] +if [ "$cpu" = "arm_unknown" ] then - echo "/* Core module undefined/not ported */" >> tmp.fil - echo "#define CONFIG_ARM_INTCM 1" >> tmp.fil + echo "/* Core unknown/not ported */" >> tmp.fil + echo "#define CONFIG_arm_unknown 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 @@ -105,15 +105,16 @@ then fi
mkdir -p ${obj}include -mkdir -p ${obj}board/integratorap +mkdir -p ${obj}board/arm/integratorap mv tmp.fil ${obj}include/config.h # --------------------------------------------------------- # Ensure correct core object loaded first in U-Boot image # --------------------------------------------------------- -sed -r 's/CPU_FILE/cpu/'$cpu'/start.o/; s/#.*//' ${src}board/integratorap/u-boot.lds.template > ${obj}board/integratorap/u-boot.lds +sed -r 's/CPU_FILE/cpu/'$cpu'/start.o/; s/#.*//' \ +${src}board/arm/integratorap/u-boot.lds.template > \ +${obj}board/arm/integratorap/u-boot.lds # --------------------------------------------------------- # Complete the configuration # --------------------------------------------------------- -$MKCONFIG -a integratorap arm $cpu integratorap; +$MKCONFIG -a integratorap arm $cpu integratorap arm NULL; echo "Variant:: $variant with core $cpu" - diff --git a/board/integratorap/u-boot.lds.template b/board/arm/integratorap/u-boot.lds.template similarity index 100% rename from board/integratorap/u-boot.lds.template rename to board/arm/integratorap/u-boot.lds.template diff --git a/board/integratorcp/Makefile b/board/arm/integratorcp/Makefile similarity index 100% rename from board/integratorcp/Makefile rename to board/arm/integratorcp/Makefile diff --git a/board/integratorcp/config.mk b/board/arm/integratorcp/config.mk similarity index 100% rename from board/integratorcp/config.mk rename to board/arm/integratorcp/config.mk diff --git a/board/integratorcp/flash.c b/board/arm/integratorcp/flash.c similarity index 100% rename from board/integratorcp/flash.c rename to board/arm/integratorcp/flash.c diff --git a/board/integratorcp/integratorcp.c b/board/arm/integratorcp/integratorcp.c similarity index 100% rename from board/integratorcp/integratorcp.c rename to board/arm/integratorcp/integratorcp.c diff --git a/board/integratorcp/lowlevel_init.S b/board/arm/integratorcp/lowlevel_init.S similarity index 100% rename from board/integratorcp/lowlevel_init.S rename to board/arm/integratorcp/lowlevel_init.S diff --git a/board/integratorcp/memsetup.S b/board/arm/integratorcp/memsetup.S similarity index 100% rename from board/integratorcp/memsetup.S rename to board/arm/integratorcp/memsetup.S diff --git a/board/integratorcp/split_by_variant.sh b/board/arm/integratorcp/split_by_variant.sh similarity index 82% rename from board/integratorcp/split_by_variant.sh rename to board/arm/integratorcp/split_by_variant.sh index 79a6a9d..22d86a5 100755 --- a/board/integratorcp/split_by_variant.sh +++ b/board/arm/integratorcp/split_by_variant.sh @@ -9,32 +9,32 @@ echo " /* Integrator board */" >> tmp.fil echo -n "#define CONFIG_ARCH_CINTEGRATOR" >> tmp.fil echo " 1 /* Integrator/CP */" >> tmp.fil
-cpu="arm_intcm" -variant="unknown core module" +cpu="arm_unknown" +variant="generic core module"
if [ "$1" = "" ] then - echo "$0:: No parameters - using arm_intcm" + echo "$0:: No parameters - using arm_unknown" else case "$1" in ap966) - cpu="arm_intcm" + cpu="arm_unknown" variant="unported core module CM966E-S" ;;
ap922_config) - cpu="arm_intcm" + cpu="arm_unknown" variant="unported core module CM922T" ;;
integratorcp_config | \ cp_config) - cpu="arm_intcm" + cpu="arm_unknown" variant="unspecified core module" ;;
cp922_XA10_config) - cpu="arm_intcm" + cpu="arm_unknown" variant="unported core module CM922T_XA10" echo -n "#define CONFIG_CM922T_XA10" >> tmp.fil echo " 1 /* CPU core is ARM922T_XA10 */" >> tmp.fil @@ -54,7 +54,6 @@ else echo " 1 /* CPU core is ARM926EJ-S */ " >> tmp.fil ;;
- cp946es_config) cpu="arm946es" variant="Core module CM946E-S" @@ -70,19 +69,19 @@ else ;;
*) - echo "$0:: Unknown core module" - variant="unknown core module" - cpu="arm_intcm" + echo "$0:: Unknown core" + variant="generic core module" + cpu="arm_unknown" ;;
esac
fi
-if [ "$cpu" = "arm_intcm" ] +if [ "$cpu" = "arm_unknown" ] then echo "/* Core module undefined/not ported */" >> tmp.fil - echo "#define CONFIG_ARM_INTCM 1" >> tmp.fil + echo "#define CONFIG_arm_unknown 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 @@ -100,15 +99,16 @@ then fi
mkdir -p ${obj}include -mkdir -p ${obj}board/integratorcp +mkdir -p ${obj}board/arm/integratorcp mv tmp.fil ${obj}include/config.h # --------------------------------------------------------- # Ensure correct core object loaded first in U-Boot image # --------------------------------------------------------- -sed -r 's/CPU_FILE/cpu/'$cpu'/start.o/; s/#.*//' ${src}board/integratorcp/u-boot.lds.template > ${obj}board/integratorcp/u-boot.lds +sed -r 's/CPU_FILE/cpu/'$cpu'/start.o/; s/#.*//' \ +${src}board/arm/integratorcp/u-boot.lds.template > \ +${obj}board/arm/integratorcp/u-boot.lds # --------------------------------------------------------- # Complete the configuration # --------------------------------------------------------- -$MKCONFIG -a integratorcp arm $cpu integratorcp; +$MKCONFIG -a integratorcp arm $cpu integratorcp arm NULL; echo "Variant:: $variant with core $cpu" - diff --git a/board/integratorcp/u-boot.lds.template b/board/arm/integratorcp/u-boot.lds.template similarity index 100% rename from board/integratorcp/u-boot.lds.template rename to board/arm/integratorcp/u-boot.lds.template diff --git a/cpu/arm926ejs/versatile/timer.c b/board/arm/src.c old mode 100644 new mode 100755 similarity index 57% rename from cpu/arm926ejs/versatile/timer.c rename to board/arm/src.c index 32872d2..d69d84f --- a/cpu/arm926ejs/versatile/timer.c +++ b/board/arm/src.c @@ -1,20 +1,7 @@ /* - * (C) Copyright 2003 - * Texas Instruments <www.ti.com> + * src.c - c code common to development boards supplied by ARM Ltd. * - * (C) Copyright 2002 - * Sysgo Real-Time Solutions, GmbH <www.elinos.com> - * Marius Groeger mgroeger@sysgo.de - * - * (C) Copyright 2002 - * Sysgo Real-Time Solutions, GmbH <www.elinos.com> - * Alex Zuepke azu@sysgo.de - * - * (C) Copyright 2002-2004 - * Gary Jennejohn, DENX Software Engineering, gj@denx.de - * - * (C) Copyright 2004 - * Philippe Robin, ARM Ltd. philippe.robin@arm.com + * Copyright (c) 2008 ARM Ltd. * * See file CREDITS for list of people who contributed to this * project. @@ -26,7 +13,7 @@ * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License @@ -34,6 +21,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA */ +/* + * Timer routines applicable to all ARM supplied development boards + */
#include <common.h> #include <arm926ejs.h> @@ -47,10 +37,12 @@ static ulong timestamp; static ulong lastdec;
/* nothing really to do with interrupts, just starts up a counter. */ -int timer_init (void) +int timer_init(void) { - *(volatile ulong *)(CFG_TIMERBASE + 0) = CFG_TIMER_RELOAD; /* TimerLoad */ - *(volatile ulong *)(CFG_TIMERBASE + 4) = CFG_TIMER_RELOAD; /* TimerValue */ + /* TimerLoad */ + *(volatile ulong *)(CFG_TIMERBASE + 0) = CFG_TIMER_RELOAD; + /* TimerValue */ + *(volatile ulong *)(CFG_TIMERBASE + 4) = CFG_TIMER_RELOAD; *(volatile ulong *)(CFG_TIMERBASE + 8) = 0x8C;
/* init the timestamp and lastdec value */ @@ -63,40 +55,54 @@ int timer_init (void) * timer without interrupts */
-void reset_timer (void) +void reset_timer(void) { reset_timer_masked (); }
-ulong get_timer (ulong base) +ulong get_timer(ulong base) { - return get_timer_masked () - base; + return get_timer_masked() - base; }
-void set_timer (ulong t) +void set_timer(ulong t) { timestamp = t; }
/* delay x useconds AND perserve advance timstamp value */ -void udelay (unsigned long usec) +void udelay(unsigned long usec) { ulong tmo, tmp;
- if(usec >= 1000){ /* if "big" number, spread normalization to seconds */ - tmo = usec / 1000; /* start to normalize for usec to ticks per sec */ - tmo *= CFG_HZ; /* find number of "ticks" to wait to achieve target */ - tmo /= 1000; /* finish normalize. */ - }else{ /* else small number, don't kill it prior to HZ multiply */ + if (usec >= 1000) { + /* "big" number, + * spread normalization to seconds + * start to normalize for usec to ticks per sec + * find number of "ticks" to wait to achieve target + * finish normalize. + */ + tmo = usec / 1000; + tmo *= CFG_HZ; + tmo /= 1000; + } else { + /* small number, + * don't kill it prior to HZ multiply + */ tmo = usec * CFG_HZ; tmo /= (1000*1000); }
tmp = get_timer (0); /* get current timestamp */ - if( (tmo + tmp + 1) < tmp ) /* if setting this fordward will roll time stamp */ - reset_timer_masked (); /* reset "advancing" timestamp to 0, set lastdec value */ + if ((tmo + tmp + 1) < tmp) + /* if setting this forward will roll time stamp + * reset "advancing" timestamp to 0 + * set lastdec value + */ + reset_timer_masked (); else - tmo += tmp; /* else, set advancing stamp wake up time */ + /* else, set advancing stamp wake up time */ + tmo += tmp;
while (get_timer_masked () < tmo)/* loop till event */ /*NOP*/; @@ -113,14 +119,17 @@ ulong get_timer_masked (void) { ulong now = READ_TIMER; /* current tick value */
- if (lastdec >= now) { /* normal mode (non roll) */ - /* normal mode */ - timestamp += lastdec - now; /* move stamp fordward with absoulte diff ticks */ - } else { /* we have overflow of the count down timer */ + if (lastdec >= now) { + /* normal mode (non roll) */ + /* move stamp forward with absolute diff ticks */ + timestamp += lastdec - now; + } else { + /* we have overflow of the count down timer */ /* nts = ts + ld + (TLV - now) * ts=old stamp, ld=time that passed before passing through -1 * (TLV-now) amount of time after passing though -1 - * nts = new "advancing time stamp"...it could also roll and cause problems. + * nts = new "advancing time stamp" + * ...it could also roll and cause problems. */ timestamp += lastdec + TIMER_LOAD_VAL - now; } @@ -136,11 +145,18 @@ void udelay_masked (unsigned long usec) ulong endtime; signed long diff;
- if (usec >= 1000) { /* if "big" number, spread normalization to seconds */ - tmo = usec / 1000; /* start to normalize for usec to ticks per sec */ - tmo *= CFG_HZ; /* find number of "ticks" to wait to achieve target */ - tmo /= 1000; /* finish normalize. */ - } else { /* else small number, don't kill it prior to HZ multiply */ + if (usec >= 1000) { + /* if "big" number, spread normalization to seconds */ + /* start to normalize for usec to ticks per sec */ + tmo = usec / 1000; + /* find number of "ticks" to wait to achieve target */ + tmo *= CFG_HZ; + /* finish normalize. */ + tmo /= 1000; + } else { + /* else small number, + * don't kill it prior to HZ multiply + */ tmo = usec * CFG_HZ; tmo /= (1000*1000); } diff --git a/board/versatile/Makefile b/board/arm/versatile/Makefile old mode 100644 new mode 100755 similarity index 95% rename from board/versatile/Makefile rename to board/arm/versatile/Makefile index 1fad0a7..cb39c6e --- a/board/versatile/Makefile +++ b/board/arm/versatile/Makefile @@ -25,8 +25,8 @@ include $(TOPDIR)/config.mk
LIB = $(obj)lib$(BOARD).a
-COBJS := versatile.o flash.o -SOBJS := lowlevel_init.o +COBJS := versatile.o flash.o ../src.o +SOBJS := lowlevel_init.o ../asm.o
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) OBJS := $(addprefix $(obj),$(COBJS)) diff --git a/board/versatile/config.mk b/board/arm/versatile/config.mk similarity index 100% rename from board/versatile/config.mk rename to board/arm/versatile/config.mk diff --git a/board/versatile/flash.c b/board/arm/versatile/flash.c similarity index 100% rename from board/versatile/flash.c rename to board/arm/versatile/flash.c diff --git a/board/versatile/lowlevel_init.S b/board/arm/versatile/lowlevel_init.S similarity index 100% rename from board/versatile/lowlevel_init.S rename to board/arm/versatile/lowlevel_init.S diff --git a/board/versatile/split_by_variant.sh b/board/arm/versatile/split_by_variant.sh similarity index 94% rename from board/versatile/split_by_variant.sh rename to board/arm/versatile/split_by_variant.sh index ccded7e..1662946 100755 --- a/board/versatile/split_by_variant.sh +++ b/board/arm/versatile/split_by_variant.sh @@ -25,7 +25,6 @@ else variant=AB926EJ-S ;;
- *) echo "$0:: Unrecognised config - using versatilepb_config" echo "#define CONFIG_ARCH_VERSATILE_PB" > ${obj}include/config.h @@ -38,5 +37,5 @@ fi # --------------------------------------------------------- # Complete the configuration # --------------------------------------------------------- -$MKCONFIG -a versatile arm arm926ejs versatile NULL versatile +$MKCONFIG -a versatile arm arm926ejs versatile arm NULL echo "Variant:: $variant" diff --git a/board/versatile/u-boot.lds b/board/arm/versatile/u-boot.lds similarity index 100% rename from board/versatile/u-boot.lds rename to board/arm/versatile/u-boot.lds diff --git a/board/versatile/versatile.c b/board/arm/versatile/versatile.c similarity index 100% rename from board/versatile/versatile.c rename to board/arm/versatile/versatile.c diff --git a/cpu/arm926ejs/versatile/Makefile b/cpu/arm926ejs/versatile/Makefile deleted file mode 100644 index c335d5c..0000000 --- a/cpu/arm926ejs/versatile/Makefile +++ /dev/null @@ -1,47 +0,0 @@ -# -# (C) Copyright 2000-2006 -# Wolfgang Denk, DENX Software Engineering, wd@denx.de. -# -# See file CREDITS for list of people who contributed to this -# project. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, -# MA 02111-1307 USA -# - -include $(TOPDIR)/config.mk - -LIB = $(obj)lib$(SOC).a - -COBJS = timer.o -SOBJS = reset.o - -SRCS := $(START:.o=.S) $(SOBJS:.o=.S) $(COBJS:.o=.c) -OBJS := $(addprefix $(obj),$(COBJS) $(SOBJS)) -START := $(addprefix $(obj),$(START)) - -all: $(obj).depend $(LIB) - -$(LIB): $(OBJS) - $(AR) $(ARFLAGS) $@ $(OBJS) - -######################################################################### - -# defines $(obj).depend target -include $(SRCTREE)/rules.mk - -sinclude $(obj).depend - -######################################################################### diff --git a/cpu/arm_intcm/Makefile b/cpu/arm_unknown/Makefile similarity index 100% rename from cpu/arm_intcm/Makefile rename to cpu/arm_unknown/Makefile diff --git a/cpu/arm_intcm/config.mk b/cpu/arm_unknown/config.mk similarity index 100% rename from cpu/arm_intcm/config.mk rename to cpu/arm_unknown/config.mk diff --git a/cpu/arm_intcm/cpu.c b/cpu/arm_unknown/cpu.c similarity index 100% rename from cpu/arm_intcm/cpu.c rename to cpu/arm_unknown/cpu.c diff --git a/cpu/arm_intcm/start.S b/cpu/arm_unknown/start.S similarity index 100% rename from cpu/arm_intcm/start.S rename to cpu/arm_unknown/start.S ---