diff options
| author | Wolfgang Denk <wd@denx.de> | 2010-10-11 10:00:34 +0200 |
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2010-10-11 10:00:34 +0200 |
| commit | bfc7bea6adc46e1db2f5a5e3464d7652ed67c864 (patch) | |
| tree | 4399dca93e4c42a3f652dd5b0b6143ab4aef50f4 /arch/i386/cpu/start16.S | |
| parent | 29840de6b6d322e9cca3d22d254a1d066afbef02 (diff) | |
| parent | c868af3e57610b41c6ed4fd8d8744d8cc0a21b29 (diff) | |
| download | olio-uboot-2014.01-bfc7bea6adc46e1db2f5a5e3464d7652ed67c864.tar.xz olio-uboot-2014.01-bfc7bea6adc46e1db2f5a5e3464d7652ed67c864.zip | |
Merge branch 'master' of git://git.denx.de/u-boot-x86
Diffstat (limited to 'arch/i386/cpu/start16.S')
| -rw-r--r-- | arch/i386/cpu/start16.S | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/arch/i386/cpu/start16.S b/arch/i386/cpu/start16.S index ebe583584..0a5823d3c 100644 --- a/arch/i386/cpu/start16.S +++ b/arch/i386/cpu/start16.S @@ -22,6 +22,7 @@ * MA 02111-1307 USA */ +#include <asm/global_data.h> #define BOOT_SEG 0xffff0000 /* linear segment of boot code */ #define a32 .byte 0x67; @@ -31,16 +32,20 @@ .code16 .globl start16 start16: - /* First we let the BSP do some early initialization + /* Set the Cold Boot / Hard Reset flag */ + movl $GD_FLG_COLD_BOOT, %ebx + + /* + * First we let the BSP do some early initialization * this code have to map the flash to its final position */ - mov $board_init16_ret, %bp jmp board_init16 +.globl board_init16_ret board_init16_ret: /* Turn of cache (this might require a 486-class CPU) */ movl %cr0, %eax - orl $0x60000000,%eax + orl $0x60000000, %eax movl %eax, %cr0 wbinvd @@ -50,18 +55,15 @@ o32 cs lgdt gdt_ptr /* Now, we enter protected mode */ movl %cr0, %eax - orl $1,%eax + orl $1, %eax movl %eax, %cr0 /* Flush the prefetch queue */ jmp ff ff: - /* Tell 32-bit code it is being entered from hard-reset */ - movw $0x0001, %bx - /* Finally jump to the 32bit initialization code */ movw $code32start, %ax - movw %ax,%bp + movw %ax, %bp o32 cs ljmp *(%bp) /* 48-bit far pointer */ |