Banzai_xD
Utente Attivo
- Messaggi
- 962
- Reazioni
- 403
- Punteggio
- 82
*/ Hawaii/Grenada Bios Editing - La guida in Italiano \*
Credits: Tutto le informazioni contenute in questo post sono frutto del lavoro dell'utente gupsterg del forum di Overclock.net. Io mi sono semplicemente occupato di tradurre il tutto, e di rendere più chiari i vari procedimenti laddove l'ho ritenuto necessario. Se possedete un account sul forum di OC.net sarebbe cosa buona e giusta che faceste un salto a dare un +REP a gupsterg.
gupsterg ha detto:Altri credits: Netkas for setting the ball rolling that signature check not being done, OneB1t helping me with AtomDis, DDSZ for speeding up marking of code, asder000 for supply of data, Lard for showing how to do memory timings mod and The Stilt for creating his set of mining roms with varying voltage and MLU Roms
DISCLAIMER: Fate sempre una copia del bios originale della vostra scheda, anche di eventuali bios secondari nel caso la vostra scheda disponga del Dual Bios. Modificate esclusivamente delle copie dei vostri bios originali, in modo da avere sempre e comunque un'immagine originale disponibile nel caso qualcosa andasse storto. Se la vostra scheda dispone di due bios intercambiabili tramite switch, non flashate mai entrambe le posizioni, in modo da avere sempre la possibilità di effettuare il boot tramite il bios secondario nel caso qualcosa andasse storto.
Dopo aver modificato e salvato il bios tramite hex editor ci sarà spesso bisogno di effettuare un fix del checksum tramite Hawaii Bios Reader. Quando aprite e salvate la .ROM modificata, non sovrascrivete il bios appena editato, ma salvatelo come copia: in questo modo potrete verificare che il programma abbia effettivamente solo cambiato il byte di checksum e nient'altro.
ATTENZIONE: Flashare un bios modificato tramite questa guida comporta la perdita della garanzia (nel caso la scheda ne sia ancora provvista). Questa guida vi è offerta assumendo che ognuno di voi conosca le implicazioni di ogni singola modifica che andrete ad effettuare. Né io, né l'autore originale, ci prendiamo alcuna responsabilità per i possibili danni causati dalla informazioni contenute in questa guida. Viene fatto il possibile per garantire la correttezza di tutte le procedure, ma è comunque sempre possibile che ci siano degli errori.
Programmi consigliati: nel corso della guida troverete tutti i link ai programmi necessari per le varie modifiche. Come editor esadecimale vi consiglio di utilizzare HxD Hex Editor che è gratuito e piuttosto semplice da utilizzare.
Cominciamo!
- Cos'è "l'Asic Quality"?
- L'Asic Quality corrisponde al LeakageID della GPU
Il valore "Lkg" rappresenta il LeakageID della GPU (variabile fused, cioè memorizzata direttamente sul PCB della scheda e non modificabile). Convertendo questa variabile in decimale e dividendola per 1023 si ottiene il cosiddetto "ASIC Quality". Più alto è il valore del LeakageID (quindi dell'ASIC Quality) più altra sarà la dispersione elettrica, cosa da considerarsi negativa, a meno che non si utilizzi un raffreddamento custom ad acqua o LN2 (azoto).
Fonte: http://forums.guru3d.com/showthread.php?p=5119818#post5119818
- Altre informazioni riguardo al LeakageID
Doverosa raccomandazione: se utilizzate un voltaggio superiore agli 1.3v sulla GPU (cosa comunque assolutamente non consigliabile) non utilizzare FurMark come stress test.
I VRM (sezione di alimentazione della scheda) possono erogare fino a 360A prima di danneggiarsi, ma le GPU con un voltaggio >1.3v possono tranquillamente superare tale soglia sotto FurMark (a seconda della dispersione elettrica), provocando danni irreparabili. Più alto è il vostro "ASIC Quality" più alto sarà il livello di dispersione elettrica e vice versa. Un'alta dispersione significa che la vostra GPU richiederà un voltaggio inferiore per il proprio funzionamento, ma allo stesso tempo avrà un "safe limit" più basso per quanto riguarda il voltaggio massimo. Al contrario una bassa dispersione comporterà voltaggi più alti a regime, ma consentirà di salire leggermente di più con il voltaggio.
Tenete a mente che i VRM perdono di efficienza al salire della temperatura: la sezione di alimentazione della scheda può erogare 360A a 25° (massima efficienza) senza danneggiarsi, ma può benissimo danneggiarsi erogando ~150A a 110°.
Riassumendo:
1) "ASIC Quality" (Leakage) alto -> Voltaggio a regime più basso, maggior assorbimento di corrente, temperature più elevate, efficienza energetica inferiore (a causa delle dispersioni elettriche);
2) "ASIC Quality" (Leakage) basso -> Voltaggio a regilme più alto, minor assorbimento di corrente, temperature più basse, efficienza energetica superiore (grazie alle minori dispersioni elettriche).
È disponibile un software che, tra le altre cose, vi consente di leggere il LeakageID della vostra scheda e il voltaggio massimo (DPM7). Lo potete trovare qui: https://onedrive.live.com/?authkey=...!443&parId=8329B08E8413A80E!109&action=locate
Il tool deve essere lanciato con i parametri della scheda impostati a stock, altrimenti potrebbe riportare valori errati. Si consiglia quindi di utilizzarlo dopo un riavvio, curandosi di non avere profili di overclock automatico in avvio.
Se il vostro voltaggio stock al DPM7 è 1.250v o inferiore, si consiglia di non superare gli 1.3v per un utilizzo daily. Non fate eccessivo affidamento alle letture della VDDC (voltaggio Core/vRAM) di GPU-Z, in quanto hanno un discreto margine di errore.
Fonte: http://www.overclock.net/t/1564219/...-290-290x-updated-02-16-2016/20#post_24179714
- Effetti del LeakageID sulla LL (Load Line) e sull'assorbimento di corrente
Nonostante sia possibile stabilire se la GPU ha un'alta o bassa dispersione elettrica in base all'"Asic Quality", non c'è modo di dire quanto è possibile ridurre la VDDC rispetto a quella stock. È necessario fare dei test per ogni singola scheda, perfino se hanno un LeakageID (e quindi un'ASIC Quality) identica, poiché due schede non sono mai completamente identiche per quanto riguarda altre possibili caratteristiche. Una volta che si sono raccolti dati sufficientemente accurati è possibile stimare indicativamente i livelli di VDDC utilizzabili dalla specifica scheda. Inoltre bisogna considerare che GPU caratterizzate da un'alta e bassa dispersione elettrica possono avere differenti voltaggi sotto sforzo anche nel caso in cui il voltaggio sia settato per entrambe allo stesso valore. Una GPU con bassa dispersione potrebbe assorbire 150A di corrente sotto sforzo, mentre una ad alta dispersione potrebbe assorbirne 170A o anche di più (ovviamente a parità di voltaggio). Dal momento in cui la load-line resistance (RLL) è fissa, invece di essere dinamicamente basata sulla dispersione elettrica, le GPU con un'alta dispersione avranno maggiori variazioni sulla load-line (voltage drop, ovvero fluttuazioni repentine di voltaggio).
Esempio:
GPU a bassa dispersione (basso ASIC): VDDC = 1.20000V, IDDMax = 150.0A, RLL 0.64mOhm
Idle (~ 5A IDD) = 1.20000 - (((1/10000)*6.4) * 5) == 1.1968V
Load (~ 150A IDD) = 1.20000 - (((1/10000)*6.4) * 150) == 1.104V
High Leakage GPU: VDDC = 1.20000V, IDDMax = 170.0A, RLL 0.64mOhm
Idle (~ 5A IDD) = 1.20000 - (((1/10000)*6.4) * 5) == 1.1968V
Load (~ 170A IDD) = 1.20000 - (((1/10000)*6.4) * 170) == 1.0912V
Fonte: https://litecointalk.org/index.php?topic=12830.msg107961#msg107961
Perfetto, fatte queste doverose premesse e spiegazioni, cominciamo con le cose succose :asd:
- Utility Hawaii Bios Reader
Link sorgenti e binari: http://www.overclock.net/t/1561372/hawaii-bios-editing-290-290x-295x2-390-390x/10#post_24112556
Questo piccolo ma utile programmino vi consentirà di modificare tramite GUI alcuni dei parametri più importanti del bios (frequenze e voltaggi). È importante però utilizzarlo con cautela poiché può non leggere correttamente tutti i parametri del bios, specialmente nel caso di bios particolarmente modificati rispetto a quelli stock (vedi alcune schede custom tipo la Lightning), a causa della differente lunghezza delle "tabelle" contenenti i parametri.
L'ultima versione del tool appena avviata si presenterà così:
Come potete vedere su questa prima tab è possibile aprire e salvare i nostri bios (in formato .rom), ricavare svariate informazioni riguardanti il bios (deviceID, lunghezza e locazione della PowerTable, etc..), ma soprattutto verificare che il checksum dell'immagine che abbiamo aperto sia corretta, cosa che tornerà molto utile quando si andrà a modificare la ROM. Di deafault Hawaii Bios Reader fixa automaticamente il checksum quando si va a salvare il file, nel caso quest'ultimo non sia corretto.
In questa seconda tab cominciamo già a vedere qualcosa di più interessante:
Nel riquadro rosso vediamo i parametri di base del bios, e cioè i 3 step di frequenza di GPU e vRam, il TDP/PowerLimit massimo, il TDC massimo (corrente massima erogabile dai VRM prima del throttling), e la temperatura massima per il core (ASIC Temp).
Nei riquadri blu e verde possiamo finalmente vedere i vari States del DPM (Dynamic Power Management) con relative frequenze (value) e voltaggi (vol) per GPU e memorie, che potremo andare a modificare per ogni singolo State con estrema facilità (con qualche raccomandazione, ma lo vedremo più avanti). Di base il voltaggio è impostato su una variabile "EVV", è cioè determinato dal bios stesso in base al LeakageID (ASIC Quality) della propria scheda.
La terza tab ci permette molto semplicemente di andare a modificare i voltaggi di altri componenti della scheda (VCE = Video Coding Engine, ACP = Averange Consumed Power, SAMU = Security Asset Management Unit, UVD = Unified Video Decoder). Anche questo lo approfondiremo più avanti.
La quarta tab ci consente di modificare i parametri base delle ventole, impostanto una determinata percentuale di giri per ognuna delle tre temperature di riferimento.
Credits:
- OneB1t, DDSZ1337 e Hedzin per aver scritto Hawaii Bios Reader
- Utility AtomBIOS
Atom è essenzialmente un linguaggio di scripting byte code usato per scrivere piccoli script che consentono di gestire le routine base di inizializzazione della scheda (asic init, setting engine/memory clock, modesetting). Ci sono due set di tabelle in ATOM: le tabelle di comando (essenzialmente script che eseguono determinate funzioni) e tabelle di dati (strutture che memorizzano specifiche informazioni della scheda). Le tabelle di comando sono "versioned"** e ci sono specifiche strutture definite per gli input alle tabelle di comando, Tutte queste strutture sono definite in atombios.h e ObjectID.h. Le tabelle di comando possono inoltre richiamare altre tabelle di comando e leggere i dati contenuti nelle tabelle di dati.
(**ndr. scusate, non sono riuscito a trovare un termine italiano convincente per "versioned", si potrebbe utilizzare "versionato/e" ma mi sembra poco chiaro, se qualcuno ha qualche suggerimento è ben accetto.)
Fonti e approfondimenti (in inglese): https://dev.haiku-os.org/wiki/HardwareInfo/video/RadeonHD_tech
http://www.phoronix.com/forums/foru...4541-what-is-atombios-these-different-drivers
- Installazione di AtomDis
AtomDis è uno strumento essenziale per il modding del bios, ci consente infatti di ottenere l'offset location e la lunghezza delle varie tabelle.
Questo tool era inizialmente disponibile solo per sistemi GNU/Linux, ma è da poco disponibile una versione Windows.
Rimando gli utenti del pinguino al thread originale di gupster per l'installazione e l'utilizzo, in quanto sono sicuro che non avranno problemi a comprendere le istruzioni in inglese.
Per gli utenti Windows non è necessaria l'installazione e l'utilizzo è immediato: è sufficiente aprire il file .ROM del bios e il programma genererà in automatico il file di testo con tutti i dati necessari.
Link Download AtomDis Windows: http://www.overclock.net/attachments/39717
Credits:
- kizwan per aver scritto il tool AtomDis per Windows.
- Modifica dei clock GPU/RAM
Per modificare questi parametri possiamo utilizzare due metodi:
1) Modificare i parametri direttamente su Hawaii Bios Reader;
2) Utilizzare un hex editor per modificare i parametri lavorando direttamente sul file .rom.
Ovviamente il metodo più facile ed immediato è il primo, ma non è sempre applicabile, in quanto come già accennato bios con tabelle "particolari" potrebbero causare letture (e di conseguenza scritture) errate su Hawaii Bios Reader. Questa è in realtà un'eventualità abbastanza remota e che riguarda un limitato numero di schede, quindi può essere il metodo consigliato per la maggior parte degli utenti.
Per procedere con il primo metodo è sufficiente aprire il bios con Hawaii Bios Reader, posizionarsi sulla tab "PowerPlay" e modificare direttamente i valori delle frequenze di GPU e RAM.
Salviamo le modifiche e flashamo il nostro bios modificato.
Nel caso invece si abbia la necessità, o la curiosità, di utilizzare il secondo metodo, ecco tutte le istruzioni necessarie:
Per prima cosa localizziamo la tabella contenente le informazioni relative ai clock. Per fare ciò utilizziamo il file ottenuto con AtomDis e verifichiamo l'offset di inizio della tabella "PowerPlayInfo"
Questo è un esempio del file ottenuto tramite AtomDis (in questo caso relativo al bios della mia Vapor X 290 OC), e come possiamo vedere nel riquadro rosso la tabella PowerPlayInfo inizia all'offset A758 e ha una lunghezza di 0288.
N.B. Questi dati sono indicativi e specifici del bios utilizzato da me, possono differire per bios di altre schede.
Apriamo dunque il nostro hex editor, e saltiamo direttamente all'offset A758 tramite la funzione Search -> Goto
A questo punto dobbiamo andare a ricercare all'interno della tabella PowerPlayInfo i valori relativi ai clock di GPU e vRAM. Per fare ciò dobbiamo prima convertire i valori di clock decimali in esadecimale tramite la seguente procedura:
1) Prendete i valori di default dei vostri clock (nell'esempio 1030mhz per GPU, e 1325mhz per la vRam);
2) Aggiungete 00 alla fine;
3) Convertite il numero risultante in esadecimale (http://www.binaryhexconverter.com/decimal-to-hex-converter);
4) Aggiungete uno 0 all'inizio del valore esadecimale ottenuto;
5) Dividete in risultato in coppie;
6) Invertite la prima coppia di numeri con l'ultima;
Abbiamo così ottenuto il valore esadecimale 58 92 01 (equivalente a 1030 in decimale) che potremo ora andare a ricercare sul nostro editor esadecimale tramite la funzione Search -> Find, curandoci di avere il puntatore lampeggiante in corrispondenza dell'offset di inizio della tabella PowerPlayInfo (in questo caso A758)
Come vedete, se avete fatto in modo corretto la conversione, l'hex editor troverà subito il valore di frequenza stock. Ora non ci resta che modificare il valore con la frequenza da noi desiderata. Ovviamente anche quest'ultima dovrà essere convertita in esadecimale, seguendo la stessa procedura vista sopra. Se per esempio volessimo impostare la frequenza della GPU a 1100mhz dovremmo fare in questo modo:
inserendo quindi il valore B0 AD 01 al posto del valore 58 92 01 appena trovato. Ovviamente l'intera procedura è esattamente la stessa anche per quanto riguarda le frequenze della vRam. Fatte le dovute modifiche, salvate il vostro file come file "generico" senza estensione (rimuovendo quindi l'estensione .ROM).
Come penultima cosa, di vitale importanza, bisogna fixare il checksum del bios, che sarà dopo la modifica errato. Per fare questo dobbiamo semplicemente aprire il nostro bios con Hawaii Bios Reader (che ci avvertirà subito del checksum errato)
e premere su Save File, avendo cura di salvare il file con lo stesso identico nome di quello appena editato, ma mantenendo questa volta l'estensione .ROM (cosa che impedisce anche di sovrascrivere per errore il primo file).
In finale, verifichiamo che Hawaii Bios Reader abbia toccato esclusivamente toccato il byte di checksum, aprendo entrambi i file con l'hex editor e comparandoli tramite la funzione Analysis -> File Compare -> Compare
se è tutto corretto l'editor dovrebbe trovare un singolo byte differente, e premendo F6 riportare un messaggio che nessun'altra differenza è stata trovata.
Abbiamo finito! Scartiamo pure il file senza estensione e procediamo a flashare il nostro bios modificato.
- Possibile fix per i problemi di blackscreen
Alcune schede della serie 200 e 300 (in particolar modo R9 380/290/290X/390/390X) con determinate release driver soffrono di un problema collegato alle frequenze della vRam, che causa blackscreen improvvisi in idle o in corrispondenza del passaggio tra i vari stati del DPM. Questo può essere dovuto a un'errata impostazione delle frequenze della vRam nel bios:
Come possiamo vedere nell'immagine gli stati più bassi (DPM1 e DPM2) relativi alla vRam non utilizzano alcuno step di frequenza intermedio (MEM Clock 2), ma sono impostati direttamente alla più alta frequenza vRam disponibile (MEM Clock 1, in questo caso 1400mhz). Questo può causare il problema dei blackscreen in quanto, ad un elevato aumento di frequenza nei DPM1 e DPM2 rispetto al DPM0, non corrisponde un sufficiente aumento del voltaggio fornito alla memoria video.
Il fix è molto semplice, e prevede di sostituire le frequenze stock di DPM1 e DPM2 nella MEM Freq. Table con la frequenza intermedi MEM Clock 2:
Salvate le modifiche, flashate il nuovo bios e verificate se si presentano ancora problemi di blackscreen.
Grazie a @N3RO_RE per la segnalazione!
- Modifica dei voltaggi
- /*\ Informazioni Tecniche /*\
Parte 1 - Dynamic Power Management
Per prima cosa bisogna dire che il Dynamic Power Management (DPM) ha un totale di 8 stati (0-7).
La regola vuole che più uno stato sia basso (numericamente) più basso sarà il voltaggio ad esso associato.
Perciò non si dovrebbe mai editare un bios inserendo un voltaggio/frequenza più elevato su un DPM basso rispetto a quelli superiori, poiché potrebbe causare problemi.
(n.d.r. questo è ciò che c'è scritto sul post di gupsterg, ma di fatto vedendo i DPM state di schede di vari utenti, compresa la mia, questa regola non è sempre vera, in quanto capita di trovare schede con un voltaggio più elevato per esempio sul DPM3 rispetto al DPM4.)
Parte 2 - Le sei tabelle
Come è possibile vedere anche su Hawaii Bios Reader ci sono sei tabelle che si occupano dei voltaggi:
GPU Freq. Table = voltaggio basato sulla frequenza GPU diviso in DPM0-DPM7;
MEM Freq. Table = voltaggio basato sulla frequenza della vRAM diviso in DPM0-DPM7;
StartVCELimitTable = voltaggio per il VCE (Video Coding Engine) diviso in DPM0-DPM7;
StartUVDLimitTable = voltaggio per l'UVD (Unified Video Decoder) diviso in DPM0-DPM7;
StartSAMULimitTable = voltaggio per la SAMU (Security Asset Management Unit) basato sulla frequenza GPU diviso in DPM0-DPM7;
StartACPLimitTable = voltaggio per l'ACP (Averange Consumed Power) basato sulla frequenza GPU diviso in DPM0-DPM7;
Tutte e sei le tabelle devono avere i medesimi voltaggio sui vari stati DPM, perché come vedremoadesso sono fortemente collegate tra di loro.
Il VCE e l'UVD non hanno un loro valore esadecimale per la frequenza memorizzata nel bios, e devono perciò utilizzare la stessa frequenza impostata sulla tabella GPU/RAM Freq.
La SAMU e l'ACP possiedono invece un valore esadecimale relativo alla frequenza GPU, ma non per il valore relativo alla frequenza della vRAM. Devono perciò fare riferimento alle frequenze impostate sulla tabella RAM Freq.
Questo spiega il motivo per cui le sei tabelle devono avere i medesimi voltaggi.
Parte 3 - Cos'è l'AUX Voltage (VDDCI)?
L'AUX Voltage (riportato su GPU-Z come VDDCI) è il voltaggio fornito al Memory Controller della scheda. Alcuni utenti hanno segnalato che, aumentandone il voltaggio, hanno ottenuto maggiore stabilità e margine di overclock sulla vRAM.
Bisogna comunque considerare che anche questo componente è soggetto alla cosiddetta "Silicon Lottery", le prestazioni di questo componente possono quindi variare da scheda a scheda, come anche le sue capacità di sopportare l'overvolt.
In generale non è una buona idea andare a toccare questo voltaggio, vista la sensibilità del Memory Controller alle variazioni di voltaggio (n.d.r. hanno fritto parecchie schede :asd: ) e gli scarsi vantaggi che ciò comporta.
Parte 4 - ROM con offset sul VDDC
È possibile vedere rom che hanno preimpostato un offset sul voltaggio della GPU (es. Vapor X 290/290X), il quale viene aggiunto automaticamente a tutti gli stati DPM. Per verificare se è presente un offset è sufficiente aprire Afterburner e vedere se è presente, con la scheda a stock, un valore di +XXmv sullo slider del voltaggio.
Ci sono due modi per gestire un offset quando si vanno a modificare i voltaggi:
1) Cambiare l'offset nella tabella VoltageObjectInfo (settandolo ovviamente a 0);
2) Tenere in considerazione l'offset quando andiamo a modificare i voltaggi nella tabella PowerPlayInfo.
Ci sono poi casi in cui non c'è alcun offset preimpostato sulla GPU (e quindi niente di visibile con Afterburner) ma è possibile che i controller sul pcb (ChiL o IR i più diffusi) abbiano preimpostato un offset programmato in sede di fabbricazione. Per verificare ciò l'unico metodo è estrarre i DPM della scheda (tramite AIDA64), e fare un confronto tra il DPM0 e il voltaggio in idle della GPU (tramite GPU-Z). Se i due valori sono uguali possiamo affermare con sicurezza che è presente alcun offset, in caso contrario possiamo stimare l'offset preimpostato, tenendo a mente che deve essere per forza un multiplo di 6.25 (es. 25mv). L'unico modo per gestire un offset di questo tipo è quello di tenerlo a mente quando si andranno a modificare i voltaggi.
Parte 5 - ROM con offset sul VDDC e sul VDDCI
Ci sono inoltre bios che presentano un offset sia sul voltaggio GPU (VDDC), che sul voltaggio AUX (VDDCI). Esattamente come sopra, l'offset sul VDDC viene aggiunto a tutti e 7 gli stati DPM. Questi tipi di bios non mostreranno alcun voltaggio preimpostato sugli slider di Afterburner, quindi l'unico modo è ottenere i valori del DPM0 (idle) e del VDDCI (quest'ultimo è disponibile tramite Hawaii Bios Reader) e confrontarli con i valori riportati da GPU-Z.
- /*\ Modificare il voltaggio della GPU nelle sei tabelle /*\
Per questa modifica utilizzeremo solamente Hawaii Bios Reader (niente hex editor questa volta!).
Troverete due tabelle nella tab PowerPlay (relative a GPU e vRAM) e quattro tabelle nella tab Limit Tables (relative, come abbiamo visto, a VCE, UVP, SAMU e ACP). Come spiegato sopra, le quattro tabelle devono assolutamente avere i medesimi voltaggi per ogni stato DPM. Nel riquadro rosso potete vedere la colonna dei valori che dobbiamo andare a modificare
Se per esempio volessimo andare a modificare il DPM0 (voltaggio in idle) dagli 0.993v che possiamo vedere nell'immagine a 1.000v, dovremmo andare a impostare il valore 1000 sul DPM0 di tutte e sei le tabelle (vedi riquadro blu su immagini successive).
Stesso procedimento deve essere effettuato per ogni stato DPM che si desidera modificare. Ovviamente quello più interessante è il DPM7, che consente di aumentare il voltaggio quando la scheda è in full load.
Mi raccomando, ricordate di tenere sempre in considerazione gli eventuali offset preimpostati (se non avete letto la spiegazione in merito, fatelo), in quanto si andranno ad aggiungere a tutti gli stati DPM. In questo caso il DPM0 impostato a 1.000v, considerando un ipotetico offset di +25mv, avrà poi nell'utilizzo reale un voltaggio totale di 1.025mv.
I valori 625282 , 625283 , 625284 , 625285 , 625286 , 625287 , 625288 che vedete preimpostati sugli stati DPM dall'uno in su rappresentano le variabili EVV (Electronic Variable Voltage), ovvero quei voltaggi impostati automaticamente dal bios per ogni specifica scheda in base al LeakageID (ASIC Quality). Possono tranquillamente essere sostituiti con i voltaggi statici da voi desiderati.
Leggete il seguente paragrafo per le linee guida sui voltaggi impostabili e sugli accorgimenti necessari.
- /*\ Voltaggi SVI 2 Compliant /*\
Come accennato precedentemente i valori dei voltaggi su Hawaii/Grenada devono necessariamente essere multipli di 6.25 (questo per specifica). Qui di seguito trovate una tabella con tutti i voltaggi corretti utilizzabili:
I voltaggi devono essere inseriti su Hawaii Bios Reader senza virgola, e con le ultime due cifre troncate. Se volessimo quindi inserire un voltaggio sul DPM0 di 0.70000v dovremmo inserire 700 sullo stato DPM0 di tutte e sei le tabelle. Se volessimo un voltaggio di 1.28750v sul DPM7 dovremmo inserire 1287 sullo stato DPM7 di tutte e sei le tabelle.
- Modifica del VDDCI (AUX Voltage)
Per questa modifica andremo ad utilizzare Hawaii Bios Reader:
Come potete vedere la modifica è molto facile e immediata, ma bisogna fare molta attenzione nel modificare questo valore. Solitamente sulle schede Hawaii il valore massimo ritenuto sicuro è 1050mv, che sale a 1100mv per le schede Grenada (che possiedono un migliore memory controller). In alcuni casi aumentare di qualche mv il voltaggio AUX consente di avere maggiore stabilità sulla memoria video, soprattutto quando quest'ultima è in overclock.
*In arrivo guida per la modifica del VDDCI e Freq. vRam associata*
- Modifica dei timing delle memorie
Nella tabella "VRAM_Info" della rom troverete gli strap/timings della vRam. Ogni strap inizia in corrispondenza della frequenza di fine range (espressa in esadecimale), a cui seguiranno i timings. Tutte le frequenze comprese nel range di uno strap utilizzeranno le frequenze impostate per quest'ultimo.
Questa è la configurazione degli strap per la maggior parte delle AMD 290/290X:
Fine strap: 400MHz (40 9C 00) , Range = 150-400MHz
Fine strap: 800MHz (80 38 01) , Range = 401-800MHz
Fine strap: 900MHz (90 5F 01) , Range = 801-900MHz
Fine strap: 1000MHz (A0 86 01) , Range = 901-1000MHz
Fine strap: 1125MHz (74 B7 01) , Range = 1001-1125MHz
Fine strap: 1250MHz (48 E8 01) , Range = 1126-1250MHz
Fine strap: 1375MHz (1C 19 02) , Range = 1251-1375MHz
Fine strap: 1500MHz (F0 49 02) , Range = 1376-1500MHz
Fine strap: 1625MHz (C4 7A 02) , Range = 1501-1625MHz
Fine strap: 1750MHZ (98 AB 02) , Range = 1626-1750MHz
Alcune schede, soprattutto della serie 300, hanno degli strap aggiuntivi/diversi. Per esempio la Nitro 390 presenta la seguente configurazione degli strap:
400MHz, 800MHz, 900MHz, 1000MHz, 1125MHz, 1250MHz, 1375MHz, 1731MHz, 1500MHz, 1625MHz, 1750MHz, 2000MHz
I range degli strap possono essere liberamente modificati semplicemente cambiando nella ROM i 3 byte che indicano la frequenza di fine range. Essendo quest'ultimo valore memorizzato in kHz per effettuare la conversione dovremo seguire il seguente procedimento:
1) (Freq. decimale x 100)
2) Conversione in decimale;
3) Flip del primo e ultimo byte;
Es. 1750mhz -> 1750*100 -> 175000 -> 02 AB 98 -> 98 AB 02
Ovviamente il procedimento inverso può essere utilizzato per ottenere il valore decimale della frequenza partendo dai 3 byte esadecimali!
Eccovi il link della videoguida (con spiegazione in italiano!) che mostra passo passo come editare i timings (per visionarlo è necessario avere un player che supporti la decodifica H265):
http://bit.ly/1SYhbKs
Purtroppo niente youtube, non supporta ancora H265 (con H264 mantenendo un buona qualità mi usciva un file da 2 giga e rotti, ci avrei messo giorni a caricarlo :( ).
Il video da solo è già sufficiente a permettervi di modificare autonomamente i timings delle vostre schede, ma comunque maggiori approfondimenti scritti arriveranno a breve!
- 390 Memory Controller Mod
Questa mod consente di sostituire le impostazioni stock relative al memory controller e alle vRam (compresi strap e timings) con quelle delle schede della serie 3xx (nel caso specifico della AMD R9 390).
Ecco la videoguida che mostra tutti i passaggi in modo dettagliato:
http://bit.ly/1rxj62N
Perdonate la scattosità del cursore nei movimenti veloci, OBS ha deciso di dare i numeri questa volta (nonostante non avesse dato nessun problema nelle prove di registrazione <.<). Il video rimane comunque molto chiaro!
Link file/programmi necessari:
HxD Hex Editor
AtomBiosReader (AtomDis per Windows)
Memory Info
Lard's Table Calculator
VRAM_Info_390_MC_v3.1
N.B Questa mod va a sovrascrivere l'intera tabella "VRAM_Info", quindi va a modificare anche i timings della vRam nei vari strap (mettendo i timings stock della AMD R9 390). Nel caso utilizzaste dei timings personalizzati prima di effettuare questa mod (es. timings strap 1250 su strap superiori), sarà necessario ripristinarli.
- Modificare dimensione e densità della memoria supportata (vRam)
I valori che indicano la dimensione e la densità di memoria supportata possono essere trovati nella tabella "VRAM_Info" del bios.
Il modo più veloce per trovare la zona corretta da editare è quello di cercare nel nostro editor esadecimale la stringa di testo che identifica l'IC (Integrated Controller) utilizzato nella nostra scheda e supportato dalla nostra ROM. I possibili IC sono identificati con i seguenti nomi:
4GB ROM
EDW2032BBBG (Elpida)
EDW2032BBBG_DEBUG2 (Elpida)
H5GQ2H24AFR (Hynix)
H5GC2H24BFR (Hynix)
K4G20325FD (Samsung)
K4G20325FS (Samsung, presente solo sulla Tri-X New Edition)
8GB ROM
EDW4032BABG (Elpida)
H5GQ4H24MFR (Hynix)
H5GC4H24AJR (Hynix)
*screen a breve*
Codice:290X VRAM_info 0022: UCHAR ucDensity = 0x43 (67) 0028: UCHAR ucMemorySize = 0x40 (64) 390X VRAM_info 0022: UCHAR ucDensity = 0x53 (83) 0028: UCHAR ucMemorySize = 0x80 (128)
La variabile ucDensity rappresenta la densità delle nostre memorie: dev'essere impostata a 43h per le schede da 4GB e a 53h per le schede da 8GB. La variabile ucMemorySize rappresenta la dimensione della nostra memoria, 40h per 4GB e 80h per 8GB.
Questa mod è necessaria ad adattare le rom per 390/X per essere flashate su 290/X. O anche nei folli casi in cui qualcuno decida di saldare 8GB di ram su una 290/X che originariamente ne aveva 4 ()e fidatevi che ci sono matti che l'hanno fatto XD
Se avete qualche consiglio per migliorare/integrare la guida è ben accetto. Abbellimenti vari e cose di contorno verranno eventualmente fatti a guida completata, così come la correzione degli inevitabili strafalcioni grammaticali e sintattici sparsi :asd:
Ultima modifica: