summaryrefslogtreecommitdiff
path: root/arch/i386/cpu/start16.S
diff options
context:
space:
mode:
authorGraeme Russ <graeme.russ@gmail.com>2010-08-22 16:25:59 +1000
committerGraeme Russ <graeme.russ@gmail.com>2010-09-13 07:20:02 +1000
commit797960fda18688fc309bb12c98912fa6eb508733 (patch)
tree7403f29e46d87505fab4f0a4b4deaea153e531a7 /arch/i386/cpu/start16.S
parenta806ee6fae19a615fb806a6f01e5398b087e898a (diff)
downloadu-boot-imx-797960fda18688fc309bb12c98912fa6eb508733.zip
u-boot-imx-797960fda18688fc309bb12c98912fa6eb508733.tar.gz
u-boot-imx-797960fda18688fc309bb12c98912fa6eb508733.tar.bz2
x86: Fix x86 Cold Boot
Commit 077e1958ca4afe12d88043b123ded058c51b89f7 broke the ability of the x86 port to boot from a cold-reset by removing the initial IDT. Re- instate the initial IDT to allow cold-booting of x86 boards
Diffstat (limited to 'arch/i386/cpu/start16.S')
-rw-r--r--arch/i386/cpu/start16.S5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/i386/cpu/start16.S b/arch/i386/cpu/start16.S
index 3e8b2cc..ebe5835 100644
--- a/arch/i386/cpu/start16.S
+++ b/arch/i386/cpu/start16.S
@@ -45,6 +45,7 @@ board_init16_ret:
wbinvd
/* load the temporary Global Descriptor Table */
+o32 cs lidt idt_ptr
o32 cs lgdt gdt_ptr
/* Now, we enter protected mode */
@@ -68,6 +69,10 @@ code32start:
.long _start /* offset */
.word 0x10 /* segment */
+idt_ptr:
+ .word 0 /* limit */
+ .long 0 /* base */
+
/*
* The following Global Descriptor Table is just enough to get us into
* 'Flat Protected Mode' - It will be discarded as soon as the final