Jump to content

VANILLA SPEEDSTEP


309 posts in this topic

Recommended Posts

Aspetta un attimo!

Io nel Device LPCB ho aggiunto degli id che in teoria dovrebbero fare un po' il lavoro di VoodooPower per mantenere basse le temperature.

Tu li hai aggiunti? Sul mio portatile funzionano e come !

 

 

edit

Device (LPCB)
           {
               Name (_ADR, 0x001F0000)
               Method (_DSM, 4, NotSerialized)    ###da qua###
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x18, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }                                            ###a qua###

               Scope (\_SB)
               {
                   OperationRegion (PCI0.LPCB.LPC1, PCI_Config, 0x40, 0xC0)
                   Field (PCI0.LPCB.LPC1, AnyAcc, NoLock, Preserve)
                   {
                               Offset (0x20), 
                       PARC,   8, 

Link to comment
Share on other sites

non sapevo di questa modifica aggiuntiva, tra l'altro ho notato che flash (sono su speedstep con DSDT) scatta malamente. Non è una buona giornata per il modding :S

 

edit: non ho nemmeno quel device, ora provo ad aggiungerlo, comunque flash scatta anche con i P-state generati da RC5.

Link to comment
Share on other sites

Aspetta un attimo!

Io nel Device LPCB ho aggiunto degli id che in teoria dovrebbero fare un po' il lavoro di VoodooPower per mantenere basse le temperature.

Tu li hai aggiunti? Sul mio portatile funzionano e come !

 

 

edit

Device (LPCB)
           {
               Name (_ADR, 0x001F0000)
               Method (_DSM, 4, NotSerialized)    ###da qua###
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x18, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }                                            ###a qua###

               Scope (\_SB)
               {
                   OperationRegion (PCI0.LPCB.LPC1, PCI_Config, 0x40, 0xC0)
                   Field (PCI0.LPCB.LPC1, AnyAcc, NoLock, Preserve)
                   {
                               Offset (0x20), 
                       PARC,   8, 

 

 

Ciao a tutti.

Finalmente anche io ho messo lo speedstep natio.

Grazie al chameleon che calcola automaticamente i Pstate etc...

 

Funziona tranquillamente, ora però mi piaceva mettere nel dsdt anche questa cosa del LPCB....A me come scritto si chiama SRGB.

 

2 domande.

 

-Dovrei rinominare e sostituire ogni scritta SRGB con LPCB ( o non serve a nulla )

 

- Dove trovo questi fantomatici ID e dove li dovrei inserire precisamente ?

Io nel Device LPCB ho aggiunto degli id che in teoria dovrebbero fare un po' il lavoro di VoodooPower per mantenere basse le temperature.

 

 

 

Grazie mille in anticipo per la risposta.

 

Ciao ciao.

Link to comment
Share on other sites

Ciao frtommy :P

 

Gli Id dipendono dal chipset, il tuo è ICH10R. Il seguente esempio è perfetto per te.

nota: Questo necessita l'aggiunta del device DTGP, generalmente locato agli inizi del DSDT, controlla prima la sua presenza altrimenti puoi trovare l'iniezione bella e pronta tra i fix di dsdtse.

 

Device (LPCB)
           {
               Name (_ADR, 0x001F0000)
               OperationRegion (LPC0, PCI_Config, 0xA0, 0x60)
               Field (LPC0, AnyAcc, NoLock, Preserve)
               {
                       ,   10, 
                   XPME,   1, 
                           Offset (0x04), 
                   AG3E,   1, 
                           Offset (0x50), 
                   RAEN,   1, 
                       ,   13, 
                   RCBA,   18
               }

               Name (SMIP, 0xB2)
               OperationRegion (APMP, SystemIO, SMIP, 0x02)
               Field (APMP, ByteAcc, NoLock, Preserve)
               {
                   APMC,   8, 
                   APMS,   8
               }

               Field (APMP, ByteAcc, NoLock, Preserve)
               {
                           Offset (0x01), 
                       ,   1, 
                   BRTC,   1
               }

               Name (PMBS, 0x0800)
               OperationRegion (PMS0, SystemIO, PMBS, 0x04)
               Field (PMS0, ByteAcc, NoLock, Preserve)
               {
                           Offset (0x01), 
                   PWBE,   1, 
                       ,   1, 
                   RTCS,   1, 
                       ,   4, 
                   WAKS,   1, 
                           Offset (0x03), 
                   PWBT,   1, 
                           Offset (0x04)
               }

               Name (PM30, 0x0830)
               OperationRegion (SMIE, SystemIO, PM30, 0x08)
               Field (SMIE, ByteAcc, NoLock, Preserve)
               {
                       ,   4, 
                   PS1E,   1, 
                           Offset (0x04), 
                       ,   4, 
                   PS1S,   1
               }

               Method (SPTS, 0, NotSerialized)
               {
                   Store (One, PS1S)
                   Store (One, PS1E)
               }

               Method (SWAK, 1, NotSerialized)
               {
                   Store (Zero, PS1E)
                   If (LAnd (LEqual (Arg0, One), RTCS)) {}
                   Else
                   {
                       If (LAnd (LEqual (Arg0, 0x03), BRTC)) {}
                       Else
                       {
                           Notify (PWRB, 0x02)
                       }
                   }
               }

               [b]Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x18, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   MCDP (Arg2, RefOf (Local0))
                   Return (Local0)
               }[/b]

               Device (DMAC)
               {
                   Name (_HID, EisaId ("PNP0200"))
                   Name (_CRS, ResourceTemplate ()
                   {
                       IO (Decode16,
                           0x0000,             // Range Minimum
                           0x0000,             // Range Maximum
                           0x00,               // Alignment
                           0x10,               // Length
                           )
                       IO (Decode16,
                           0x0081,             // Range Minimum
                           0x0081,             // Range Maximum
                           0x00,               // Alignment
                           0x03,               // Length
                           )
                       IO (Decode16,
                           0x0087,             // Range Minimum
                           0x0087,             // Range Maximum
                           0x00,               // Alignment
                           0x01,               // Length
                           )
                       IO (Decode16,

 

Circa la rinomina del Device è opzionale.

 

ciao :D

Link to comment
Share on other sites

Ciao frtommy :o

 

Gli Id dipendono dal chipset, il tuo è ICH10R. Il seguente esempio è perfetto per te.

nota: Questo necessita l'aggiunta del device DTGP, generalmente locato agli inizi del DSDT, controlla prima la sua presenza altrimenti puoi trovare l'iniezione bella e pronta tra i fix di dsdtse.

 

Device (LPCB)
           {
               Name (_ADR, 0x001F0000)
               OperationRegion (LPC0, PCI_Config, 0xA0, 0x60)
               Field (LPC0, AnyAcc, NoLock, Preserve)
               {
                       ,   10, 
                   XPME,   1, 
                           Offset (0x04), 
                   AG3E,   1, 
                           Offset (0x50), 
                   RAEN,   1, 
                       ,   13, 
                   RCBA,   18
               }

               Name (SMIP, 0xB2)
               OperationRegion (APMP, SystemIO, SMIP, 0x02)
               Field (APMP, ByteAcc, NoLock, Preserve)
               {
                   APMC,   8, 
                   APMS,   8
               }

               Field (APMP, ByteAcc, NoLock, Preserve)
               {
                           Offset (0x01), 
                       ,   1, 
                   BRTC,   1
               }

               Name (PMBS, 0x0800)
               OperationRegion (PMS0, SystemIO, PMBS, 0x04)
               Field (PMS0, ByteAcc, NoLock, Preserve)
               {
                           Offset (0x01), 
                   PWBE,   1, 
                       ,   1, 
                   RTCS,   1, 
                       ,   4, 
                   WAKS,   1, 
                           Offset (0x03), 
                   PWBT,   1, 
                           Offset (0x04)
               }

               Name (PM30, 0x0830)
               OperationRegion (SMIE, SystemIO, PM30, 0x08)
               Field (SMIE, ByteAcc, NoLock, Preserve)
               {
                       ,   4, 
                   PS1E,   1, 
                           Offset (0x04), 
                       ,   4, 
                   PS1S,   1
               }

               Method (SPTS, 0, NotSerialized)
               {
                   Store (One, PS1S)
                   Store (One, PS1E)
               }

               Method (SWAK, 1, NotSerialized)
               {
                   Store (Zero, PS1E)
                   If (LAnd (LEqual (Arg0, One), RTCS)) {}
                   Else
                   {
                       If (LAnd (LEqual (Arg0, 0x03), BRTC)) {}
                       Else
                       {
                           Notify (PWRB, 0x02)
                       }
                   }
               }

               [b]Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x18, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   MCDP (Arg2, RefOf (Local0))
                   Return (Local0)
               }[/b]

               Device (DMAC)
               {
                   Name (_HID, EisaId ("PNP0200"))
                   Name (_CRS, ResourceTemplate ()
                   {
                       IO (Decode16,
                           0x0000,             // Range Minimum
                           0x0000,             // Range Maximum
                           0x00,               // Alignment
                           0x10,               // Length
                           )
                       IO (Decode16,
                           0x0081,             // Range Minimum
                           0x0081,             // Range Maximum
                           0x00,               // Alignment
                           0x03,               // Length
                           )
                       IO (Decode16,
                           0x0087,             // Range Minimum
                           0x0087,             // Range Maximum
                           0x00,               // Alignment
                           0x01,               // Length
                           )
                       IO (Decode16,

 

Circa la rinomina del Device è opzionale.

 

ciao :D

 

Ciao Buuo e grazie per la risposta.

Allora nel frattempo che aspettavo tentavo lo smanettamento ed ho fatto così.

 

Aperto il DSDT chiaramente già avevo il DTGP,

Ho inserito il device id che ho trovato con IOREGISTRY.... del mio SBRG, cioè se non ho sbagliato dove leggere, era 16 3a 00 00

Così nel DSDT andando nel Device SBRG

Lower temperatures SBRG/LPCB hack


This will allow you to have a proper LPC device registered under OSX.
It will lower your CPU temperature when using Native speedstep. (Appleintelcpupowermanagement).

Be sure to add your hardware´s LPC id to AppleLPC.kext and add this code into your DSDT.

If you get audio stuttering or audio glitches with this fix, then You have also to remove the IRQ to
Device (TMR)/(TIMR) and Device (PIC)/(IPIC)




Locate Device (SBRG) or Device (LPCB) and add the hacked id:


Device (SBRG) /* Also known as  Device (LPCB) */
		 {
			 Name (_ADR, 0x001F0000)
			 Method (_DSM, 4, NotSerialized)
			 {
				 Store (Package (0x02)
					 {
						 "device-id",
						 Buffer (0x04)
						 {
   [b]				0x18, 0x3A, 0x00, 0x00 /* hack the ID.. */ Qua ho messo
0x16 0x3a 0x00 0x00[/b] [b]al posto chiaramente dello 0x18 .....[/b]
						 }
					 }, Local0)
				 DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				 Return (Local0)
			 }

 

Ho fatto male ?

 

Perchè mi pare diverso il tuo elenco di DSDT.

Link to comment
Share on other sites

Questa iniezione viene fatta proprio per avere dli ID uguali a questi 0x18, 0x3A, 0x00, 0x00, in modo tale da avere un perfetto caricamento dell' AppleLPC.kext

Anche se il tuo chipset fosse diverso da un ICH10, ad esempio un ICH9 non cambierebbe nulla, sempre questi id devresti iniettare!

Questa iniezione non serve tanto ad iniettare id mancanti ma a modificare quelli esistenti.

 

ciaooo :P

Link to comment
Share on other sites

ciao buoo,

 

todo bien.tu?

 

Non ho provato il tuo, ma con FileMerge (si trova dentro XCode) ho messo la modifica ultima del device PX40 anche nel DSDT che aveva direttamente lo speedstep nello scope _PR e sto attualmente usando questo.

 

La temperatura a 2GHz, la minima frequenza possibile, è 47/48 gradi, se pompo geekbench iStat Pro mi segnala anche un 85 gradi.

 

Contando che la temperatura massima del mio procio è 100 gradi, direi che in un momento di picco computazionale come può essere l'esecuzione di geekbench 85 gradi ci possono stare.

 

ciao!

Link to comment
Share on other sites

Questa iniezione viene fatta proprio per avere dli ID uguali a questi 0x18, 0x3A, 0x00, 0x00, in modo tale da avere un perfetto caricamento dell' AppleLPC.kext

Anche se il tuo chipset fosse diverso da un ICH10, ad esempio un ICH9 non cambierebbe nulla, sempre questi id devresti iniettare!

Questa iniezione non serve tanto ad iniettare id mancanti ma a modificare quelli esistenti.

 

ciaooo :)

 

 

Buongiorno rieccomi,

Allora fammi capire, sono un pò duro....

Io devo tagliare e incollare pari pari nel mio dsdt il tuo codice in grassettato ?

Chiaramente lo aggiungo prima del Device Seguente al SBRG, come è nel tuo codice.

Tutto qua ?

 

Siccome nel DSDTSE dice di modificare l' ID dentro il Kext AppleLPC.kext anche, li che ci metto allora ?

 

Chiaramente dovrò cancellare il mio PCI8086.... che avevo inserito guardando l' IOREGISTRY....

 

Aspetto notizie :)

 

Ciao ciao.

Link to comment
Share on other sites

buoo,

 

io in realtà mi sono fatto venire lo scrupolo e con lspci ho visto qual'erano i miei id per l'ICH9R, che comunque erano già dentro l'Info.plist di AppleLPC.kext, che dovrebbe quindi caricarsi.

 

ciao!

Link to comment
Share on other sites

hehe ora ho il problema di far caricare AppleSMBusPCI.kext (ogni giorno ne viene fuori una nuova :P) e far andare lo speedstep nativo sul mio atom, ho messo su l'RC5 ma al boot un bel KP per AppleIntelCPUPowerManagement.kext (CPU non riconosciuta).

 

ueff... :)

 

EDIT: per il primo ok :)

Link to comment
Share on other sites

cili, se stai usando un kernel patchato per atom, se patchato bene, non dovresti avere quel panic anche senza disabler. Hai la stessissima configurazione che ho io sull' u100. Io to indico un'altra strada, utilizza come chameleon la versione di azimutz, Chazi. Compilalo, e come moduli usa oltre al necessario symbols.dylib anche il kernelpatcher.dlib con nel com.apple: PatchKernel su Yes. Non avrai piu' la necessita' di patchare il kernel otrovarne uno patchato ogni 10.6.x. In extra/extensions incolla questi 2 kext fondamentali proprio per evitare il panic di cui sopra e lasciare il sistema delle alimentazioni vanilla: CPUIDOverride e CPUIDSymbols.

 

Pro: kernel non patchato (tecnicamente in memoria e' patchato, ma il senso lo hai capito)

sistema delle alimentazioni vanilla, non piu' panic sull'CPUPM

 

Controlla bene che col mio netbook, si riesce ad avere un ss per l'atom, identico a quello che monta il tuo samsung, perfettamente funzionante con le tabelle integrate nel bios. Controlla il tuo dsdt e vedi se con quelle della tua piastra si riesce ad avere lo stesso effetto. Se no, falle generare dal booter, la sostanza non cambiera', sembreranno generate dal bios anch'esse.

Prova anche l'autoresolution, ha un buon effetto sui netbook.

 

Fai queste prove

Kext.zip

Link to comment
Share on other sites

cili, se stai usando un kernel patchato per atom, se patchato bene, non dovresti avere quel panic anche senza disabler. Hai la stessissima configurazione che ho io sull' u100. Io to indico un'altra strada, utilizza come chameleon la versione di azimutz, Chazi. Compilalo, e come moduli usa oltre al necessario symbols.dylib anche il kernelpatcher.dlib con nel com.apple: PatchKernel su Yes. Non avrai piu' la necessita' di patchare il kernel otrovarne uno patchato ogni 10.6.x. In extra/extensions incolla questi 2 kext fondamentali proprio per evitare il panic di cui sopra e lasciare il sistema delle alimentazioni vanilla: CPUIDOverride e CPUIDSymbols.

 

Pro: kernel non patchato (tecnicamente in memoria e' patchato, ma il senso lo hai capito)

sistema delle alimentazioni vanilla, non piu' panic sull'CPUPM

 

Controlla bene che col mio netbook, si riesce ad avere un ss per l'atom, identico a quello che monta il tuo samsung, perfettamente funzionante con le tabelle integrate nel bios. Controlla il tuo dsdt e vedi se con quelle della tua piastra si riesce ad avere lo stesso effetto. Se no, falle generare dal booter, la sostanza non cambiera', sembreranno generate dal bios anch'esse.

Prova anche l'autoresolution, ha un buon effetto sui netbook.

 

Fai queste prove

 

grazie per il prezioso contributio smith, sto facendo checkout dei sorci, non ho mai compilato chameleon vedo che riesco a combinare editando questo post :)

 

grazie e ciao!

 

EDIT5: lo speedstep rimane inchiodato sullo stato più basso (800Mhz, incredibile come il sistema vada comunque :P ), se faccio partire il kernel vanilla si reboota immediatamente.

 

EDIT4: ho usato il boot di autoResolution ed il sistema è ripartito, non ha KP-izzato anche senza NullCPU, ora verifico lo speedstep ed il boot del kernel vanilla.

 

EDIT3: unable to locate bt(0,0)/Extra/modules/Symbols.dylib e poi KP per AppleIntelCPUPM...non so quale partizione intenda con bt(0,0) ma /Extra/modules/Symbols.dylib è lì...è forse una questione di permessi?

 

EDIT2: i moduli vanno in /Extra/modules, ecco spiegato l'arcano. Ora provo a mettere tutto al suo posto e far bootare il kernel vanilla.

 

EDIT1: ok compilato con il classico 'make' (mi aspetto un progetto xcode, ma va bene lo stesso), ora ho tutto compilato in sym/. Oltre che i canonici file boot1h,boot0 e boot ho anche le dylib a cui accennavi. Devo capire ora come far caricare questi moduli, di solito mi limitavo a dd-izzare i boot1h e boot0 e mantenere boot nella root.

Link to comment
Share on other sites

I moduli non te li carica da Extra/modules ? E' strano perche' e' proprio li' che vanno. Una volta che te li carica, e che hai l'opzione PatchKernel piu' quei 2 kext sei a posto. Poi te la puoi giocare come vuoi. I moduli da li' devono essere caricati, non ci sono altre vie.

Link to comment
Share on other sites

allora, i moduli *credo* li carichi, NON posso esserne sicuro, perchè non ho modo di verificarlo, il mach_kernel vanilla non boota però.

 

Come dicevo NON sto usando il file boot del branch di azimutz, ma il file boot del branch autoResolution. Non so se questo carica anch'esso gli /Extra/modules.

 

I due kext invece sono correttamente caricati. Vale la pena riportare com.apple.Boot.plist? però mi sembra giusto :S

 

ciao e grazie!

Link to comment
Share on other sites

 Share

×
×
  • Create New...