diff options
Diffstat (limited to 'board/mvblue/mvblue.c')
| -rw-r--r-- | board/mvblue/mvblue.c | 59 | 
1 files changed, 15 insertions, 44 deletions
| diff --git a/board/mvblue/mvblue.c b/board/mvblue/mvblue.c index 0cec63f59..20a551dfa 100644 --- a/board/mvblue/mvblue.c +++ b/board/mvblue/mvblue.c @@ -77,53 +77,24 @@ int checkboard (void)  long int initdram (int board_type)  { -	int i, cnt; -	volatile uchar *base = CFG_SDRAM_BASE; -	volatile ulong *addr; -	ulong save[32]; -	ulong val, ret = 0; +	long size; +	long new_bank0_end; +	long mear1; +	long emear1; -	for (i = 0, cnt = (CFG_MAX_RAM_SIZE / sizeof (long)) >> 1; cnt > 0; -	     cnt >>= 1) { -		addr = (volatile ulong *) base + cnt; -		save[i++] = *addr; -		*addr = ~cnt; -	} - -	addr = (volatile ulong *) base; -	save[i] = *addr; -	*addr = 0; - -	if (*addr != 0) { -		*addr = save[i]; -		goto Done; -	} +	size = get_ram_size(CFG_SDRAM_BASE, CFG_MAX_RAM_SIZE); -	for (cnt = 1; cnt <= CFG_MAX_RAM_SIZE / sizeof (long); cnt <<= 1) { -		addr = (volatile ulong *) base + cnt; -		val = *addr; -		*addr = save[--i]; -		if (val != ~cnt) { -			ulong new_bank0_end = cnt * sizeof (long) - 1; -			ulong mear1 = mpc824x_mpc107_getreg (MEAR1); -			ulong emear1 = mpc824x_mpc107_getreg (EMEAR1); - -			mear1 = (mear1 & 0xFFFFFF00) | -				((new_bank0_end & MICR_ADDR_MASK) >> -				 MICR_ADDR_SHIFT); -			emear1 = (emear1 & 0xFFFFFF00) | -				((new_bank0_end & MICR_ADDR_MASK) >> -				 MICR_EADDR_SHIFT); -			mpc824x_mpc107_setreg (MEAR1, mear1); -			mpc824x_mpc107_setreg (EMEAR1, emear1); -			ret = cnt * sizeof (long); -			goto Done; -		} -	} +	new_bank0_end = size - 1; +	mear1 = mpc824x_mpc107_getreg(MEAR1); +	emear1 = mpc824x_mpc107_getreg(EMEAR1); +	mear1 = (mear1  & 0xFFFFFF00) | +		((new_bank0_end & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT); +	emear1 = (emear1 & 0xFFFFFF00) | +		((new_bank0_end & MICR_ADDR_MASK) >> MICR_EADDR_SHIFT); +	mpc824x_mpc107_setreg(MEAR1,  mear1); +	mpc824x_mpc107_setreg(EMEAR1, emear1); -	ret = CFG_MAX_RAM_SIZE; -      Done: -	return ret; +	return (size);  }  /* ------------------------------------------------------------------------- */ |