diff options
Diffstat (limited to 'lib_arm/board.c')
| -rw-r--r-- | lib_arm/board.c | 39 | 
1 files changed, 28 insertions, 11 deletions
| diff --git a/lib_arm/board.c b/lib_arm/board.c index 67506b35e..b2e6910c4 100644 --- a/lib_arm/board.c +++ b/lib_arm/board.c @@ -121,6 +121,20 @@ void *sbrk (ptrdiff_t increment)  	return ((void *) old);  } +char *strmhz(char *buf, long hz) +{ +	long l, n; +	long m; + +	n = hz / 1000000L; +	l = sprintf (buf, "%ld", n); +	m = (hz % 1000000L) / 1000L; +	if (m != 0) +		sprintf (buf + l, ".%03ld", m); +	return (buf); +} + +  /************************************************************************   * Coloured LED functionality   ************************************************************************ @@ -279,7 +293,7 @@ void start_armboot (void)  {  	init_fnc_t **init_fnc_ptr;  	char *s; -#ifndef CFG_NO_FLASH +#if !defined(CFG_NO_FLASH) || defined (CONFIG_VFD) || defined(CONFIG_LCD)  	ulong size;  #endif  #if defined(CONFIG_VFD) || defined(CONFIG_LCD) @@ -323,16 +337,19 @@ void start_armboot (void)  #endif /* CONFIG_VFD */  #ifdef CONFIG_LCD -#	ifndef PAGE_SIZE -#	  define PAGE_SIZE 4096 -#	endif -	/* -	 * reserve memory for LCD display (always full pages) -	 */ -	/* bss_end is defined in the board-specific linker script */ -	addr = (_bss_end + (PAGE_SIZE - 1)) & ~(PAGE_SIZE - 1); -	size = lcd_setmem (addr); -	gd->fb_base = addr; +	/* board init may have inited fb_base */ +	if (!gd->fb_base) { +#		ifndef PAGE_SIZE +#		  define PAGE_SIZE 4096 +#		endif +		/* +		 * reserve memory for LCD display (always full pages) +		 */ +		/* bss_end is defined in the board-specific linker script */ +		addr = (_bss_end + (PAGE_SIZE - 1)) & ~(PAGE_SIZE - 1); +		size = lcd_setmem (addr); +		gd->fb_base = addr; +	}  #endif /* CONFIG_LCD */  	/* armboot_start is defined in the board-specific linker script */ |