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

RE: [Xen-devel] RE: [RFC][QEMU] ATI graphics VBIOS passthru support



Hi Sander,

I answer your questions (including the one from last email) below:

1. Your gfx is a bit old. Some of the tricks (such as MMINDEX values 0x4010) 
aren't quite consistent across different generations of ATI gfx. I need to look 
at the log myself. I will locate an HD3000 card to debug.
2. The goal of this patch is to passthru the primary gfx as THE ONLY GFX inside 
guest VM (namely: my patch + set gfx_passthru=1 in guest config file). Since 
you are passthru the on-board secondary gfx, I am not sure qemu-dm is copying 
the correct VBIOS from address 0xc0000. One solution is to force VBIOS been 
read from a file, which can be downloaded from 
http://www.techpowerup.com/vgabios/.
3. Note that current Xen support passthru ATI gfx as a secondary gfx, even 
without my patch. So if you don't care about primary/secondary, you probably 
don't need this patch. Have you tried: existing Xen + passthru ATI without 
gfx_passthru=1? As for as I have seen, it worked for many ATI gfx.

Thanks,
-Wei

-----Original Message-----
From: Sander Eikelenboom [mailto:linux@xxxxxxxxxxxxxx]
Sent: Monday, December 13, 2010 2:18 PM
To: Huang2, Wei
Cc: Keir Fraser; Xen-devel; Ian Jackson; Kay, Allen M; Wang2, Wei; 
djmagee@xxxxxxxxxxxx
Subject: Re: [Xen-devel] RE: [RFC][QEMU] ATI graphics VBIOS passthru support

Hello Wei,

It just occured to me, this is probably only working when trying to passthrough 
the primary graphics card ?
I'm trying to passthrough a secondary card, so the primary(boot) card still has 
the xen/dom0 console.

It could end up giving problems by loading the wrong/no bios in the hvmloader ?

Should passing though a secondary graphics card also be possible with this 
patch ?

--
Sander

Sunday, December 12, 2010, 7:19:08 AM, you wrote:

> This patch isn't meant to be final version. The stubdom issue was known to 
> me. Users can just compile qemu-dm and copy it to overwrite existing Xen 
> installation for a quick testing.

> Thanks,
> -Wei
> ________________________________________
> From: Keir Fraser [keir.xen@xxxxxxxxx] On Behalf Of Keir Fraser [keir@xxxxxxx]
> Sent: Saturday, December 11, 2010 9:38 AM
> To: Sander Eikelenboom; Huang2, Wei
> Cc: Xen-devel; Ian Jackson; Kay, Allen M; Wang2, Wei; djmagee@xxxxxxxxxxxx
> Subject: Re: [Xen-devel] RE: [RFC][QEMU] ATI graphics VBIOS passthru support

> The patch would need some work to make it suitable for check in and get it
> working for stubdom. At the very least the ioperm() calls would need
> removing completely, or stubbing out for the stubdom build.

>  -- Keir

> On 11/12/2010 14:06, "Sander Eikelenboom" <linux@xxxxxxxxxxxxxx> wrote:

