[SeaBIOS] vga bios woes
Kevin O'Connor
kevin at koconnor.net
Fri Jan 4 01:13:57 CET 2013
On Thu, Jan 03, 2013 at 02:31:43PM -0700, Alex Williamson wrote:
> Hi,
>
> I was playing a bit with vfio-based PCI device assignment of VGA in qemu
> and I seem to be hitting a wall just trying to jump into the VGA BIOS.
> I'm booting qemu with -vga none and assigning a radeon hd5450 via
> vfio-pci with some extra code to handle passing legacy accesses through
> to the host. Legacy access hardly seems to matter though as the
> experiment quickly dies when the vcpu starts executing zero'd memory.
> gdb shows me something like this:
>
[...]
> 0x000fbd20: 66 ea 26 bd 28 00 ljmpw $0x28,$0xbd26
> 0x0000bd26: 00 00 add %al,(%eax)
Everything looks okay except for here. I'd guess it's likely just a
reporting issue. The code being run is actually at 0xfbd26 - as part
of jumping into real-mode, the code has a segment offset (0xf0000)
that must be added in.
> Trying to follow the code into __callrom(), I'm really confused how the
> option rom init vector is actually used since callrom() passes the
> option rom header offset to the init vector rather than anything
> actually resembling the value of the init vector. I really don't know
> x86 though, so maybe I'm missing something.
The option rom should actually have code (eg, a jmp instruction) at
offset 3 of the option rom. So, the goal really is to jump to the 3rd
byte of the option rom to execute it.
-Kevin
More information about the SeaBIOS
mailing list