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 The patch is made against u-boot commit e95bcc3661a78ccc094c365ecd2484d00a60f97d: Wolfgang Denk (1): Merge branch 'master' of git +ssh://10.10.0.7/home/wd/git/u-boot/master --- Move ARM supplied dev boards to new board/armltd directory Signed-off-by Peter Pearse <[EMAIL PROTECTED]> --- diff --git a/Makefile b/Makefile old mode 100644 new mode 100755 index 4fde699..2e4af6b --- a/Makefile +++ b/Makefile @@ -2330,7 +2330,7 @@ ap720t_config \ ap920t_config \ ap926ejs_config \ ap946es_config: unconfig - @board/integratorap/split_by_variant.sh $@ + @board/armltd/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/armltd/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/armltd/versatile/split_by_variant.sh $@ voiceblue_config: unconfig @$(MKCONFIG) $(@:_config=) arm arm925t voiceblue diff --git a/cpu/arm926ejs/versatile/reset.S b/board/armltd/asm.S old mode 100644 new mode 100755 similarity index 57% rename from cpu/arm926ejs/versatile/reset.S rename to board/armltd/asm.S index e898902..db7e23f --- a/cpu/arm926ejs/versatile/reset.S +++ b/board/armltd/asm.S @@ -1,15 +1,7 @@ /* - * armboot - Startup Code for ARM926EJS CPU-core + * armltd.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 <[EMAIL PROTECTED]> - * Copyright (c) 2002 Alex Züpke <[EMAIL PROTECTED]> - * Copyright (c) 2002 Gary Jennejohn <[EMAIL PROTECTED]> - * Copyright (c) 2003 Richard Woodruff <[EMAIL PROTECTED]> - * Copyright (c) 2003 Kshitij <[EMAIL PROTECTED]> + * 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 mocules 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/armltd/integratorap/Makefile similarity index 100% rename from board/integratorap/Makefile rename to board/armltd/integratorap/Makefile diff --git a/board/integratorap/config.mk b/board/armltd/integratorap/config.mk similarity index 100% rename from board/integratorap/config.mk rename to board/armltd/integratorap/config.mk diff --git a/board/integratorap/flash.c b/board/armltd/integratorap/flash.c similarity index 100% rename from board/integratorap/flash.c rename to board/armltd/integratorap/flash.c diff --git a/board/integratorap/integratorap.c b/board/armltd/integratorap/integratorap.c similarity index 100% rename from board/integratorap/integratorap.c rename to board/armltd/integratorap/integratorap.c diff --git a/board/integratorap/lowlevel_init.S b/board/armltd/integratorap/lowlevel_init.S similarity index 100% rename from board/integratorap/lowlevel_init.S rename to board/armltd/integratorap/lowlevel_init.S diff --git a/board/integratorap/memsetup.S b/board/armltd/integratorap/memsetup.S similarity index 100% rename from board/integratorap/memsetup.S rename to board/armltd/integratorap/memsetup.S diff --git a/board/integratorap/split_by_variant.sh b/board/armltd/integratorap/split_by_variant.sh similarity index 80% rename from board/integratorap/split_by_variant.sh rename to board/armltd/integratorap/split_by_variant.sh index 4b94d8f..e02f7fc 100755 --- a/board/integratorap/split_by_variant.sh +++ b/board/armltd/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/armltd/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/armltd/integratorap/u-boot.lds.template > \ +${obj}board/armltd/integratorap/u-boot.lds # --------------------------------------------------------- # Complete the configuration # --------------------------------------------------------- -$MKCONFIG -a integratorap arm $cpu integratorap; +$MKCONFIG -a integratorap arm $cpu integratorap armltd NULL; echo "Variant:: $variant with core $cpu" - diff --git a/board/integratorap/u-boot.lds.template b/board/armltd/integratorap/u-boot.lds.template similarity index 100% rename from board/integratorap/u-boot.lds.template rename to board/armltd/integratorap/u-boot.lds.template diff --git a/board/integratorcp/Makefile b/board/armltd/integratorcp/Makefile similarity index 100% rename from board/integratorcp/Makefile rename to board/armltd/integratorcp/Makefile diff --git a/board/integratorcp/config.mk b/board/armltd/integratorcp/config.mk similarity index 100% rename from board/integratorcp/config.mk rename to board/armltd/integratorcp/config.mk diff --git a/board/integratorcp/flash.c b/board/armltd/integratorcp/flash.c similarity index 100% rename from board/integratorcp/flash.c rename to board/armltd/integratorcp/flash.c diff --git a/board/integratorcp/integratorcp.c b/board/armltd/integratorcp/integratorcp.c similarity index 100% rename from board/integratorcp/integratorcp.c rename to board/armltd/integratorcp/integratorcp.c diff --git a/board/integratorcp/lowlevel_init.S b/board/armltd/integratorcp/lowlevel_init.S similarity index 100% rename from board/integratorcp/lowlevel_init.S rename to board/armltd/integratorcp/lowlevel_init.S diff --git a/board/integratorcp/memsetup.S b/board/armltd/integratorcp/memsetup.S similarity index 100% rename from board/integratorcp/memsetup.S rename to board/armltd/integratorcp/memsetup.S diff --git a/board/integratorcp/split_by_variant.sh b/board/armltd/integratorcp/split_by_variant.sh similarity index 82% rename from board/integratorcp/split_by_variant.sh rename to board/armltd/integratorcp/split_by_variant.sh index 79a6a9d..4eb3bf0 100755 --- a/board/integratorcp/split_by_variant.sh +++ b/board/armltd/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/armltd/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/armltd/integratorcp/u-boot.lds.template > \ +${obj}board/armltd/integratorcp/u-boot.lds # --------------------------------------------------------- # Complete the configuration # --------------------------------------------------------- -$MKCONFIG -a integratorcp arm $cpu integratorcp; +$MKCONFIG -a integratorcp arm $cpu integratorcp armltd NULL; echo "Variant:: $variant with core $cpu" - diff --git a/board/integratorcp/u-boot.lds.template b/board/armltd/integratorcp/u-boot.lds.template similarity index 100% rename from board/integratorcp/u-boot.lds.template rename to board/armltd/integratorcp/u-boot.lds.template diff --git a/cpu/arm926ejs/versatile/timer.c b/board/armltd/src.c old mode 100644 new mode 100755 similarity index 57% rename from cpu/arm926ejs/versatile/timer.c rename to board/armltd/src.c index 32872d2..722d897 --- a/cpu/arm926ejs/versatile/timer.c +++ b/board/armltd/src.c @@ -1,20 +1,7 @@ /* - * (C) Copyright 2003 - * Texas Instruments <www.ti.com> + * armltd.c - c code common to development boards supplied by ARM Ltd. * - * (C) Copyright 2002 - * Sysgo Real-Time Solutions, GmbH <www.elinos.com> - * Marius Groeger <[EMAIL PROTECTED]> - * - * (C) Copyright 2002 - * Sysgo Real-Time Solutions, GmbH <www.elinos.com> - * Alex Zuepke <[EMAIL PROTECTED]> - * - * (C) Copyright 2002-2004 - * Gary Jennejohn, DENX Software Engineering, <[EMAIL PROTECTED]> - * - * (C) Copyright 2004 - * Philippe Robin, ARM Ltd. <[EMAIL PROTECTED]> + * 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/armltd/versatile/Makefile old mode 100644 new mode 100755 similarity index 95% rename from board/versatile/Makefile rename to board/armltd/versatile/Makefile index 1fad0a7..cb39c6e --- a/board/versatile/Makefile +++ b/board/armltd/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/armltd/versatile/config.mk similarity index 100% rename from board/versatile/config.mk rename to board/armltd/versatile/config.mk diff --git a/board/versatile/flash.c b/board/armltd/versatile/flash.c similarity index 100% rename from board/versatile/flash.c rename to board/armltd/versatile/flash.c diff --git a/board/versatile/lowlevel_init.S b/board/armltd/versatile/lowlevel_init.S similarity index 100% rename from board/versatile/lowlevel_init.S rename to board/armltd/versatile/lowlevel_init.S diff --git a/board/versatile/split_by_variant.sh b/board/armltd/versatile/split_by_variant.sh similarity index 94% rename from board/versatile/split_by_variant.sh rename to board/armltd/versatile/split_by_variant.sh index ccded7e..ab3c6ee 100755 --- a/board/versatile/split_by_variant.sh +++ b/board/armltd/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 armltd NULL echo "Variant:: $variant" diff --git a/board/versatile/u-boot.lds b/board/armltd/versatile/u-boot.lds similarity index 100% rename from board/versatile/u-boot.lds rename to board/armltd/versatile/u-boot.lds diff --git a/board/versatile/versatile.c b/board/armltd/versatile/versatile.c similarity index 100% rename from board/versatile/versatile.c rename to board/armltd/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, [EMAIL PROTECTED] -# -# 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 --- ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users