diff options
Diffstat (limited to 'arch/i386/cpu/start.S')
-rw-r--r-- | arch/i386/cpu/start.S | 28 |
1 files changed, 11 insertions, 17 deletions
diff --git a/arch/i386/cpu/start.S b/arch/i386/cpu/start.S index 00313897ce..2124a42c9d 100644 --- a/arch/i386/cpu/start.S +++ b/arch/i386/cpu/start.S @@ -1,7 +1,11 @@ /* * U-boot - i386 Startup Code * - * Copyright (c) 2002 Omicron Ceti AB, Daniel Engström <denaiel@omicron.se> + * (C) Copyright 2008-2011 + * Graeme Russ, <graeme.russ@gmail.com> + * + * (C) Copyright 2002 + * Daniel Engström, Omicron Ceti AB, <daniel@omicron.se> * * See file CREDITS for list of people who contributed to this * project. @@ -22,13 +26,11 @@ * MA 02111-1307 USA */ - #include <config.h> #include <version.h> #include <asm/global_data.h> #include <asm/processor-flags.h> - .section .text .code32 .globl _start @@ -56,8 +58,8 @@ _i386boot_start: _start: /* This is the 32-bit cold-reset entry point */ - movl $0x18, %eax /* Load our segement registes, the - * gdt have already been loaded by start16.S */ + /* Load the segement registes to match the gdt loaded in start16.S */ + movl $0x18, %eax movw %ax, %fs movw %ax, %ds movw %ax, %gs @@ -82,21 +84,13 @@ car_init_ret: * starting at CONFIG_SYS_CAR_ADDR to be used as a temporary stack */ movl $CONFIG_SYS_INIT_SP_ADDR, %esp - movl $CONFIG_SYS_INIT_GD_ADDR, %ebp - - /* Set Boot Flags in Global Data */ - movl %ebx, (GD_FLAGS * 4)(%ebp) - - /* Determine our load offset (and put in Global Data) */ - call 1f -1: popl %ecx - subl $1b, %ecx - movl %ecx, (GD_LOAD_OFF * 4)(%ebp) /* Set parameter to board_init_f() to boot flags */ - movl (GD_FLAGS * 4)(%ebp), %eax + xorl %eax, %eax + movw %bx, %ax - call board_init_f /* Enter, U-boot! */ + /* Enter, U-boot! */ + call board_init_f /* indicate (lack of) progress */ movw $0x85, %ax |