| Branch: | Revision:

root / pc-bios / optionrom / linuxboot.S @ 75b9f690

History | View | Annotate | Download (2.9 kB)

# Date Author Comment
75b9f690 03/22/2011 08:00 am Gleb Natapov

fix linuxboot.bin and multiboot.bin to not hijack int19

Currently linuxboot.bin and multiboot.bin option roms override int19
vector to intercept boot process. No sane option rom should do that.
Provide bev entry instead that will be called by BIOS if option rom...

590bf491 06/09/2010 01:35 pm Alexander Graf

Fix multiboot compilation

Commit dd4239d6574ca41c94fc0d0f77ddc728510ffc57 broke multiboot. It replaced the
instruction "rep insb (%dx), %es:(%edi)" by the binary output of
"addr32 rep insb (%dx), %es:(%di)".

Linuxboot calls the respective helper function in a code16 section. So the...

d0652aa8 01/08/2010 05:58 pm Avi Kivity

linuxboot: fix gdt address calculation

The gdt address calculation in linuxboot.bin is broken in two ways: first
it loads %cs into %eax, but that instruction leaves the high bits of %eax
undefined and we did not clear them. Secondly, we completely ignore the...

36ecd7c0 12/18/2009 07:26 pm Paolo Bonzini

Fix thinko in linuxboot.S

The %gs segment that was used was not matching the comments.
I just moved the GDT descriptor on the stack instead.

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Anthony Liguori <>

dc61b0dc 12/03/2009 11:25 pm Alexander Graf

Make -kernel for linux work with bochsbios

While trying to run -kernel with -bios pc-bios/pcbios.bin, I realized
that I was actually writing data to %es, but only set up %ds to a 32-bit
segment we want to write to.

So at the end of the day the data hasn't actually been copied. Oops....

57a46d05 11/17/2009 06:39 pm Alexander Graf

Convert linux bootrom to external rom and fw_cfg

We already have a working multiboot implementation that uses fw_cfg to get
its kernel module etc. data in int19 runtime now.

So what's missing is a working linux boot option rom. While at it I figured it
would be a good idea to take the opcode generator out of pc.c and instead use...