[vfio-users] IGD passthrough: No Seabios output; PTE read access not set

Manuel Ullmann ullman.alias at posteo.de
Sat Dec 10 17:11:41 UTC 2016


> On Sat, 10 Dec 2016 02:07:43 +0100 > Manuel Ullmann <ullman.alias at posteo.de> wrote: > >>
qemu-system-x86_64 -cpu host\ >>                    -usb\
>>                    -machine type=pc,accel=kvm\ >>                   
-enable-kvm\ >>                    -vga none\ >>                   
-nographic\ >>                    -display none\ >>                   
-nodefconfig\ >>                    -display none\ >>                   
-boot once=d\ >>                    -bios /usr/share/qemu/bios.bin\
>>                    -m 2G\ >>                    -drive >>
file=/dev/genhd/ReactOS,cache=none,if=virtio,format=raw,index=0\
>>                    -drive >>
file=/mnt/platz/Betriebssystemabbilder/virtio-win-0.1.118.iso,media=cdrom,index=2\
>>                    -smb /mnt/platz/QemuShare\ >>                    #
headphone DAC >>                    -usbdevice host:1019:0011\
>>                    # mouse >>                    -usbdevice
host:046d:c246\ >>                    -device >>
vfio-pci,host=00:02.0,addr=02.0,bus=pci.0,x-vga=on,romfile=/mnt/platz/Bugs/intelBios/intelHaswell.rom\
> > The ROM is always suspect, where did you get it?  Why are you
passing > one rather than letting QEMU get it?  The typical case for IGD
ROMs > acquired through the rom file in sysfs is that the device ID does
not > match and the checksum is off.  Either of these will prevent
SeaBIOS > from using it.  QEMU will fix both of these automatically when
it loads > the ROM itself.  If passing a romfile, you need to fix those
in > advance.  Adding a serial console will generally give you SeaBIOS >
logging.  Thanks, > > Alex

Ok, thanks for the hint. So, I get until the following section in your
patch:

