diff options
| -rw-r--r-- | CHANGELOG | 2 | ||||
| -rw-r--r-- | common/cmd_ide.c | 2 | ||||
| -rw-r--r-- | cpu/mips/config.mk | 2 | ||||
| -rw-r--r-- | cpu/mips/start.S | 31 | ||||
| -rw-r--r-- | lib_mips/board.c | 18 | 
5 files changed, 29 insertions, 26 deletions
| @@ -2,6 +2,8 @@  Changes for U-Boot 1.1.4:  ====================================================================== +* Fix U-Boot compilation for MIPS boards using ELDK 4.0 +  * Add support for TQM8541/8555 boards, TQM85xx support reworked:    - Support for TQM8541/8555 boards added.    - Complete rework of TQM8540/8560 support. diff --git a/common/cmd_ide.c b/common/cmd_ide.c index 6663dea2f..b67d35a5a 100644 --- a/common/cmd_ide.c +++ b/common/cmd_ide.c @@ -49,7 +49,7 @@  #include <asm/io.h>  #ifdef __MIPS__  /* Macros depend on this variable */ -static unsigned long mips_io_port_base = 0; +unsigned long mips_io_port_base = 0;  #endif  #endif diff --git a/cpu/mips/config.mk b/cpu/mips/config.mk index fd10747aa..c357615c0 100644 --- a/cpu/mips/config.mk +++ b/cpu/mips/config.mk @@ -26,7 +26,7 @@ MIPSFLAGS=$(shell \  if [ "$v" -lt "14" ]; then \  	echo "-mcpu=4kc"; \  else \ -	echo "-march=4kc -mtune=4kc -Wa,-mips_allow_branch_to_undefined"; \ +	echo "-march=4kc -mtune=4kc"; \  fi)  ifneq (,$(findstring 4KCle,$(CROSS_COMPILE))) diff --git a/cpu/mips/start.S b/cpu/mips/start.S index ff105a418..e91e2137d 100644 --- a/cpu/mips/start.S +++ b/cpu/mips/start.S @@ -234,21 +234,34 @@ reset:  	li	t0, CONF_CM_UNCACHED  	mtc0	t0, CP0_CONFIG +	/* Initialize GOT pointer. +	*/ +	bal     1f +	nop +	.word   _GLOBAL_OFFSET_TABLE_ +	1: +	move    gp, ra +	lw      t1, 0(ra) +	move	gp, t1 +  #ifdef CONFIG_INCA_IP  	/* Disable INCA-IP Watchdog.  	 */ -	bal	disable_incaip_wdt +	la      t9, disable_incaip_wdt +	jalr    t9  	nop  #endif  	/* Initialize any external memory.  	 */ -	bal	lowlevel_init +	la      t9, lowlevel_init +	jalr    t9  	nop  	/* Initialize caches...  	 */ -	bal	mips_cache_reset +	la      t9, mips_cache_reset +	jalr    t9  	nop  	/* ... and enable them. @@ -260,21 +273,13 @@ reset:  	/* Set up temporary stack.  	 */  	li	a0, CFG_INIT_SP_OFFSET -	bal	mips_cache_lock +	la      t9, mips_cache_lock +	jalr    t9  	nop  	li	t0, CFG_SDRAM_BASE + CFG_INIT_SP_OFFSET  	la	sp, 0(t0) -	/* Initialize GOT pointer. -	 */ -	bal	1f -	nop -	.word	_GLOBAL_OFFSET_TABLE_ - 1f + 4 -1: -	move	gp, ra -	lw	t1, 0(ra) -	add	gp, t1  	la	t9, board_init_f  	j	t9  	nop diff --git a/lib_mips/board.c b/lib_mips/board.c index 839911be8..5dfdf90d6 100644 --- a/lib_mips/board.c +++ b/lib_mips/board.c @@ -29,6 +29,8 @@  #include <net.h>  #include <environment.h> +DECLARE_GLOBAL_DATA_PTR; +  #if ( ((CFG_ENV_ADDR+CFG_ENV_SIZE) < CFG_MONITOR_BASE) || \        (CFG_ENV_ADDR >= (CFG_MONITOR_BASE + CFG_MONITOR_LEN)) ) || \      defined(CFG_ENV_IS_IN_NVRAM) @@ -66,8 +68,6 @@ static ulong mem_malloc_brk;   */  static void mem_malloc_init (void)  { -	DECLARE_GLOBAL_DATA_PTR; -  	ulong dest_addr = CFG_MONITOR_BASE + gd->reloc_off;  	mem_malloc_end = dest_addr; @@ -94,8 +94,6 @@ void *sbrk (ptrdiff_t increment)  static int init_func_ram (void)  { -	DECLARE_GLOBAL_DATA_PTR; -  #ifdef	CONFIG_BOARD_TYPES  	int board_type = gd->board_type;  #else @@ -127,8 +125,6 @@ static void display_flash_config(ulong size)  static int init_baudrate (void)  { -	DECLARE_GLOBAL_DATA_PTR; -  	uchar tmp[64];	/* long enough for environment variables */  	int i = getenv_r ("baudrate", tmp, sizeof (tmp)); @@ -180,12 +176,11 @@ init_fnc_t *init_sequence[] = {  void board_init_f(ulong bootflag)  { -	DECLARE_GLOBAL_DATA_PTR; -  	gd_t gd_data, *id;  	bd_t *bd;  	init_fnc_t **init_fnc_ptr;  	ulong addr, addr_sp, len = (ulong)&uboot_end - CFG_MONITOR_BASE; +	ulong *s;  #ifdef CONFIG_PURPLE  	void copy_code (ulong);  #endif @@ -262,8 +257,10 @@ void board_init_f(ulong bootflag)  	 */  	addr_sp -= 16;  	addr_sp &= ~0xF; -	*((ulong *) addr_sp)-- = 0; -	*((ulong *) addr_sp)-- = 0; +	s = (ulong *)addr_sp; +	*s-- = 0; +	*s-- = 0; +	addr_sp = (ulong)s;  	debug ("Stack Pointer at: %08lx\n", addr_sp);  	/* @@ -298,7 +295,6 @@ void board_init_f(ulong bootflag)  void board_init_r (gd_t *id, ulong dest_addr)  { -	DECLARE_GLOBAL_DATA_PTR;  	cmd_tbl_t *cmdtp;  	ulong size;  	extern void malloc_bin_reloc (void); |