diff options
Diffstat (limited to 'lib_arm/board.c')
-rw-r--r-- | lib_arm/board.c | 65 |
1 files changed, 55 insertions, 10 deletions
diff --git a/lib_arm/board.c b/lib_arm/board.c index ada8cc8..3048cbe 100644 --- a/lib_arm/board.c +++ b/lib_arm/board.c @@ -1,5 +1,5 @@ /* - * (C) Copyright 2002 + * (C) Copyright 2002-2006 * Wolfgang Denk, DENX Software Engineering, wd@denx.de. * * (C) Copyright 2002 @@ -25,6 +25,19 @@ * MA 02111-1307 USA */ +/* + * To match the U-Boot user interface on ARM platforms to the U-Boot + * standard (as on PPC platforms), some messages with debug character + * are removed from the default U-Boot build. + * + * Define DEBUG here if you want additional info as shown below + * printed upon startup: + * + * U-Boot code: 00F00000 -> 00F3C774 BSS: -> 00FC3274 + * IRQ Stack: 00ebff7c + * FIQ Stack: 00ebef7c + */ + #include <common.h> #include <command.h> #include <malloc.h> @@ -120,14 +133,14 @@ static int init_baudrate (void) static int display_banner (void) { printf ("\n\n%s\n\n", version_string); - printf ("U-Boot code: %08lX -> %08lX BSS: -> %08lX\n", - _armboot_start, _bss_start, _bss_end); + debug ("U-Boot code: %08lX -> %08lX BSS: -> %08lX\n", + _armboot_start, _bss_start, _bss_end); #ifdef CONFIG_MODEM_SUPPORT - puts ("Modem Support enabled\n"); + debug ("Modem Support enabled\n"); #endif #ifdef CONFIG_USE_IRQ - printf ("IRQ Stack: %08lx\n", IRQ_STACK_START); - printf ("FIQ Stack: %08lx\n", FIQ_STACK_START); + debug ("IRQ Stack: %08lx\n", IRQ_STACK_START); + debug ("FIQ Stack: %08lx\n", FIQ_STACK_START); #endif return (0); @@ -145,12 +158,22 @@ static int display_dram_config (void) DECLARE_GLOBAL_DATA_PTR; int i; +#ifdef DEBUG puts ("RAM Configuration:\n"); for(i=0; i<CONFIG_NR_DRAM_BANKS; i++) { printf ("Bank #%d: %08lx ", i, gd->bd->bi_dram[i].start); print_size (gd->bd->bi_dram[i].size, "\n"); } +#else + ulong size = 0; + + for (i=0; i<CONFIG_NR_DRAM_BANKS; i++) { + size += gd->bd->bi_dram[i].size; + } + puts("DRAM: "); + print_size(size, "\n"); +#endif return (0); } @@ -187,6 +210,8 @@ static void display_flash_config (ulong size) */ typedef int (init_fnc_t) (void); +int print_cpuinfo (void); /* test-only */ + init_fnc_t *init_sequence[] = { cpu_init, /* basic cpu dependent setup */ board_init, /* basic board dependent setup */ @@ -196,11 +221,14 @@ init_fnc_t *init_sequence[] = { serial_init, /* serial communications setup */ console_init_f, /* stage 1 init of console */ display_banner, /* say that we are here */ +#if defined(CONFIG_DISPLAY_CPUINFO) + print_cpuinfo, /* display cpu info (and speed) */ +#endif +#if defined(CONFIG_DISPLAY_BOARDINFO) + checkboard, /* display board info */ +#endif dram_init, /* configure available RAM banks */ display_dram_config, -#if defined(CONFIG_VCMA9) || defined (CONFIG_CMC_PU2) - checkboard, -#endif NULL, }; @@ -301,10 +329,25 @@ void start_armboot (void) if (s) s = (*e) ? e + 1 : e; } + +#ifdef CONFIG_HAS_ETH1 + i = getenv_r ("eth1addr", tmp, sizeof (tmp)); + s = (i > 0) ? tmp : NULL; + + for (reg = 0; reg < 6; ++reg) { + gd->bd->bi_enet1addr[reg] = s ? simple_strtoul (s, &e, 16) : 0; + if (s) + s = (*e) ? e + 1 : e; + } +#endif } devices_init (); /* get the devices list going. */ +#ifdef CONFIG_CMC_PU2 + load_sernum_ethaddr (); +#endif /* CONFIG_CMC_PU2 */ + jumptable_init (); console_init_r (); /* fully init console as a device */ @@ -341,8 +384,10 @@ void start_armboot (void) #ifdef BOARD_LATE_INIT board_late_init (); #endif -#if (CONFIG_COMMANDS & CFG_CMD_NET) && defined(CONFIG_NET_MULTI) +#if (CONFIG_COMMANDS & CFG_CMD_NET) +#if defined(CONFIG_NET_MULTI) puts ("Net: "); +#endif eth_initialize(gd->bd); #endif /* main_loop() can return to retry autoboot, if so just run it again. */ |