>> Do i need any previous patches for this to work ?
>>
>> After applying it to xen-unstable, compiling xen results in:
>>
>> make[2]: Entering directory `/usr/src/new/xen-unstable.hg/extras/mini-os'
>> [ -e include/xen ] || ln -sf ../../../xen/include/public include/xen
>> [ -e include/mini-os ] || ln -sf . include/mini-os
>> [ -e include/x86/mini-os ] || ln -sf . include/x86/mini-os
>> make --directory=arch/x86
>> OBJ_DIR=/usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/arch/x86 ||
>> exit 1;
>> make[3]: Entering directory
>> `/usr/src/new/xen-unstable.hg/extras/mini-os/arch/x86'
>> make[3]: Nothing to be done for `all'.
>> make[3]: Leaving directory
>> `/usr/src/new/xen-unstable.hg/extras/mini-os/arch/x86'
>> ld -r -nostdlib
>> -L/usr/src/new/xen-unstable.hg/stubdom/cross-root-x86_64/x86_64-xen-elf/lib
>> -m elf_x86_64
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/arch/x86/x86_64.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os_app.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/blkfront.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/events.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/fbfront.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/fs-front.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/gntmap.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/gnttab.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/hypervisor.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/kernel.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lock.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/main.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mm.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/netfront.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/pcifront.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/sched.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/ctype.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/math.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/printf.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/stack_chk_fail.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/string.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/sys.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/xmalloc.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/xs.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/xenbus/xenbus.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/console/console.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/console/xencons_ring
>> .o /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lwip.a
>> -L/usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/arch/x86 -lx86_64
>> -lc -o /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os.o
>> objcopy -w -G xenos_* -G _start
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os.o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os.o
>> ld -nostdlib
>> -L/usr/src/new/xen-unstable.hg/stubdom/cross-root-x86_64/x86_64-xen-elf/lib
>> -m elf_x86_64 -T arch/x86/minios-x86_64.lds
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os.o  -o
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os.o: In
>> function `ati_hw_out':
>> /usr/src/new/xen-unstable.hg/stubdom/ioemu/hw/pt-graphics.c:82: undefined
>> reference to `ioperm'
>> /usr/src/new/xen-unstable.hg/stubdom/ioemu/hw/pt-graphics.c:84: undefined
>> reference to `ioperm'
>> /usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os.o: In
>> function `ati_hw_in':
>> /usr/src/new/xen-unstable.hg/stubdom/ioemu/hw/pt-graphics.c:72: undefined
>> reference to `ioperm'
>> /usr/src/new/xen-unstable.hg/stubdom/ioemu/hw/pt-graphics.c:74: undefined
>> reference to `ioperm'
>> make[2]: ***
>> [/usr/src/new/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os] Error 1
>> make[2]: Leaving directory `/usr/src/new/xen-unstable.hg/extras/mini-os'
>> make[1]: *** [ioemu-stubdom] Error 2
>> make[1]: Leaving directory `/usr/src/new/xen-unstable.hg/stubdom'
>> make: *** [install-stubdom] Error 2
>>
>> Don't know why the include of sys/io.h doesn't seem to work
>> --
>>
>> Sander
>>
>> Saturday, December 11, 2010, 12:40:19 AM, you wrote:
>>
>>> Hi,
>>
>>> The attached patch supports dynamic detection of BARs (both MMIO and
>>> PIO). Hopefully it can alleviate some of the issues you saw with ATI gfx
>>> passthru. Please let me know whether it works better for you.
>>
>>> Thanks,
>>> -Wei
>>
>>> On 12/07/2010 04:00 AM, Pasi Kärkkäinen wrote:
>>>> On Wed, Oct 13, 2010 at 04:37:10PM -0500, Huang2, Wei wrote:
>>>>>     Sorry, hold on a second. This fix seems corrupt my pci config space
>>>>> after
>>>>>     several runs.
>>>>>
>>>> Hello,
>>>>
>>>> Any updates to these patches? Many users have been asking about amd/ati vga
>>>> passthru stuff..
>>>>
>>>> -- Pasi
>>>>
>>>>>
>>>>>     -Wei
>>>>>
>>>>>
>>>>>
>>>>>     From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
>>>>>     [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Huang2, 
>>>>> Wei
>>>>>     Sent: Wednesday, October 13, 2010 3:47 PM
>>>>>     To: djmagee@xxxxxxxxxxxx; Kay, Allen M; Ian Jackson
>>>>>     Cc: Wang2, Wei; Xen-devel
>>>>>     Subject: RE: [Xen-devel] RE: [RFC][QEMU] ATI graphics VBIOS passthru
>>>>>     support
>>>>>
>>>>>
>>>>>
>>>>>     Hi Allen and Doug,
>>>>>
>>>>>
>>>>>
>>>>>     Could you fix the following line in save_pci_conf_space() of
>>>>>     tools/python/xen/util/pci.py?
>>>>>
>>>>>
>>>>>
>>>>>             "for i in range(0, 256, 4):" to "for i in range(0, 512, 4):"
>>>>>
>>>>>
>>>>>
>>>>>     This solves my black screen issue. Please let me know the results.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>     Thanks,
>>>>>
>>>>>     -Wei
>>>>>
>>>>>
>>>>>
>>>>>     From: djmagee@xxxxxxxxxxxx [mailto:djmagee@xxxxxxxxxxxx]
>>>>>     Sent: Friday, October 08, 2010 10:53 AM
>>>>>     To: Huang2, Wei; Kay, Allen M; Ian Jackson
>>>>>     Cc: Xen-devel; Wang2, Wei
>>>>>     Subject: RE: [Xen-devel] RE: [RFC][QEMU] ATI graphics VBIOS passthru
>>>>>     support
>>>>>
>>>>>
>>>>>
>>>>>     Wei,
>>>>>
>>>>>                     These were guests that had never seen the catalyst
>>>>> driver
>>>>>     before.  I booted each three with the graphics device and usb devices
>>>>>     assigned, they worked fine using the basic VGA driver, then installed
>>>>>     fresh Catalyst 10.9, rebooted, and each one crashed.
>>>>>
>>>>>
>>>>>
>>>>>                     Let me know if there's any other info I can provide
>>>>> that
>>>>>     will help you debug.  The motherboard is a DQ45CB, running 
>>>>> xen-unstable
>>>>>     c/s 22155 using `dom0_mem=768M iommu=1' on the grub line, and using
>>>>> pvops
>>>>>     Dom0 from stable-2.6.32.x commit 179eca50.
>>>>>
>>>>>
>>>>>
>>>>>     Doug Magee
>>>>>
>>>>>
>>>>>
>>>>>     From: Huang2, Wei [mailto:Wei.Huang2@xxxxxxx]
>>>>>     Sent: Friday, October 08, 2010 11:41 AM
>>>>>     To: djmagee@xxxxxxxxxxxx; Kay, Allen M; Ian Jackson
>>>>>     Cc: Xen-devel; Wang2, Wei
>>>>>     Subject: RE: [Xen-devel] RE: [RFC][QEMU] ATI graphics VBIOS passthru
>>>>>     support
>>>>>
>>>>>
>>>>>
>>>>>     Hi Doug,
>>>>>
>>>>>
>>>>>
>>>>>     Regarding Catalyst driver, we never saw guest crashing. Was it a fresh
>>>>>     Catalyst installation or an existing guest image? We felt this VBIOS
>>>>> patch
>>>>>     might not provide all necessary resources to driver, which got upset.
>>>>>     Currently we are debugging it with our driver team and will let you
>>>>> know
>>>>>     the update.
>>>>>
>>>>>
>>>>>
>>>>>     Thanks,
>>>>>
>>>>>     -Wei
>>>>>
>>>>>
>>>>>
>>>>>     From: djmagee@xxxxxxxxxxxx [mailto:djmagee@xxxxxxxxxxxx]
>>>>>     Sent: Friday, October 08, 2010 9:41 AM
>>>>>     To: Huang2, Wei; Kay, Allen M; Ian Jackson
>>>>>     Cc: Xen-devel
>>>>>     Subject: RE: [Xen-devel] RE: [RFC][QEMU] ATI graphics VBIOS passthru
>>>>>     support
>>>>>
>>>>>
>>>>>
>>>>>     Wei,
>>>>>
>>>>>                     I've tested with a Radeon 4770 and it the VBIOS works
>>>>>     without a problem, through many guest (re)boots, so it seems pretty
>>>>>     solid.  I tested a linux guest (fairly standard Fedora 12), Windows 
>>>>> XP,
>>>>>     and Windows 7 (without accelerated drivers).  The open radeon linux
>>>>> driver
>>>>>     works fine.
>>>>>
>>>>>
>>>>>
>>>>>     The Catalyst driver fails in Windows XP (STOP 0x000000EA, thread stuck
>>>>> in
>>>>>     device driver), windows 7 (STOP 0x00000116, driver fails to properly
>>>>>     reset?), and linux (total system freeze).  This seems to be different
>>>>> than
>>>>>     the `Blank Screen' problem you report, as the driver is clearly not
>>>>>     functioning properly.
>>>>>
>>>>>
>>>>>
>>>>>     Doug Magee
>>>>>
>>>>>
>>>>>
>>>>>     From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
>>>>>     [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Huang2, 
>>>>> Wei
>>>>>     Sent: Friday, October 08, 2010 9:57 AM
>>>>>     To: Kay, Allen M; Ian Jackson
>>>>>     Cc: Xen-devel
>>>>>     Subject: [Xen-devel] RE: [RFC][QEMU] ATI graphics VBIOS passthru
>>>>> support
>>>>>
>>>>>
>>>>>
>>>>>     Hi Allen,
>>>>>
>>>>>
>>>>>
>>>>>     Yes, Catalyst driver is the one from public website. The driver still
>>>>> has
>>>>>     a  minor issue with this VBIOS patch. The purpose of submitting VBIOS
>>>>>     patch is to get community feedbacks. After we figure out the root 
>>>>> cause
>>>>> of
>>>>>     black screen, I will formally submit a patch for inclusion.
>>>>>
>>>>>
>>>>>
>>>>>     Thanks,
>>>>>
>>>>>     -Wei
>>>>>
>>>>>
>>>>>
>>>>>     From: Kay, Allen M [mailto:allen.m.kay@xxxxxxxxx]
>>>>>     Sent: Friday, October 08, 2010 2:21 AM
>>>>>     To: Huang2, Wei; Ian Jackson
>>>>>     Cc: Xen-devel
>>>>>     Subject: RE: [RFC][QEMU] ATI graphics VBIOS passthru support
>>>>>
>>>>>
>>>>>
>>>>>     Hi Wei,
>>>>>
>>>>>
>>>>>
>>>>>     Is Catalyst driver the one on AMD website?  I think that's what I have
>>>>> in
>>>>>     my win7 guest and it matches the symptom you are describing.  "lspci"
>>>>>     reports my ATI card is a V5700 - although it says v3750 on the box.
>>>>> Where
>>>>>     can I get a working driver?
>>>>>
>>>>>
>>>>>
>>>>>     The patch looks reasonable to me in general.
>>>>>
>>>>>
>>>>>
>>>>>     Allen
>>>>>
>>>>>
>>>>>
>>>>>     From: Huang2, Wei [mailto:Wei.Huang2@xxxxxxx]
>>>>>     Sent: Thursday, October 07, 2010 9:06 PM
>>>>>     To: Kay, Allen M; Ian Jackson
>>>>>     Cc: Xen-devel
>>>>>     Subject: RE: [RFC][QEMU] ATI graphics VBIOS passthru support
>>>>>
>>>>>
>>>>>
>>>>>     Hi Allen,
>>>>>
>>>>>
>>>>>
>>>>>     Thanks for testing it out. We have tested this patch with Radeon 4850,
>>>>>     4870, FirePro V5700 and FirePro M5800. Unfortunately we don't have
>>>>> V3750
>>>>>     at hand. It is very possible this patch isn't compatible with V3750. 
>>>>> We
>>>>>     will try to get hold of one for debugging. For graphics which work 
>>>>> with
>>>>>     this path, users should be able to get rid of emulated gfx (such as
>>>>>     Cirrus). I have successfully installed a Windows guest VM using this
>>>>>     patch.
>>>>>
>>>>>
>>>>>
>>>>>     I also want to point out that there is still an issue. Users will see 
>>>>> a
>>>>>     black screen after installing Catalyst driver. Even though the screen
>>>>>     appears to be black, the driver is actually functioning correctly
>>>>> (3DMark
>>>>>     can be run with external monitor). Our driver team is currently
>>>>> debugging
>>>>>     it and they believe this is easy to fix.
>>>>>
>>>>>
>>>>>
>>>>>     What is your opinion on this patch (and the solution) in general?
>>>>>
>>>>>
>>>>>
>>>>>     -Wei
>>>>>
>>>>>
>>>>>
>>>>>     From: Kay, Allen M [mailto:allen.m.kay@xxxxxxxxx]
>>>>>     Sent: Thursday, October 07, 2010 6:58 PM
>>>>>     To: Huang2, Wei; Ian Jackson
>>>>>     Cc: Xen-devel
>>>>>     Subject: RE: [RFC][QEMU] ATI graphics VBIOS passthru support
>>>>>
>>>>>
>>>>>
>>>>>     Hi Wei,
>>>>>
>>>>>
>>>>>
>>>>>     This patch did not cause any problems with Intel IGD passthrough for
>>>>> me.
>>>>>     However, the monitor remained blank if I pass through ATI Firepro 
>>>>> V3750
>>>>>     either as the primary display device or the secondary device
>>>>>     (gfx_passthru=1/0).  Passing it through as the secondary device used 
>>>>> to
>>>>>     work.
>>>>>
>>>>>
>>>>>
>>>>>     Have you tested the patch with this graphics card?
>>>>>
>>>>>
>>>>>
>>>>>     Allen
>>>>>
>>>>>
>>>>>
>>>>>     From: Huang2, Wei [mailto:Wei.Huang2@xxxxxxx]
>>>>>     Sent: Thursday, October 07, 2010 9:57 AM
>>>>>     To: Ian Jackson
>>>>>     Cc: Xen-devel; Kay, Allen M
>>>>>     Subject: [RFC][QEMU] ATI graphics VBIOS passthru support
>>>>>
>>>>>
>>>>>
>>>>>     Hi Ian,
>>>>>
>>>>>
>>>>>
>>>>>     There have been a lot of interest on gfx passthru recently. This patch
>>>>>     enables ATI VBIOS in passthru mode. The guest VM system BIOS 
>>>>> (including
>>>>>     Windows boot logo) can now show in passthru screen. We have tested 
>>>>> with
>>>>>     various Windows and Linux guest VMs. Please help review it. We are 
>>>>> also
>>>>>     looking forward to comments and suggestions from Xen community users.
>>>>>
>>>>>
>>>>>
>>>>>     Signed-off-by: Wei Huang<wei.huang2@xxxxxxx>
>>>>>
>>>>>     Signed-off-by: Wei Wang<wei.wang2@xxxxxxx>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Xen-devel mailing list
>>>>> Xen-devel@xxxxxxxxxxxxxxxxxxx
>>>>> http://lists.xensource.com/xen-devel
>>>>
>>
>>
>>







--
Best regards,
 Sander                            mailto:linux@xxxxxxxxxxxxxx




_______________________________________________
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®.