diff options
Diffstat (limited to 'lib_i386/board.c')
-rw-r--r-- | lib_i386/board.c | 58 |
1 files changed, 27 insertions, 31 deletions
diff --git a/lib_i386/board.c b/lib_i386/board.c index 85d7d7f..5d1c1fb 100644 --- a/lib_i386/board.c +++ b/lib_i386/board.c @@ -1,10 +1,10 @@ /* * (C) Copyright 2002 * Daniel Engström, Omicron Ceti AB, daniel@omicron.se - * + * * (C) Copyright 2002 * Wolfgang Denk, DENX Software Engineering, wd@denx.de. - * + * * (C) Copyright 2002 * Sysgo Real-Time Solutions, GmbH <www.elinos.com> * Marius Groeger <mgroeger@sysgo.de> @@ -39,18 +39,18 @@ #include <ide.h> #include <asm/u-boot-i386.h> -extern long _i386boot_start; -extern long _i386boot_end; +extern long _i386boot_start; +extern long _i386boot_end; extern long _i386boot_romdata_start; -extern long _i386boot_romdata_dest; -extern long _i386boot_romdata_size; -extern long _i386boot_bss_start; -extern long _i386boot_bss_size; +extern long _i386boot_romdata_dest; +extern long _i386boot_romdata_size; +extern long _i386boot_bss_start; +extern long _i386boot_bss_size; -extern long _i386boot_realmode; +extern long _i386boot_realmode; extern long _i386boot_realmode_size; -extern long _i386boot_bios; -extern long _i386boot_bios_size; +extern long _i386boot_bios; +extern long _i386boot_bios_size; /* The symbols defined by the linker script becomes pointers * which is somewhat inconveient ... */ @@ -82,15 +82,15 @@ static ulong mem_malloc_brk = 0; static int mem_malloc_init(void) { DECLARE_GLOBAL_DATA_PTR; - + /* start malloc area right after the stack */ - mem_malloc_start = i386boot_bss_start + + mem_malloc_start = i386boot_bss_start + i386boot_bss_size + CFG_STACK_SIZE; mem_malloc_start = (mem_malloc_start+3)&~3; - + /* Use all available RAM for malloc() */ mem_malloc_end = gd->ram_size; - + mem_malloc_brk = mem_malloc_start; return 0; @@ -162,9 +162,9 @@ static int display_banner (void) i386boot_start, i386boot_romdata_start-1, i386boot_romdata_dest, i386boot_romdata_dest+i386boot_romdata_size-1, i386boot_bss_start, i386boot_bss_start+i386boot_bss_size-1, - i386boot_bss_start+i386boot_bss_size, + i386boot_bss_start+i386boot_bss_size, i386boot_bss_start+i386boot_bss_size+CFG_STACK_SIZE-1); - + return (0); } @@ -187,7 +187,7 @@ static int display_dram_config (void) printf ("Bank #%d: %08lx ", i, gd->bd->bi_dram[i].start); print_size (gd->bd->bi_dram[i].size, "\n"); } - + return (0); } @@ -198,7 +198,6 @@ static void display_flash_config (ulong size) } - /* * Breath some life into the board... * @@ -230,7 +229,7 @@ init_fnc_t *init_sequence[] = { dram_init, /* configure available RAM banks */ mem_malloc_init, /* dependant on dram_init */ interrupt_init, /* set up exceptions */ - timer_init, + timer_init, serial_init, env_init, /* initialize environment */ init_baudrate, /* initialze baudrate settings */ @@ -252,18 +251,18 @@ void start_i386boot (void) static gd_t gd_data; static bd_t bd_data; init_fnc_t **init_fnc_ptr; - + show_boot_progress(0x21); gd = global_data = &gd_data; - + memset (gd, 0, sizeof (gd_t)); gd->bd = &bd_data; 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); @@ -320,7 +319,7 @@ 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(); @@ -361,7 +360,7 @@ void start_i386boot (void) #ifdef CONFIG_SERIAL_SOFTWARE_FIFO serial_buffered_init(); #endif - + #ifdef CONFIG_STATUS_LED status_led_set (STATUS_LED_BOOT, STATUS_LED_BLINKING); #endif @@ -417,7 +416,6 @@ void start_i386boot (void) #endif - #ifdef CONFIG_POST post_run (NULL, POST_RAM | post_bootmode_get(0)); if (post_bootmode_get(0) & POST_POWERFAIL) { @@ -425,10 +423,10 @@ 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(); @@ -442,5 +440,3 @@ void hang (void) puts ("### ERROR ### Please RESET the board ###\n"); for (;;); } - - |