Jump to content

VANILLA SPEEDSTEP


309 posts in this topic

Recommended Posts

Nuovo metodo, nuova tabella SSDT da inserire in Extra/ACPI, eliminare l'equivalente nell'DSDT, utilizzare il nuovo boot Revolution (vedere forum internazionale) creato da Master Chief, aka the chief :) :

 

DefinitionBlock ("ssdt.aml", "SSDT", 1, "MC", "POWERM", 0x00000001)
{
Scope (_SB)
{
	Name (NCPU, 0x04)
	Name (PST0, 0x4720)
	Name (PST1, 0x071E)
	Name (PST2, 0x461C)
	Name (PST3, 0x0616)
	}
}

 

Name (NCPU, 0x04): 0x04 e' il numero dei vostri core!! Il codice e' ancora incompleto, aspettando buone nuove da master per il suo bootloader.

Thanks to Master;)

 

-------

 

Apro questo nuovo thread, su consiglio di ifabio e scrax per inserire, insieme a voi, le mie e nostre esperienze sullo speedstep natio tramite iniezione nel dsdt. Attualmente sto utilizzando questo codice ottimizzato da Master Chief:

 

Forma generale:

 

Scope (_PR)
   {
       Processor (CPU0, 0x01, 0x00000810, 0x06)
       {
           Name (_PSS, Package (0x08)
           {
               Package (0x06) { 4038, 64688, 0x10, 0x10, 0x4922, Zero },
               Package (0x06) { 3825, 7770, 0x10, 0x10, 0x920, One },
               Package (0x06) { 3613, 61340, 0x10, 0x10, 0x481F, 0x02 },
               Package (0x06) { 3400, 6633, 0x10, 0x10, 0x81D, 0x03 },
               Package (0x06) { 3188, 58060, 0x10, 0x10, 0x471C, 0x04 },
               Package (0x06) { 2975, 5564, 0x10, 0x10, 0x71A, 0x05 },
               Package (0x06) { 2763, 54849, 0x10, 0x10, 0x4619, 0x06 },
               Package (0x06) { 2550, 4564, 0x10, 0x10, 0x617, 0x07 }
           })

           Name (_PSD, Package (0x05)
           {
               0x05,
               0x00,
               0x00,
               0xFC,
               0x02
           })

           Name (_CST, Package (0x04)
           {
               0x03,  // Number of C-State packages: 3 (C1, C2 and C3).
               Package (0x04)
               {
                   ResourceTemplate ()
                   {
                       Register (FFixedHW, 
                           0x01,               // Bit Width
                           0x02,               // Bit Offset
                           0x0000000000000000, // Address
                           0x00,               // Access Size
                           )
                   },
                   One, 
                   One, 
                   0x03E8
               }, 

               Package (0x04)
               {
                   ResourceTemplate ()
                   {
                       Register (SystemIO, 
                           0x08,               // Bit Width
                           0x00,               // Bit Offset
                           0x0000000000000814, // Address
                           ,)
                   },
                   0x02,
                   One,
                   0x01F4
               }, 

               Package (0x04)
               {
                   ResourceTemplate ()
                   {
                       Register (SystemIO, 
                           0x08,               // Bit Width
                           0x00,               // Bit Offset
                           0x0000000000000815, // Address
                           ,)
                   },
                   0x03,
                   0x55,
                   0xFA
               }
           })
       }

       Processor (CPU1, 0x02, 0x00000810, 0x06)
       {
           Alias (\_PR.CPU0._PSS, _PSS)
           Alias (\_PR.CPU0._PSD, _PSD)
           Alias (\_PR.CPU0._CST, _CST)
       }
   }

[color="#0000FF"]Processor (CPU2, 0x03, 0x00000810, 0x06)
       {
           Alias (^CPU1._PSS, _PSS)
           Alias (^CPU1._PSD, _PSD)
           Alias (^CPU1._CST, _CST)
       }

       Processor (CPU3, 0x04, 0x00000810, 0x06)
       {
           Alias (^CPU1._PSS, _PSS)
           Alias (^CPU1._PSD, _PSD)
           Alias (^CPU1._CST, _CST)
       }
   }[/color]

Questo in esempio e' per un dual con otto p-state..

 

 

Vi e' anche un secondo codice, in discussione da molto tempo sul forum internazionale in un thread che ormai ha fatto storia a s�ƒ©, ottimizzato da FormerlyKnownAs (Non utilizzo quest'ultimo in quanto mi da' kernel panic una volta su tre):

 

