[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] GFX passthrough of primary graphics card



Hi there, I'm trying to pass through my primary graphics card, but I have trouble getting it to work. I posted already on xen-users, but no one replied. So I try again on the developers list.

I have the latest xen-unstable, and as Dom0 kernel I run 4.20 (also latest from upstream).

I have the following scenario:

I want to set up my laptop in "kiosk mode" where there is absolutely no graphics in Dom0 and all hardware sits directly in my VM. This VM is Windows at the moment.
I have a laptop with an Intel HD graphics card (so just a single one for the whole platform). I want to hand over this graphics card to the VM as its primary graphics card (no emulation of hardware).

I have configured to hide the card from Dom0 and switch off the use of graphics in Dom0 (kernel command line):

xen_pciback.hide=(00:02.0) quiet video=vesafb:off,efifb:off

My configuration file has the following parameters set:

vga = "none"
nographic = 1
builder = "hvm"
gfx_passthru=1
pci=['00:02.0']

When I boot the VM, I see the following errors in dmesg:

[  291.884273] resource sanity check: requesting [mem 0x000c0000-0x000dffff], which spans more than PCI Bus 0000:00 [mem 0x000c0000-0x000c3fff window]
[  291.884278] caller pci_map_rom+0x6a/0x1b0 mapping multiple BARs
[  291.884290] pciback 0000:00:02.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0xffff
[  291.934147] xen_pciback: vpci: 0000:00:02.0: assign to virtual slot 0
[  291.934275] pciback 0000:00:02.0: registering for 2

In xl dmesg I see the following:

