aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pc-bios/optionrom/kvmvapic.S18
1 files changed, 8 insertions, 10 deletions
diff --git a/pc-bios/optionrom/kvmvapic.S b/pc-bios/optionrom/kvmvapic.S
index 856c1e519d..aa17a402df 100644
--- a/pc-bios/optionrom/kvmvapic.S
+++ b/pc-bios/optionrom/kvmvapic.S
@@ -9,12 +9,10 @@
# option) any later version. See the COPYING file in the top-level directory.
#
- .text 0
- .code16
-.global _start
-_start:
- .short 0xaa55
- .byte (_end - _start) / 512
+#include "optionrom.h"
+
+OPTION_ROM_START
+
# clear vapic area: firmware load using rep insb may cause
# stale tpr/isr/irr data to corrupt the vapic area.
push %es
@@ -26,8 +24,11 @@ _start:
cld
rep stosw
pop %es
+
+ # announce presence to the hypervisor
mov $vapic_base, %ax
out %ax, $0x7e
+
lret
.code32
@@ -331,7 +332,4 @@ up_set_tpr_poll_irq:
vapic:
. = . + vapic_size
-.byte 0 # reserve space for signature
-.align 512, 0
-
-_end:
+OPTION_ROM_END