Scope (_PR.CPU0)
   {
       Method (_PSS, 0, NotSerialized)
       {
           Return (Package (0x0R)  //ad R dovrete sostituire il # dei vostri pstate
           {
               Package (0x06)
               {
                   Zero, 
                   Zero, 
                   0x10, 
                   0x10, 
                   0xSSSS, //FId/VID dei p-state 0 (HIGHEST P-state)
                   Zero     //  p-state 0
               }, 

               Package (0x06)
               {
                   Zero, 
                   Zero, 
                   0x10, 
                   0x10, 
                   0xSSSS,  // FID/VID for p-state 1
                   One        // p-state 1
               }, 

               Package (0x06)
               {
                   Zero, 
                   Zero, 
                   0x10, 
                   0x10, 
                   0xSSSS, // FID/VID 
                   0x02     //p-state 2
               }
           })
       }

       Method (_PSD, 0, NotSerialized)
       {
           Return (Package (0x05)
           {
               0x05, 
               Zero, 
               Zero, 
               0xFC, 
               0x04
           })
       }

       Method (_CST, 0, NotSerialized)
       {
           Return (Package (0x02)
           {
               One, 
               Package (0x04)
               {
                   ResourceTemplate ()
                   {
                       Register (FFixedHW, 
                           0x01,               // Bit Width
                           0x02,               // Bit Offset
                           0x0000000000000000, // Address
                           0x01,               // Access Size
                           )
                   }, 

                   One, 
                   0x9D, 
                   0x03E8
               }
           })
       }
   }

   Scope (_PR.CPU1)
   {
       Method (_PSS, 0, NotSerialized)
       {
           Return (^^CPU0._PSS ())
       }

       Method (_PSD, 0, NotSerialized)
       {
           Return (^^CPU0._PSD ())
       }

       Method (_CST, 0, NotSerialized)
       {
           Return (Package (0x04)
           {
               0x03, 
               Package (0x04)
               {
                   ResourceTemplate ()
                   {
                       Register (FFixedHW, 
                           0x01,               // Bit Width
                           0x02,               // Bit Offset
                           0x0000000000000000, // Address
                           ,)
                   }, 

                   One, 
                   Zero, 
                   0x03E8
               }, 

               Package (0x04)
               {
                   ResourceTemplate ()
                   {
                       Register (FFixedHW, 
                           0x08,               // Bit Width
                           0x00,               // Bit Offset
                           0x0000000000000414, // Address
                           ,)
                   }, 

                   0x02, 
                   One, 
                   0x01F4
               }, 

               Package (0x04)
               {
                   ResourceTemplate ()
                   {
                       Register (FFixedHW, 
                           0x08,               // Bit Width
                           0x00,               // Bit Offset
                           0x0000000000000415, // Address
                           ,)
                   }, 

                   0x03, 
                   0x55, 
                   0xFA
               }
           })
       }
   }

   Scope (_PR.CPU2)
   {
       Method (_PSS, 0, NotSerialized)
       {
           Return (^^CPU0._PSS ())
       }

       Method (_PSD, 0, NotSerialized)
       {
           Return (^^CPU0._PSD ())
       }

       Method (_CST, 0, NotSerialized)
       {
           Return (^^CPU1._CST ())
       }
   }

   Scope (_PR.CPU3)
   {
       Method (_PSS, 0, NotSerialized)
       {
           Return (^^CPU0._PSS ())
       }

       Method (_PSD, 0, NotSerialized)
       {
           Return (^^CPU0._PSD ())
       }

       Method (_CST, 0, NotSerialized)
       {
           Return (^^CPU1._CST ())
       }
   }

Questo in esempio e' per un quad con tre p-state..

 

 

 

Vi sono varianti di questi 2 codici che tratterremo se sara' necessario :P

 

Sostanzialmente i 2 codici hanno la stessa funzione, se riuscirete a iniettarli nel vostro dsdt e a farli funzionare a dovere avrete notevoli benefici: SPEEDSTEP COMPLETAMENTE VANILLA con nessun utilizzo di kext di terze parti, eliminazione di disabler vari: nullcpu su tutti, eliminazione di sleepenabler, openhalt, evoreboot e segg., speedstep gestito nativamente dall' appleintelcpupowermanagement, miglior gestione delle alimentazioni, grazie all'utilizzo di quest'ultimo, fra piastra e cpu, temperature nella norma e con molta probabilita' anche piu' basse rispetto all'utilizzo con voodoopower e suoi discendenti, benefici vari..

 

Il suo utilizzo prevede che il device lpcb venga caricato correttamente cos�€œ da avere temperature piu' basse e che sia iniettato almeno un macpro3.1 (smbiosplist e' il metodo piu' semplice)

 

Tecnicamente il secondo va usato se la vostra piastra non ha il supporto per C2/C3 (mio caso), ma nessuno vi vieta di utilizzare quello che vi da' piu' affidamento, io utilizzo il primo e funziona egregiamente.

Altre cose, puntualizzazioni, sottigliezze e il resto (tanto) saranno discussi nel corso del thread, insieme e senza polemiche, perfavore, una sana discussione.

Per calcolare i vostri pstate utilizzate p-state calculator, con voodoomonitor avrete un'idea di come i p-state si "muovono".

E' il primo topic nella sezione italiana a trattare esclusivamente quest'argomento, cerchiamo di non andare off topic (per le altre mod nel dsdt c'e' il topic aperto dall'amico scrax ;) ) e di renderlo colmo di buone nuove..

 

;)

 

Ringraziamenti a mm67 e a Master Chief per la creazione del generic Scope (_PR)

 

GenericScopePR.zip

P_States_Calculator.zip

fassl dsdt patcher

Link to comment
Share on other sites

Ciao a tutti!

 

Benone! Grazie Smit@@

 

Primo e prima "prova"

 

- Voglio affidarmi al primo codice 8 P-State

- Il codice in esame si riferisce ad un dual.

- Il mio Smbios.plist richiama un MacPro4,1

 

 

Provo ad adattarlo per un Quad( il mio i7) oppure e' una cosa che e' stata gia' fatta senza successo?

Non serve aggiungere "DropSSDT" nel com.Apple.boot.plist con un bootloader PcEfi 10.x?

 

 

Procedo in questo modo:

1) Riparto da 0 Estraggo la tabella dall'ultimo BIOS della mia Scheda (file-BIOS) con MMTOOL