(XEN) d11: bind: m_gsi=16 g_gsi=28 dev=00.00.3 intx=0
(d11) HVM Loader
(d11) Detected Xen v4.12.0-rc
(d11) Xenbus rings @0xfeffc000, event channel 1
(d11) System requested SeaBIOS
(d11) CPU speed is 2712 MHz
(d11) Relocating guest memory for lowmem MMIO space disabled
(XEN) irq.c:374: Dom11 PCI link 0 changed 0 -> 5
(d11) PCI-ISA link 0 routed to IRQ5
(XEN) irq.c:374: Dom11 PCI link 1 changed 0 -> 10
(d11) PCI-ISA link 1 routed to IRQ10
(XEN) irq.c:374: Dom11 PCI link 2 changed 0 -> 11
(d11) PCI-ISA link 2 routed to IRQ11
(XEN) irq.c:374: Dom11 PCI link 3 changed 0 -> 5
(d11) PCI-ISA link 3 routed to IRQ5
(d11) pci dev 01:3 INTA->IRQ10
(d11) pci dev 02:0 INTA->IRQ11
(XEN) memory_map:add: dom11 gfn=fdffc mfn=8ff4f nr=3
(d11) pci dev 03:0 INTA->IRQ5
(d11) RAM in high memory; setting high_mem resource base to 166000000
(d11) pci dev 03:0 bar 18 size 010000000: 0e000000c
(d11) pci dev 02:0 bar 14 size 001000000: 0f0000008
(XEN) memory_map:add: dom11 gfn=f1000 mfn=eb000 nr=1000
(d11) pci dev 03:0 bar 10 size 001000000: 0f1000004
(d11) pci dev 03:0 bar 30 size 000020000: 0f2000000
(d11) pci dev 02:0 bar 10 size 000000100: 00000c001
(d11) pci dev 03:0 bar 20 size 000000040: 00000c101
(XEN) ioport_map:add: dom11 gport=c100 mport=e000 nr=40
(d11) pci dev 01:1 bar 20 size 000000010: 00000c141
(d11) Multiprocessor initialisation:
(d11)  - CPU0 ... 39-bit phys ... fixed MTRRs ... var MTRRs [1/8] ... done.
(d11)  - CPU1 ... 39-bit phys ... fixed MTRRs ... var MTRRs [1/8] ... done.
(d11) Testing HVM environment:
(d11) Using scratch memory at 400000
(d11)  - REP INSB across page boundaries ... passed
(d11)  - REP INSW across page boundaries ... passed
(d11)  - GS base MSRs and SWAPGS ... passed
(d11) Passed 3 of 3 tests
(d11) Writing SMBIOS tables ...
(d11) Loading SeaBIOS ...
(d11) Creating MP tables ...
(d11) Loading ACPI ...
(d11) vm86 TSS at fc00a680
(d11) BIOS map:
(d11)  10000-100e3: Scratch space
(d11)  c0000-fffff: Main BIOS
(d11) E820 table:
(d11)  [00]: 00000000:00000000 - 00000000:000a0000: RAM
(d11)  HOLE: 00000000:000a0000 - 00000000:000c0000
(d11)  [01]: 00000000:000c0000 - 00000000:00100000: RESERVED
(d11)  [02]: 00000000:00100000 - 00000000:9a000000: RAM
(d11)  [03]: 00000000:9a000000 - 00000000:9c800000: RESERVED
(d11)  HOLE: 00000000:9c800000 - 00000000:fc000000
(d11)  [04]: 00000000:fc000000 - 00000000:fdffc000: RESERVED
(d11)  [05]: 00000000:fdffc000 - 00000000:fdfff000: NVS
(d11)  [06]: 00000000:fdfff000 - 00000001:00000000: RESERVED
(d11)  [07]: 00000001:00000000 - 00000001:66000000: RAM
(d11) Invoking SeaBIOS ...
(d11) SeaBIOS (version rel-1.12.0-0-ga698c89-Xen)
(d11) BUILD: gcc: (GCC) 8.2.1 20181215 (Red Hat 8.2.1-6) binutils: version 2.31.1-15.fc29
(d11) 
(d11) Found Xen hypervisor signature at 40000000
(d11) Running on QEMU (i440fx)
(d11) xen: copy e820...
(d11) Relocating init from 0x000d87c0 to 0x99fac360 (size 80896)
(d11) Found 6 PCI devices (max PCI bus is 00)
(d11) Allocated Xen hypercall page at 99fff000
(d11) Detected Xen v4.12.0-rc
(d11) xen: copy BIOS tables...
(d11) Copying SMBIOS entry point from 0x00010020 to 0x000f5be0
(d11) Copying MPTABLE from 0xfc001180/fc001190 to 0x000f5ae0
(d11) Copying PIR from 0x00010040 to 0x000f5a60
(d11) Copying ACPI RSDP from 0x000100c0 to 0x000f5a30
(d11) Using pmtimer, ioport 0xb008
(d11) WARNING - Timeout at wait_reg8:81!
(d11) Scan for VGA option rom
(XEN) memory_map:add: dom11 gfn=f2000 mfn=c0 nr=20
(XEN) memory_map:remove: dom11 gfn=f2000 mfn=c0 nr=20
(d11) Turning on vga text mode console
(d11) SeaBIOS (version rel-1.12.0-0-ga698c89-Xen)
(d11) Machine UUID 894a9246-73b7-4496-9b1b-e43839ec2621
(d11) ATA controller 1 at 1f0/3f4/c140 (irq 14 dev 9)
(d11) ATA controller 2 at 170/374/c148 (irq 15 dev 9)
(d11) Found 0 lpt ports
(d11) Found 1 serial ports
(d11) PS2 keyboard initialized
(d11) ata0-0: QEMU HARDDISK ATA-7 Hard-Disk (20480 MiBytes)
(d11) Searching bootorder for: /pci@i0cf8/*@1,1/drive@0/disk@0
(d11) DVD/CD [ata1-0: QEMU DVD-ROM ATAPI-4 DVD/CD]
(d11) Searching bootorder for: /pci@i0cf8/*@1,1/drive@1/disk@0
(d11) All threads complete.
(d11) Scan for option roms
(d11) 
(d11) Press ESC for boot menu.
(d11) 
(d11) Searching bootorder for: HALT
(d11) drive 0x000f59c0: PCHS=16383/16/63 translation=lba LCHS=1024/255/63 s=41943040
(d11) Space available for UMB: c0000-eb000, f5400-f5960
(d11) Returned 258048 bytes of ZoneHigh
(d11) e820 map has 9 items:
(d11)   0: 0000000000000000 - 000000000009fc00 = 1 RAM
(d11)   1: 000000000009fc00 - 00000000000a0000 = 2 RESERVED
(d11)   2: 00000000000f0000 - 0000000000100000 = 2 RESERVED
(d11)   3: 0000000000100000 - 0000000099fff000 = 1 RAM
(d11)   4: 0000000099fff000 - 000000009c800000 = 2 RESERVED
(d11)   5: 00000000fc000000 - 00000000fdffc000 = 2 RESERVED
(d11)   6: 00000000fdffc000 - 00000000fdfff000 = 4 NVS
(d11)   7: 00000000fdfff000 - 0000000100000000 = 2 RESERVED
(d11)   8: 0000000100000000 - 0000000166000000 = 1 RAM
(d11) enter handle_19:
(d11)   NULL
(d11) Booting from DVD/CD...
(d11) Booting from 0000:7c00
(XEN) irq.c:374: Dom11 PCI link 0 changed 5 -> 0
(XEN) irq.c:374: Dom11 PCI link 1 changed 10 -> 0
(XEN) irq.c:374: Dom11 PCI link 2 changed 11 -> 0
(XEN) irq.c:374: Dom11 PCI link 3 changed 5 -> 0
(XEN) memory_map:remove: dom11 gfn=f1000 mfn=eb000 nr=1000
(XEN) ioport_map:remove: dom11 gport=c100 mport=e000 nr=40
(XEN) memory_map:add: dom11 gfn=f1000 mfn=eb000 nr=1000
(XEN) ioport_map:add: dom11 gport=c100 mport=e000 nr=40
(XEN) memory_map:remove: dom11 gfn=f1000 mfn=eb000 nr=1000
(XEN) ioport_map:remove: dom11 gport=c100 mport=e000 nr=40
(XEN) memory_map:add: dom11 gfn=f1000 mfn=eb000 nr=1000
(XEN) ioport_map:add: dom11 gport=c100 mport=e000 nr=40

The screen remains black. 

Can anyone help with this scenario? Is it not supported to pass through the primary graphics card? Is the problem maybe that the card is still used by Dom0 somehow?
What do these "Invalid PCI ROM header signature" errors mean?




Versendet mit Emailn.de - Freemail

* Unbegrenzt Speicherplatz
* Eigenes Online-Büro
* 24h besten Mailempfang
* Spamschutz, Adressbuch

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.