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

[Xen-users] VGA PassThrough works for EVGA GTX 460 SE 1024 MB

  • To: Xen <xen-users@xxxxxxxxxxxxxxxxxxx>
  • From: David TECHER <davidtecher@xxxxxxxx>
  • Date: Sat, 15 Oct 2011 03:05:31 +0100 (BST)
  • Delivery-date: Fri, 14 Oct 2011 19:09:02 -0700
  • Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.fr; h=X-YMail-OSG:Received:X-Mailer:Message-ID:Date:From:Reply-To:Subject:To:MIME-Version:Content-Type; b=DRTsEuDlzs/RSgPJg3HqboNnQW4Pe3txjgXNyuR0055DHbWyHDME1+peM4GrK1E57Bh038yVmv99sXBseXPFggaGZl5HzQiUjtuvuUNXrr9svDyPMx2gav9MmhxBenGP9TlDEyFCQLnQrkoa7ZfOb5axM3XU5UMoI9Ncg208Xgw=;
  • List-id: Xen user discussion <xen-users.lists.xensource.com>


Finally I succeeded to use my graphic card EVGA GTX 460 SE 1024M with Xen 4.2 unstable.

Before I was using my MSI GT 440.

I am little excited that it works now.


Kernel ---> 3.1.0-rc9 downloaded from http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary

My kernel's config is attached to this mail.

Download Xen

hg clone -r 23965 http://xenbits.xensource.com/staging/xen-unstable.hg/ xen-unstable.hg-rev-23965-ok

Make a first init build for tools

cd xen-unstable.hg-rev-23965-ok/tools
make -j4
make clean
cd ..

Apply the patches attached to this mail (patch -p0 < ....)

Copy the VGA BIOS extracted using nvlfash 5.100

cp /path/to/VGABIOS.ROM tools/firmware/vgabios/vgabios-pt.bin

Compil again

make -j4 tools


make -j4 install-tools PYTHON_PREFIX_ARG=

Since my old domU XP 64 bits was using GT 440, I replaced my old graphic card with the EVGA GTX 460 SE.

Everything was OK (except that it is impossible to restart the domU withtout restarting the dom0 as usual)

About dsdt.asl.patch file
There is no real changes from the patches I've sent in August/September. The change is only for dsdt.asl.patch

For your information concerning the patch for dsd (I've already give the informations in an other mail but I will give it again)

Get the identifier for your graphic card
root@mercury:/opt/tmp/gfx_patchs_gtx-460-se-evga# lspci |grep VGA
01:00.0 VGA compatible controller: nVidia Corporation Device 0e23 (rev a1)

Use dmesg to get the required ranges
root@mercury:/opt/tmp/gfx_patchs_gtx-460-se-evga# dmesg | grep 01:00.0 | grep BAR
[    2.481779] pci 0000:01:00.0: BAR 0: reserving [mem 0xf8000000-0xf9ffffff flags 0x40200] (d=0, p=0)
[    2.481782] pci 0000:01:00.0: BAR 1: reserving [mem 0xd0000000-0xd7ffffff flags 0x14220c] (d=0, p=0)
[    2.481784] pci 0000:01:00.0: BAR 3: reserving [mem 0xd8000000-0xdbffffff flags 0x14220c] (d=0, p=0)
[    2.481787] pci 0000:01:00.0: BAR 5: reserving [io  0xe000-0xe07f flags 0x40101] (d=0, p=0)

The 3 ranges [0xf8000000-0xf9fffff], [0xd0000000-0xd7ffffff], [0xd8000000-0xdbfffff] need to be specify in dsdt.asl.patch

Moreover you need to use the formula

Maximum - Minimum + 1 for the difference.

As a example: for the first range [0xf8000000-0xf9fffff]

Maximum = (0xf9fffff) / Minimum = 0xf8000000 => Difference = 4194303999 - 4160749568 + 1 = 33554432 => hexadecimal = 0x02000000

That the reason why that in the patch, there are

+                        0xF8000000,
+                        0xF9FFFFFF,
-                        0x05000000,
-                        ,, _Y01)
+                        0x02000000)

Do the same for the others ranges

Hope this help.

I do not make test for Windows 7.  I do not plan to try.


Attachment: Makefile.patch
Description: Binary data

Attachment: dsdt.asl.patch
Description: Binary data

Attachment: hvmloader.c.patch
Description: Binary data

Attachment: config-3.1.0-rc9
Description: Binary data

Attachment: pci.c.patch
Description: Binary data

Attachment: pass-through.c.patch
Description: Binary data

Xen-users mailing list



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