2) Decompilo e correggo gli errori "standard" _T_0, MUTE.. ecc

3) Aggiungo la pach del Device (LPCB), e nulla di piu' al momento...

4) Ricompilo e lo rendo disponibile in Snow Leopard.

5) In Snow ottengo gli 8 valori del p-state con i programmi da te citati.

6) Inserisco/sostituisco i valori con quelli del generic Scope

7) Ricompilo "installo" il DSDT e riavvio.

8) Se funziona aggiungo le vecchie fix.

 

Esempio aggiunto direttamente dal tuo. ho aggiunto 4 CPU

 

Scope (_PR)
{
Processor (CPU0, 0x01, 0x00000810, 0x06)
{
Name (_PSS, Package (0x08)
{
Package (0x06) { 4038, 64688, 0x10, 0x10, 0x4922, Zero },
Package (0x06) { 3825, 7770, 0x10, 0x10, 0x920, One },
Package (0x06) { 3613, 61340, 0x10, 0x10, 0x481F, 0x02 },
Package (0x06) { 3400, 6633, 0x10, 0x10, 0x81D, 0x03 },
Package (0x06) { 3188, 58060, 0x10, 0x10, 0x471C, 0x04 },
Package (0x06) { 2975, 5564, 0x10, 0x10, 0x71A, 0x05 },
Package (0x06) { 2763, 54849, 0x10, 0x10, 0x4619, 0x06 },
Package (0x06) { 2550, 4564, 0x10, 0x10, 0x617, 0x07 }
})

Name (_PSD, Package (0x05)
{
0x05,
0x00,
0x00,
0xFC,
0x02
})

Name (_CST, Package (0x04)
{
0x03, // Number of C-State packages: 3 (C1, C2 and C3).
Package (0x04)
{
ResourceTemplate ()
{
Register (FFixedHW, 
0x01, // Bit Width
0x02, // Bit Offset
0x0000000000000000, // Address
0x00, // Access Size
)
},
One, 
One, 
0x03E8
}, 

Package (0x04)
{
ResourceTemplate ()
{
Register (SystemIO, 
0x08, // Bit Width
0x00, // Bit Offset
0x0000000000000814, // Address
,)
},
0x02,
One,
0x01F4
}, 

Package (0x04)
{
ResourceTemplate ()
{
Register (SystemIO, 
0x08, // Bit Width
0x00, // Bit Offset
0x0000000000000815, // Address
,)
},
0x03,
0x55,
0xFA
}
})
}

Processor (CPU1, 0x02, 0x00000810, 0x06)
{
Alias (\_PR.CPU0._PSS, _PSS)
Alias (\_PR.CPU0._PSD, _PSD)
Alias (\_PR.CPU0._CST, _CST)
}
}

[color="#0000ff"]Processor (CPU2, 0x03, 0x00000810, 0x06)
{
Alias (^CPU0._PSS, _PSS)
Alias (^CPU0._PSD, _PSD)
Alias (^CPU0._CST, _CST)
}

Processor (CPU3, 0x04, 0x00000810, 0x06)
{
Alias (^CPU0._PSS, _PSS)
Alias (^CPU0._PSD, _PSD)
Alias (^CPU0._CST, _CST)
}

[color="#0000ff"]Processor (CPU4, 0x05, 0x00000810, 0x06)
{
Alias (^CPU0._PSS, _PSS)
Alias (^CPU0._PSD, _PSD)
Alias (^CPU0._CST, _CST)
}

Processor (CPU5, 0x06, 0x00000810, 0x06)
{
Alias (^CPU0._PSS, _PSS)
Alias (^CPU0._PSD, _PSD)
Alias (^CPU0._CST, _CST)
}

[color="#0000ff"]Processor (CPU6, 0x07, 0x00000810, 0x06)
{
Alias (^CPU0._PSS, _PSS)
Alias (^CPU0._PSD, _PSD)
Alias (^CPU0._CST, _CST)
}

Processor (CPU7, 0x08, 0x00000810, 0x06)
{
Alias (^CPU0._PSS, _PSS)
Alias (^CPU0._PSD, _PSD)
Alias (^CPU0._CST, _CST)
}
[/color][/color]}[/color]

 

Smith@@ e' giusto il primo codice che hai messo???? mi riferisco alla sezione in blu...

 

le CPU alias

Alias (^CPU1._PSS, _PSS)

Alias (^CPU1._PSD, _PSD)

Alias (^CPU1._CST, _CST)

fanno riferimento a CPU1???? non dovrebbero riferirsi a CPU0???

Alias (^CPU0._PSS, _PSS)

Alias (^CPU0._PSD, _PSD)

Alias (^CPU0._CST, _CST)

Nel codice che ho riportato sopra credo che abbia piu' logica...

Link to comment
Share on other sites

Salve. Ma che bel topic che mi trovo oggi... ;)

 

Allora anch'io son arrivato allo speedsteep tramite ssdt in dsdt grazie al famoso topic di FCA e poi son passato alla versione di MC.

I P-State li ho trovati usando prima PState Changer (per sapere quanti e quali la mia CPU sfrutta) e P-State Calculator per ottenere le stringhe da inserire.

Ecco il mio Scope (_PR) postato da poco anche nel topic sui DSDT fix nominato prima da smith@@

 

