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

Re: [Xen-users] turning nvidia gts 450 into quadro 2000


  • To: xen-users@xxxxxxxxxxxxx
  • From: Imre Oolberg <imre@xxxxxxxxxxx>
  • Date: Fri, 07 Feb 2014 20:57:10 +0200
  • Delivery-date: Fri, 07 Feb 2014 18:58:02 +0000
  • List-id: Xen user discussion <xen-users.lists.xen.org>

Hi!

Gordan, big thanks, i can also confirm this technique works :) 

# lspci | grep 2000
04:00.0 VGA compatible controller: NVIDIA Corporation GF106GL [Quadro
2000] (rev a1)

Only couple more things

1. My domU config is like this (using Ubuntu 13.10 and its Xen 4.3 with
xl toolstack, all from package management)

# cat /etc/xen/vga-win7-32.auul.cfg
builder = "hvm"
name = "vga-win7-32"
memory = "3072"
vcpus = 4
vif = ['mac=00:16:3e:44:00:02,bridge=xenbr0,model=ne2k_pci']
disk = ['phy:/dev/system/vga_win7_32_ss,hda,w']
gfx_passthru=1
pci = [ '04:00.0', '04:00.1', '00:1a.0', '00:1d.0', '00:1b.0',
'07:00.0']
device_model_version = "qemu-xen-traditional"

where

'04:00.*' - 450 -> 2000 nvidia - works
'00:1a.0', '00:1d.0', '07:00.0' - usb devices, e.g. usb mouse works
'00:1b.0' - audio, works

Do you suggest to change something there? (And into win7 32 bit domU i
installed nvidia's own graphic driver + singed gplpv drivers + synergy,
do you suggest to install something in addition?)

2. when starting up windwos domU it says on the xterm

libxl: error: libxl_pci.c:990:libxl__device_pci_reset: The kernel
doesn't support reset from sysfs for PCI device 0000:04:00.0
libxl: error: libxl_pci.c:990:libxl__device_pci_reset: The kernel
doesn't support reset from sysfs for PCI device 0000:04:00.1

I thought that it practically means that domU cant be rebooted but it
actually works after domU stop-start too. (Strangely ubuntu domU works
on first boot cant be booted afterwards, only after full phycial dom0
reboot is works again, maybe its because of ubuntu domU's nouveaux
driver, i must investigate it more.)

3. just for the record of mail archive

>> so i get such new masks
> >>
> >> 'and mask 0':
> >>   0111 1111 1111 1100 0010 1111 1111 1111
> >>
> >> 'or mask 0':
> >>   0001 0000 0000 0000 0110 0000 0000 0000
> >>
> >> they are in hex
> >>
> >> new 'and mask 0': 7ffc 2fff
> >> new 'or mask 0': 0100 6000

Here i made mistake, new 'or mask 0' traslates into hex like 1000 6000.

>> C:\> nvflash --index=X --strap 0x7FFC2FFF 0x10006000 0x7fffffff
> >> 0x00000000

Here it is rather '--straps' and i issued it using upper case letters
for hex numbers instead, and X was in my case 2. Since i had this
millenium dos usb stick prepared i used it (saving also old .rom in case
it may be of some use like 'nvflash --index=2 -b gts-450.rom')


Best regards and many thanks,

Imre


