summaryrefslogtreecommitdiff
path: root/sys/arch/i386/stand/boot
diff options
context:
space:
mode:
authorJoel Sing <jsing@cvs.openbsd.org>2012-10-09 11:39:58 +0000
committerJoel Sing <jsing@cvs.openbsd.org>2012-10-09 11:39:58 +0000
commit6d8d4e7980d70c2d122e261bbadd500b6ab2e8b6 (patch)
treef2dcdd575f89754a92773cc0111e10fefedcce1c /sys/arch/i386/stand/boot
parent4ca1805b95143c219be93f45e8194ff7adcfea8f (diff)
Dynamically build the Interrupt Descriptor Table (IDT), instead of using
a static table. This allows the IDT to be placed in .bss and avoids the "relocation truncated" errors that result from the linker trying to put a 32-bit address into a 16-bit hole. With input from Marco Peereboom. ok weingart@
Diffstat (limited to 'sys/arch/i386/stand/boot')
-rw-r--r--sys/arch/i386/stand/boot/srt0.S5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/arch/i386/stand/boot/srt0.S b/sys/arch/i386/stand/boot/srt0.S
index 9a1d6264df3..81e3d7b4f7d 100644
--- a/sys/arch/i386/stand/boot/srt0.S
+++ b/sys/arch/i386/stand/boot/srt0.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: srt0.S,v 1.14 2003/11/22 09:18:25 grange Exp $ */
+/* $OpenBSD: srt0.S,v 1.15 2012/10/09 11:39:57 jsing Exp $ */
/*
* Copyright (c) 1997 Michael Shalayeff
@@ -73,7 +73,6 @@ _start:
movl %edx, _C_LABEL(bios_bootdev)
/* Now do it all */
- call _ASM_LABEL(pmm_init)
#ifdef DEBUG
movl $0xb80a4, %ebx
movl $0x07520752, (%ebx)
@@ -86,7 +85,7 @@ _start:
cld
rep; stosb
+ call _ASM_LABEL(pmm_init)
call _C_LABEL(boot)
jmp _C_LABEL(_rtt)
-