Scope (_PR)
   {
       Processor (CPU1, 0x01, 0x00000810, 0x06)
       {
           Name (_PSS, Package (0x0[color="#FF0000"]3[/color])      [color="#FF0000"]\\<--- Numero P-State[/color]
           {
               [color="#FF0000"]Package (0x06) { 1998, 51568, 10, 10, 0x616, 0x616 },   \\<-- P-State calcolati 
               Package (0x06) { 2331, 63571, 10, 10, 0x71A, 0x71A },   \\<-- con P-State Calculator  impostato
               Package (0x06) { 2664, 76548, 10, 10, 0x81D, 0x81D }    \\<-- con i valori della propria CPU[/color]            })

           Name (_PSD, Package (0x05)
           {
               0x05, 
               Zero, 
               Zero, 
               0xFC, 
               0x04
           })

           Name (_CST, Package (0x04)
           {
               0x03, 
               Package (0x04)
               {
                   ResourceTemplate ()
                   {
                       Register (FFixedHW, 
                           0x01,               // Bit Width
                           0x02,               // Bit Offset
                           0x0000000000000000, // Address
                           ,)
                   }, 

                   One, 
                   0x65, 
                   0x03E9
               }, 

               Package (0x04)
               {
                   ResourceTemplate ()
                   {
                       Register (SystemIO, 
                           0x08,               // Bit Width
                           0x00,               // Bit Offset
                           0x0000000000000814, // Address
                           ,)
                   }, 

                   0x02, 
                   0x03E9, 
                   0x01F4
               }, 

               Package (0x04)
               {
                   ResourceTemplate ()
                   {
                       Register (SystemIO, 
                           0x08,               // Bit Width
                           0x00,               // Bit Offset
                           0x0000000000000815, // Address
                           ,)
                   }, 

                   0x03, 
                   0x55, 
                   0xFA
               }
           })
       }

       Processor (CPU2, 0x02, 0x00000810, 0x06)
       {
           Alias (^CPU1._PSS, _PSS)
           Alias (^CPU1._PSD, _PSD)
           Alias (^CPU1._CST, _CST)
       }

       Processor (CPU3, 0x03, 0x00000810, 0x06)
       {
           Alias (^CPU1._PSS, _PSS)
           Alias (^CPU1._PSD, _PSD)
           Alias (^CPU1._CST, _CST)
       }

       Processor (CPU4, 0x04, 0x00000810, 0x06)
       {
           Alias (^CPU1._PSS, _PSS)
           Alias (^CPU1._PSD, _PSD)
           Alias (^CPU1._CST, _CST)
       }
   }

 

Le parti in rosso vanno modificate con i valori ottenuti da P-State Calculator.

Per usare P-State Calculator bisogna controllare che i valori nelle colonne a sx siano quelli della cpu che verrà usata e nella colonna a dx cambiando il moltiplicatore (Core Multiplier) otterremo i vari p-state. ATTENZIONE che ogni cpu usa diversi valori e anche quantità di p-state, quella nell'esempio usa solo i p-state da 6, 7 e 8 cioè da 2GHz a 2,6 Ghz. Per sapere quanti e quali P-State supporta la vostra cpu potete usare P-State Changer installando il relativo .kext (da togliere una volta fatta la modifica al dsdt).

Nota: il numero 3 rosso va modificato con il numero totale dei p-state impostati.

 

iFabio, il dropssdt non serve selezionarlo, mentre per i7 non mi pare di aver visto problemi nei vari topic che ho letto.

Link to comment
Share on other sites

Ciao a tutti!

 

:-(

 

Sul mio sistema VoodooMonitor.kext genera Kernel panic

P-State Calculator funziona (Il difficile e' ricavare valori alternativi)

e P-State Changer carica ma si chiude appena vado sulla finestra pref o info.

 

Soluzioni tradizionali per calcolare differenti stati?

 

Fabio

Link to comment
Share on other sites

finalmente un topic sull'argomento, putroppo non ho avuto la capacità di seguire lucidamente quello sul forum internazionale, spero di riuscire da qui ad ottenere sto benedetto vanilla speedstep! appena ho tempo ci provo!

 

ciao!

Link to comment
Share on other sites

Ciao a tutti!

 

Benone! Grazie Smit@@

 

Primo e prima "prova"

 

- Voglio affidarmi al primo codice 8 P-State

- Il codice in esame si riferisce ad un dual.

- Il mio Smbios.plist richiama un MacPro4,1

 

 

Provo ad adattarlo per un Quad( il mio i7) oppure e' una cosa che e' stata gia' fatta senza successo?

Non serve aggiungere "DropSSDT" nel com.Apple.boot.plist con un bootloader PcEfi 10.x?

 

 

Procedo in questo modo:

1) Riparto da 0 Estraggo la tabella dall'ultimo BIOS della mia Scheda (file-BIOS) con MMTOOL

2) Decompilo e correggo gli errori "standard" _T_0, MUTE.. ecc

3) Aggiungo la pach del Device (LPCB), e nulla di piu' al momento...

4) Ricompilo e lo rendo disponibile in Snow Leopard.

5) In Snow ottengo gli 8 valori del p-state con i programmi da te citati.

6) Inserisco/sostituisco i valori con quelli del generic Scope

7) Ricompilo "installo" il DSDT e riavvio.

8) Se funziona aggiungo le vecchie fix.

 

Esempio aggiunto direttamente dal tuo. ho aggiunto 4 CPU

 

