From 6d8d4e7980d70c2d122e261bbadd500b6ab2e8b6 Mon Sep 17 00:00:00 2001 From: Joel Sing Date: Tue, 9 Oct 2012 11:39:58 +0000 Subject: 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@ --- sys/arch/i386/stand/boot/srt0.S | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'sys/arch/i386/stand/boot') 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) - -- cgit v1.2.3