On Wed, 2014-02-05 at 17:25 +0000, Gordan Bobic wrote:
> On 02/05/2014 04:08 PM, Imre Oolberg wrote:
> > Hi!
> >
> > Excuse my impatience but please if somebody could answer this. I am a
> > fan in using Xen at my desktop computer and it serves me well. Missing
> > piece is working Windows domU. From
> > http://wiki.xen.org/wiki/Xen_VGA_Passthrough_Tested_Adapters i got
> > exited about turning old nvidia gts 450 adapter into quadro 2000. And
> > reading achives people on this list seemed also to be enthusiastic about
> > it. So i managed to get me used but in good shape gts 450 and now i am
> > sitting on it, unsure to press enter to change contents of its flash :)
> >
> >
> > Imre
> >
> > On Sat, 2014-02-01 at 01:52 +0200, Imre Oolberg wrote:
> >> Hi!
> >>
> >> I am trying to get my Xen domU correctly working with vga passthrough
> >> and Win7 32 bit or 64 bit. At the moment graphics does not work at all,
> >> i believe that my Quadro K600, GTS 450 or GeForce 7600 GS video card
> >> even shouldnt work with Win7 under domU although with Ubuntu guests they
> >> work (at least Ubuntu domU could be booted up once successfully with
> >> graphics).
> >>
> >> So, gts 450 -> quardo 2000 to the rescue :)
> >>
> >> I would be very thankful if somebody goes thru the rest of this letter
> >> and confirms what i intend to do is correct and also cares to answer
> >> some questions.
> >>
> >> First of all i went thru these articles
> >>
> >> 1.
> >> http://www.altechnative.net/2013/11/25/virtualized-gaming-nvidia-cards-part-3-how-to-modify-a-fermi-based-geforce-into-a-quadro-geforce-gts450gtx470gtx480-to-quadro-200050006000/
> >> 2.
> >> https://devtalk.nvidia.com/default/topic/489965/cuda-programming-and-performance/gtx480-to-c2050-hack-or-unlocking-tcc-mode-on-geforce/post/3511598/#3511598
> >> 3.
> >> http://www.davidgis.fr/blog/index.php?2013/09/18/969-xen-430-vga-passthrough-gtx-480-soft-moded-to-quadro-6000
> >>
> >> As i understand they more-or-less describe the same procedure, i
> >> compiled this sequence for myself.
> >>
> >> 1. my hardware is
> >> http://www.gigabyte.us/products/product-page.aspx?pid=3600#ov
> >>
> >> 2. booted computer under natively installed Win7 32 bit, installed
> >> driver from nvidia.com, gpu-z from techpowerup.com and saved .rom
> >>
> >> 3. looked up my gts 450 pci dev id which turns to be 0DC4
> >>
> >> # lspci -nn | grep -i vga
> >> ...
> >> 04:00.0 VGA compatible controller [0300]: NVIDIA Corporation GF106
> >> [GeForce GTS 450] [10de:0dc4] (rev a1)
> >>
> >> 4. looked up strap area values, taking endianness into account as asking
> >> by 4 byte items (all four masks)
> >>
> >> $ od -tx4 -Ax GF106.rom | grep -A 1 ^000050
> >> 000050 002a72e9 35031458 7ffc3fff 00004000
> >> 000060 7fffffff 80000000 4aa537e5 e9446ce9
> >>
> >> 5. wrote down 'and mask 0' and 'or mask 0' in binary form
> >>
> >> PCI ID bits in mask
> >>   Fxx4 xxxx xxxx xxxx xx32 10xx xxxx xxxx
> >>
> >> and mask 0:
> >>   7f        fc        3f        ff
> >>   0111 1111 1111 1100 0011 1111 1111 1111
> >>
> >> or mask 0:
> >>   00        00        40        00
> >>   0000 0000 0000 0000 0100 0000 0000 0000
> >>
> >> 6. my gts 450 pci id is according to lspci 0DC4 and
> >> http://us.download.nvidia.com/XFree86/Linux-x86/331.20/README/supportedchips.html
> >>  says Quadro 2000 is 0DD8, so in binary
> >>
> >> GTS 450      -  0x0DC4  -  0000 1101 1100 0100
> >> Quadro 2000  -  0x0DD8  -  0000 1101 1101 1000
> >>
> >> i see 3 bits within 5 lower bits are different, good.
> >>
> >> 7. Five special ID Bits (10-13 and 28) can be used to show to the driver
> >> pci-id differently, and some of them need to be amended, i hope in my
> >> case like this (i understand 'and mask' is for suppressing hardstrap bit
> >> value into zero and 'or mask' is for making hardstrap value into one, as
> >> driver sees them)
> >>
> >> 2nd bit in 'and mask 0' from 1 to 0
> >> 3rd bit in 'or mask 0' from 0 to 1
> >> 4th bit in 'or mask 0' from 0 to 1
> >>
> >> so i get such new masks
> >>
> >> 'and mask 0':
> >>   0111 1111 1111 1100 0010 1111 1111 1111
> >>
> >> 'or mask 0':
> >>   0001 0000 0000 0000 0110 0000 0000 0000
> >>
> >> they are in hex
> >>
> >> new 'and mask 0': 7ffc 2fff
> >> new 'or mask 0': 0100 6000
> >>
> >> 9. So all together and takining into account that 31th bit should be
> >> always zero (so 'or mask 1' 8000 0000 gets 0000 0000) i need to issue
> >> from dos prompt
> >>
> >> C:\> nvflash --index=X --strap 0x7FFC2FFF 0x10006000 0x7fffffff
> >> 0x00000000
> >>
> >> Please confirm i got to the right outcome assuming i had the input data
> >> i started out from.
> 
> That looks correct.
> 
> >> This is long letter already but i have some more questions
> >>
> >> 1. GPU-Z says my bios version is 70.06.13.00.01, do i need to update it
> >> somehow before coversion into quadro or is it just all right? (and i
> >> believe it is not tuned in any way)
> 
> Leave the BIOS alone - it won't make any difference.
> 
> >> 2. in
> >> https://devtalk.nvidia.com/default/topic/489965/cuda-programming-and-performance/gtx480-to-c2050-hack-or-unlocking-tcc-mode-on-geforce/post/3511598/#3511598
> >> readers are instructed to change besides strap masks many other things
> >> like pci dev id at 0x0000018E, Board boot string etc, are those changes
> >> essential or rahter so to say cosmetic (and harmless to do)?
> >> http://www.altechnative.net/2013/11/25/virtualized-gaming-nvidia-cards-part-3-how-to-modify-a-fermi-based-geforce-into-a-quadro-geforce-gts450gtx470gtx480-to-quadro-200050006000/
> >>  isnt mentioning them.
> 
> It is harmless and won't gain you anything either way. I can see the 
> benefit of tidyness in changing the PCI ID to what you are changing it 
> to, but the only thing that checks this is nvflash to warn you if you 
> are trying to flash a BIOS with a different device ID onto the card. My 
> advice would be to go with the lazy option and leave it alone. Just 
> change the straps - it is sufficient.
> 
> >> 3. a used usb dos boot material as guided at, i hope this is ok (it
> >> contains windows millenium dos, nvflash v. 5.100.0.1)
> >> http://www.techpowerup.com/forums/threads/guide-for-flashing-bios-of-nvidia-gpu.119955/
> 
> The Windows version of nvflash works just fine. No need to do it from 
> DOS in general unless the Windows version is refusing to work for you 
> for some obscure reason.
> 
> >> 4. i didnt find Quadro 2000 .rom from
> >> http://www.techpowerup.com/vgabios/, if anybody is willing to send it to
> >> me, it would be interesting to look at (original or yet better gts
> >> modified into quadro 2000)
> 
> You don't need it - it won't achieve anything other than potentially 
> mess up your video outputs. Q2000 has 1xDVI + 2xDP - I am not aware of 
> any GTS450 with that arrangement, so if you flash the Q2000 BIOS onto 
> the GTS450 the chances are that you will lose output everything but the 
> first DVI port.
> 
> Just flash the strap and enjoy in a VM.
> 
> Gordan
> 
> _______________________________________________
> Xen-users mailing list
> Xen-users@xxxxxxxxxxxxx
> http://lists.xen.org/xen-users




_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxx
http://lists.xen.org/xen-users


 


Rackspace

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