Scope (_PR)
{
Processor (CPU0, 0x01, 0x00000810, 0x06)
{
Name (_PSS, Package (0x08)
{
Package (0x06) { 4038, 64688, 0x10, 0x10, 0x4922, Zero },
Package (0x06) { 3825, 7770, 0x10, 0x10, 0x920, One },
Package (0x06) { 3613, 61340, 0x10, 0x10, 0x481F, 0x02 },
Package (0x06) { 3400, 6633, 0x10, 0x10, 0x81D, 0x03 },
Package (0x06) { 3188, 58060, 0x10, 0x10, 0x471C, 0x04 },
Package (0x06) { 2975, 5564, 0x10, 0x10, 0x71A, 0x05 },
Package (0x06) { 2763, 54849, 0x10, 0x10, 0x4619, 0x06 },
Package (0x06) { 2550, 4564, 0x10, 0x10, 0x617, 0x07 }
})

Name (_PSD, Package (0x05)
{
0x05,
0x00,
0x00,
0xFC,
0x02
})

Name (_CST, Package (0x04)
{
0x03, // Number of C-State packages: 3 (C1, C2 and C3).
Package (0x04)
{
ResourceTemplate ()
{
Register (FFixedHW, 
0x01, // Bit Width
0x02, // Bit Offset
0x0000000000000000, // Address
0x00, // Access Size
)
},
One, 
One, 
0x03E8
}, 

Package (0x04)
{
ResourceTemplate ()
{
Register (SystemIO, 
0x08, // Bit Width
0x00, // Bit Offset
0x0000000000000814, // Address
,)
},
0x02,
One,
0x01F4
}, 

Package (0x04)
{
ResourceTemplate ()
{
Register (SystemIO, 
0x08, // Bit Width
0x00, // Bit Offset
0x0000000000000815, // Address
,)
},
0x03,
0x55,
0xFA
}
})
}

Processor (CPU1, 0x02, 0x00000810, 0x06)
{
Alias (\_PR.CPU0._PSS, _PSS)
Alias (\_PR.CPU0._PSD, _PSD)
Alias (\_PR.CPU0._CST, _CST)
}
}

[color="#0000ff"]Processor (CPU2, 0x03, 0x00000810, 0x06)
{
Alias (^CPU0._PSS, _PSS)
Alias (^CPU0._PSD, _PSD)
Alias (^CPU0._CST, _CST)
}

Processor (CPU3, 0x04, 0x00000810, 0x06)
{
Alias (^CPU0._PSS, _PSS)
Alias (^CPU0._PSD, _PSD)
Alias (^CPU0._CST, _CST)
}

[color="#0000ff"]Processor (CPU4, 0x05, 0x00000810, 0x06)
{
Alias (^CPU0._PSS, _PSS)
Alias (^CPU0._PSD, _PSD)
Alias (^CPU0._CST, _CST)
}

Processor (CPU5, 0x06, 0x00000810, 0x06)
{
Alias (^CPU0._PSS, _PSS)
Alias (^CPU0._PSD, _PSD)
Alias (^CPU0._CST, _CST)
}

[color="#0000ff"]Processor (CPU6, 0x07, 0x00000810, 0x06)
{
Alias (^CPU0._PSS, _PSS)
Alias (^CPU0._PSD, _PSD)
Alias (^CPU0._CST, _CST)
}

Processor (CPU7, 0x08, 0x00000810, 0x06)
{
Alias (^CPU0._PSS, _PSS)
Alias (^CPU0._PSD, _PSD)
Alias (^CPU0._CST, _CST)
}
[/color][/color]}[/color]

 

Smith@@ e' giusto il primo codice che hai messo???? mi riferisco alla sezione in blu...

 

le CPU alias

Alias (^CPU1._PSS, _PSS)

Alias (^CPU1._PSD, _PSD)

Alias (^CPU1._CST, _CST)

fanno riferimento a CPU1???? non dovrebbero riferirsi a CPU0???

Alias (^CPU0._PSS, _PSS)

Alias (^CPU0._PSD, _PSD)

Alias (^CPU0._CST, _CST)

Nel codice che ho riportato sopra credo che abbia piu' logica...

 

 

No fabio, e' giusto, ti spiego, in quell' esempio, ma vale sempre, si parte con cpu0, la cpu1 assume valore in pstate della cpu0, cpu2 e3 faranno "riferimento" a cpu1 che a sua volta fa "riferimento a cpu0! E' un collegamento necessario, devi passare per cpu1 necessariamente.. quello e' un esempio con 4 core, ma il senso e' lo stesso sempre :)

 

Notte..

Link to comment
Share on other sites

iFabio, io basandomi su questo ho provato a calcolarmi con P-State Calculator alcuni valori per la tua CPU. A vedere la foto che hai postato nella tua guida mi pare di capire che stai usando P-SC con i valori di default. Devi adeguarli alla tua CPU.

 

Dal datasheet io ho messo:

Core Clock (MHz) 2926 (questo all'inizio l'avevo messo a 2930 ma non mi convinceva)

Core Voltage (V) 1,080 (questo è una media sui voltaggi scritti nel datasheet)

Power Dissipation (W) 130 (questo corrisponde al Max TDP della CPU )

