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

[Xen-devel] RE: Partial Success VGA passthrough NVIDIA GeForce 7600 GS on Intel 5520



The log looks no problem. Can you have a try with WinXP guest?

Meanwhile, what xen version are you using (xen changeset, qemu commit and 
dom0)? I assume you used the same with Mr. Teo En Ming. And also pls post your 
hvm config file, and output of "lspci -vvv".

Regards,
Weidong

-----Original Message-----
From: Austin Schuh [mailto:schuh@xxxxxxxxxxxx] 
Sent: Thursday, December 24, 2009 4:04 PM
To: xen-devel@xxxxxxxxxxxxxxxxxxx; Han, Weidong
Subject: Partial Success VGA passthrough NVIDIA GeForce 7600 GS on Intel 5520

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.

Any ideas on what went wrong, or how to fix it?  Any help would be appreciated.

Thanks,
    Austin Schuh

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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