+                hw_error("vfio-igd: Guest attempted to program IGD GTT
before "
+                         "BIOS reserved stolen memory.  Unsupported
BIOS?");

The vm will not boot anymore, but I guess that is caused by the pass
through being tried finally.

Best regards,
Manuel

New log:

qemu-system-x86_64: -smb /mnt/platz/QemuShare: The -smb option is
deprecated. Please use '-netdev user,smb=...' instead.
qemu-system-x86_64: Warning: speed mismatch trying to attach usb device
"FOSTEX USB AUDIO HP-A4" (high speed) to bus "usb-bus.0", port "1" (full
speed)
SeaBIOS (version 1.8.2-20150714_191116-)
RamSize: 0x80000000 [cmos]
Relocating init from 0x000e1980 to 0x7ffb0620 (size 63776)
Found QEMU fw_cfg
RamBlock: addr 0x0000000000000000 len 0x0000000080000000 [e820]
Moving pm_base to 0x600
CPU Mhz=3206
=== PCI bus & bridge init ===
PCI: pci_bios_init_bus_rec bus = 0x0
=== PCI device probing ===
Found 9 PCI devices (max PCI bus is 00)
=== PCI new allocation pass #1 ===
PCI: check devices
=== PCI new allocation pass #2 ===
PCI: IO: c000 - c0cf
PCI: 32: 0000000080000000 - 00000000fec00000
PCI: map device bdf=00:02.0  bar 4, addr 0000c000, size 00000040 [io]
PCI: map device bdf=00:04.0  bar 0, addr 0000c040, size 00000040 [io]
PCI: map device bdf=00:01.2  bar 4, addr 0000c080, size 00000020 [io]
PCI: map device bdf=00:03.0  bar 0, addr 0000c0a0, size 00000020 [io]
PCI: map device bdf=00:01.1  bar 4, addr 0000c0c0, size 00000010 [io]
PCI: map device bdf=00:02.0  bar 0, addr fe400000, size 00400000 [mem]
PCI: map device bdf=00:03.0  bar 6, addr fe800000, size 00040000 [mem]
PCI: map device bdf=00:02.0  bar 6, addr fe840000, size 00020000 [mem]
PCI: map device bdf=00:03.0  bar 1, addr fe860000, size 00001000 [mem]
PCI: map device bdf=00:04.0  bar 1, addr fe861000, size 00001000 [mem]
PCI: map device bdf=00:02.0  bar 2, addr e0000000, size 10000000 [prefmem]
PCI: map device bdf=00:03.0  bar 4, addr f0000000, size 00800000 [prefmem]
PCI: map device bdf=00:04.0  bar 4, addr f0800000, size 00800000 [prefmem]
PCI: init bdf=00:00.0 id=8086:1237
PCI: init bdf=00:01.0 id=8086:7000
PIIX3/PIIX4 init: elcr=00 0c
PCI: init bdf=00:01.1 id=8086:7010
PCI: init bdf=00:01.2 id=8086:7020
PCI: init bdf=00:01.3 id=8086:7113
Using pmtimer, ioport 0x608
PCI: init bdf=00:02.0 id=8086:0412
PCI: init bdf=00:03.0 id=1af4:1000
PCI: init bdf=00:04.0 id=1af4:1001
PCI: init bdf=00:1f.0 id=8086:8c4a
PCI: Using 00:02.0 for primary VGA
Found 1 cpu(s) max supported 1 cpu(s)
Copying PIR from 0x7ffbfc80 to 0x000f1220
Copying MPTABLE from 0x00006e20/7ffa72c0 to 0x000f1120
Copying SMBIOS entry point from 0x00006e20 to 0x000f0f70
Scan for VGA option rom
Running option rom at c000:0003
qemu: hardware error: vfio-igd: Guest attempted to program IGD GTT
before BIOS reserved stolen memory.  Unsupported BIOS?
CPU #0:
EAX=dd200001 EBX=0000c000 ECX=000000ff EDX=0000c004
ESI=00000001 EDI=00000080 EBP=00000000 ESP=00006d4c
EIP=00006d9e EFL=00000082 [--S----] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0000 00000000 ffffffff 00809300
CS =c000 000c0000 ffffffff 00809b00
SS =0000 00000000 ffffffff 00809300
DS =0000 00000000 ffffffff 00809300
FS =0000 00000000 ffffffff 00809300
GS =0000 00000000 ffffffff 00809300
LDT=0000 00000000 0000ffff 00008200
TR =0000 00000000 0000ffff 00008b00
GDT=     000f6d80 00000037
IDT=     00000000 000003ff
CR0=00000010 CR2=00000000 CR3=00000000 CR4=00000000
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000
DR3=0000000000000000
DR6=00000000ffff0ff0 DR7=0000000000000400
EFER=0000000000000000
FCW=037f FSW=0000 [ST=0] FTW=00 MXCSR=00001f80
FPR0=0000000000000000 0000 FPR1=0000000000000000 0000
FPR2=0000000000000000 0000 FPR3=0000000000000000 0000
FPR4=0000000000000000 0000 FPR5=0000000000000000 0000
FPR6=0000000000000000 0000 FPR7=0000000000000000 0000
XMM00=00000000000000000000000000000000
XMM01=00000000000000000000000000000000
XMM02=00000000000000000000000000000000
XMM03=00000000000000000000000000000000
XMM04=00000000000000000000000000000000
XMM05=00000000000000000000000000000000
XMM06=00000000000000000000000000000000
XMM07=00000000000000000000000000000000

New qemu command line:

qemu-system-x86_64 -cpu host\
           -usb\
           -machine type=pc,accel=kvm\
           -enable-kvm\
           -vga none\
           -display none\
           -nodefconfig\
           -display none\
           -boot once=d\
           -bios /usr/share/qemu/bios.bin\
           -m 2G\
           -drive
file=/dev/genhd/ReactOS,cache=none,if=virtio,format=raw,index=0\
           -drive
file=/mnt/platz/Betriebssystemabbilder/virtio-win-0.1.118.iso,media=cdrom,index=2\
           -smb /mnt/platz/QemuShare\
           -usbdevice host:1019:0011\
           -usbdevice host:046d:c246\
           -device vfio-pci,host=00:02.0,addr=02.0,bus=pci.0,x-vga=on\
           -chardev stdio,id=seabios\
           -device isa-debugcon,iobase=0x402,chardev=seabios\
           -netdev user,id=vmnic -device virtio-net,netdev=vmnic
&>/var/log/qemuvm.log



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/vfio-users/attachments/20161210/bfeadf9c/attachment.htm>


More information about the vfio-users mailing list