Bus Speed (MHz) 133 (Core Clock/Core Multiplier cioè 2926/22 ma c'è anche nelle notes di intel)

Core Multiplier 22 (dal datasheet)

Core Clock (MHz) li mette lui

Core Voltage (V) li mette lui

 

Es.:

Moltiplicatore a 22:

Package (0x06) { 2926, 147574, 10, 10, 0x1620, 0x1620 }

 

Moltiplicatore a 20:

Package (0x06) { 2660, 128905, 10, 10, 0x141D, 0x141D }

 

L'unico dato che non so dove prenderlo, perché io lo vedevo con P-State Changer o VoodooMonitor è quanti p-state supporta la tua CPU. La mia x es ne supporta solo 3.

A sto punto credo che puoi farti un ssdt con anche una 10ina di pstate e poi vedi quali effettivamente vanno e quali altri puoi togliere perché inutilizzati.

Link to comment
Share on other sites

iFabio, io basandomi su questo ho provato a calcolarmi con P-State Calculator alcuni valori per la tua CPU. A vedere la foto che hai postato nella tua guida mi pare di capire che stai usando P-SC con i valori di default. Devi adeguarli alla tua CPU.

 

Dal datasheet io ho messo:

Core Clock (MHz) 2926 (questo all'inizio l'avevo messo a 2930 ma non mi convinceva)

Core Voltage (V) 1,080 (questo è una media sui voltaggi scritti nel datasheet)

Power Dissipation (W) 130 (questo corrisponde al Max TDP della CPU )

Bus Speed (MHz) 133 (Core Clock/Core Multiplier cioè 2926/22 ma c'è anche nelle notes di intel)

Core Multiplier 22 (dal datasheet)

Core Clock (MHz) li mette lui

Core Voltage (V) li mette lui

 

Es.:

Moltiplicatore a 22:

Package (0x06) { 2926, 147574, 10, 10, 0x1620, 0x1620 }

 

Moltiplicatore a 20:

Package (0x06) { 2660, 128905, 10, 10, 0x141D, 0x141D }

 

L'unico dato che non so dove prenderlo, perché io lo vedevo con P-State Changer o VoodooMonitor è quanti p-state supporta la tua CPU. La mia x es ne supporta solo 3.

A sto punto credo che puoi farti un ssdt con anche una 10ina di pstate e poi vedi quali effettivamente vanno e quali altri puoi togliere perché inutilizzati.

 

 

Grazie INFINITE delle dritte!

 

Ho raccolto alcuni valori dal BIOS magari possono aiutare insieme al datasheet del mio processore i7 940

 

 

 

In effetti i valori che mi hai indicato coincidono (ho tutto a default non ho Overclock)

 

I moltiplicatori vanno da 12 a 23 (di base il mio usa 22) possono essere utilizzati questi valori? Significano qualcosa? sono i P-State o non centrano nulla? Se cosi' fosse avrei 12 P-State 12 minimo e 23 max(piccolo OC considerando il 22 il base)?

 

12= 1

13= 2

14= 3

15= 4

16= 5

17= 6

18= 7

19= 8

20= 9

21=10

22=11

23=12

 

Sono perplesso :(

 

Fabio

Link to comment
Share on other sites

i7 9xx P-State

SIIII!!!!

Successo!!! Grazie infinite ragazzi!!!!

Ho eliminato tutti gli kext inutilizzati fuori anche NullCPU e OpenHalt!!

 

Il Sistema che mi ha consigliato scrax funziona ho usato i moltiplicatori che ho visto nel BIOS da 12 a 23(Quest'ultimo sarebbe un piccolo OC).

 

Ora devo rifinire i voltaggi e il TPM che averli standard non mi sembra sia troppo corretto.

Correggetemi che probabilmente sbaglio...

Ho iniziato a "farmi" una tabella dei valori del mio processore.

 

Consigliate di variare solo il moltiplicatore per calcolare i pacchetti oppure cambiare tutti i valori in conseguenza di ogni ipotetico p-state?

 

I consigli sono sempre ben accetti

Fabio

Link to comment
Share on other sites

i7 9xx P-State

SIIII!!!!

Successo!!! Grazie infinite ragazzi!!!!

Ho eliminato tutti gli kext inutilizzati fuori anche NullCPU e OpenHalt!!

 

Il Sistema che mi ha consigliato scrax funziona ho usato i moltiplicatori che ho visto nel BIOS da 12 a 23(Quest'ultimo sarebbe un piccolo OC).

 

Ora devo rifinire i voltaggi e il TPM che averli standard non mi sembra sia troppo corretto.

Correggetemi che probabilmente sbaglio...

Ho iniziato a "farmi" una tabella dei valori del mio processore.

 

Consigliate di variare solo il moltiplicatore per calcolare i pacchetti oppure cambiare tutti i valori in conseguenza di ogni ipotetico p-state?

 

I consigli sono sempre ben accetti

Fabio

 

Bravo fabio :P

 

Li devi tenere standard, se li tieni fuori "specifiche" il codice se ne "frega" nel senso che ti andra' comunque a leggere i valori di frequenze e voltaggi che hai nel bios, se provi a mettere voltaggi sballati o frequenze sballate, succede poco o nulla, quel codice andra' si appoggera' sempre alle frequenze e ai voltaggi impostati nel bios. Ha bisogno dei valori a default, perche' tecnicamente e' da li' che deve partire ;)

Occhio all'overclock, fino a un certo punto avrai poi potresti iniziare a perdere, se spingerai molto, cose come lo spegnimento e/o il riavvio, anche usando valori non a defaul nel codice, e' a mio avviso un "problema" di alimentazione, sempre, durante un oc spinto l'appleintelcpu tende a perdere qualche colpo..

L'importante e' aver raggiunto l'obiettivo. Tieni presente che la vera importanza di questo codice io l'attribuisco al possibilta' di eliminare il disabler piu' importante e non tanto allo ss, in un overclock molto spinto, il codice non riesce a lavorare come dovrebbe e qui in entra in gioco voodoopowermini che ci rida' la possibilta' di riavere spegnimento e/o riavvio, in quanto neanche ritornando ad usare openhalt si risolverebbe, come vedi ci sono tante possibilta', e dipende da come sceglierai di tenere il pc: default, overclock medio, overclock spinto; io ho scelto la seconda, il codice riesce a gestire tutto, non perdo nulla :)

 

Ciao

Link to comment
Share on other sites

GRAZIE A TUTTIIIIIIIIIIIIII!

Sono riuscito finalmente ad avere quasi tutto, audio compreso, l'unica cosa è: come faccio ad avere la certezza che lo s.step funzioni? ho provato con xbench perchè di solito con lo speedstep del voodooPower i valori sono inferiori, ed infatti in apparenza sembra che stia funzionando, ma le temperature sono leggermente più alte di 3 o 4 gradi, è normale? come lo verifico?

Link to comment
Share on other sites

GRAZIE A TUTTIIIIIIIIIIIIII!

Sono riuscito finalmente ad avere quasi tutto, audio compreso, l'unica cosa è: come faccio ad avere la certezza che lo s.step funzioni? ho provato con xbench perchè di solito con lo speedstep del voodooPower i valori sono inferiori, ed infatti in apparenza sembra che stia funzionando, ma le temperature sono leggermente più alte di 3 o 4 gradi, è normale? come lo verifico?

 

Le temperature non dovrebbero essere piu' alte, anzi, sei sicuro che lo ss stia funzionando? Controlla con voodoomonitor se i pstate si "muovono" e se soprattutto i voltaggi seguono i pstate, se sono fermi al valore piu' alto significa che qualcosa non va come dovrebbe :(

 

ciao

Link to comment
Share on other sites

Le temperature non dovrebbero essere piu' alte, anzi, sei sicuro che lo ss stia funzionando? Controlla con voodoomonitor se i pstate si "muovono" e se soprattutto i voltaggi seguono i pstate, se sono fermi al valore piu' alto significa che qualcosa non va come dovrebbe :(

 

ciao

 

allora funziona tutto, saranno le temperature più alte a causa dei termosifoni, ma se devo usare voodoomonitor, installando il suo kext, non abilito lo speedstep? comunque sia le temperature sono invariate, vedo solo che i primi 2 core usano un voltaggio maggiore del terzo e quarto, 1.340 V contro 1.132 V, scusate tutte le domande, ma volendo regolarizzare il voltaggio, quale parte devo modificare?

Link to comment
Share on other sites

allora funziona tutto, saranno le temperature più alte a causa dei termosifoni, ma se devo usare voodoomonitor, installando il suo kext, non abilito lo speedstep? comunque sia le temperature sono invariate, vedo solo che i primi 2 core usano un voltaggio maggiore del terzo e quarto, 1.340 V contro 1.132 V, scusate tutte le domande, ma volendo regolarizzare il voltaggio, quale parte devo modificare?

 

 

voodoomonitor non c'entra nulla con voodoopower, riguardo cio' che mi hai scritto credo che non funzioni a dovere, i core, nel pstate in cui si trovano in quel dato istante, devono utilizzare lo stesso voltaggio, sempre! :rolleyes:

 

Ciao

Link to comment
Share on other sites

Ciao a tutti!

 

Rieccomi:

 

Dunque ho eliminato il moltiplicatore 23(il Turbo) come giustamente menzionato da scrax

 

Ho ricalcolato il pacchetti con P-State Calculator con i valori di default

 

e in particolare il CPU Vcore che e' a 1.200 ,anche se onestamente non ho trovato da nessuna parte che questo sia il valore di default, sono andato matto per vari siti di overclock per trovare valori che potessero parzialmente confermare questa teoria... ma alla fine il risultato c'e'!

 

Nel codice che ho ricavato non voglio farne un uso spinto, infatti ho tenuto il moltiplicatore max a 22 che e' quello di base per l'i7 940.

Questi sono i pacchetti con voltaggi di base a 1.200

--------------------------------------------------------

22 = Package (0x06) { 2926, 132816, 10, 10, 0x1620, 0x1620 }

21 = Package (0x06) { 2793, 124297, 10, 10, 0x151F, 0x151F }

20 = Package (0x06) { 2660, 116015, 10, 10, 0x141D, 0x141D }

19 = Package (0x06) { 2527, 107968, 10, 10, 0x131C, 0x131C }

18 = Package (0x06) { 2394, 100159, 10, 10, 0x121A, 0x121A }

17 = Package (0x06) { 2261, 92585, 10, 10, 0x1119, 0x1119 }

16 = Package (0x06) { 2128, 85327, 10, 10, 0x1017, 0x1017 }

15 = Package (0x06) { 1995, 78221, 10, 10, 0xF16, 0xF16 }

14 = Package (0x06) { 1862, 71352, 10, 10, 0xE14, 0xE14 }

13 = Package (0x06) { 1729, 64719, 10, 10, 0xD13, 0xD13 }

12 = Package (0x06) { 1596, 58322, 10, 10, 0xC11, 0xC11 }

--------------------------------------------------------------

 

 

Ricapitolando ora ho 11 P-State in prova da 12x a 22x.

 

Le utility da voi citate non funzionano su questa piastra Voodoomonitor mi va in panic e i-mark anche

 

Mi baso "SOLO" su P-State changer ma anche qui qualcosa non mi quadra...

 

 

Non dovrei avere dei valori in mV(Tra il clock MHZ e il FID)???

Altra cosa ho provato a fare uno score con geekbench e nn ho notato nessuna differenza sostanziale..rimango su valori di 9000(score).

 

Fabio

Link to comment
Share on other sites

finalmente sto capendo il DSDT in generale, ma lo speedstep mi sta mandando al manicomio, neanche inserendo i valori dei voltaggi cambia la situazione, praticamente lo speedstep mi funziona solo per i primi 2 core, gli altri due rimangono fissi a 1602MHz, ho provato un'altro metodo ma mi da un errore, una graffa, e non riesco a capire perchè è un errore, a me sembra tutto corretto, stanotte voglio riprovare, speriamo bene!

 

se avete idea del perchè funziona solo su due core, fatemi sapere, sicuramente nella mia niubbagine dimentico qualcosa!

Link to comment
Share on other sites

finalmente sto capendo il DSDT in generale, ma lo speedstep mi sta mandando al manicomio, neanche inserendo i valori dei voltaggi cambia la situazione, praticamente lo speedstep mi funziona solo per i primi 2 core, gli altri due rimangono fissi a 1602MHz, ho provato un'altro metodo ma mi da un errore, una graffa, e non riesco a capire perchè è un errore, a me sembra tutto corretto, stanotte voglio riprovare, speriamo bene!

 

se avete idea del perchè funziona solo su due core, fatemi sapere, sicuramente nella mia niubbagine dimentico qualcosa!

 

 

Ma nel codice hai inserito nell'ultima parte gli alias per gli altri 2 core? Postai il tuo dsdt e il codice che hai utilizzato in un file di testo...

Link to comment
Share on other sites

Ciao a tutti.

Ed eccomi finalmente a insudiciare il thread :D

 

Allora caro Smith, mi sono accorto che il DSDT che ti avevo mandato, non era giusto.

Quindi non mi funzionava.

Seconda cosa, Mi sono accorto che P-State Calculator, bisogna inserirci i dati del nostro processore, e non li tira fuori in automatico lui come pensavo ( sono fulminato scusami )

Detto questo tu hai due esempi sopra, Un 8 core e un dual core mi pare, poi leggerò meglio.

 

Ma come mi comporto con il mio Q9550 ( 4 core ) e con il Celeron 560 Core Solo?

Altra cosa. Ho notato che in Pstate, serve il voltaggio.

Bè il voltaggio nel bios del mio Notebook, non si vede.

Con che Applicazione posso trovare quei dati che servono a Pstate?

 

Scusate la raffica di domande :D

 

Ciau e avanti con lo smanettamento del DSDT :D

Link to comment
Share on other sites

Ciao a tutti.

Ed eccomi finalmente a insudiciare il thread :(

 

Allora caro Smith, mi sono accorto che il DSDT che ti avevo mandato, non era giusto.

Quindi non mi funzionava.

Seconda cosa, Mi sono accorto che P-State Calculator, bisogna inserirci i dati del nostro processore, e non li tira fuori in automatico lui come pensavo ( sono fulminato scusami )

Detto questo tu hai due esempi sopra, Un 8 core e un dual core mi pare, poi leggerò meglio.

 

Ma come mi comporto con il mio Q9550 ( 4 core ) e con il Celeron 560 Core Solo?

Altra cosa. Ho notato che in Pstate, serve il voltaggio.

Bè il voltaggio nel bios del mio Notebook, non si vede.

Con che Applicazione posso trovare quei dati che servono a Pstate?

 

Scusate la raffica di domande :P

 

Ciau e avanti con lo smanettamento del DSDT :P

 

 

Io il mio voltaggio base teorico l'ho trovato "goggolando" e con la utility CPUID CPU-Z in win.

 

Oppure vai sul sito della Intel e cerchi le specifiche del tuo processore.Q9550

 

Fabio

Link to comment
Share on other sites

Ma nel codice hai inserito nell'ultima parte gli alias per gli altri 2 core? Postai il tuo dsdt e il codice che hai utilizzato in un file di testo...

ci sono riuscito, però una cosa è strana, senza VoodooPower e senza lo speedstep nel dsdt, voodoo monitor mi rilevava lo speedstep funzionante sui primi due core, booo, ora comunque tutto a posto, grazie mille per la disponibilità

 

posto il mio dsdt, non si sa mai potesse servire a qualcuno

dsdt__P5K_P5K_R_Q6600.aml.zip

Link to comment
Share on other sites

Intel® Celeron® Processor 560 (1M Cache, 2.13 GHz, 533 MHz FSB)

 

Sarebbe il processore del mio portatile.

 

Enhanced Intel® Speedstep Technology No

 

 

Vorrebbe dire che non ha lo speedstep, quindi posso cestinare anche il file voodoopowermini? Non mi serve a nulla giusto?

Link to comment
Share on other sites

ho un problema con il dsdt del aspire one d150, mi da 1 solo errore nella compilazione, ma non ci ho capito niente googolando, l'errore è questo:

 

/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl 6996: [*** iASL: Read error on source code temp file /Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.src ***]

Error 4096 - syntax error, unexpected $end ^

 

 

qualcuno sa da cosa dipende?

 

 

EDIT:

 

risolto il problema

Link to comment
Share on other sites

 Share

×
×
  • Create New...