Revision 75b9f690
b/pc-bios/optionrom/linuxboot.S | ||
---|---|---|
22 | 22 |
|
23 | 23 |
#include "optionrom.h" |
24 | 24 |
|
25 |
#define BOOT_ROM_PRODUCT "Linux loader" |
|
26 |
|
|
25 | 27 |
BOOT_ROM_START |
26 | 28 |
|
27 | 29 |
run_linuxboot: |
b/pc-bios/optionrom/multiboot.S | ||
---|---|---|
20 | 20 |
|
21 | 21 |
#include "optionrom.h" |
22 | 22 |
|
23 |
#define BOOT_ROM_PRODUCT "multiboot loader" |
|
24 |
|
|
23 | 25 |
#define MULTIBOOT_MAGIC 0x2badb002 |
24 | 26 |
|
25 | 27 |
#define GS_PROT_JUMP 0 |
b/pc-bios/optionrom/optionrom.h | ||
---|---|---|
97 | 97 |
|
98 | 98 |
#define BOOT_ROM_START \ |
99 | 99 |
OPTION_ROM_START \ |
100 |
push %eax; \ |
|
101 |
push %ds; \ |
|
102 |
\ |
|
103 |
/* setup ds so we can access the IVT */ \ |
|
104 |
xor %ax, %ax; \ |
|
105 |
mov %ax, %ds; \ |
|
106 |
\ |
|
107 |
/* install our int 19 handler */ \ |
|
108 |
movw $int19_handler, (0x19*4); \ |
|
109 |
mov %cs, (0x19*4+2); \ |
|
110 |
\ |
|
111 |
pop %ds; \ |
|
112 |
pop %eax; \ |
|
113 | 100 |
lret; \ |
114 |
\ |
|
115 |
int19_handler:; \ |
|
101 |
.org 0x18; \ |
|
102 |
.short 0; \ |
|
103 |
.short _pnph; \ |
|
104 |
_pnph: \ |
|
105 |
.ascii "$PnP"; \ |
|
106 |
.byte 0x01; \ |
|
107 |
.byte ( _pnph_len / 16 ); \ |
|
108 |
.short 0x0000; \ |
|
109 |
.byte 0x00; \ |
|
110 |
.byte 0x00; \ |
|
111 |
.long 0x00000000; \ |
|
112 |
.short _manufacturer; \ |
|
113 |
.short _product; \ |
|
114 |
.long 0x00000000; \ |
|
115 |
.short 0x0000; \ |
|
116 |
.short 0x0000; \ |
|
117 |
.short _bev; \ |
|
118 |
.short 0x0000; \ |
|
119 |
.short 0x0000; \ |
|
120 |
.equ _pnph_len, . - _pnph; \ |
|
121 |
_bev:; \ |
|
116 | 122 |
/* DS = CS */ \ |
117 | 123 |
movw %cs, %ax; \ |
118 | 124 |
movw %ax, %ds; |
... | ... | |
122 | 128 |
_end: |
123 | 129 |
|
124 | 130 |
#define BOOT_ROM_END \ |
131 |
_manufacturer:; \ |
|
132 |
.asciz "QEMU"; \ |
|
133 |
_product:; \ |
|
134 |
.asciz BOOT_ROM_PRODUCT; \ |
|
125 | 135 |
OPTION_ROM_END |
126 | 136 |
|
Also available in: Unified diff