summaryrefslogtreecommitdiff
path: root/arch/i386/cpu/start16.S
diff options
context:
space:
mode:
authorWolfgang Denk <wd@denx.de>2010-10-11 10:00:34 +0200
committerWolfgang Denk <wd@denx.de>2010-10-11 10:00:34 +0200
commitbfc7bea6adc46e1db2f5a5e3464d7652ed67c864 (patch)
tree4399dca93e4c42a3f652dd5b0b6143ab4aef50f4 /arch/i386/cpu/start16.S
parent29840de6b6d322e9cca3d22d254a1d066afbef02 (diff)
parentc868af3e57610b41c6ed4fd8d8744d8cc0a21b29 (diff)
downloadolio-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.S18
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 */