diff options
author | Joel Sing <jsing@cvs.openbsd.org> | 2012-10-09 11:39:58 +0000 |
---|---|---|
committer | Joel Sing <jsing@cvs.openbsd.org> | 2012-10-09 11:39:58 +0000 |
commit | 6d8d4e7980d70c2d122e261bbadd500b6ab2e8b6 (patch) | |
tree | f2dcdd575f89754a92773cc0111e10fefedcce1c /sys/arch/i386/stand/boot | |
parent | 4ca1805b95143c219be93f45e8194ff7adcfea8f (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.S | 5 |
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) - |