[SeaBIOS] [Qemu-devel] SeaVGABIOS and winxp

Michael Tokarev mjt at tls.msk.ru
Sun Apr 15 23:58:47 CEST 2012

On 16.04.2012 01:07, Kevin O'Connor wrote:
> On Mon, Apr 16, 2012 at 12:17:09AM +0400, Michael Tokarev wrote:
>> On 15.04.2012 06:48, Kevin O'Connor wrote:
>>> * Many enhancements to VGA BIOS code - it should now be feature complete with LGPL vgabios.
>> This is something which prompted me to test the new release,
>> but it gives... interesting results.
>> WinXP guest is unable to find drivers for the video adaptor
>> with -vga std and this vgabios.bin, not even its "standard VGA"
>> fallback driver.  The device in question is detected as "Other
>> devices / Video controller (VGA compat.)", and its identification
>> looks like:
>>  PCI\VEN_1234&DEV_1111&SUBSYS_11001AF4&REV_00\3&13C0B0C5&0&10
>> This appears to be bogus somehow, no?
> It seems to work okay for me.  What did you select in Kconfig, where
> did you put the resulting out/vgabios.bin file, and what emulator are
> you using?

Kconfig was all defaults except VGA ROM pieces (which are off
by default).  I selected VGA_STANDARD_VGA, VGA_VBE, VGA_PCI and
left OVERRIDE_PCI_ID UNselected, since I didn't know what to
put there.  Maybe the last item was my mistake.

The binaries were put into right place where qemu-kvm picked
them -- -bios /path/to/seabios/git/out/bios.bin, and vgabios.bin
into the standard qemu-kvm directory, as vgabios-stdvga.bin.
I think I learned where to put this stuff by now, after maintaining
Debian package of qemu-kvm for over 2 years... ;)

This is qemu-kvm 1.0, I haven't tried with current qemu git

> Also, if using qemu/kvm add "-chardev stdio,id=seabios -device
> isa-debugcon,iobase=0x402,chardev=seabios" to the command line and
> post the resulting debug log.

Here it is:

Start bios (version rel-1.7.0-0-ga026308-dirty-20120416_000009-gandalf)
Ram Size=0x40000000 (0x0000000000000000 high)
Relocating init from 0x000e4360 to 0x3ffe1bb0 (size 58148)
CPU Mhz=3217
=== PCI bus & bridge init ===
PCI: pci_bios_init_bus_rec bus = 0x0
=== PCI device probing ===
Found 6 PCI devices (max PCI bus is 00)
=== PCI new allocation pass #1 ===
PCI: check devices
=== PCI new allocation pass #2 ===
PCI: init bases bus 0 (primary)
  type io max 40 sum 50 base c000
    size       40: 1 bar(s),     c000 ->     c03f
    size       10: 1 bar(s),     c040 ->     c04f
  type mem max 10000 sum 11000 base febe0000
    size    10000: 1 bar(s), febe0000 -> febeffff
    size     1000: 1 bar(s), febf0000 -> febf0fff
  type prefmem max 1000000 sum 1000000 base fd000000
    size  1000000: 1 bar(s), fd000000 -> fdffffff
PCI: map device bdf=00:00.0
PCI: map device bdf=00:01.0
PCI: map device bdf=00:01.1
  bar 4, addr c040, size 10 [io]
PCI: map device bdf=00:01.3
PCI: map device bdf=00:02.0
  bar 0, addr fd000000, size 1000000 [prefmem]
  bar 6, addr febe0000, size 10000 [mem]
PCI: map device bdf=00:03.0
  bar 0, addr c000, size 40 [io]
  bar 1, addr febf0000, size 1000 [mem]
PCI: init bdf=00:00.0 id=8086:1237
PCI: init bdf=00:01.0 id=8086:7000
PCI: init bdf=00:01.1 id=8086:7010
PCI: init bdf=00:01.3 id=8086:7113
PCI: init bdf=00:02.0 id=1234:1111
PCI: init bdf=00:03.0 id=1af4:1001
PIIX3/PIIX4 init: elcr=00 0c
Found 1 cpu(s) max supported 1 cpu(s)
MP table addr=0x000fdb00 MPC table addr=0x000fdb10 size=224
SMBIOS ptr=0x000fdae0 table=0x000fd9d0 size=263
ACPI DSDT=0x3fffe470
ACPI tables: RSDP=0x000fd9a0 RSDT=0x3fffe430
Scan for VGA option rom
Running option rom at c000:0003
Start SeaVGABIOS (version rel-1.7.0-0-ga026308-dirty-20120416_000011-gandalf)
enter vga_post:
   a=00000010  b=0000ffff  c=00000000  d=0000ffff ds=0000 es=f000 ss=0000
  si=00000000 di=0000d0a0 bp=00000000 sp=00006e6a cs=f000 ip=c60c  f=6e9a
Turning on vga text mode console
set VGA mode 3
SeaBIOS (version rel-1.7.0-0-ga026308-dirty-20120416_000009-gandalf)

Found 1 lpt ports
Found 1 serial ports
ATA controller 1 at 1f0/3f4/0 (irq 14 dev 9)
ATA controller 2 at 170/374/0 (irq 15 dev 9)
found virtio-blk at 0:3
ebda moved from 9fc00 to 9dc00
Searching bootorder for: /pci at i0cf8/*@3
Searching bootorder for: /pci at i0cf8/*@1,1/drive at 1/disk at 0
PS2 keyboard initialized
All threads complete.
Scan for option roms
Searching bootorder for: /rom at genroms/vapic.bin
drive 0x000fd950: PCHS=8322/16/63 translation=lba LCHS=522/255/63 s=8388608
Running option rom at c880:0003
Returned 57344 bytes of ZoneHigh
e820 map has 7 items:
  0: 0000000000000000 - 000000000009dc00 = 1 RAM
  1: 000000000009dc00 - 00000000000a0000 = 2 RESERVED
  2: 00000000000f0000 - 0000000000100000 = 2 RESERVED
  3: 0000000000100000 - 000000003fffe000 = 1 RAM
  4: 000000003fffe000 - 0000000040000000 = 2 RESERVED
  5: 00000000feffc000 - 00000000ff000000 = 2 RESERVED
  6: 00000000fffc0000 - 0000000100000000 = 2 RESERVED
enter handle_19:
Booting from Hard Disk...
Booting from 0000:7c00
set VGA mode 12
pnp call arg1=0
set VGA mode 3
set VGA mode 12
VBE mode set: 102
set VGA mode 102
VBE mode set: 102
set VGA mode 102
set VGA mode 12
set VGA mode 12
[win displays login prompt]

Thank you!


More information about the SeaBIOS mailing list