diff options
author | Graeme Russ <graeme.russ@gmail.com> | 2010-10-07 20:03:30 +1100 |
---|---|---|
committer | Graeme Russ <graeme.russ@gmail.com> | 2010-10-07 20:03:30 +1100 |
commit | c81b26beb87c5dbf6b5f68b779e529915178b17c (patch) | |
tree | aba732ebc0632ecbd73ef0d1c55f48d2375cde8f /arch/i386/cpu/start.S | |
parent | 161b3589ea19ad262a2eebbf7b4f10aeb6812f35 (diff) | |
download | u-boot-imx-c81b26beb87c5dbf6b5f68b779e529915178b17c.zip u-boot-imx-c81b26beb87c5dbf6b5f68b779e529915178b17c.tar.gz u-boot-imx-c81b26beb87c5dbf6b5f68b779e529915178b17c.tar.bz2 |
x86: Set cold/warm boot flag
Diffstat (limited to 'arch/i386/cpu/start.S')
-rw-r--r-- | arch/i386/cpu/start.S | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/arch/i386/cpu/start.S b/arch/i386/cpu/start.S index cff4637..8fdcd81 100644 --- a/arch/i386/cpu/start.S +++ b/arch/i386/cpu/start.S @@ -51,7 +51,7 @@ _i386boot_start: wbinvd /* Tell 32-bit code it is being entered from an in-RAM copy */ - movw $0x0000, %bx + movw $GD_FLG_WARM_BOOT, %bx _start: /* This is the 32-bit cold-reset entry point */ @@ -66,18 +66,10 @@ _start: /* Clear the interupt vectors */ lidt blank_idt_ptr - /* - * Skip low-level board and memory initialization if not starting - * from cold-reset. This allows us to do a fail safe boot-strap - * into a new build of U-Boot from a known-good boot flash - */ - movw $0x0001, %ax - cmpw %ax, %bx - jne mem_init_ret - - /* We call a few functions in the board support package - * since we have no stack yet we'll have to use %ebp - * to store the return address */ + /* Skip low-level initialization if not starting from cold-reset */ + movl %ebx, %ecx + andl $GD_FLG_COLD_BOOT, %ecx + jz skip_mem_init /* Early platform init (setup gpio, etc ) */ jmp early_board_init @@ -89,6 +81,7 @@ early_board_init_ret: .globl mem_init_ret mem_init_ret: +skip_mem_init: /* fetch memory size (into %eax) */ jmp get_mem_size .globl get_mem_size_ret |