summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pc-bios/optionrom/linuxboot.S2
-rw-r--r--pc-bios/optionrom/multiboot.S2
-rw-r--r--pc-bios/optionrom/optionrom.h40
3 files changed, 29 insertions, 15 deletions
diff --git a/pc-bios/optionrom/linuxboot.S b/pc-bios/optionrom/linuxboot.S
index c10936344d..748c831160 100644
--- a/pc-bios/optionrom/linuxboot.S
+++ b/pc-bios/optionrom/linuxboot.S
@@ -22,6 +22,8 @@
#include "optionrom.h"
+#define BOOT_ROM_PRODUCT "Linux loader"
+
BOOT_ROM_START
run_linuxboot:
diff --git a/pc-bios/optionrom/multiboot.S b/pc-bios/optionrom/multiboot.S
index 913183739c..cc5ca1b7d1 100644
--- a/pc-bios/optionrom/multiboot.S
+++ b/pc-bios/optionrom/multiboot.S
@@ -20,6 +20,8 @@
#include "optionrom.h"
+#define BOOT_ROM_PRODUCT "multiboot loader"
+
#define MULTIBOOT_MAGIC 0x2badb002
#define GS_PROT_JUMP 0
diff --git a/pc-bios/optionrom/optionrom.h b/pc-bios/optionrom/optionrom.h
index fbdd48a021..aa783deed1 100644
--- a/pc-bios/optionrom/optionrom.h
+++ b/pc-bios/optionrom/optionrom.h
@@ -97,22 +97,28 @@
#define BOOT_ROM_START \
OPTION_ROM_START \
- push %eax; \
- push %ds; \
- \
- /* setup ds so we can access the IVT */ \
- xor %ax, %ax; \
- mov %ax, %ds; \
- \
- /* install our int 19 handler */ \
- movw $int19_handler, (0x19*4); \
- mov %cs, (0x19*4+2); \
- \
- pop %ds; \
- pop %eax; \
lret; \
- \
- int19_handler:; \
+ .org 0x18; \
+ .short 0; \
+ .short _pnph; \
+ _pnph: \
+ .ascii "$PnP"; \
+ .byte 0x01; \
+ .byte ( _pnph_len / 16 ); \
+ .short 0x0000; \
+ .byte 0x00; \
+ .byte 0x00; \
+ .long 0x00000000; \
+ .short _manufacturer; \
+ .short _product; \
+ .long 0x00000000; \
+ .short 0x0000; \
+ .short 0x0000; \
+ .short _bev; \
+ .short 0x0000; \
+ .short 0x0000; \
+ .equ _pnph_len, . - _pnph; \
+ _bev:; \
/* DS = CS */ \
movw %cs, %ax; \
movw %ax, %ds;
@@ -122,5 +128,9 @@
_end:
#define BOOT_ROM_END \
+ _manufacturer:; \
+ .asciz "QEMU"; \
+ _product:; \
+ .asciz BOOT_ROM_PRODUCT; \
OPTION_ROM_END