summaryrefslogtreecommitdiff
path: root/lib_arm
diff options
context:
space:
mode:
authorWolfgang Denk <wd@denx.de>2008-06-05 01:12:30 +0200
committerWolfgang Denk <wd@denx.de>2008-06-05 01:12:30 +0200
commit8155efbd7ae9c65564ca98affe94631d612ae088 (patch)
tree23f89ba651f48bf88c653796cb64f2c58d2f0515 /lib_arm
parent5e1882df6a3efc7de5524d28cea4ecde7d163d54 (diff)
parent9ef1cbef1a649e3779298b0e663be4865cbbbfbc (diff)
downloadu-boot-imx-8155efbd7ae9c65564ca98affe94631d612ae088.zip
u-boot-imx-8155efbd7ae9c65564ca98affe94631d612ae088.tar.gz
u-boot-imx-8155efbd7ae9c65564ca98affe94631d612ae088.tar.bz2
Merge branch 'master' of ssh://mercury/home/wd/git/u-boot/master
Diffstat (limited to 'lib_arm')
-rw-r--r--lib_arm/board.c49
1 files changed, 30 insertions, 19 deletions
diff --git a/lib_arm/board.c b/lib_arm/board.c
index 67506b3..80b149b 100644
--- a/lib_arm/board.c
+++ b/lib_arm/board.c
@@ -45,6 +45,8 @@
#include <version.h>
#include <net.h>
#include <serial.h>
+#include <nand.h>
+#include <onenand_uboot.h>
#ifdef CONFIG_DRIVER_SMC91111
#include "../drivers/net/smc91111.h"
@@ -55,14 +57,6 @@
DECLARE_GLOBAL_DATA_PTR;
-#if defined(CONFIG_CMD_NAND)
-void nand_init (void);
-#endif
-
-#if defined(CONFIG_CMD_ONENAND)
-void onenand_init(void);
-#endif
-
ulong monitor_flash_len;
#ifdef CONFIG_HAS_DATAFLASH
@@ -121,6 +115,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 +287,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 +331,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 */