From 7a8e9bed17d7924a9c5c4699b1f6a3a0359524ed Mon Sep 17 00:00:00 2001 From: wdenk Date: Sat, 31 May 2003 18:35:21 +0000 Subject: * Patch by Marc Singer, 29 May 2003: Fixed rarp boot method for IA32 and other little-endian CPUs. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Patch by Marc Singer, 28 May 2003: Added port I/O commands. * Patch by Matthew McClintock, 28 May 2003 - cpu/mpc824x/start.S: fix relocation code when booting from RAM - minor patches for utx8245 * Patch by Daniel Engström, 28 May 2003: x86 update * Patch by Dave Ellis, 9 May 2003 + 27 May 2003: add nand flash support to SXNI855T configuration fix/extend nand flash support: - fix 'nand erase' command so does not erase bad blocks - fix 'nand write' command so does not write to bad blocks - fix nand_probe() so handles no flash detected properly - add doc/README.nand - add .jffs2 and .oob options to nand read/write - add 'nand bad' command to list bad blocks - add 'clean' option to 'nand erase' to write JFFS2 clean markers - make NAND read/write faster * Patch by Rune Torgersen, 23 May 2003: Update for MPC8266ADS board --- lib_i386/board.c | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) (limited to 'lib_i386/board.c') diff --git a/lib_i386/board.c b/lib_i386/board.c index 193860a87a..85d7d7fb8c 100644 --- a/lib_i386/board.c +++ b/lib_i386/board.c @@ -37,6 +37,7 @@ #include #include #include +#include extern long _i386boot_start; extern long _i386boot_end; @@ -82,21 +83,14 @@ static int mem_malloc_init(void) { DECLARE_GLOBAL_DATA_PTR; -#if 1 /* start malloc area right after the stack */ mem_malloc_start = i386boot_bss_start + i386boot_bss_size + CFG_STACK_SIZE; mem_malloc_start = (mem_malloc_start+3)&~3; -#else - mem_malloc_start = 0x400000; -#endif -#if 1 + /* Use all available RAM for malloc() */ mem_malloc_end = gd->ram_size; -#else - /* Use only CONFIG_MALLOC_SIZE bytes of RAM for malloc() */ - mem_malloc_end = mem_malloc_start + CONFIG_MALLOC_SIZE; -#endif + mem_malloc_brk = mem_malloc_start; return 0; @@ -149,10 +143,10 @@ 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)); + char tmp[64]; /* long enough for environment variables */ + int i = getenv_r("baudrate", tmp, 64); - gd->baudrate = (i > 0) + gd->baudrate = (i != 0) ? (int) simple_strtoul (tmp, NULL, 10) : CONFIG_BAUDRATE; @@ -237,6 +231,7 @@ init_fnc_t *init_sequence[] = { mem_malloc_init, /* dependant on dram_init */ interrupt_init, /* set up exceptions */ timer_init, + serial_init, env_init, /* initialize environment */ init_baudrate, /* initialze baudrate settings */ serial_init, /* serial communications setup */ @@ -267,6 +262,7 @@ void start_i386boot (void) memset (gd->bd, 0, sizeof (bd_t)); show_boot_progress(0x22); + gd->baudrate = CONFIG_BAUDRATE; for (init_fnc_ptr = init_sequence, i=0; *init_fnc_ptr; ++init_fnc_ptr, i++) { show_boot_progress(0xa130|i); @@ -323,7 +319,8 @@ void start_i386boot (void) /* allocate syscalls table (console_init_r will fill it in */ syscall_tbl = (void **) malloc (NR_SYSCALLS * sizeof (void *)); - + memset(syscall_tbl, 0, NR_SYSCALLS * sizeof (void *)); + /* Initialize the console (after the relocation and devices init) */ console_init_r(); syscalls_init(); @@ -355,7 +352,7 @@ void start_i386boot (void) #endif /* enable exceptions */ - enable_interrupts (); + enable_interrupts(); show_boot_progress(0x28); /* Must happen after interrupts are initialized since @@ -369,7 +366,7 @@ void start_i386boot (void) status_led_set (STATUS_LED_BOOT, STATUS_LED_BLINKING); #endif - udelay (20); + udelay(20); set_timer (0); @@ -399,7 +396,7 @@ void start_i386boot (void) #if (CONFIG_COMMANDS & CFG_CMD_DOC) WATCHDOG_RESET(); - puts ("DOC: "); + puts("DOC: "); doc_init(); #endif @@ -428,12 +425,13 @@ void start_i386boot (void) board_poweroff(); } #endif - + + show_boot_progress(0x29); /* main_loop() can return to retry autoboot, if so just run it again. */ for (;;) { - main_loop (); + main_loop(); } /* NOTREACHED - no way out of command loop except booting */ -- cgit v1.2.3