(Sorry if this is a duplicate. I've been having email client trouble
and can't tell if it is going out.)
I've been working on getting VGA passthrough to Windows 7 working on my
machine. I have already succeeded in passing through the second network
card. That worked flawlessly.
SuperMicro x8dai (5520 chipset)
GeForce 7600 GS (I'm passing this one through)
GeForce 6800
E5520 processor
I started by trying to follow everything that Mr. Teo En Ming did. I
applied qemu-change-for-vBAR-pBAR.patch,
qemu-claim-vga-cycle-for-secondary-gfx-passthrough.patch,
xen-load-vbios-file, and xen-vBAR-pBAR.patch. I applied them all by
hand since it's been so long.
I also found the message about updating xen-vBAR-pBAR.patch to have the
memory addresses from lspci -v, so I did that.
05:00.0 VGA compatible controller: nVidia Corporation G70 [GeForce 7600
GS] (rev a1) (prog-if 00 [VGA controller])
Subsystem: eVga.com. Corp. Device c549
Flags: bus master, fast devsel, latency 0, IRQ 10
Memory at f7000000 (32-bit, non-prefetchable) [size=16M]
Memory at c0000000 (64-bit, prefetchable) [size=256M]
Memory at f6000000 (64-bit, non-prefetchable) [size=16M]
I/O ports at ec00 [size=128]
Expansion ROM at f8ee0000 [disabled] [size=128K]
Capabilities: <access denied>
Kernel driver in use: pci-stub
diff -r bec27eb6f72c tools/firmware/hvmloader/acpi/dsdt.asl
--- a/tools/firmware/hvmloader/acpi/dsdt.asl Sat Nov 14 10:32:59 2009
+0000
+++ b/tools/firmware/hvmloader/acpi/dsdt.asl Tue Dec 01 10:33:31 2009
-0800
@@ -175,6 +175,34 @@
0x000BFFFF,
0x00000000,
0x00020000)
+
+ /* reserve MMIO BARs of gfx for 1:1 mapping */
+ DWordMemory(
+ ResourceProducer, PosDecode, MinFixed, MaxFixed,
+ Cacheable, ReadWrite,
+ 0x00000000,
+ 0xC0000000,
+ 0xCFFFFFFF,
+ 0x00000000,
+ 0x10000000)
+
+ DWordMemory(
+ ResourceProducer, PosDecode, MinFixed, MaxFixed,
+ NonCacheable, ReadWrite,
+ 0x00000000,
+ 0xF7000000,
+ 0xF7FFFFFF,
+ 0x00000000,
+ 0x01000000)
+
+ DWordMemory(
+ ResourceProducer, PosDecode, MinFixed, MaxFixed,
+ NonCacheable, ReadWrite,
+ 0x00000000,
+ 0xF6000000,
+ 0xF6FFFFFF,
+ 0x00000000,
+ 0x01000000)
DWordMemory(
ResourceProducer, PosDecode, MinFixed, MaxFixed,
I succeeded in getting the videobios to load, and get output on the
graphics card! So, at least something works.
I still get "Windows has stopped this device because it has reported
problems. (Code 43)" and the yellow exclamation mark in the device manager.
I then installed Debian in a virtual machine, and tried to do vga
passthrough there to get better debug. When I do a "lspci" from inside
Debian, it returns
00:05.0 VGA compatible controller: nVidia Corporation G70 [GeForce 7600
GS] (rev a1) (prog-if 00 [VGA controller])
Subsystem: eVga.com. Corp. Device c549
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 128
Interrupt: pin A routed to IRQ 10
Region 0: Memory at f7000000 (32-bit, non-prefetchable) [size=16M]
Region 1: Memory at c0000000 (64-bit, prefetchable) [size=256M]
Region 3: Memory at f6000000 (64-bit, non-prefetchable) [size=16M]
Region 5: I/O ports at ec00 [size=128]
[virtual] Expansion ROM at 50000000 [disabled] [size=128K]
Capabilities: <access denied>
Kernel modules: nvidiafb, nvidia
If I had to guess, I'd say the Expansion ROM isn't loaded correctly, but
I don't know where to start to fix that, or if it is even a problem.
Any ideas on what is going wrong, or how to fix it? Any help would be
appreciated.
Thanks,
Austin Schuh
domid: 6
qemu: the number of cpus is 1
Graphics option: passthrough
Watching /local/domain/0/device-model/6/logdirty/cmd
Watching /local/domain/0/device-model/6/command
char device redirected to /dev/pts/0
qemu_map_cache_init nr_buckets = 10000 size 4194304
shared page at pfn feffd
buffered io page at pfn feffb
Guest uuid = 9a03e669-f938-ac8a-cbbe-2aa5c4bc8310
Time offset set 0
Register xen platform.
Done register platform.
platform_fixed_ioport: changed ro/rw state of ROM memory area. now is rw state.
xs_read(/local/domain/0/device-model/6/xen_extended_power_mgmt): read error
husb: open device 3.8
husb: config #1 need -1
husb: 1 interfaces claimed for configuration 1
husb: grabbed usb device 3.8
medium change watch on `hdc' (index: 1):
/home/austin/tmp/en_windows_7_professional_x64_dvd_X15-65805.iso
I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
(qemu) Log-dirty: no command yet.
xs_read(/local/domain/6/log-throttling): read error
dm-command: hot insert pass-through pci dev
register_real_device: Assigning real physical device 05:00.0 ...
pt_iomul_init: Error: pt_iomul_init can't open file /dev/xen/pci_iomul: No such
file or directory: 0x5:0x0.0x0
pt_register_regions: IO region registered (size=0x01000000 base_addr=0xf7000000)
pt_register_regions: IO region registered (size=0x10000000 base_addr=0xc000000c)
pt_register_regions: IO region registered (size=0x01000000 base_addr=0xf6000004)
pt_register_regions: IO region registered (size=0x00000080 base_addr=0x0000ec01)
pt_register_regions: Expansion ROM registered (size=0x00020000
base_addr=0xf8ee0000)
gfx_claim_vga_cycle: bridge for bus 1, previous bridge control is 2
gfx_claim_vga_cycle: bus=0x0, dev=0x1e, func=0x0
gfx_claim_vga_cycle: bridge for bus 1, updated bridge control is 2
gfx_claim_vga_cycle: bridge for bus 5, previous bridge control is 1a
gfx_claim_vga_cycle: bus=0x0, dev=0x7, func=0x0
gfx_claim_vga_cycle: bridge for bus 5, updated bridge control is 1a
gfx_claim_vga_cycle: bridge for bus 6, previous bridge control is 2
gfx_claim_vga_cycle: bus=0x0, dev=0x3, func=0x0
gfx_claim_vga_cycle: bridge for bus 6, updated bridge control is 2
gfx_claim_vga_cycle: bridge for bus 7, previous bridge control is 2
gfx_claim_vga_cycle: bus=0x0, dev=0x1, func=0x0
gfx_claim_vga_cycle: bridge for bus 7, updated bridge control is 2
gfx_claim_vga_cycle: previous igd control is 0
gfx_claim_vga_cycle: updated igd control is 2
gfx_claim_vga_cycle: previous igd control is 0
gfx_claim_vga_cycle: updated igd control is 2
gfx_claim_vga_cycle: previous igd control is 0
gfx_claim_vga_cycle: updated igd control is 2
gfx_claim_vga_cycle: previous igd control is 2
gfx_claim_vga_cycle: updated igd control is 2
register_real_device: Real physical device 05:00.0 registered successfuly!
IRQ type = INTx
pt_bar_reg_read: first read BARs of gfx
pt_iomem_map: e_phys=f7000000 maddr=f7000000 type=0 len=16777216 index=0
first_map=1
pt_bar_reg_read: first read BARs of gfx
pt_iomem_map: e_phys=c0000000 maddr=c0000000 type=8 len=268435456 index=1
first_map=1
pt_bar_reg_read: first read BARs of gfx
pt_bar_reg_read: first read BARs of gfx
pt_iomem_map: e_phys=f6000000 maddr=f6000000 type=0 len=16777216 index=3
first_map=1
pt_bar_reg_read: first read BARs of gfx
pt_bar_reg_read: first read BARs of gfx
pt_ioport_map: e_phys=ec00 pio_base=ec00 len=128 index=5 first_map=1
platform_fixed_ioport: changed ro/rw state of ROM memory area. now is rw state.
platform_fixed_ioport: changed ro/rw state of ROM memory area. now is ro state.
pt_iomem_map: e_phys=ffffffff maddr=f7000000 type=0 len=16777216 index=0
first_map=0
pt_iomem_map: e_phys=ffffffff maddr=c0000000 type=8 len=268435456 index=1
first_map=0
pt_iomem_map: e_phys=ffffffff maddr=f6000000 type=0 len=16777216 index=3
first_map=0
pt_ioport_map: e_phys=ffff pio_base=ec00 len=128 index=5 first_map=0
pt_iomem_map: e_phys=f7000000 maddr=f7000000 type=0 len=16777216 index=0
first_map=0
pt_iomem_map: e_phys=c0000000 maddr=c0000000 type=8 len=268435456 index=1
first_map=0
pt_iomem_map: e_phys=f6000000 maddr=f6000000 type=0 len=16777216 index=3
first_map=0
pt_ioport_map: e_phys=ec00 pio_base=ec00 len=128 index=5 first_map=0
husb: config #1 need 1
husb: 1 interfaces claimed for configuration 1
husb: config #1 need 1
husb: 1 interfaces claimed for configuration 1
husb: config #1 need 1
husb: 1 interfaces claimed for configuration 1
husb: config #1 need 1
husb: 1 interfaces claimed for configuration 1
reset requested in cpu_handle_ioreq.
Issued domain 6 reboot
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|