diff options
16 files changed, 288 insertions, 821 deletions
| @@ -2809,7 +2809,7 @@ ap720t_config		\  ap920t_config		\  ap926ejs_config		\  ap946es_config: unconfig -	@board/armltd/integratorap/split_by_variant.sh $@ +	@board/armltd/integrator/split_by_variant.sh ap $@  integratorcp_config	\  cp_config		\ @@ -2821,7 +2821,7 @@ cp966_config		\  cp922_config		\  cp922_XA10_config	\  cp1026_config: unconfig -	@board/armltd/integratorcp/split_by_variant.sh $@ +	@board/armltd/integrator/split_by_variant.sh cp $@  davinci_dvevm_config :	unconfig  	@$(MKCONFIG) $(@:_config=) arm arm926ejs dvevm davinci davinci diff --git a/board/armltd/.gitignore b/board/armltd/.gitignore deleted file mode 100644 index a3df15663..000000000 --- a/board/armltd/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/integratorap/u-boot.lds -/integratorcp/u-boot.lds diff --git a/board/armltd/integratorap/Makefile b/board/armltd/integrator/Makefile index da82f5c0e..14d64b7e8 100644 --- a/board/armltd/integratorap/Makefile +++ b/board/armltd/integrator/Makefile @@ -31,7 +31,7 @@ LIB	= $(obj)lib$(BOARD).a  SOBJS-y	:= lowlevel_init.o -COBJS-y	:= integratorap.o +COBJS-y	:= integrator.o  COBJS-$(CONFIG_PCI) += pci.o  COBJS-y += timer.o diff --git a/board/armltd/integratorap/config.mk b/board/armltd/integrator/config.mk index 25b79b3e7..25b79b3e7 100644 --- a/board/armltd/integratorap/config.mk +++ b/board/armltd/integrator/config.mk diff --git a/board/armltd/integratorap/integratorap.c b/board/armltd/integrator/integrator.c index f58956e6f..a46deea44 100644 --- a/board/armltd/integratorap/integratorap.c +++ b/board/armltd/integrator/integrator.c @@ -34,7 +34,9 @@   */  #include <common.h> +#ifdef CONFIG_PCI  #include <netdev.h> +#endif  DECLARE_GLOBAL_DATA_PTR; @@ -56,7 +58,11 @@ void show_boot_progress(int progress)  int board_init (void)  {  	/* arch number of Integrator Board */ +#ifdef CONFIG_ARCH_CINTEGRATOR +	gd->bd->bi_arch_number = MACH_TYPE_CINTEGRATOR; +#else  	gd->bd->bi_arch_number = MACH_TYPE_INTEGRATOR; +#endif  	/* adress of boot parameters */  	gd->bd->bi_boot_params = 0x00000100; @@ -121,7 +127,9 @@ extern void dram_query(void);  	return 0;  } +#ifdef CONFIG_PCI  int board_eth_init(bd_t *bis)  {  	return pci_eth_init(bis);  } +#endif diff --git a/board/armltd/integratorap/lowlevel_init.S b/board/armltd/integrator/lowlevel_init.S index ab9589c95..ab9589c95 100644 --- a/board/armltd/integratorap/lowlevel_init.S +++ b/board/armltd/integrator/lowlevel_init.S diff --git a/board/armltd/integratorap/pci.c b/board/armltd/integrator/pci.c index 6ee2a8530..6ee2a8530 100644 --- a/board/armltd/integratorap/pci.c +++ b/board/armltd/integrator/pci.c diff --git a/board/armltd/integrator/split_by_variant.sh b/board/armltd/integrator/split_by_variant.sh new file mode 100755 index 000000000..d67bdc234 --- /dev/null +++ b/board/armltd/integrator/split_by_variant.sh @@ -0,0 +1,235 @@ +#!/bin/sh + +mkdir -p ${obj}include +mkdir -p ${obj}board/armltd/integrator + +config_file=${obj}include/config.h + +if [ "$1" = "ap" ] +then +# --------------------------------------------------------- +# Set the platform defines +# --------------------------------------------------------- +echo -n	"/* Integrator configuration implied "	 > ${config_file} +echo	" by Makefile target */"		>> ${config_file} +echo -n	"#define CONFIG_INTEGRATOR"		>> ${config_file} +echo	" /* Integrator board */"		>> ${config_file} +echo -n	"#define CONFIG_ARCH_INTEGRATOR"	>> ${config_file} +echo	" 1 /* Integrator/AP	 */"		>> ${config_file} +# --------------------------------------------------------- +#	Set the core module defines according to Core Module +# --------------------------------------------------------- +cpu="arm_intcm" +variant="unknown core module" + +if [ "$2" = "" ] +then +	echo "$0:: No parameters - using arm_intcm" +else +	case "$2" in +	ap7_config) +	cpu="arm_intcm" +	variant="unported core module CM7TDMI" +	;; + +	ap966) +	cpu="arm_intcm" +	variant="unported core module CM966E-S" +	;; + +	ap922_config) +	cpu="arm_intcm" +	variant="unported core module CM922T" +	;; + +	integratorap_config	|	\ +	ap_config) +	cpu="arm_intcm" +	variant="unspecified core module" +	;; + +	ap720t_config) +	cpu="arm720t" +	echo -n	"#define CONFIG_CM720T"			>> ${config_file} +	echo	" 1 /* CPU core is ARM720T */ "		>> ${config_file} +	variant="Core module CM720T" +	;; + +	ap922_XA10_config) +	cpu="arm_intcm" +	variant="unported core module CM922T_XA10" +	echo -n	"#define CONFIG_CM922T_XA10"		>> ${config_file} +	echo	" 1 /* CPU core is ARM922T_XA10 */"	>> ${config_file} +	;; + +	ap920t_config) +	cpu="arm920t" +	variant="Core module CM920T" +	echo -n	"#define CONFIG_CM920T"			>> ${config_file} +	echo	" 1 /* CPU core is ARM920T */"		>> ${config_file} +	;; + +	ap926ejs_config) +	cpu="arm926ejs" +	variant="Core module CM926EJ-S" +	echo -n	"#define CONFIG_CM926EJ_S"		>> ${config_file} +	echo	" 1 /* CPU core is ARM926EJ-S */ "	>> ${config_file} +	;; + +	ap946es_config) +	cpu="arm946es" +	variant="Core module CM946E-S" +	echo -n	"#define CONFIG_CM946E_S"		>> ${config_file} +	echo	" 1 /* CPU core is ARM946E-S */ "	>> ${config_file} +	;; + +	*) +	echo "$0:: Unknown core module" +	variant="unknown core module" +	cpu="arm_intcm" +	;; + +	esac +fi + +case "$cpu" in +	arm_intcm) +	echo "/* Core module undefined/not ported */"	>> ${config_file} +	echo "#define CONFIG_ARM_INTCM 1"		>> ${config_file} +	echo -n	"#undef CONFIG_CM_MULTIPLE_SSRAM"	>> ${config_file} +	echo -n	"	/* CM may not have "		>> ${config_file} +	echo	"multiple SSRAM mapping */"		>> ${config_file} +	echo -n	"#undef CONFIG_CM_SPD_DETECT "		>> ${config_file} +	echo -n	" /* CM may not support SPD "		>> ${config_file} +	echo	"query */"				>> ${config_file} +	echo -n	"#undef CONFIG_CM_REMAP	"		>> ${config_file} +	echo -n	" /* CM may not support "		>> ${config_file} +	echo	"remapping */"				>> ${config_file} +	echo -n	"#undef CONFIG_CM_INIT	"		>> ${config_file} +	echo -n	" /* CM may not have	"		>> ${config_file} +	echo	"initialization reg */"			>> ${config_file} +	echo -n	"#undef CONFIG_CM_TCRAM	"		>> ${config_file} +	echo	" /* CM may not have TCRAM */"		>> ${config_file} +	echo -n	" /* May not be processor "		>> ${config_file} +	echo	"without cache support */"		>> ${config_file} +	echo	"#define CONFIG_SYS_NO_ICACHE 1"	>> ${config_file} +	echo	"#define CONFIG_SYS_NO_DCACHE 1"	>> ${config_file} +	;; + +	arm720t) +	echo -n	" /* May not be processor "		>> ${config_file} +	echo	"without cache support */"		>> ${config_file} +	echo	"#define CONFIG_SYS_NO_ICACHE 1"	>> ${config_file} +	echo	"#define CONFIG_SYS_NO_DCACHE 1"	>> ${config_file} +	;; +esac + +else + +# --------------------------------------------------------- +# Set the platform defines +# --------------------------------------------------------- +echo -n "/* Integrator configuration implied "   > ${config_file} +echo    " by Makefile target */"		>> ${config_file} +echo -n "#define CONFIG_INTEGRATOR"		>> ${config_file} +echo	 " /* Integrator board */"		>> ${config_file} +echo -n "#define CONFIG_ARCH_CINTEGRATOR"	>> ${config_file} +echo     " 1 /* Integrator/CP   */"		>> ${config_file} + +cpu="arm_intcm" +variant="unknown core module" + +if [ "$2" = "" ] +then +	echo "$0:: No parameters - using arm_intcm" +else +	case "$2" in +	ap966) +	cpu="arm_intcm" +	variant="unported core module CM966E-S" +	;; + +	ap922_config) +	cpu="arm_intcm" +	variant="unported core module CM922T" +	;; + +	integratorcp_config	|	\ +	cp_config) +	cpu="arm_intcm" +	variant="unspecified core module" +	;; + +	cp922_XA10_config) +	cpu="arm_intcm" +	variant="unported core module CM922T_XA10" +	echo -n "#define CONFIG_CM922T_XA10"		>> ${config_file} +	echo    " 1 /* CPU core is ARM922T_XA10 */"	>> ${config_file} +	;; + +	cp920t_config) +	cpu="arm920t" +	variant="Core module CM920T" +	echo -n "#define CONFIG_CM920T"			>> ${config_file} +	echo    " 1 /* CPU core is ARM920T */"		>> ${config_file} +	;; + +	cp926ejs_config) +	cpu="arm926ejs" +	variant="Core module CM926EJ-S" +	echo -n "#define CONFIG_CM926EJ_S"		>> ${config_file} +	echo    " 1 /* CPU core is ARM926EJ-S */ "	>> ${config_file} +	;; + + +	cp946es_config) +	cpu="arm946es" +	variant="Core module CM946E-S" +	echo -n "#define CONFIG_CM946E_S"		>> ${config_file} +	echo    " 1 /* CPU core is ARM946E-S */ "	>> ${config_file} +	;; + +	cp1136_config) +	cpu="arm1136" +	variant="Core module CM1136EJF-S" +	echo -n "#define CONFIG_CM1136EJF_S"		>> ${config_file} +	echo    " 1 /* CPU core is ARM1136JF-S */ "	>> ${config_file} +	;; + +	*) +	echo "$0:: Unknown core module" +	variant="unknown core module" +	cpu="arm_intcm" +	;; + +	esac + +fi + +if [ "$cpu" = "arm_intcm" ] +then +	echo "/* Core module undefined/not ported */"	>> ${config_file} +	echo "#define CONFIG_ARM_INTCM 1"		>> ${config_file} +	echo -n "#undef CONFIG_CM_MULTIPLE_SSRAM"	>> ${config_file} +	echo -n "  /* CM may not have "			>> ${config_file} +	echo    "multiple SSRAM mapping */"		>> ${config_file} +	echo -n "#undef CONFIG_CM_SPD_DETECT "		>> ${config_file} +	echo -n " /* CM may not support SPD "		>> ${config_file} +	echo    "query */"				>> ${config_file} +	echo -n "#undef CONFIG_CM_REMAP  "		>> ${config_file} +	echo -n " /* CM may not support "		>> ${config_file} +	echo    "remapping */"				>> ${config_file} +	echo -n "#undef CONFIG_CM_INIT  "		>> ${config_file} +	echo -n " /* CM may not have  "			>> ${config_file} +	echo    "initialization reg */"			>> ${config_file} +	echo -n "#undef CONFIG_CM_TCRAM  "		>> ${config_file} +	echo    " /* CM may not have TCRAM */"		>> ${config_file} +fi + +fi # ap + +# --------------------------------------------------------- +# Complete the configuration +# --------------------------------------------------------- +$MKCONFIG -a integrator$1 arm $cpu integrator armltd; +echo "Variant:: $variant with core $cpu" diff --git a/board/armltd/integratorcp/timer.c b/board/armltd/integrator/timer.c index 741035cc6..087cf5962 100644 --- a/board/armltd/integratorcp/timer.c +++ b/board/armltd/integrator/timer.c @@ -36,6 +36,13 @@  #include <common.h>  #include <div64.h> +#ifdef CONFIG_ARCH_CINTEGRATOR +#define DIV_CLOCK_INIT	1 +#define TIMER_LOAD_VAL	0xFFFFFFFFL +#else +#define DIV_CLOCK_INIT	256 +#define TIMER_LOAD_VAL	0x0000FFFFL +#endif  /* The Integrator/CP timer1 is clocked at 1MHz   * can be divided by 16 or 256   * and can be set up as a 32-bit timer @@ -44,14 +51,14 @@  /* Keep total timer count to avoid losing decrements < div_timer */  static unsigned long long total_count = 0;  static unsigned long long lastdec;	 /* Timer reading at last call	   */ -static unsigned long long div_clock = 1; /* Divisor applied to timer clock */ +/* Divisor applied to timer clock */ +static unsigned long long div_clock = DIV_CLOCK_INIT;  static unsigned long long div_timer = 1; /* Divisor to convert timer reading  					  * change to U-Boot ticks  					  */  /* CONFIG_SYS_HZ = CONFIG_SYS_HZ_CLOCK/(div_clock * div_timer) */ -static ulong timestamp;		/* U-Boot ticks since startup	      */ +static ulong timestamp;		/* U-Boot ticks since startup */ -#define TIMER_LOAD_VAL ((ulong)0xFFFFFFFF)  #define READ_TIMER (*(volatile ulong *)(CONFIG_SYS_TIMERBASE+4))  /* all function return values in U-Boot ticks i.e. (1/CONFIG_SYS_HZ) sec @@ -64,22 +71,35 @@ int timer_init (void)  {  	/* Load timer with initial value */  	*(volatile ulong *)(CONFIG_SYS_TIMERBASE + 0) = TIMER_LOAD_VAL; +#ifdef CONFIG_ARCH_CINTEGRATOR  	/* Set timer to be -	 *	enabled		  1 -	 *	periodic	  1 -	 *	no interrupts	  0 -	 *	X		  0 -	 *	divider 1	 00 == less rounding error -	 *	32 bit		  1 -	 *	wrapping	  0 +	 *	enabled		 1 +	 *	periodic	 1 +	 *	no interrupts	 0 +	 *	X		 0 +	 *	divider 1	00 == less rounding error +	 *	32 bit		 1 +	 *	wrapping	 0  	 */  	*(volatile ulong *)(CONFIG_SYS_TIMERBASE + 8) = 0x000000C2; +#else +	/* Set timer to be +	 *	enabled		 1 +	 *	free-running	 0 +	 *	XX		00 +	 *	divider 256	10 +	 *	XX		00 +	 */ +	*(volatile ulong *)(CONFIG_SYS_TIMERBASE + 8) = 0x00000088; +#endif +  	/* init the timestamp */  	total_count = 0ULL;  	reset_timer_masked(); -	div_timer  = (unsigned long long)(CONFIG_SYS_HZ_CLOCK / CONFIG_SYS_HZ); -	div_timer /= div_clock; +	div_timer = CONFIG_SYS_HZ_CLOCK; +	do_div(div_timer, CONFIG_SYS_HZ); +	do_div(div_timer, div_clock);  	return (0);  } @@ -100,7 +120,7 @@ ulong get_timer (ulong base_ticks)  void set_timer (ulong ticks)  {  	timestamp   = ticks; -	total_count = (unsigned long long)ticks * div_timer; +	total_count = ticks * div_timer;  }  /* delay usec useconds */ @@ -123,7 +143,7 @@ void udelay (unsigned long usec)  void reset_timer_masked (void)  {  	/* capure current decrementer value    */ -	lastdec	  = (unsigned long long)READ_TIMER; +	lastdec	  = READ_TIMER;  	/* start "advancing" time stamp from 0 */  	timestamp = 0L;  } @@ -133,7 +153,7 @@ void reset_timer_masked (void)  ulong get_timer_masked (void)  {  	/* get current count */ -	unsigned long long now = (unsigned long long)READ_TIMER; +	unsigned long long now = READ_TIMER;  	if(now > lastdec) {  		/* Must have wrapped */ @@ -141,7 +161,7 @@ ulong get_timer_masked (void)  	} else {  		total_count += lastdec - now;  	} -	lastdec	  = now; +	lastdec	= now;  	/* Reuse "now" */  	now = total_count; @@ -163,7 +183,7 @@ void udelay_masked (unsigned long usec)   */  unsigned long long get_ticks(void)  { -	return (unsigned long long)get_timer(0); +	return get_timer(0);  }  /* @@ -172,5 +192,9 @@ unsigned long long get_ticks(void)   */  ulong get_tbclk (void)  { -	return (ulong)(((unsigned long long)CONFIG_SYS_HZ_CLOCK)/div_clock); +	unsigned long long tmp = CONFIG_SYS_HZ_CLOCK; + +	do_div(tmp, div_clock); + +	return tmp;  } diff --git a/board/armltd/integratorap/split_by_variant.sh b/board/armltd/integratorap/split_by_variant.sh deleted file mode 100755 index 2f86b5210..000000000 --- a/board/armltd/integratorap/split_by_variant.sh +++ /dev/null @@ -1,127 +0,0 @@ -#!/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 -# --------------------------------------------------------- -cpu="arm_intcm" -variant="unknown core module" - -if [ "$1" = "" ] -then -	echo "$0:: No parameters - using arm_intcm" -else -	case "$1" in -	ap7_config) -	cpu="arm_intcm" -	variant="unported core module CM7TDMI" -	;; - -	ap966) -	cpu="arm_intcm" -	variant="unported core module CM966E-S" -	;; - -	ap922_config) -	cpu="arm_intcm" -	variant="unported core module CM922T" -	;; - -	integratorap_config	|	\ -	ap_config) -	cpu="arm_intcm" -	variant="unspecified core module" -	;; - -	ap720t_config) -	cpu="arm720t" -	echo -n	"#define CONFIG_CM720T"			>> tmp.fil -	echo	" 1 /* CPU core is ARM720T */ "		>> tmp.fil -	variant="Core module CM720T" -	;; - -	ap922_XA10_config) -	cpu="arm_intcm" -	variant="unported core module CM922T_XA10" -	echo -n	"#define CONFIG_CM922T_XA10"		>> tmp.fil -	echo	" 1 /* CPU core is ARM922T_XA10 */"	>> tmp.fil -	;; - -	ap920t_config) -	cpu="arm920t" -	variant="Core module CM920T" -	echo -n	"#define CONFIG_CM920T"			>> tmp.fil -	echo	" 1 /* CPU core is ARM920T */"		>> tmp.fil -	;; - -	ap926ejs_config) -	cpu="arm926ejs" -	variant="Core module CM926EJ-S" -	echo -n	"#define CONFIG_CM926EJ_S"		>> tmp.fil -	echo	" 1 /* CPU core is ARM926EJ-S */ "	>> tmp.fil -	;; - -	ap946es_config) -	cpu="arm946es" -	variant="Core module CM946E-S" -	echo -n	"#define CONFIG_CM946E_S"		>> tmp.fil -	echo	" 1 /* CPU core is ARM946E-S */ "	>> tmp.fil -	;; - -	*) -	echo "$0:: Unknown core module" -	variant="unknown core module" -	cpu="arm_intcm" -	;; - -	esac -fi - -case "$cpu" in -	arm_intcm) -	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 -	echo -n	" /* May not be processor "		>> tmp.fil -	echo	"without cache support */"		>> tmp.fil -	echo	"#define CONFIG_SYS_NO_ICACHE 1"	>> tmp.fil -	echo	"#define CONFIG_SYS_NO_DCACHE 1"	>> tmp.fil -	;; - -	arm720t) -	echo -n	" /* May not be processor "		>> tmp.fil -	echo	"without cache support */"		>> tmp.fil -	echo	"#define CONFIG_SYS_NO_ICACHE 1"	>> tmp.fil -	echo	"#define CONFIG_SYS_NO_DCACHE 1"	>> tmp.fil -	;; -esac - -mkdir -p ${obj}include -mkdir -p ${obj}board/armltd/integratorap -mv tmp.fil ${obj}include/config.h -# --------------------------------------------------------- -# Complete the configuration -# --------------------------------------------------------- -$MKCONFIG -a integratorap arm $cpu integratorap armltd; -echo "Variant:: $variant with core $cpu" - diff --git a/board/armltd/integratorap/timer.c b/board/armltd/integratorap/timer.c deleted file mode 100644 index e85f8b654..000000000 --- a/board/armltd/integratorap/timer.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * (C) Copyright 2002 - * Sysgo Real-Time Solutions, GmbH <www.elinos.com> - * Marius Groeger <mgroeger@sysgo.de> - * - * (C) Copyright 2002 - * David Mueller, ELSOFT AG, <d.mueller@elsoft.ch> - * - * (C) Copyright 2003 - * Texas Instruments, <www.ti.com> - * Kshitij Gupta <Kshitij@ti.com> - * - * (C) Copyright 2004 - * ARM Ltd. - * Philippe Robin, <philippe.robin@arm.com> - * - * 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 <common.h> - -/* The Integrator/AP timer1 is clocked at 24MHz - * can be divided by 16 or 256 - * and is a 16-bit counter - */ -/* U-Boot expects a 32 bit timer running at CONFIG_SYS_HZ*/ -static ulong timestamp;		/* U-Boot ticks since startup	      */ -static ulong total_count = 0;	/* Total timer count		      */ -static ulong lastdec;		/* Timer reading at last call	      */ -static ulong div_clock	 = 256; /* Divisor applied to the timer clock */ -static ulong div_timer	 = 1;	/* Divisor to convert timer reading -				 * change to U-Boot ticks -				 */ -/* CONFIG_SYS_HZ = CONFIG_SYS_HZ_CLOCK/(div_clock * div_timer) */ - -#define TIMER_LOAD_VAL 0x0000FFFFL -#define READ_TIMER ((*(volatile ulong *)(CONFIG_SYS_TIMERBASE+4)) & 0x0000FFFFL) - -/* all function return values in U-Boot ticks i.e. (1/CONFIG_SYS_HZ) sec - *  - unless otherwise stated - */ - -/* starts a counter - * - the Integrator/AP timer issues an interrupt - *   each time it reaches zero - */ -int timer_init (void) -{ -	/* Load timer with initial value */ -	*(volatile ulong *)(CONFIG_SYS_TIMERBASE + 0) = TIMER_LOAD_VAL; -	/* Set timer to be -	 *	enabled		  1 -	 *	free-running	  0 -	 *	XX		 00 -	 *	divider 256	 10 -	 *	XX		 00 -	 */ -	*(volatile ulong *)(CONFIG_SYS_TIMERBASE + 8) = 0x00000088; -	total_count = 0; -	/* init the timestamp and lastdec value */ -	reset_timer_masked(); - -	div_timer  = CONFIG_SYS_HZ_CLOCK / CONFIG_SYS_HZ; -	div_timer /= div_clock; - -	return (0); -} - -/* - * timer without interrupts - */ -void reset_timer (void) -{ -	reset_timer_masked (); -} - -ulong get_timer (ulong base_ticks) -{ -	return get_timer_masked () - base_ticks; -} - -void set_timer (ulong ticks) -{ -	timestamp = ticks; -	total_count = ticks * div_timer; -	reset_timer_masked(); -} - -/* delay x useconds */ -void udelay (unsigned long usec) -{ -	ulong tmo, tmp; - -	/* Convert to U-Boot ticks */ -	tmo  = usec * CONFIG_SYS_HZ; -	tmo /= (1000000L); - -	tmp  = get_timer_masked();	/* get current timestamp */ -	tmo += tmp;			/* wake up timestamp	 */ - -	while (get_timer_masked () < tmo) { /* loop till event */ -		/*NOP*/; -	} -} - -void reset_timer_masked (void) -{ -	/* reset time */ -	lastdec	  = READ_TIMER; /* capture current decrementer value   */ -	timestamp = 0;		/* start "advancing" time stamp from 0 */ -} - -/* converts the timer reading to U-Boot ticks	       */ -/* the timestamp is the number of ticks since reset    */ -/* This routine does not detect wraps unless called regularly -   ASSUMES a call at least every 16 seconds to detect every reload */ -ulong get_timer_masked (void) -{ -	ulong now = READ_TIMER;		/* current count */ - -	if (now > lastdec) { -		/* Must have wrapped */ -		total_count += lastdec + TIMER_LOAD_VAL + 1 - now; -	} else { -		total_count += lastdec - now; -	} -	lastdec	  = now; -	timestamp = total_count/div_timer; - -	return timestamp; -} - -/* waits specified delay value and resets timestamp */ -void udelay_masked (unsigned long usec) -{ -	udelay(usec); -} - -/* - * This function is derived from PowerPC code (read timebase as long long). - * On ARM it just returns the timer value. - */ -unsigned long long get_ticks(void) -{ -	return get_timer(0); -} - -/* - * Return the timebase clock frequency - * i.e. how often the timer decrements - */ -ulong get_tbclk (void) -{ -	return CONFIG_SYS_HZ_CLOCK/div_clock; -} diff --git a/board/armltd/integratorcp/Makefile b/board/armltd/integratorcp/Makefile deleted file mode 100644 index 76a85d936..000000000 --- a/board/armltd/integratorcp/Makefile +++ /dev/null @@ -1,53 +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$(BOARD).a - -SOBJS	:= lowlevel_init.o - -COBJS	:= integratorcp.o -COBJS	+= timer.o - -SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c) -OBJS	:= $(addprefix $(obj),$(COBJS)) -SOBJS	:= $(addprefix $(obj),$(SOBJS)) - -$(LIB):	$(obj).depend $(OBJS) $(SOBJS) -	$(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS) - -clean: -	rm -f $(SOBJS) $(OBJS) - -distclean:	clean -	rm -f $(LIB) core *.bak $(obj).depend - -######################################################################### - -# defines $(obj).depend target -include $(SRCTREE)/rules.mk - -sinclude $(obj).depend - -######################################################################### diff --git a/board/armltd/integratorcp/config.mk b/board/armltd/integratorcp/config.mk deleted file mode 100644 index 25b79b3e7..000000000 --- a/board/armltd/integratorcp/config.mk +++ /dev/null @@ -1,5 +0,0 @@ -# -# image should be loaded at 0x01000000 -# - -TEXT_BASE = 0x01000000 diff --git a/board/armltd/integratorcp/integratorcp.c b/board/armltd/integratorcp/integratorcp.c deleted file mode 100644 index 589714784..000000000 --- a/board/armltd/integratorcp/integratorcp.c +++ /dev/null @@ -1,118 +0,0 @@ -/* - * (C) Copyright 2002 - * Sysgo Real-Time Solutions, GmbH <www.elinos.com> - * Marius Groeger <mgroeger@sysgo.de> - * - * (C) Copyright 2002 - * David Mueller, ELSOFT AG, <d.mueller@elsoft.ch> - * - * (C) Copyright 2003 - * Texas Instruments, <www.ti.com> - * Kshitij Gupta <Kshitij@ti.com> - * - * (C) Copyright 2004 - * ARM Ltd. - * Philippe Robin, <philippe.robin@arm.com> - * - * 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 <common.h> - -DECLARE_GLOBAL_DATA_PTR; - -void peripheral_power_enable (void); - -#if defined(CONFIG_SHOW_BOOT_PROGRESS) -void show_boot_progress(int progress) -{ -	printf("Boot reached stage %d\n", progress); -} -#endif - -#define COMP_MODE_ENABLE ((unsigned int)0x0000EAEF) - -/* - * Miscellaneous platform dependent initialisations - */ - -int board_init (void) -{ -	/* arch number of Integrator Board */ -	gd->bd->bi_arch_number = MACH_TYPE_CINTEGRATOR; - -	/* adress of boot parameters */ -	gd->bd->bi_boot_params = 0x00000100; - -	gd->flags = 0; - -#ifdef CONFIG_CM_REMAP -extern void cm_remap(void); -	cm_remap();	/* remaps writeable memory to 0x00000000 */ -#endif - -	icache_enable (); - -	return 0; -} - -int misc_init_r (void) -{ -	setenv("verify", "n"); -	return (0); -} - -/****************************** - Routine: - Description: -******************************/ -int dram_init (void) -{ -	gd->bd->bi_dram[0].start = PHYS_SDRAM_1; -	gd->bd->bi_dram[0].size	 = PHYS_SDRAM_1_SIZE; - -#ifdef CONFIG_CM_SPD_DETECT -    { -extern void dram_query(void); -	unsigned long cm_reg_sdram; -	unsigned long sdram_shift; - -	dram_query();	/* Assembler accesses to CM registers */ -			/* Queries the SPD values	      */ - -	/* Obtain the SDRAM size from the CM SDRAM register */ - -	cm_reg_sdram = *(volatile ulong *)(CM_BASE + OS_SDRAM); -	/*   Register	      SDRAM size -	 * -	 *   0xXXXXXXbbb000bb	 16 MB -	 *   0xXXXXXXbbb001bb	 32 MB -	 *   0xXXXXXXbbb010bb	 64 MB -	 *   0xXXXXXXbbb011bb	128 MB -	 *   0xXXXXXXbbb100bb	256 MB -	 * -	 */ -	sdram_shift		 = ((cm_reg_sdram & 0x0000001C)/4)%4; -	gd->bd->bi_dram[0].size	 = 0x01000000 << sdram_shift; - -    } -#endif /* CM_SPD_DETECT */ - -	return 0; -} diff --git a/board/armltd/integratorcp/lowlevel_init.S b/board/armltd/integratorcp/lowlevel_init.S deleted file mode 100644 index 18f7d2eae..000000000 --- a/board/armltd/integratorcp/lowlevel_init.S +++ /dev/null @@ -1,214 +0,0 @@ -/* - * Board specific setup info - * - * (C) Copyright 2003, ARM Ltd. - * Philippe Robin, <philippe.robin@arm.com> - * - * 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 <config.h> -#include <version.h> - -/* Reset using CM control register */ -.global reset_cpu -reset_cpu: -	mov	r0, #CM_BASE -	ldr	r1,[r0,#OS_CTRL] -	orr	r1,r1,#CMMASK_RESET -	str	r1,[r0,#OS_CTRL] - -reset_failed: -	b	reset_failed - -/* 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 -	 * --- DO NOT REMAP BEFORE THE CODE HAS BEEN RELOCATED -- -	 * Changes to the (possibly soft) reset defaults of the processor -	 * itself should be performed in cpu/arm<>/start.S -	 * This function affects only the core module or board settings -	 */ - -#ifdef CONFIG_CM_INIT -	/* CM has an initialization register -	 * - bits in it are wired into test-chip pins to force -	 *   reset defaults -	 * - may need to change its contents for U-Boot -	 */ - -	/* set the desired CM specific value */ -	mov	r2,#CMMASK_LOWVEC	/* Vectors at 0x00000000 for all */ - -#if defined (CONFIG_CM10200E) || defined (CONFIG_CM10220E) -	orr	r2,r2,#CMMASK_INIT_102 -#else - -#if	!defined (CONFIG_CM920T) && !defined (CONFIG_CM920T_ETM) && \ -	!defined (CONFIG_CM940T) -	/* CMxx6 code	*/ - -#ifdef	CONFIG_CM_MULTIPLE_SSRAM -	/* set simple mapping			*/ -	and	r2,r2,#CMMASK_MAP_SIMPLE -#endif /* #ifdef CONFIG_CM_MULTIPLE_SSRAM	*/ - -#ifdef	CONFIG_CM_TCRAM -	/* disable TCRAM			*/ -	and	r2,r2,#CMMASK_TCRAM_DISABLE -#endif /* #ifdef CONFIG_CM_TCRAM		*/ - -#if defined (CONFIG_CM926EJ_S) || defined (CONFIG_CM1026EJ_S) || \ -			defined (CONFIG_CM1136JF_S) - -	and	r2,r2,#CMMASK_LE - -#endif /* cpu with little endian initialization */ - -	orr	r2,r2,#CMMASK_CMxx6_COMMON - -#endif /* CMxx6 code */ - -#endif /* ARM102xxE value */ - -	/* read CM_INIT		 */ -	mov	r0, #CM_BASE -	ldr	r1, [r0, #OS_INIT] -	/* check against desired bit setting */ -	and	r3,r1,r2 -	cmp	r3,r2 -	beq	init_reg_OK - -	/* lock for change */ -	mov	r3, #CMVAL_LOCK1 -	and	r3, r3, #CMVAL_LOCK2 -	str	r3, [r0, #OS_LOCK] -	/* set desired value */ -	orr	r1,r1,r2 -	/* write & relock CM_INIT */ -	str	r1, [r0, #OS_INIT] -	mov	r1, #CMVAL_UNLOCK -	str	r1, [r0, #OS_LOCK] - -	/* soft reset so new values used */ -	b	reset_cpu - -init_reg_OK: - -#endif /* CONFIG_CM_INIT */ - -	mov	pc, lr - -#ifdef	CONFIG_CM_SPD_DETECT -	/* Fast memory is available for the DRAM data -	 * - ensure it has been transferred, then summarize the data -	 *	 into a CM register -	 */ -.globl dram_query -dram_query: -	stmfd	r13!,{r4-r6,lr} -	/* set up SDRAM info					*/ -	/* - based on example code from the CM User Guide */ -	mov	r0, #CM_BASE - -readspdbit: -	ldr	r1, [r0, #OS_SDRAM]	/* read the SDRAM register */ -	and	r1, r1, #0x20		/* mask SPD bit (5)		 */ -	cmp	r1, #0x20		/* test if set			 */ -	bne	readspdbit - -setupsdram: -	add	r0, r0, #OS_SPD		/* address the copy of the SDP data	*/ -	ldrb	r1, [r0, #3]		/* number of row address lines		*/ -	ldrb	r2, [r0, #4]		/* number of column address lines	*/ -	ldrb	r3, [r0, #5]		/* number of banks			*/ -	ldrb	r4, [r0, #31]		/* module bank density			*/ -	mul	r5, r4, r3		/* size of SDRAM (MB divided by 4)	*/ -	mov	r5, r5, ASL#2		/* size in MB				*/ -	mov	r0, #CM_BASE		/* reload for later code		*/ -	cmp	r5, #0x10		/* is it 16MB?				*/ -	bne	not16 -	mov	r6, #0x2		/* store size and CAS latency of 2	*/ -	b	writesize - -not16: -	cmp	r5, #0x20		/* is it  32MB? */ -	bne	not32 -	mov	r6, #0x6 -	b	writesize - -not32: -	cmp	r5, #0x40		/* is it  64MB? */ -	bne	not64 -	mov	r6, #0xa -	b	writesize - -not64: -	cmp	r5, #0x80		/* is it 128MB? */ -	bne	not128 -	mov	r6, #0xe -	b	writesize - -not128: -	/* if it is none of these sizes then it is either 256MB, or -	 * there is no SDRAM fitted so default to 256MB -	 */ -	mov	r6, #0x12 - -writesize: -	mov	r1, r1, ASL#8		/* row addr lines from SDRAM reg */ -	orr	r2, r1, r2, ASL#12	/* OR in column address lines	 */ -	orr	r3, r2, r3, ASL#16	/* OR in number of banks	 */ -	orr	r6, r6, r3		/* OR in size and CAS latency	 */ -	str	r6, [r0, #OS_SDRAM]	/* store SDRAM parameters	 */ - -#endif /* #ifdef CONFIG_CM_SPD_DETECT */ - -	ldmfd	r13!,{r4-r6,pc}			/* back to caller */ - -#ifdef	CONFIG_CM_REMAP -	/* CM remap bit is operational -	 * - use it to map writeable memory at 0x00000000, in place of flash -	 */ -.globl cm_remap -cm_remap: -	stmfd	r13!,{r4-r10,lr} - -	mov	r0, #CM_BASE -	ldr	r1, [r0, #OS_CTRL] -	orr	r1, r1, #CMMASK_REMAP	/* set remap and led bits */ -	str	r1, [r0, #OS_CTRL] - -	/* Now 0x00000000 is writeable, replace the vectors	*/ -	ldr	r0, =_start	/* r0 <- start of vectors	*/ -	ldr	r2, =_armboot_start	/* r2 <- past vectors	*/ -	sub	r1,r1,r1		/* destination 0x00000000	*/ - -copy_vec: -	ldmia	r0!, {r3-r10}		/* copy from source address [r0]	*/ -	stmia	r1!, {r3-r10}		/* copy to	 target address [r1]	*/ -	cmp	r0, r2			/* until source end address [r2]	*/ -	ble	copy_vec - -	ldmfd	r13!,{r4-r10,pc}	/* back to caller			*/ - -#endif /* #ifdef CONFIG_CM_REMAP */ diff --git a/board/armltd/integratorcp/split_by_variant.sh b/board/armltd/integratorcp/split_by_variant.sh deleted file mode 100755 index 13effef79..000000000 --- a/board/armltd/integratorcp/split_by_variant.sh +++ /dev/null @@ -1,110 +0,0 @@ -#!/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 - -cpu="arm_intcm" -variant="unknown core module" - -if [ "$1" = "" ] -then -	echo "$0:: No parameters - using arm_intcm" -else -	case "$1" in -	ap966) -	cpu="arm_intcm" -	variant="unported core module CM966E-S" -	;; - -	ap922_config) -	cpu="arm_intcm" -	variant="unported core module CM922T" -	;; - -	integratorcp_config	|	\ -	cp_config) -	cpu="arm_intcm" -	variant="unspecified core module" -	;; - -	cp922_XA10_config) -	cpu="arm_intcm" -	variant="unported core module CM922T_XA10" -	echo -n "#define CONFIG_CM922T_XA10"		>> tmp.fil -	echo    " 1 /* CPU core is ARM922T_XA10 */"	>> tmp.fil -	;; - -	cp920t_config) -	cpu="arm920t" -	variant="Core module CM920T" -	echo -n "#define CONFIG_CM920T"			>> tmp.fil -	echo    " 1 /* CPU core is ARM920T */"		>> tmp.fil -	;; - -	cp926ejs_config) -	cpu="arm926ejs" -	variant="Core module CM926EJ-S" -	echo -n "#define CONFIG_CM926EJ_S"		>> tmp.fil -	echo    " 1 /* CPU core is ARM926EJ-S */ "	>> tmp.fil -	;; - - -	cp946es_config) -	cpu="arm946es" -	variant="Core module CM946E-S" -	echo -n "#define CONFIG_CM946E_S"		>> tmp.fil -	echo    " 1 /* CPU core is ARM946E-S */ "	>> tmp.fil -	;; - -	cp1136_config) -	cpu="arm1136" -	variant="Core module CM1136EJF-S" -	echo -n "#define CONFIG_CM1136EJF_S"		>> tmp.fil -	echo    " 1 /* CPU core is ARM1136JF-S */ "	>> tmp.fil -	;; - -	*) -	echo "$0:: Unknown core module" -	variant="unknown core module" -	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 - -mkdir -p ${obj}include -mkdir -p ${obj}board/armltd/integratorcp -mv tmp.fil ${obj}include/config.h -# --------------------------------------------------------- -# Complete the configuration -# --------------------------------------------------------- -$MKCONFIG -a integratorcp arm $cpu integratorcp armltd; -echo "Variant:: $variant with core $cpu" - |