PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fermi to Quadro Bios Mod Anleitung


kruemelmonster
2014-09-21, 00:34:07
Update: Hyper-V RemoteFX vs echter PC 3DMark sowie Grid 2 VM Benchmarks (http://www.forum-3dcenter.org/vbulletin/showthread.php?p=10364301#post10364301) hinzugefügt, für die Tabelle an das Ende des Posting scrollen
Update 2: Erfahrungen mit GeForce und Soft Quadro in einer ESXi VM (http://www.forum-3dcenter.org/vbulletin/showthread.php?p=10384892#post10384892)
Update 3: GeForce 9600 GT -> Quadro FX 1800 Mod (http://www.forum-3dcenter.org/vbulletin/showpost.php?p=10416439&postcount=24) + GeForce 8600 GS -> Quadro FX 570 Mod (http://www.forum-3dcenter.org/vbulletin/showpost.php?p=10418343&postcount=25)

---

Dies ist eine Umsetzung des Artikels Virtualized Gaming: Nvidia Cards, Part 3: How to Modify 2xx – 4xx series GeForce into a Quadro (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/), welcher auf eigenes Risiko durchzuführen ist. Mit einer zusätzlichen Grafikkarte und einem bootfähigen USB-Stick mit den Originaldateien zur Sicherheit ist der Moment des Neustarts nach dem Flashen definitiv leichter zu ertragen.

Das wichtigste vorweg: es lassen sich weder die professionellen OpenGL Extensions freischalten, noch mehr Leistung in entsprechenden Anwendungen dazugewinnen.

Was bringt die Mod dann: Mosaic (http://www.nvidia.com/object/nvidia-mosaic-technology.html), die Freischaltung der bidirektionalen DMA-Engine (http://www.geeks3d.com/20101024/nvidia-quadro-dual-copy-engines-for-real-gpu-asynchronous-texture-transferts-explained/), und worauf es mir ankommt: Unterstützung für Windows Server 2012 R2 RemoteFX und MultiOS sowie SLI MultiOS (http://www.nvidia.com/object/sli_multi_os.html) Unterstützung!

Wie funktioniert das ganze: neben der regulären PCI Device ID wird die Identität einer Karte durch mehrere Widerstände auf der Platine geregelt, welche dann über den Bootstrap Bereich im Bios in entsprechende GeForce oder Quadro PCI IDs gemappt werden. Durch Änderungen in jenem Bereich kann man eine GeForce als Quadro erkennen lassen, und Funktionen nutzen welche durch den Treiber nur oberflächlich geschützt werden. Um die professionellen OpenGL Eigenschaften freizuschalten führt der Treiber anscheinend tiefergehende Prüfungen durch welche nur echte Quadros bestehen.

Benötigt werden:


das eigene Fermi Bios, auszulesen mit nvflash oder GPU-Z (http://www.techpowerup.com/downloads/SysInfo/GPU-Z/)


nvflash (http://www.techpowerup.com/downloads/Utilities/BIOS_Flashing/NVIDIA/), die Windows Version funktionierte bei mir unter 8.1 x64 problemlos

einen Hexeditor wie HxD (http://mh-nexus.de/de/hxd/)


eine Fermi GeForce welche ein Quadro Gegenstück auf gleicher Chipbasis mit gleichem Speicherinterface besitzt (die Anzahl der Shader und die Speichermenge wird nicht durch die Mod beeinflusst, daher darf es dort Abweichungen geben):

http://abload.de/img/q5jafcj.png (http://abload.de/image.php?img=q5jafcj.png)

Der oben verlinkte Artikel hat sich mit folgenden Mods am Beispiel einer GTX 480 beschäftigt ...

GTS 450 -> Quadro 2000


GTX 470 -> Quadro 5000


GTX 480 -> Quadro 6000


in den Kommentaren gibt es noch Erfolgsmeldungen von 9600 GT, GT 430 und GTX 460 Besitzern, und GTX 465 -> Quadro 4000 bietet sich wohl auch an


...hier soll es jetzt um die Durchführung am Beispiel einer GTX 470 gehen:

Die originale GeForce Device ID lässt sich über GPU-Z oder den NV Inspector herausfinden, die gewünschte Quadro Device ID bekommt man aus den inf Dateien der Treiber:
http://abload.de/img/qmod2qdiiy.png (http://abload.de/image.php?img=qmod2qdiiy.png)

Diese IDs werden nun in Binärwerte umgerechnet, entweder händisch oder unter Zuhilfenahme eines Online Converters wie z.b. diesem (http://www.scadacore.com/field-applications/miscellaneous/online-hex-converter.html) hier.

GeForce 470 Device ID: 06CD 0000 0110 1100 1101
Quadro 5000 Device ID: 06D9 0000 0110 1101 1001

Differenz: xxxx xxxx xxx1 x0xx

Der benötigte Bootstrap lässt sich im ausgelesenen Bios mit HxD am Offset 0x58 identifizieren:
http://abload.de/img/qmod1kxi99.png (http://abload.de/image.php?img=qmod1kxi99.png)

Dieser Wert wird notiert und muss vor der weiteren Bearbeitung nach little-endian konvertiert werden:
Firmware Originalwert FF 3F FC 7F 00 40 00 00 FF FF F1 7F 00 00 02 80

Firmware little endian 7F FC 3F FF 00 00 40 00 7F F1 FF FF 80 02 00 00

Über diese vier 4 Byte Blöcke wird die Device ID mittels zweier Straps kodiert, einmal in den ersten 2x 4 Byte mit AND 0 und in den zweiten 2x 4 Byte mit OR 0 maskiert. (Die zweite Hälfte wird über AND 1 und OR 1 maskiert, dies ist aber für den Mod nicht relevant). Der interessante Teil des alten Bootstrap ausgeschrieben und in Binär umgerechnet sieht dann so aus:

Old Strap:
AND-0: 7F FC 3F FF
0111 1111 1111 1100 0011 1111 1111 1111

OR-0: 00 00 40 00
0000 0000 0000 0000 0100 0000 0000 0000

Über diese 2x 32 Bit wird die Device ID über insgesamt 5 Bits an den Positionen 10 bis 13 und 28 definiert was folgende Maske ergibt:

ID Bit: 4 32 10
Mask: -xxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx

Welche Bits geändert werden müssen ergibt sich aus der Berechnung anfangs, in diesem Fall sind es das dritte (ID 2) und das fünfte Bit (ID 4), welche auf 0 bzw 1 gesetzt werden soll. Wie der Wikipedia (http://en.wikipedia.org/wiki/Mask_%28computing%29) zu entnehmen war wird die OR Maske genutzt um ein Bit zu aktivieren, und die AND Maske um es zu deaktivieren. Somit wird ID Bit 2 in der AND Maske auf 0 gesetzt während ID Bit 4 in der OR Maske von 0 auf 1 gesetzt wird:

ID Bit: 4 32 10
Mask: -xxX xxxx xxxx xxxx xxxX xxxx xxxx xxxx

Old Strap:
AND-0: 7F FC 3F FF
0111 1111 1111 1100 0011 1111 1111 1111

OR-0: 00 00 40 00
0000 0000 0000 0000 0100 0000 0000 0000

New Strap:
AND-0: 7F FC FF
0111 1111 1111 1100 0010 1111 1111 1111

OR-0: 00 40 00
0001 0000 0000 0000 0100 0000 0000 0000

Die neuen Werte in Hex zurückgerechnet...

New Strap:
AND-0: 7F FC 2F FF
0111 1111 1111 1100 0010 1111 1111 1111

OR-0: 10 00 40 00
0001 0000 0000 0000 0100 0000 0000 0000

...ergeben dann zusammen mit der unbearbeiteten zweiten Hälfte des Bootstraps den neuen Bootstrap:

7F FC 2F FF 10 00 40 00 7F F1 FF FF 80 02 00 00

Dieser lässt sich mit nvflash direkt in das aktuelle Kartenbios hineinflashen ohne das Originalbios anderweitig abzuändern...

nvflash --index=0 --straps 0x7FFC2FFF 0x10004000 0x7FF1FFFF 0x00020000 (Index=0 für die primäre Karte, die markierte Null ist kein Fehler und wird durch nvflash automatisch wieder auf Acht gesetzt)

...und bei Bedarf auch wieder auf den Originalwert zurücksetzen:
nvflash --index=0 --straps 0x7FFC3FFF 0x00004000 0x7FF1FFFF 0x00020000

Nach einem Neustart und der Hardwareneuerkennung inkl. Treiberneuinstallation sollte die Karte dann im System als Quadro auftauchen, inkl zweiter DMA-Engine.
Es müssen übrigens nicht zwingend Quadro Treiber eingesetzt werden, so gut wie jeder Desktoptreiber enthält ebenfalls die Quadro Device IDs (und schaltet dann ebenfalls Mosaic frei) wie im Beispiel mit dem 344.11 zu sehen.
http://abload.de/img/qmod5klj2l.png (http://abload.de/image.php?img=qmod5klj2l.png)http://abload.de/img/qmod6dmsmx.png (http://abload.de/image.php?img=qmod6dmsmx.png)
http://abload.de/img/qmod3m7s0c.png (http://abload.de/image.php?img=qmod3m7s0c.png)

Benchmarks:

GeForce GTX 470|Quadro 5000
http://abload.de/thumb/compubench_geforce6ls97.png (http://abload.de/image.php?img=compubench_geforce6ls97.png)http://abload.de/thumb/pcmark8_geforcehlskf.png (http://abload.de/image.php?img=pcmark8_geforcehlskf.png)http://abload.de/thumb/gpgpu_geforce50k4f.png (http://abload.de/image.php?img=gpgpu_geforce50k4f.png)http://abload.de/thumb/sandra_opencl_geforcexxsix.png (http://abload.de/image.php?img=sandra_opencl_geforcexxsix.png)|http://abload.de/thumb/compubench_quadrovgsbo.png (http://abload.de/image.php?img=compubench_quadrovgsbo.png)http://abload.de/thumb/pcmark8_quadroyxs30.png (http://abload.de/image.php?img=pcmark8_quadroyxs30.png)http://abload.de/thumb/gpgpu_quadrowcjay.png (http://abload.de/image.php?img=gpgpu_quadrowcjay.png)http://abload.de/thumb/sandra_opencl_quadro3sscx.png (http://abload.de/image.php?img=sandra_opencl_quadro3sscx.png)

Mein eigentliches Ziel war es MultiOS (http://www.nvidia.com/object/sli_multi_os.html) zu nutzen, das wird mir zur Zeit aber noch von einigen ACPI Bugs des Mainboard Bios verhagelt. Den Quadro Mod hab ich mittlerweile einen Monat am laufen und von Basteleien mit Xen bis BF4 und Planetary Annihilation unter Windows keine Probleme erlebt, weder mit den Quadro- noch mit den Desktoptreibern. Einzig manche Diagnosetools wie Sandra sind stellenweise verwirrt und zeigen mal die reale Anzahl der Shadereinheiten der GeForce und mal die niedrigeren Datenbankwerte der Quadro an.

Happy Modding! :biggrin:

Air Force One
2014-09-21, 09:57:54
Hab leider eine AMD 280X...

Wie schaut es mit einem Benchmark mit OpenGL bei Cinebench R15 aus?
Schneidet die Karte dann besser ab und lässt er den Test erfolgreich starten?
Am Anfang wird für 2sek ein Testbild geladen bevor es gestartet wird.

kruemelmonster
2014-09-21, 14:44:11
Cinebench läuft natürlich durch (warum auch nicht?), zeigt aber ebenfalls keine Mehrleistung ggü dem Betrieb als GeForce: wenn ich mir die Ergebnisse im Netz zu CB R15 anschaue liegt meine Soft Quadro mit 91,08 fps auf einem i5 750 @ 3,6 GHz im üblichen Bereich.

Air Force One
2014-09-21, 15:33:21
Ok Danke :)
Weil der Benchmark vor Start das Bild Scant und abgleicht bevor er startet.
Kannst ja z.B mal im Treiber AA und AF und auf Performance stellen, dann sollte eig. Cinebench den Test verweigern.
War zumindest damals so.

kruemelmonster
2014-09-21, 15:49:35
Das Verhalten ist altbekannt, der Zusammenhang zum Thema mir dagegen nicht klar.
Da ich deinen Thread im ATI-Forum gesehen hab: für Radeons sind mir keine Bios Mods bekannt, und Treibermods imho nicht das was man haben will (falls sie überhaupt noch funktionieren).

---

Schon nvidia-smi lässt sich durch das veränderte Bios nicht täuschen:


C:\Program Files\NVIDIA Corporation\NVSMI>nvidia-smi.exe -q

==============NVSMI LOG==============

Timestamp : Sun Sep 21 16:20:03 2014
Driver Version : 344.11

Attached GPUs : 1
GPU 0000:01:00.0
Product Name : Quadro 5000
Product Brand : GeForce


SLI funktioniert auch mit zwei gemoddeten Karten tadellos:

Quadro 5000 SLI
http://abload.de/thumb/q1n0xze.png (http://abload.de/image.php?img=q1n0xze.png)http://abload.de/thumb/q25va0t.png (http://abload.de/image.php?img=q25va0t.png)http://abload.de/thumb/q3uwxsa.png (http://abload.de/image.php?img=q3uwxsa.png)http://abload.de/thumb/q4pozjr.png (http://abload.de/image.php?img=q4pozjr.png)

Hübie
2014-09-21, 20:30:36
Damit du das in eine "echte" Quadro machen kannst musst du löten. Wie das bei deiner aussieht weiß ich nicht. Bei Kepler musst du ein paar SMD-Widerstände ändern.

kruemelmonster
2014-09-21, 22:44:03
Auch mit dem Lötkolben bekommt man meines Wissens nach keine "echte" Quadro hin. Manche Einzelbenchmarks in SpecViewPerf können schonmal Mehrleistung auf einer gemoddeten Karte zeigen, an eine echte Quadro kommen aber auch diese nicht heran:
Note, however, that modifying a GTS450 into a Quadro 2000 does produce some performance benefits - Maya scores, although still far behind a real Quadro 2000, go up by around 40% after modifying the card. In case of the GTX470/Q5000 and GTX480/Q6000 mods, there are also other performance improvements, to be gained, such as enabling the second DMA channel (DMA transfers become bidirectional rather than unidirectional), which can significantly boost DMA transfers to/from the GPU, depending on the workload you are throwing at it.

Unfortunately, the same improvements do not hold in case of GTX580/Q7000 mod - all results remain exactly the same on that. Other people have reported similarly unchanged results on later GPUs. There also appear to be no bidirectional DMA capabilities on the newer GPUs

Bei Kepler musst du auch nur deshalb die Widerstände ändern weil der Bootstrap im Gegensatz zu Fermi nicht mehr nur über das Bios läuft (was diese Mod hier ja erst möglich macht) sondern eben über Widerstände initialisiert wird. Du musst an Kepler herumlöten um das gleiche Ergebnis wie hier mit Fermi + Biosmod zu erhalten.
Der zusätzliche OpenGL Funktionsumfang einer Quadro wird bei den GeForce Karten wahrscheinlich per Lasercut deaktiviert und ist durch keinen Lötkolben der Welt zurückzubringen.
Für irgendwas müssen die verschiedenen Chip IDs ja zuständig sein:

GTX680 --> GK104-400
GTX670 --> GK104-325
GTX660ti --> GK104-300
K5000 --> GK104-355

Hübie
2014-09-21, 22:50:30
Ah. Na gut da weißt du mehr als ich. Hab das vor einiger Zeit nur mal bei einer Suche zufällig entdeckt und jetzt noch mal aufgewärmt, weil Loeschzwerg und ich probierten DRS zu überreden auf unseren Karten aktiviert zu werden :D

Edit: Hier (http://www.eevblog.com/forum/chat/hacking-nvidia-cards-into-their-professional-counterparts/) war das.

kruemelmonster
2014-09-21, 23:00:53
Jup, den Link kenn ich. ;)

Alles was der Autor erreichen wollte, war Mosaic freizuschalten:
I own a NVidia GTX 690 which I bought for two reasons, gaming, and multi monitor setup for work, NVidia made it very clear that this card would drive up to 3 screens in 2d, which it does quite nicely :-+... under windows :--! The tight asses have decided that if you want this feature under Linux you have to get a Quadro which has Mosaic support :palm:. So naturally I decided to look at how mod the card...

Eine "echte" Quadro ist es trotz Löterei nicht geworden, aber für Mosaic und MultiOS reichts allemal. :)

Hübie
2014-09-21, 23:14:47
Ja das dieser user nur Mosaik wollte hab ich gelesen, aber da turnen auch etliche andere Spinner herum die Grid K2 wollen oder ne Tesla für TCC-Mode usw.
Bisher lese ich da von vielen Erfolgen. Aber hey: Ich geh da net bei nur um DRS freizuschalten ;D Dann downsample ich wie eh und je.
Wie hast du das eigentlich herausgefunden? Hast du Programmiererfahrung? Bin schon etwas beeindruckt muss ich sagen ;)

kruemelmonster
2014-09-21, 23:44:22
Den TCC Mode der Tesla wollen scheinbar die CUDA Programmierer, und die Grid K1/K2 Geschichten scheinen mit MultiOS bzw Xen PCI Passtrough zusammenzuhängen. Hab mich mit dem Kepler Modding auch nicht so intensiv beschäftigt da ich meine GTX 670 beim Lötversuch wahrscheinlich nur "bricken" würde, diese Arbeit würde ich dann doch eher Profis wie anddill oder Zephyroth zutrauen als einem Lötamateur wie mir. :freak:

Danke für die Blumen, aber herausgefunden hab ich hier nix (außer für mich persönlich, wie z.B. little-endian Umrechnung im Kopf und Bitmasken)... hab ganz ohne Programmiererfahrung "nur"(*) den in der ersten Zeile verlinkten Guide mit meinen Mad Hexeditor Skills und etwas Erfahrung im Bios Modding abgearbeitet, und dann meine Arbeitsschritte hoffentlich nachvollziehbar hier "zu Papier" gebracht.

* es hat mich dann auch ein paar Stunden gekostet um tatsächlich zu verstehen was ich da mache, bevor ich dann mutig geflasht hab :cool:

Zur Zeit bockt nur leider Xen rum wegen einiger Bugs in der ACPI-Tabelle des Asus S1156 Boards, das ist die aktuelle Baustelle auf dem Weg zur kompletten GPU-Virtualisierung. :biggrin:

to be continued...

Hübie
2014-09-22, 00:13:29
Na jedenfalls gut beschrieben :up:

Jetzt wo du Xen erwähnst bekomm ich einen Stich ins Herz weil meine Spielwiese (ein dualcore mit Ubuntu LT) oben herum steht und ich einfach keine Zeit finde mich weiter mit Linux zu beschäftigen :( Wollte auch etwas herum experimentieren (mit einer 9800 GT). Aber das ist zuuu OT. Viel Spaß beim basteln ;)

kruemelmonster
2014-09-22, 00:52:37
Ich fands auch immer schwer Zeit für Linux zu finden, aber seitdem Steam und einige Spiele meiner Libary auch da zu haben sind und sich mit dem Quadro Mod für Xen eine interessante Spielwiese auftut fahr ich öfter mal zum Südpol. ;)

Und eigentlich ist deine 9800 GT sogar sehr ontopic da sie von den relevanten Daten her exakt einer Quadro FX 3700 entspricht, und den Kommentaren der Originalanleitung nach sich G80 bis GT200 genauso modden lassen wie Fermi:
Thank you! Successfully converted GeForce 9600GT (10de:0622) to Quadro FX1800 (10de:0638). Passthrough works now! So, this recipe could be applied not only on Fermi, but also on Tesla.

:wink:

/e: Hab eben mal spaßeshalber den Tesla C2050 Bootstrap für meine GTX 470 ausgerechnet und werd mir morgen mal ansehen was das gibt. Könnte durchaus zu Problemen führen da die Tesla zwar ebenfalls 448 SP, aber ein 384bit statt 320bit Speicherinterface hat...die PCI Grafikkarte und der USB Recoverystick liegen schon bereit. :devil:

Hübie
2014-09-22, 00:57:04
Hm, okay dann schau ich mal wie die Device ID ist. Aktuell habe ich den nur über putty ansprechbar, also keine M+T geschweige denn Monitor sind angeschlossen. Steht auf dem Dachboden (kühl&trocken).
Jetzt fangen aber Vorlesungen an und mit Kind plus Frau plus Hund bleibt leider nicht viel Zeit. Der Tag hat zu wenig Stunden :D :freak:

kruemelmonster
2014-09-24, 23:12:48
Da mir der 470 -> C2050 Mod durch die Unterschiede im Speicherinterface doch etwas fragwürdig erscheint hab ich mir erstmal ein neues Opfer zum Üben gesucht: eine Leadtek GeForce 7300 GS (Device ID 01DF) welche eine Quadro FX 350 (Device ID 01DE) werden soll.
In der Annahme dass die Kodierung der Dev ID über die gleichen Bits wie bei G80-GF110 läuft bin ich zu folgender Rechnung gekommen:


bootstrap original FF CF CF 7F 00 30 30 80 FF FF FF 7F 00 00 00 80
bootstrap little-endian 7F CF CF FF 80 30 30 00 7F FF FF FF 80 00 00 00

gf 7300 gs dev id 01DF 0000 0001 1101 1111
quadro fx 350 dev id 01DE 0000 0001 1101 1110

From: 0000 0001 1101 1111
To: 0000 0001 1101 1110

Change: xxxx xxxx xxxx xxx0

ID Bit: 4 32 10
Mask: -xxx xxxx xxxx xxxx xxxx xAxx xxxx xxxx

Old Strap:
AND-0: 7F CF CF FF
0111 1111 1100 1111 1100 1111 1111 1111

OR-0: 80 30 30 00
1000 0000 0011 0000 0011 0000 0000 0000

New Strap:
AND-0: 7F CF CB FF
0111 1111 1100 1111 1100 1011 1111 1111

OR-0: 80 30 30 00
1000 0000 0011 0000 0011 0000 0000 0000


Mit nvflash ließen sich die Straps jedoch nicht ändern, somit hab ich das geänderte Bit direkt per HxD ins Biosfile eingetragen und die Checksumme über Öffnen/Speichern in Nibitor korrigieren lassen. Nach dem flashen und neustarten fuhr Windows sauber hoch und erkannte auch eine neue Grafikkarte, allerdings die falsche: statt 01DE meldet sich die Karte nun mit 01D0 und wird als 7350 erkannt.

Hab ich nun einen Fehler in meiner Rechnung, oder sind bei den G7x Karten teilweise andere Bits für die Dev ID zuständig? Die Bits für G80-GF110 stammen afaik aus der Nouveau Dokumentation, nur konnte ich leider über Google noch nichtmal diese Quelle ausfindig machen. Hat da evtl jemand etwas mehr Einblick in die Nouveau Entwicklung und könnte mir entsprechende Quellen geben?

---

i5 750 @ 3,6 GHz / 4 GB DDR3 1440 / GTX 470 @ Quadro 5000 @ 750/1500/1800 / Server 2012 R2 + Windows 8.1 Enterprise vs Windows 8.1 Pro:

http://abload.de/img/hyperv13rxbv.png (http://abload.de/image.php?img=hyperv13rxbv.png)
http://abload.de/img/hyperv2lqbtt.png (http://abload.de/image.php?img=hyperv2lqbtt.png)
http://abload.de/img/grid2vmnqjtu.jpg (http://abload.de/image.php?img=grid2vmnqjtu.jpg)

Grid 2 in 1024x768 LQ mit 29fps avg über eine RDP Verbindung - dafür das RemoteFX die langsamste aber auch einfachste und unkomplizierteste Art der GPU-Virtualisierung ist, imo schon ganz in Ordnung.
Die Emulation scheint dabei kräftig Leistung zu verbrauchen, im Schnitt zeigte GPU-Z auf dem Hostsystem eine GPU-Auslastung von 40-60% an. Diese Sorgen sollten eigentlich mit richtigem GPU PassThrough: https://www.youtube.com/watch?v=37D2bRsthfI vorbei sein, nur da Intel meint einen Produktkatalog auf Geschwindigkeit und Features aufbauen zu müssen, statt nur über Geschwindigkeit hab ich hier zweimal ein GeForce 4 MX Äquivalent in Form eines i5 750 & i7 2600k und kann bei beiden kein VT-d nutzen. :mad:

3DMark 06/Vantage/11 @ VM|3DMark 06/Vantage/11 @ PC
http://abload.de/thumb/hyperv3z7og5.jpg (http://abload.de/image.php?img=hyperv3z7og5.jpg)http://abload.de/thumb/hyperv4rxq5y.jpg (http://abload.de/image.php?img=hyperv4rxq5y.jpg)http://abload.de/thumb/hyperv5jypjp.jpg (http://abload.de/image.php?img=hyperv5jypjp.jpg)|http://abload.de/thumb/3dm06xcsau.jpg (http://abload.de/image.php?img=3dm06xcsau.jpg)http://abload.de/thumb/3dmvvssgc.jpg (http://abload.de/image.php?img=3dmvvssgc.jpg)http://abload.de/thumb/3dm112ts42.jpg (http://abload.de/image.php?img=3dm112ts42.jpg)

Air Force One
2014-09-26, 08:33:30
Der 4770k hat doch auch kein vt-d sondern vt-x oder nicht? Der Xeon 1230V (~150-200€) jedoch schon.

kruemelmonster
2014-09-26, 13:39:25
Das kannst du hier: http://ark.intel.com fix selber prüfen, das Chaos welches Intel mit dem VT-d Support erzeugt ist nicht mehr feierlich:

i5 750 nein - i7 860 ja
i5 2400 ja - i7 2600k nein
i5 3450 nein - i7 3770k nein
i7 4770k nein - i7 4790k ja

TobiasAlt
2014-09-28, 12:06:19
mal mit ESX(i) statt Xen probiert?

kruemelmonster
2014-10-01, 01:27:54
Jup, auch das neue Update 2 für den ESXi 5.5 ändert an der Sachlage leider nichts.

Ich hab mir im Marktplatz jetzt eine PCIe 1x Grafikkarte besorgt welche ich als primäre Karte laufen lassen will, in der Hoffnung die Soft Quadro dann exklusiv einer Xen oder QEMU VM zuweisen zu können.

Zum Topic: hats schon jemand ausprobiert, gibts weitere Erfolgsmeldungen?

Hübie
2014-10-01, 07:43:03
Nee noch keine Zeit gefunden. Studium halt. Ich muss nochmal genau schauen welche 9800er ich habe. Geht das nur mit Referenzdesign??

kruemelmonster
2014-10-01, 14:39:08
Das Layout der Karte selber wird komplett egal sein da ja das karteneigene Bios angepasst wird. Die wohl einzige Vorraussetzung die es gibt dürfte die Verwandschaft der Karten und damit der Device IDs sein: man kann über die Softstraps nur die letzten fünf Bits der Dev ID beeinflussen, was bei passenden Mods wohl auch immer ausreicht: für GTx 4x0 -> Quadro x000 passt es genau, und auch für deine 9800 GT kommt man mit den letzten fünf Bits aus:

GeForce 98 GT 0601 0000 0110 0000 0001
QuadroFX 3700 061A 0000 0110 0001 1010

Du kannst mir gerne mal den aktuellen Bootstrap deines Bios posten um zu sehen ob wir dann beide auf das gleiche Ergebnis kommen.

Hübie
2014-10-02, 08:16:56
Hm. Das könnte etwas dauern. Vielleicht Mitte des Monats. Is echt viel zu tun. :D

kruemelmonster
2014-10-12, 01:32:28
Da ich vorübergehend einen VT-d-fähigen Rechner hier stehen hab ist die Gelegenheit günstig mit dem ESXi etwas zu spielen. In einer Windows 7 VM lässt sich dabei eine GeForce GTX 750 Ti im Gegensatz zu einer Soft Quadro 5000 nicht zur Mitarbeit bewegen, der Gerätemanager meldet dann Code 43. Das "Problem" ist NV bekannt, Puget Systems hat diesbzgl schonmal Kontakt aufgenommen, gefixt werden soll es jedoch nicht. Radeons lassen sich lt. Internet wohl relativ problemlos mit dem ESXi nutzen, eine testweise eingesetzte X1600 Pro lässt die VM jedoch schon beim Booten mit einem BSOD abschmieren.

Gerätemanager:
GTX 750 Ti - Fehler|Soft Quadro 5000 - läuft
http://abload.de/thumb/esxgtxpdbvn.jpg (http://abload.de/image.php?img=esxgtxpdbvn.jpg)|http://abload.de/thumb/esxquadrojrx1z.jpg (http://abload.de/image.php?img=esxquadrojrx1z.jpg)

Im Gegensatz zum emulierten RemoteFX Adapter des Hyper-V Server mit starken Leistungseinbußen kommt die Leistung der Karte in der ESXi VM auch tatsächlich an, Benchmarks folgen...

http://abload.de/img/esxpauuop8.jpg (http://abload.de/image.php?img=esxpauuop8.jpg)

/edit:

Da der genutzte Server leider zu schnell wieder weg war konnte ich bis auf Unigine Heaven & Valley keine Benchmarks mit der Quadro laufen lassen, und die Ergebnis htmls gibts nun auch nicht mehr. Rein vom Bauchgefühl mit Blick auf den fps Counter kamen dabei schon ähnliche Werte zu echter Hardware bei raus.
Ab nächster Woche kann ich mir das endlich genauer und vor allem dauerhaft anschauen da dann der VT-d-lose i5 750 gegen einen Xeon X3470 (aka i7 870) getauscht wird. VMware ESXi und Citrix Xen Server sind bereits installiert...

kruemelmonster
2014-11-09, 02:35:09
Weiter im Text...
Heute: GeForce 9600 GT -> Quadro FX 1800

Durch das Umrechnen der Device ID in binär ergeben sich drei zu ändernde Bits, #1 muss von 1 auf 0 geändert werden während #3&4 von 0 auf 1 gesetzt werden sollen.
ID-Bit: 4 3210

GeForce 9600GT Device ID: 0622 -> 0000 0110 0010 0010
Quadro FX 1800 Device ID: 0638 -> 0000 0110 0011 1000

Differenz: xxxx xxxx xxx1 1x0x




Der Bootstrap im 9600 GT Bios...
http://abload.de/img/g94hxduxsq9.jpg (http://abload.de/image.php?img=g94hxduxsq9.jpg)

...wird nach little endian umgerechnet...
Firmware Originalwert FF 03 C2 6F 00 88 00 00 FF FF FE 7F 00 00 01 80

Firmware little endian 6F C2 03 FF 00 00 88 00 7F FE FF FF 80 01 00 00

...und anschließend werden die gewünschten Bits anhand der Schablone gekippt. Bit #3&4 werden in der OR Maske von 0 auf 1 gesetzt, Bit #1 dagegen kann in der AND Maske nicht von 1 auf 0 gesetzt werden da der Wert dort bereits 0 beträgt. Stattdessen kann auch das entsprechende Bit in der OR Maske genullt werden:
ID Bit: 4 32 10
Mask: -xxX xxxx xxxx xxxx xxXx Xxxx xxxx xxxx

Old Strap:
AND-0: 6F C2 03 FF
0110 1111 1100 0010 0000 0011 1111 1111

OR-0: 00 00 88 00
0000 0000 0000 0000 1000 1000 0000 0000

New Strap:
AND-0: 6F C2 03 FF
0110 1111 1100 0010 0000 0011 1111 1111

OR-0: 10 00 A0 00
0001 0000 0000 0000 1010 0000 0000 0000

Mit nvflash wird dann einen Reboot später...

nvflash --index=0 --straps 0x6FC203FF 0x1000A000 0x7FFEFFFF 0x00010000

...aus einer GeForce 9600 GT eine Quadro FX 1800.

http://abload.de/img/gf96gt80qhe.png (http://abload.de/image.php?img=gf96gt80qhe.png)http://abload.de/img/qfx18scpkv.png (http://abload.de/image.php?img=qfx18scpkv.png)

kruemelmonster
2014-11-10, 18:19:19
Der nächste Kandidat, eine GeForce 8600 GS, war recht lehrreich da das Quadro Modding nicht auf Anhieb geklappt hat:

ID-Bit 4 3210
GeForce 86 GS Device ID: 0403 0000 0100 0000 0011
Quadro FX 570 Device ID: 040E 0000 0100 0000 1110

Differenz: xxxx xxxx xxxx 11x0

Zwei Bits auf 1 und ein Bit auf 0 ziehen, eigentlich kein Problem. Nachdem der Bootstrap umgestellt wurde...

Firmware Originalwert C3 03 FE 7F 1C 8C 00 80 FF FF FE 7F 00 00 01 80

Firmware little endian 7F FE 03 C3 80 00 8C 1C 7F FE FF FF 80 01 00 00

...und die Bits gekippt wurden...

ID Bit: 4 32 10
Mask: -xxx xxxx xxxx xxxx xxXX xXxx xxxx xxxx

Old Strap:
AND-0: 7F FE 03 C3
0111 1111 1111 1110 0000 0011 1100 0011

OR-0: 80 00 8C 1C
1000 0000 0000 0000 1000 1100 0001 1100

New Strap:
AND-0: 7F FE 03 C3
0111 1111 1111 1110 0000 0011 1100 0011

OR-0: 80 00 B8 1C
1000 0000 0000 0000 1011 1000 0001 1100

...bekam ich beim Flashen...

nvflash --index=0 --straps 0x7FFE03C3 0x8000B81C 0x7FFEFFFF 0x00010000

...lediglich die Meldung "ERROR: Strap values out of range".

Verantwortlich dafür ist der OR-0 Bereich, genauer das letzte Bit. In der Kippschablone, welche ich von der Originalanleitung übernommen habe, sind nur die ersten 31 Bits mit einem "x" als "verfügbar" markiert (und nur fünf davon per Bios veränderbar) während das letzte Bit mit einem "-" als "nicht definiert" dargestellt ist. Nicht ohne Grund...

Sowohl das GTX 470 als auch das 9600 GT Bios haben an der Position eine Null (und daher auch kein Problem), dieses 8600 GS Bios dagegen hat dort eine Eins gesetzt was dann zur "out of range" Fehlermeldung führt. Nullt man diesen Wert aus läuft der Flash fehlerfrei durch:

nvflash --index=0 --straps 0x7FFE03C3 0x0000B81C 0x7FFEFFFF 0x00010000
Erste Markierung: muss für dieses Kartenbios auf Null gesetzt werden da das verantwortliche Bit nicht definiert ist
Zweite Markierung: muss bei jeder Bootstrap Modifikation auf Null gesetzt werden

http://abload.de/img/gf86gsikrqj.png (http://abload.de/image.php?img=gf86gsikrqj.png)http://abload.de/img/qfx570wisc4.png (http://abload.de/image.php?img=qfx570wisc4.png)

kruemelmonster
2015-04-30, 20:41:45
Hab eben mal spaßeshalber den Tesla C2050 Bootstrap für meine GTX 470 ausgerechnet und werd mir morgen mal ansehen was das gibt. Könnte durchaus zu Problemen führen da die Tesla zwar ebenfalls 448 SP, aber ein 384bit statt 320bit Speicherinterface hat...die PCI Grafikkarte und der USB Recoverystick liegen schon bereit. :devil:

http://abload.de/img/gpuzteslac6ue5.png (http://abload.de/image.php?img=gpuzteslac6ue5.png)

Läuft. :biggrin:

Die Mod läuft genau wie beschrieben ab, gab keinerlei Probleme aber auch keine weiteren Vorteile oder neue Optionen ggü dem Quadro Betrieb.

Nachtrag:

http://abload.de/img/gtx285nrue7.png (http://abload.de/image.php?img=gtx285nrue7.png) -> http://abload.de/img/qfx5800modebu3i.png (http://abload.de/image.php?img=qfx5800modebu3i.png)

FX 5800...dass NV ausgerechnet diesen Namen für das Quadro Topmodell ausgewählt hat. :freak:

GTX 285 Bootstrap 03 E0 FF 7F 88 0E 00 00 FF FF FF 7F 00 00 00 80

7F FF E0 03 00 00 0E 88 7F FF FF FF 80 00 00 00


GTX 285 Device ID: 05E3 0000 0101 1110 0011
QFX5800 Device ID: 05FD 0000 0101 1111 1101

Differenz: xxxx xxxx xxx1 110x




ID Bit: 4 32 10
Mask: -xxX xxxx xxxx xxxx xxXX Xxxx xxxx xxxx

Old Strap:
AND-0: 7F FF E0 03
0111 1111 1111 1111 1110 0000 0000 0011

OR-0: 00 00 0E 88
0000 0000 0000 0000 0000 1110 1000 1000

New Strap:
AND-0: 7F FF E0 03
0111 1111 1111 1111 1110 0000 0000 0011

OR-0: 10 00 36 88
0001 0000 0000 0000 0011 0110 1000 1000


QFX5800:

nvflash --index=0 --straps 0x7FFFE003 0x10003688 0x7FFFFFFF 0x00000000

GTX 285:

nvflash --index=0 --straps 0x7FFFE003 0x00000E88 0x7FFFFFFF 0x00000000

kruemelmonster
2015-05-22, 13:19:23
9800 GT Green Edition goes Quadro:

http://abload.de/img/9800gtcroyi.png (http://abload.de/image.php?img=9800gtcroyi.png)->http://abload.de/img/qfx3700ykqs5.png (http://abload.de/image.php?img=qfx3700ykqs5.png)

9800 GT C3 23 FE 7F 04 90 00 00 FF FF FE 7F 00 00 01 80

7F FE 23 C3 00 00 90 04 7F FE FF FF 80 01 00 00


9800 GT Device ID: 0614 0000 0110 0001 0100
QFX3700 Device ID: 061A 0000 0110 0001 1010

Differenz: xxxx xxxx xxxx 101x




ID Bit: 4 32 10
Mask: -xxx xxxx xxxx xxxx xxXX Xxxx xxxx xxxx

Old Strap:
AND-0: 7F FE 23 C3
0111 1111 1111 1110 0010 0011 1100 0011

OR-0: 00 00 90 04
0000 0000 0000 0000 1001 0000 0000 0100

New Strap:
AND-0: 7F FE 23 C3
0111 1111 1111 1110 0010 0011 1100 0011

OR-0: 00 00 A8 04
0000 0000 0000 0000 1010 1000 0000 0100


QFX3700:

nvflash --index=0 --straps 0x7FFE23C3 0x0000A804 0x7FFEFFFF 0x00010000

9800 GT:

nvflash --index=0 --straps 0x7FFE23C3 0x00009004 0x7FFEFFFF 0x00010000

Gast
2015-05-23, 00:37:05
Ich finde das ja mal richtig geil was du da machst! Vor allem das du dich auch weiterhin damit beschäftigst. Darf ich dir da mal ne Frage stellen?

kruemelmonster
2015-05-23, 01:25:21
Na klar, schieß los.

Hübie
2015-05-23, 01:40:05
Ach Mist, da fällt mir ein dass ich hier noch ne GF110 zur Quadro machen wollten wenn die noch funzt (wurde gebacken :biggrin:). Damit wollte ich dann in SolidWorks arbeiten. Hab ich Nachteile wenn ich das über ne VM löse? Hab ja n 3930k der afaik mit allem ausgestattet ist.

Gast
2015-05-23, 01:59:27
Danke dir, ich werde mich mal nen Acc anlegen und schreibe dir wenn es okay ist.

The Nemesis
2015-05-23, 09:43:00
Ach Mist, da fällt mir ein dass ich hier noch ne GF110 zur Quadro machen wollten wenn die noch funzt (wurde gebacken :biggrin:). Damit wollte ich dann in SolidWorks arbeiten. Hab ich Nachteile wenn ich das über ne VM löse? Hab ja n 3930k der afaik mit allem ausgestattet ist.
Wenn CPU und Mainboard kein Intel VTX-D oder AMD-Vi können, wirst du die Grafikleistung in der VM nicht nuzen können.

kruemelmonster
2015-05-23, 15:43:12
Ach Mist, da fällt mir ein dass ich hier noch ne GF110 zur Quadro machen wollten wenn die noch funzt (wurde gebacken :biggrin:). Damit wollte ich dann in SolidWorks arbeiten. Hab ich Nachteile wenn ich das über ne VM löse? Hab ja n 3930k der afaik mit allem ausgestattet ist.

Ob die Mod auch mit GF110 klappt kann ich dir leider nicht sagen da es keine Quadro Einzelkarten mit diesem Chip gibt, auch die Quadro 6000 war immer GF100-basiert. Es gibt noch das QuadroPlex 7000 mit zwei GF110 Karten, laut Xen Wiki (http://wiki.xen.org/wiki/Xen_VGA_Passthrough_Tested_Adapters) ist bei der 7000er das MultiOS Feature jedoch nicht freigeschaltet.
Mit der Quadro 6000 Device ID sollte es aber eigentlich auch klappen, beide Chips sind ja äußerst ähnlich und die Biosmod schaltet eh nur "Soft Features" im Treiber frei, ändert aber ansonsten nichts an der hart verschalteten Konfiguration.

Was genau willst du über eine VM lösen? Das Flashen? Würde ich persönlich nicht machen, wer weiß ob und wie der Hypervisor Schreibzugriffe auf das VBios zulässt. Nimm besser einen DOS USB-Stick oder zieh dir fix auf ne alte Platte irgendein Windows rauf.

Wenn CPU und Mainboard kein Intel VTX -D oder AMD-Vi können, wirst du die Grafikleistung in der VM nicht nuzen können.

VT-d ist das entscheidende Feature, mit dem Hübies 3930k zum Glück ausgestattet ist.

x90xler
2015-05-23, 16:32:45
Kruemelmonster wie sieht das bei der 570/580 aus?; ich denke das müsste gehen? bzw. welche Anleitung passt dazu?

kruemelmonster
2015-05-23, 16:50:59
Ja das sollte gehen, siehe meine Antwort an Hübie. 570 & 580 = GF110, also bleiben nur Quadro 5000 bzw 6000.

Kommando zurück, aus dem eevblog:

Then again, modifying a GTX580 is a complete waste of time anyway. GTX480 is just as fast (in some cases faster due to dual DMA channels when modded to Quadro/Tesla), and is trivial to modify into a Q6000. I only modified my 580 [zu einer Quadro 7000] because I already had it and I was seeing odd driver clashing when using a GeForce and a Quadro in the same system under Windows. One driver would end up driving both cards, usually the later one (the GeForce one has a higher version number).

Hübie
2015-05-23, 19:38:28
Hm okay. Wollte mit SolidWorks eine VM für Konstruktion hochziehen aber wenn die eh nicht zur Quadro gemoddet werden kann lass ich meine 660 Ti einfach drin und gut is. Ich wusste gar nicht dass GF110 nie als Quadro kam. Schade. Wäre es doch das rundere Produkt ohne broken Interconnect. :rolleyes:

Die 580 hat doch auch dual channel DMA, das muss doch möglich sein. Vielleicht wieder irgendwo einen Widerstand oder Draht ran löten...? Das blöde ist, dass meine kein Ref-Design ist.

kruemelmonster
2015-05-24, 17:36:52
Die Quadro 7000 Mod könntest du natürlich machen, funktionieren tut das ja, nur das VGA Passthrough bringt es leider nicht zurück. Zu Übungszwecken oder um zu gucken ob nicht doch der zweite DMA Kanal aktiviert wird vllt trotzdem einen Versuch wert.

Falls du an deiner 660 Ti herumlöten magst: im von dir in Post #8 verlinkten Forum haben ein paar Leute GK104, 106 & 110 durch Basteleien an bestimmten Widerständen zu Quadro, Tesla oder GRID gewandelt. GK104 -> Tesla K10 scheint schon durch das alleinige Entfernen eines Widerstandes auf der Rückseite zu klappen, ich les mich für meine GTX 670 aktuell grad in das Thema ein. :devil:

---

Kleines Update zum VGA Passthrough:

Es lässt sich nicht jede Soft Quadro in eine VM durchreichen, eine von zwei Bedingungen muss erfüllt sein: entweder die Karte ist GT200-basiert und damit auf der Whitelist im NV Treiber für Quadro FX 3/4/5800, oder sie ist GF106 oder GF100-basiert und somit als Quadro 2/4/5/6000 MultiOS kompatibel.

Andernfalls lässt sich die Karte zwar zur VM hinzufügen und auch die Treiberinstallation läuft durch, nach dem folgenden Zwangsneustart steht die Karte aber mit Ausrufezeichen und Code 43 im Gerätemanager.
Getestet unter ESXi 6 mit einer 9600 GT -> FX 1800 und 9800 GT -> FX 3700, mit einer echten FX 1800 (hab mittlerweile eine :D) gibt es wie mit der Soft Quadro 5000 dagegen keine Probleme.

=Floi=
2015-05-24, 20:08:25
haben die gemodeten tesla oder quadro mehr rechnleistung?

hidesan
2015-05-25, 02:08:48
Hi kruemelmonster,

This mod is very attractive for me, so ma I ask you some questions?

1. Quadro5000 is a fermi chip, and gtx750ti is a newest maxwell chip. Is the benchmark score declined after this mod?

2. Would you please tell me how to mod?

Hübie
2015-05-25, 02:13:29
Ich habe im Ubuntu-Server ne 9800 GT aber die hat so wenig VRAM. Damit kann man nix anfangen schätz ich. Hab wohl Pech gehabt =)

kruemelmonster
2015-05-25, 19:00:09
haben die gemodeten tesla oder quadro mehr rechnleistung?

Siehe die Benchmarks in Post #1.

Hi kruemelmonster,

This mod is very attractive for me, so ma I ask you some questions?

1. Quadro5000 is a fermi chip, and gtx750ti is a newest maxwell chip. Is the benchmark score declined after this mod?

2. Would you please tell me how to mod?

Hi,

there's a misunderstanding, GTX 750 and GTX 470@Quadro 5000 are two different cards. If you have a Fermi card and want to mod it, check this guide in english: 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/

Ich habe im Ubuntu-Server ne 9800 GT aber die hat so wenig VRAM. Damit kann man nix anfangen schätz ich. Hab wohl Pech gehabt =)

Du könntest dir ne FX 3700 draus basteln, das bringt aber leider nicht viel: VGA Passthrough klappt mit der Karte nicht, und auch Mosaic wird für die G92 Karte im Gegensatz zu G94 seltsamerweise nicht freigeschaltet.

Mosaic @ Soft Quadro FX 1800:
http://abload.de/thumb/qfx1800mosaicouowx.png (http://abload.de/image.php?img=qfx1800mosaicouowx.png)

Ansonsten könntest du dir die 9800 GT noch zur GTS 240 rebranden, klappt übrigens auch mit 8400 GS und 9600 GT:

http://abload.de/img/g1003oofp.png (http://abload.de/image.php?img=g1003oofp.png)http://abload.de/img/gt140jsq4m.png (http://abload.de/image.php?img=gt140jsq4m.png)http://abload.de/img/gts240gnqyh.png (http://abload.de/image.php?img=gts240gnqyh.png)

Bringt natürlich gar nichts außer dass sich die Karten nun ins aktuelle Namensschema eingliedern.

hidesan
2015-05-26, 12:17:22
Siehe die Benchmarks in Post #1.



Hi,

there's a misunderstanding, GTX 750 and GTX 470@Quadro 5000 are two different cards. If you have a Fermi card and want to mod it, check this guide in english: 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/



Du könntest dir ne FX 3700 draus basteln, das bringt aber leider nicht viel: VGA Passthrough klappt mit der Karte nicht, und auch Mosaic wird für die G92 Karte im Gegensatz zu G94 seltsamerweise nicht freigeschaltet.

Mosaic @ Soft Quadro FX 1800:
http://abload.de/thumb/qfx1800mosaicouowx.png (http://abload.de/image.php?img=qfx1800mosaicouowx.png)

Ansonsten könntest du dir die 9800 GT noch zur GTS 240 rebranden, klappt übrigens auch mit 8400 GS und 9600 GT:

http://abload.de/img/g1003oofp.png (http://abload.de/image.php?img=g1003oofp.png)http://abload.de/img/gt140jsq4m.png (http://abload.de/image.php?img=gt140jsq4m.png)http://abload.de/img/gts240gnqyh.png (http://abload.de/image.php?img=gts240gnqyh.png)


Bringt natürlich gar nichts außer dass sich die Karten nun ins aktuelle Namensschema eingliedern.

Thank you for your reply. I throught that you have succeeded to mod maxwell card by soft mod. I didn't know that you have 2 cards in the same pc.

I will try to look for which resistor I should remove to mod from gtx750ti to k2200.

Gast
2015-05-26, 13:38:53
Ich hab hier noch eine GTS8800 320bit liegen. Kann man sowas auch modden?

kruemelmonster
2015-05-26, 15:02:47
Man kann, Quadro FX 4600 und Tesla C870 basieren laut Wikipedia auf dem gleichen G80 Chip wie deine Karte. Wäre schon sehr interessant ob als Quadro dann Mosaic freigeschaltet wird, also go for it. :up:

Das unterschiedlich breite Speicherinterface ist wohl auch kein Problem wie die GTX 470 -> Tesla C2050 Mod gezeigt hat, die Ansteuerung der Hardwareeinheiten wird durch die veränderte Device ID nicht beeinflusst.

Gast
2015-08-18, 23:18:34
Hallo kruemelmonster,

ich möchte eine 9300GE in eine NVS 295 mit deiner Anleitung modifizieren, jedoch verstehe ich nicht den Umrechnungsschritt der AND OR bits. Ich habe versucht dies von der Wikipedia Seite nachzuvollziehen, ich verstehe nicht wie das geht. Ich hoffe du könntest das mit deinen Worten erklären.


Mir freundlichen Grüßen

kruemelmonster
2015-08-21, 17:32:36
Schön dass es mal jemand wagt. :up:

Welche Berechnung meinst du konkret?
Wenn du die DeviceIDs sowie den Bootstrap bereits vorliegen hast und jetzt den Bootstrap quadrofizieren willst musst du schauen ob dazu die jeweiligen Bits aktiviert oder deaktiviert werden.

Für

0 => 1: Bit in der OR Maske auf 1 setzen
1 => 0: Bit in der AND Maske auf 0 setzen

1 => 0, Wert in AND beträgt aber bereits 0: Bit in der OR Maske auf 0 setzen (siehe Post #24 (http://www.forum-3dcenter.org/vbulletin/showpost.php?p=10416439&postcount=24))

Du kannst auch deinen aktuellen Arbeitssschritt hier posten, das macht es etwas leichter als im Nebel umherzustochern. ;)

Gast
2015-08-23, 20:57:16
Danke das du mir hilftst ;).

Also der Bootstrap sieht im Original so aus (von der 9300GE):

FF E3 FF 7F 00 00 00 00 FF FF FF 7F 00 00 00 80

Als Little Endian:

7F FF E3 FF 00 00 00 00 7F FF FF FF 80 00 00 00

Der Bootstrap der NVS295:

FF 03 FE 6F 00 34 00 10 FF FF FE 7F 00 00 01 80

Als Little Endian:

6F FE 03 FF 10 00 34 00 7F FE FF FF 80 01 00 00


Mein Problem ist jetzt, dass ich nicht weiß, wie ich mit den AND-0 bzw. OR-0 Bits umgehen soll. Ich hofe du kannst mir das sagen.

Mit freundlichen Grüßen

kruemelmonster
2015-08-24, 18:24:13
Kein Problem, dafür ist der Thread ja da. :)

Zuerst sucht man sich die aktuelle und die gewünschte Device ID für die Modifikation raus. Für die DX11 Fermi Generation guckt man einfach in die .inf Datei eines aktuellen Treibers, für die alten DX10 Karten (wie in diesem Fall) führt NV eine entsprechende Liste (http://www.nvidia.com/object/IO_32667.html).
Beide IDs aus dieser Liste hab ich hier von Hex nach Binär konvertiert und die zu verändernden Bits hervorgehoben:

ID-Bit: 4 3210

GeForce 9300GE Device ID: 06E0 -> 0000 0110 1110 0000
Quadro NVS 295 Device ID: 06FD -> 0000 0110 1111 1101

Differenz: xxxx xxxx xxx1 11x1

Danach nimmt man sich die erste Hälfte des nach little endian umgestellten Bootstraps...
Bootstrap originalwert FF E3 FF 7F 00 00 00 00 FF FF FF 7F 00 00 00 80


Bootstrap little endian 7F FF E3 FF 00 00 00 00 7F FF FF FF 80 00 00 00

...und trägt in dieser Maske den ersten Part bei AND-0 und den zweiten Part bei OR-0 ein, und rechnet die jeweiligen Werte von Hex nach Binär um:
(die zu verändernden Bits aus dem ersten Schritt wurden hier mit einem großen X markiert)
ID Bit: 4 32 10
Mask: -xxX xxxx xxxx xxxx xxXX xXxx xxxx xxxx

Old Strap:
AND-0: 7F FF E3 FF
0111 1111 1111 1111 1110 0011 1111 1111

OR-0: 00 00 00 00
0000 0000 0000 0000 0000 0000 0000 0000

Erst jetzt kommt die Bitmaske zur Anwendung. Aus der Device ID Umrechnung im ersten Schritt wissen wir dass in diesem Fall nur von 0 auf 1 geändert werden muss, sich also alles im OR-0 Bereich abspielt. Nun geht man die mit einem großen X markierten Positionen direkt nach unten, ändert die Bits entsprechend ab und rechnet die neuen Binärwerte wieder in Hex zurück:
ID Bit: 4 32 10
Mask: -xxX xxxx xxxx xxxx xxXX xXxx xxxx xxxx

Old Strap:
AND-0: 7F FF E3 FF
0111 1111 1111 1111 1110 0011 1111 1111

OR-0: 00 00 00 00
0000 0000 0000 0000 0000 0000 0000 0000

New Strap:
AND-0: 7F FF E3 FF
0111 1111 1111 1111 1110 0011 1111 1111

OR-0: 10 00 34 00
0001 0000 0000 0000 0011 0100 0000 0000

Und fertig ist der quadrofizierte Bootstrap, nun schreibt man nur noch die neuen Werte aus, fügt die bisher unbearbeitete zweite Hälfte des originalen Bootstrap hinzu und nullt ggf die führende "8" im letzten Bereich aus:
7FFFE3FF 10003400 7FFFFFFF 00000000

Geflasht wird dann mit:
(--index=0 für die primäre Karte, bei mehreren Karten mit nvflash --list die ID kontrollieren)
Quadro NVS 295: nvflash --index=0 --straps 0x7FFFE3FF 0x10003400 0x7FFFFFFF 0x00000000
GeForce 9300GE: nvflash --index=0 --straps 0x7FFFE3FF 0x00000000 0x7FFFFFFF 0x00000000

Wäre schön wenn du vorher/nachher Vergleichsscreenshots mit GPU-Z hochladen kannst um den Erfolg zu dokumentieren.

Viel Erfolg. :)

Gast
2015-08-25, 23:05:01
Hi kruemelmonster,

vielen dank für Deine tolle hilfe.

Ich kann das leider erst in ein paar Tagen ausprobieren, wenn ich dann aber mache lade ich auch einen GPUz screenshot hoch ;)

Mit freundlichen Grüßen

Gast
2015-08-29, 13:26:40
Hi kruemelmoster,

also es befinden sich zwei 9300GE in dem PC. Ich habe zuerst die zweite karte geflasht, das hat auch einwandfrei Funktioniert. Dann habe ich den Rechner neugestartet und die Karte wurde neu als NVS 295 erkannt also alles gut. Jetzt hatte ich die erste Karte geflasht auch das war kein Problem, jedoch ließ sich jetzt der PC nicht mehr starten. Ich nehme an der kommt mit dem Bootstrap nicht klar, warum auch immer. Mit einer anderen Grafikkarte habe ich dann alles wieder rückgängig gemacht. Der PC läuft wieder nur es geht, wenn die geflashte Karte als Nummer zwei oder Slave läuft.

Übrigens das Motherboard ist ein Gigabyte GA Z97D 3P



Trotzdem vielen dank für deine Hilfe

Mit freundlichen Grüßen

kruemelmonster
2015-08-29, 14:42:24
Glückwunsch zu dem einen erfolgreichen Flash, der Fehlschlag bei der anderen Karte dagegen ist schon seltsam. Auch mit einer falschen ID sind meine Karten hier immer wieder bis in Windows hochgefahren.

Mit der Quadro alleine funktioniert es aber? Falls ja, wurden neue Treiberoptionen wie Mosaic freigeschaltet? Es kann Treiberkuddelmuddel geben wenn sowohl eine GeForce als auch eine Quadro eingebaut sind, daher wär ein Einzeltest mal interesssant.
Und haben deine beiden Karten ein identisches Bios so dass der Befehl für beide gepasst hat?