Jump to content

[info] DSDT A PEZZI


  • Please log in to reply
158 replies to this topic

#21
Smith@@™

Smith@@™

    InsanelyMac LOL

  • Retired
  • 2,928 posts
  • Gender:Male
  • Location:Somewhere over the rainbow...ITALIA!
  • Interests:Dark matter and dark energy. E basta. HD3000. E basta.
Sporcare il topic di scrax? Ma di che stai parlando? :D

Non ho ben capito, tranne gli ultimi 2 punti, a cosa precisamente ti riferisci nel tuo post? Chi e' che non sostiene scrax?
Tu hai capito di cosa parlavamo negli ultimi 2 post io e lui? Di revolution e non del dsdt in generale o del suo thread... :mellow:

Bho..

#22
ugokind

ugokind

    InsanelyMac Deity

  • Donators
  • 1,710 posts
  • Gender:Male
  • Location:10100
  • Interests:Apicoltura
    Mac
    Linux
    Homebrew
    Australia
    Spremermilcervello
si si. certo
sprecare nel senso che questo topic è iniziato in un modo e me lo immaginavo così.. visto che non esiste nel forum una vera guida sul dsdt.. e molti le cercano e la chiedono. una luce.
sai anche tu che l'hardware passa e va, e se uno oggi chiede o cerca cose legate ad un modello specifico non le trova se non in topic vecchi di un anno. veceversa, avere una guida pulita che non arrivi ad avere 500post con domande e risposte nello specifico di ciascuno, credo (dico credo) sia meglio.
da quant'è che se ne parla?

è solo una idea.. nessuna critica a nessuno . ed ho capito dai

#23
Smith@@™

Smith@@™

    InsanelyMac LOL

  • Retired
  • 2,928 posts
  • Gender:Male
  • Location:Somewhere over the rainbow...ITALIA!
  • Interests:Dark matter and dark energy. E basta. HD3000. E basta.

si si. certo
sprecare nel senso che questo topic è iniziato in un modo e me lo immaginavo così.. visto che non esiste nel forum una vera guida sul dsdt.. e molti le cercano e la chiedono. una luce.
sai anche tu che l'hardware passa e va, e se uno oggi chiede o cerca cose legate ad un modello specifico non le trova se non in topic vecchi di un anno. veceversa, avere una guida pulita che non arrivi ad avere 500post con domande e risposte nello specifico di ciascuno, credo (dico credo) sia meglio.
da quant'è che se ne parla?

è solo una idea.. nessuna critica a nessuno . ed ho capito dai


Ok. Spiegata cosi' e' tutt'altra cosa ;)

Ciao

#24
BarboneNet

BarboneNet

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,414 posts
  • Gender:Male
  • Location:Italy - Parma

Quello che non capisco è se il bios viene moddato e poi quando parte Osx il dsdt inserito non è quello che dovrebbe essere o se invece modificando troppo il dsdt non si riesce più ad integrarlo nel bios per errori nel flasharlo con la .rom modificata


il codice diventa incompatibile e non si riesce ad inserire nel bios. ce la fai....ma doo il flash non parte piu la mobo.

#25
scrax

scrax

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,704 posts
  • Gender:Male

1-a scrax di non "sporcare" il bel lavoro che sta facendo (e che io davvero considero inumano per la voglia e la fatica necessarie :) ) con risposte o domande più legate al troubleshooting, magari (vedi 2)
2-ad un adm: di mettere questa cosa in uno stickye, e lasciarlo così intonso come una guida, e sotto invece permettere a tutti di chiedere ed ottenere una soluzione

Secondo me non hai tutti i torti però al tempo stesso questo post è ancora molto abbozzato e come guida è troppo sintetica a mio parere. Quindi per ora proverei a sfruttare questo topic come raccoglitore di idee e suggerimenti e contributi per realizzare la guida finale che intendi tu.

Per esempio il top che potremmo avere è un dsdt tutto commentato riga per riga dove si spiega a cosa serve quel pezzo di codice. Son d'accordo che la cosa è molto ardua ma il mio modo di pensare è "un Top2Bottom sul palazzo delle nazioni unite" (leggi puntare al massimo per avere almeno un minimo).

Quindi in sintesi vi chiedo, se volete, di aiutarmi nella stesura della guida. Postando parti e spiegazioni che secondo voi servono, come in un wiki anche se qui sarò io per cause tecniche a dover tanere il primo topic aggiornato con le vostre aggiunte e renderlo più completo. Una volta che il tutto inizia a prendere una forma meno sintetica si può pensare di spostarlo o anche aggiungerlo a quello di Giorgio su Kernel, Darwin, Efi ecc, o no?

Tipo se qualcuno vuole scrivere la prima parte su come estrarre il dsdt con un metodo, poi un'altro ci aggiunge un altro metodo ecc. io mi riprometto di mantenere tutto insieme e di dare credito a chiunque contribuisca (come già faccio con il topic su Chameleon ad es.)

Piccolo esempio di aggiornamento al primo topic:

Nota: aggiungere spiegazione base sulla struttura del DSDT (parentesi, commenti singola linea, commenti a blocchi, struttura base di un blocco di codice ecc.)
Modificato:
Scope (_PR) {	 // qui verranno definiti i parametri dei core (comuni per tutti)
// Modificare in base ai propri p-state (0x03 è il numero in esadecimale dei p-state impostati ad es. con 11 p-state ci vuole 0x0B)
		Name (PSS, Package (0x03){	
			Package (0x06){Zero,Zero,0x0A,0x0A,0x082A,Zero},	 // p-state 0 (max freq)
			Package (0x06){Zero,Zero,0x0A,0x0A,0x0724,One},	  // p-state 1 (unico valore da modificare è 0724)
			Package (0x06){Zero,Zero,0x0A,0x0A,0x061D,0x02}	 // p-state 2 (061D sono i valori di Fid e Vid per questo p-state)
		})
		//Name (PSD, Package (0x05){0x05,Zero,Zero,0xFC,0x04})	 //rimosso per snellire il codice in quanto sembra sene occupi AppleLPC.kext di questo
		Name (CST, Package (0x04){0x03, 
			Package (0x04){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x0000000000000000,,)},One,One,0x03E8}, 
			Package (0x04){ResourceTemplate (){Register (SystemIO,0x08,0x00,0x0000000000000814,,)},0x02,One,0x01F4}, 
			Package (0x04){ResourceTemplate (){Register (SystemIO,0x08,0x00,0x0000000000000815,,)},0x03,0x55,0xFA}
		})
		Processor (CPU1, 0x01, 0x00000810, 0x06){
			Alias (PSS, _PSS)	   // alias per non riscrivere i valori dei p-state per il secondo core
			//Alias (PSD, _PSD)	//rimosso l'alias che riprendeva i valori di _PSD
			Alias (CST, _CST)
		}
		Processor (CPU2, 0x02, 0x00000810, 0x06){
			Alias (PSS, _PSS)	   // alias per non riscrivere i valori dei p-state per il terzo core
			//Alias (PSD, _PSD)	//rimosso l'alias che riprendeva i valori di _PSD
			Alias (CST, _CST)
		}
/* Parte necessaria solo per i quadcore (cancellare questa linea per decommentare la parte)
		Processor (CPU3, 0x03, 0x00000810, 0x06){
			Alias (PSS, _PSS)	   // alias per non riscrivere i valori dei p-state per il terzo core
			//Alias (PSD, _PSD)	//rimosso l'alias che riprendeva i valori di _PSD
			Alias (CST, _CST)
		}
		Processor (CPU4, 0x04, 0x00000810, 0x06){
			Alias (PSS, _PSS)	   // alias per non riscrivere i valori dei p-state per il quarto core
			//Alias (PSD, _PSD)	//rimosso l'alias che riprendeva i valori di _PSD
			Alias (CST, _CST)
		}
*/ linea da cancellare se si ha un quad core
	}


ORIGINALE:
Scope (_PR) {
		Name (PSS, Package (0x03){	// Modificare in base ai propri p-state
			Package (0x06){Zero,Zero,0x0A,0x0A,0x082A,Zero},
			Package (0x06){Zero,Zero,0x0A,0x0A,0x0724,One},
			Package (0x06){Zero,Zero,0x0A,0x0A,0x061D,0x02}
		})
		//Name (PSD, Package (0x05){0x05,Zero,Zero,0xFC,0x04})
		Name (CST, Package (0x04){0x03, 
			Package (0x04){ResourceTemplate (){Register (FFixedHW,0x01,0x02,0x0000000000000000,,)},One,One,0x03E8}, 
			Package (0x04){ResourceTemplate (){Register (SystemIO,0x08,0x00,0x0000000000000814,,)},0x02,One,0x01F4}, 
			Package (0x04){ResourceTemplate (){Register (SystemIO,0x08,0x00,0x0000000000000815,,)},0x03,0x55,0xFA}
		})
		Processor (CPU1, 0x01, 0x00000810, 0x06){
			Alias (PSS, _PSS)
			//Alias (PSD, _PSD)
			Alias (CST, _CST)
		}
		Processor (CPU2, 0x02, 0x00000810, 0x06){
			Alias (PSS, _PSS)
			//Alias (PSD, _PSD)
			Alias (CST, _CST)
		}
		Processor (CPU3, 0x03, 0x00000810, 0x06){
			Alias (PSS, _PSS)
			//Alias (PSD, _PSD)
			Alias (CST, _CST)
		}
		Processor (CPU4, 0x04, 0x00000810, 0x06){
			Alias (PSS, _PSS)
			//Alias (PSD, _PSD)
			Alias (CST, _CST)
		}
	}


#26
ugokind

ugokind

    InsanelyMac Deity

  • Donators
  • 1,710 posts
  • Gender:Male
  • Location:10100
  • Interests:Apicoltura
    Mac
    Linux
    Homebrew
    Australia
    Spremermilcervello
ci sto.. più che altro visto è considerato che non si può fare un sistema di topic articolato, lascerei a te la creazione del nuovo topic in modo tale da avere dei link che terrai aggiornato (finchè vorrai/potrai) e così nel topic stesso avere man mano post univoci che sono uno per uno le cose da sapere. sul primo post appunto un indice che punta ei post del tuo stesso topic. una specie di topic ricorsivo su se stesso. così anzichè dover leggere tutte le n pagine, si legge sempre e solo la prima e poi si linka sulla bisogna.

con una sezione non sui contenuti ma come dici te sul modo di operare (comandi, sintassi etc..)



ah .. visto e considerato che non è possibile e non ha senso iniziare a lavorare singolarmente su singole motherboard (anche perchè c'è già un sito che lo fa) forse ha più senso lavorare come dice smith su questo per il lungo dibattere e rimpinguare invece di informazioni l'altro!

però occorre che qualcuno, da fuori, ci aiuti a capire l'annoso dilemma. snow cosa fa col dsdt?

#27
BarboneNet

BarboneNet

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,414 posts
  • Gender:Male
  • Location:Italy - Parma
la parte dell'estrazione da un dato bios tela faccio io......e magari anche come patchare i bios!
dammi il tempo di fare altr prove...tanto voi ne avete da fare eheheh;)

#28
ErmaC

ErmaC

    127.0.0.1

  • Supervisors
  • 4,530 posts
  • Gender:Male
  • Location:Canary Islands
Ciao a tutti.
Sono alle prese con la sintetizzazone del mio DSDT (stripping)

e per la precisione nella parte del _CST
Alcune info
/*
* C0 is the active state in which everything is running at full capacity.
* C1 has the core clock turned off, as well as a slightly reduced core voltage.
* However the motherboard power lines are kept alive and the data cache is kept intact.
* This means that the performance isn't compromised and the wake-up time is extremely fast
* - the C1E state is what currently features on all Core 2 CPUs.
* C3 has the same core voltage drop as the C1 state,
* but now turns off the PLLs and flushes the L1 and L2 cache, switching it off and losing the data.
* The consequence of turning more off is a longer wake-up time,
* but Intel's chart shows not a huge drop in idle power, unlike C0 to C1.
* C6 the final power down state, is an almost complete shutdown of the CPU.
* There is a significant drop in core voltage and everything is now switched off except the L3 cache.
* The obvious downside to this state is that the resume time will be greater,
* but the power saving is huge.
*/
Gli i7 hanno 4 C-State C0, C1, C3 e C6
alcuni "richiami"
Name (CFGD, 0x00200472)
		  Name (NCPU, 0x08)
		  Name (NPCP, One)
		  Name (PDC0, 0x80000000)
		  Name (TBL0, Zero)
		  Name (CTB0, Zero)
		  Name (TTB0, Zero)
		  Name (PSTE, Zero)
		  Name (TSTE, Zero)

E qui sotto il codice che vorrei sintetizzare:
[size=1]            Method (_CST, 0, NotSerialized)            {                If (LAnd (LGreater (NCPU, One), LNot (And (PDC0, 0x10))))                {                    Return (Package (0x02)                    {                        One,                         Package (0x04)                        {                            ResourceTemplate ()                            {                                Register (FFixedHW,                                     0x00,               // Bit Width                                    0x00,               // Bit Offset                                    0x0000000000000000, // Address                                    ,)                            },                             One,                             0x9D,                             0x03E8                        }                    })                }                If (LAnd (And (CFGD, 0x00200000), And (PDC0, 0x0200)))                {                    If (And (CFGD, 0x80))                    {                        Return (Package (0x05)                        {                            0x04,                             Package (0x04)                            {                                ResourceTemplate ()                                {                                    Register (FFixedHW,                                         0x01,               // Bit Width                                        0x02,               // Bit Offset                                        0x0000000000000000, // Address                                        0x01,               // Access Size                                        )                                },                                 One,                                 One,                                 0x03E8                            },                             Package (0x04)                            {                                ResourceTemplate ()                                {                                    Register (FFixedHW,                                         0x01,               // Bit Width                                        0x02,               // Bit Offset                                        0x0000000000000010, // Address                                        0x01,               // Access Size                                        )                                },                                 0x02,                                 0x11,                                 0x01F4                            },                             Package (0x04)                            {                                ResourceTemplate ()                                {                                    Register (FFixedHW,                                         0x01,               // Bit Width                                        0x02,               // Bit Offset                                        0x0000000000000020, // Address                                        0x01,               // Access Size                                        )                                },                                 0x03,                                 0x11,                                 0x015E                            },                             Package (0x04)                            {                                ResourceTemplate ()                                {                                    Register (FFixedHW,                                         0x01,               // Bit Width                                        0x02,               // Bit Offset                                        0x0000000000000030, // Address                                        0x01,               // Access Size                                        )                                },                                 0x03,                                 0x11,                                 0xC8                            }                        })                    }                    If (LAnd (LNot (And (CFGD, 0x80)), And (CFGD, 0x40                        )))                    {                        Return (Package (0x04)                        {                            0x03,                             Package (0x04)                            {                                ResourceTemplate ()                                {                                    Register (FFixedHW,                                         0x01,               // Bit Width                                        0x02,               // Bit Offset                                        0x0000000000000000, // Address                                        0x01,               // Access Size                                        )                                },                                 One,                                 One,                                 0x03E8                            },                             Package (0x04)                            {                                ResourceTemplate ()                                {                                    Register (FFixedHW,                                         0x01,               // Bit Width                                        0x02,               // Bit Offset                                        0x0000000000000010, // Address                                        0x01,               // Access Size                                        )                                },                                 0x02,                                 0x11,                                 0x01F4                            },                             Package (0x04)                            {                                ResourceTemplate ()                                {                                    Register (FFixedHW,                                         0x01,               // Bit Width                                        0x02,               // Bit Offset                                        0x0000000000000020, // Address                                        0x01,               // Access Size                                        )                                },                                 0x03,                                 0x11,                                 0x015E                            }                        })                    }                    If (And (CFGD, 0x20))                    {                        Return (Package (0x03)                        {                            0x02,                             Package (0x04)                            {                                ResourceTemplate ()                                {                                    Register (FFixedHW,                                         0x01,               // Bit Width                                        0x02,               // Bit Offset                                        0x0000000000000000, // Address                                        0x01,               // Access Size                                        )                                },                                 One,                                 One,                                 0x03E8                            },                             Package (0x04)                            {                                ResourceTemplate ()                                {                                    Register (FFixedHW,                                         0x01,               // Bit Width                                        0x02,               // Bit Offset                                        0x0000000000000010, // Address                                        0x01,               // Access Size                                        )                                },                                 0x02,                                 0x11,                                 0x01F4                            }                        })                    }                    Return (Package (0x02)                    {                        One,                         Package (0x04)                        {                            ResourceTemplate ()                            {                                Register (FFixedHW,                                     0x01,               // Bit Width                                    0x02,               // Bit Offset                                    0x0000000000000000, // Address                                    0x01,               // Access Size                                    )                            },                             One,                             One,                             0x03E8                        }                    })                }                If (And (CFGD, 0x00200000))                {                    If (And (CFGD, 0x80))                    {                        Return (Package (0x05)                        {                            0x04,                             Package (0x04)                            {                                ResourceTemplate ()                                {                                    Register (FFixedHW,                                         0x00,               // Bit Width                                        0x00,               // Bit Offset                                        0x0000000000000000, // Address                                        ,)                                },                                 One,                                 0x20,                                 0x03E8                            },                             Package (0x04)                            {                                ResourceTemplate ()                                {                                    Register (SystemIO,                                         0x08,               // Bit Width                                        0x00,               // Bit Offset                                        0x0000000000000814, // Address                                        ,)                                },                                 0x02,                                 0x60,                                 0x01F4                            },                             Package (0x04)                            {                                ResourceTemplate ()                                {                                    Register (SystemIO,                                         0x08,               // Bit Width                                        0x00,               // Bit Offset                                        0x0000000000000815, // Address                                        ,)                                },                                 0x03,                                 0x80,                                 0x015E                            },                             Package (0x04)                            {                                ResourceTemplate ()                                {                                    Register (SystemIO,                                         0x08,               // Bit Width                                        0x00,               // Bit Offset                                        0x0000000000000816, // Address                                        ,)                                },                                 0x03,                                 0xA0,                                 0xC8                            }                        })                    }                    If (LAnd (LNot (And (CFGD, 0x80)), And (CFGD, 0x40                        )))                    {                        Return (Package (0x04)                        {                            0x03,                             Package (0x04)                            {                                ResourceTemplate ()                                {                                    Register (FFixedHW,                                         0x00,               // Bit Width                                        0x00,               // Bit Offset                                        0x0000000000000000, // Address                                        ,)                                },                                 One,                                 0x20,                                 0x03E8                            },                             Package (0x04)                            {                                ResourceTemplate ()                                {                                    Register (SystemIO,                                         0x08,               // Bit Width                                        0x00,               // Bit Offset                                        0x0000000000000814, // Address                                        ,)                                },                                 0x02,                                 0x60,                                 0x01F4                            },                             Package (0x04)                            {                                ResourceTemplate ()                                {                                    Register (SystemIO,                                         0x08,               // Bit Width                                        0x00,               // Bit Offset                                        0x0000000000000815, // Address                                        ,)                                },                                 0x03,                                 0x80,                                 0x015E                            }                        })                    }                    If (And (CFGD, 0x20))                    {                        Return (Package (0x03)                        {                            0x02,                             Package (0x04)                            {                                ResourceTemplate ()                                {                                    Register (FFixedHW,                                         0x00,               // Bit Width                                        0x00,               // Bit Offset                                        0x0000000000000000, // Address                                        ,)                                },                                 One,                                 0x20,                                 0x03E8                            },                             Package (0x04)                            {                                ResourceTemplate ()                                {                                    Register (SystemIO,                                         0x08,               // Bit Width                                        0x00,               // Bit Offset                                        0x0000000000000814, // Address                                        ,)                                },                                 0x02,                                 0x60,                                 0x01F4                            }                        })                    }                    Return (Package (0x02)                    {                        One,                         Package (0x04)                        {                            ResourceTemplate ()                            {                                Register (FFixedHW,                                     0x00,               // Bit Width                                    0x00,               // Bit Offset                                    0x0000000000000000, // Address                                    ,)                            },                             One,                             One,                             0x03E8                        }                    })                }                Return (Package (0x02)                {                    One,                     Package (0x04)                    {                        ResourceTemplate ()                        {                            Register (FFixedHW,                                 0x00,               // Bit Width                                0x00,               // Bit Offset                                0x0000000000000000, // Address                                ,)                        },                         One,                         One,                         0x03E8                    }                })            }[/size]

C'e' da diventare matti a sintetizzare anche solo questa parte... ovvero trasformarla in Name (CST, Package...
sono arrivato fino a qui. (ovvero poco e nulla)...
Name (CST, Package (0x04)
		  {
			  0x04,  // Number of C-State packages: 4 (C0, C1, C3 and C6).
			  Package (0x04)

Allego l'attuale DSDT che uso per il mio i7-940 c'e' molto che proviene dalle ricerche fatte da MC.
Ancora non ho implementato il Device EC e non ho ancora implementato la mod per lo stop


Guardando su questo trend ho notato che sulle Gigabyte usano 6 C-State???
In teoria non dovrebbero esserci differenze nella architettura... :)
Processor (\_PR.CPU0, 0x00, 0x00000410, 0x06)
 {
 Name (_CST, Package (0x07)
 {
 0x06,
 Package (0x04)
 {
 ResourceTemplate ()
Fabio

#29
scrax

scrax

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,704 posts
  • Gender:Male
A vedere dal dsdt che stai usando e confrontando con quelli di MC secondo me ti basta uno di questi due, ti allego la parte dello scope ridotta (solo nel # linee non nel codice)

1
Name (CST, Package (0x04){0x03,                 Package (0x04){ResourceTemplate (){Register (FFixedHW,0x00,0x00,0x0000000000000000,,)}, One,0x20,0x03E8},         	Package (0x04){ResourceTemplate (){Register (SystemIO,0x08,0x00,0x0000000000000814,,)},0x02,0x60,0x01F4},         	Package (0x04){ResourceTemplate (){Register (SystemIO,0x08,0x00,0x0000000000000815,,)},0x03,0x80,0x015E}        })
2
Name (CST, Package (0x04){0x03,             Package (0x04){ResourceTemplate (){Register (FFixedHW,0x00,0x00,0x0000000000000000,,)}, One,0x20,0x03E8},            Package (0x04){ResourceTemplate (){Register (SystemIO,0x08,0x00,0x0000000000000814,,)},0x02,0x60,0x01F4},            Package (0x04){ResourceTemplate (){Register (SystemIO,0x08,0x00,0x0000000000000815,,)},0x03,0x80,0x015E},            Package (0x04){ResourceTemplate (){Register (SystemIO,0x08,0x00,0x0000000000000816,,)},0x03,0xA0,0xC8}      })


Attached File  _CST_ridotto.zip   1.03KB   5 downloads

#30
jfk11

jfk11

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 199 posts

Secondo me non hai tutti i torti però al tempo stesso questo post è ancora molto abbozzato e come guida è troppo sintetica a mio parere. Quindi per ora proverei a sfruttare questo topic come raccoglitore di idee e suggerimenti e contributi per realizzare la guida finale che intendi tu.

Per esempio il top che potremmo avere è un dsdt tutto commentato riga per riga dove si spiega a cosa serve quel pezzo di codice. Son d'accordo che la cosa è molto ardua ma il mio modo di pensare è "un Top2Bottom sul palazzo delle nazioni unite" (leggi puntare al massimo per avere almeno un minimo).


Bella storia...quoto al 100%!! ;)

Raga...mi accettate se faccio la parte di me stesso...cioè il Niubbo di buona volontà che cerca di dare delle indicazioni su cose che magari voi ritenete (giustamente) scontate?

Comincio subito: a mio parere si potrebbe partire con un pò di vocabolario seguito da un minimo di sintassi... attenzione però, NON intendo cose analitiche,ma solo di offrire gli strumenti che permettano agli interessati di cercare,approfondire e capire ciò che vogliono rivolgendosi direttamente alla Rete.

Grazie e scusate l'intromissione... ;)

#31
BarboneNet

BarboneNet

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,414 posts
  • Gender:Male
  • Location:Italy - Parma
Giorgione...ho capito perche non tisi spegne la p5kpl-vm con il dsdt patchato!
va in conflitto con l'ottimizzazione HPET e RTC!

Se estrai il tuo e rimuovi solo i warnings, lo accetta e si spegne.......tanto per saperlo...senno tieni pure i warnings, tanto credo sia uguale, se tutto funziona bene;)

A me ho ha fatto da quando ho messo su un dualcore...col quad andava bene, con l'hpet e rtc patchati.

(se le mobo bootano senza bios moddati o necessita di dsdt.aml....è gia sintomo secondo me, che la tabella è piuttosto compatibile con OSX)

EDIT: confermo...senza le ottimizazioni per HPET e RTC funziona bene.....dopo metto il dsdt patchato sul mio Thread;)

#32
buglis

buglis

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 324 posts
  • Gender:Male
Quindi per partire con un dsdt modificato dovrei estrarre quello dal bios della mobo?

#33
BarboneNet

BarboneNet

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,414 posts
  • Gender:Male
  • Location:Italy - Parma

Quindi per partire con un dsdt modificato dovrei estrarre quello dal bios della mobo?


se tu estrai quello che hai nel tuo bios moddato per macosx, e lo metti nella cartella extra....puoi rimettere tranquillamente un bios scaricato dal sito asus;)

#34
scrax

scrax

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,704 posts
  • Gender:Male
Aggiunta al primo topic qualche informazione in più sul DSDT presa da debianizzati.org
Aggiungo anche questa parte interessante come esempio tenete conto che le modifiche fatte sono per Linux ma la maniera di affrontare i problemi è la stessa per ogni sistema operativo:

==Un esempio: la mia DSDT
Nel mio sistema (PC desktop, scheda madre Chaintech) ho da qualche tempo un problema con l'inizializzazione delle porte USB, tale che circa nel 40% dei casi (ma mai due volte di seguito) il PC si blocca durante il boot, e devo riavviare forzatamente.
Per cercare di risolvere la cosa ho analizzato la mia tabella DSDT. L'ho estratta, e quando ho provato a ricompilarla ho avuto il seguente output:
$ iasl -tc dsdt.dsl

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20060113 [Jan 22 2006]
Copyright (C) 2000 - 2006 Intel Corporation
Supports ACPI Specification Revision 3.0a

dsdt.dsl   290:	 Method (\_WAK, 1, NotSerialized)
Warning  2078 -				 ^ Reserved method must return a value (_WAK)

dsdt.dsl   318:			 Store (Local0, Local0)
Error	1048 -						 ^ Method local variable is not initialized (Local0)

dsdt.dsl   323:			 Store (Local0, Local0)
Error	1048 -						 ^ Method local variable is not initialized (Local0)

dsdt.dsl  2368:			 Store (Local0, Local0)
Error	1048 -						 ^ Method local variable is not initialized (Local0)

ASL Input:  dsdt.dsl - 4804 lines, 160190 bytes, 1781 keywords
Compilation complete. 3 Errors, 1 Warnings, 0 Remarks, 465 Optimizations
in sostanza, c'è un errore ripetuto identico tre volte (Error 1048), oltre ad un warning. Andiamo a vedere le sezioni incriminate. La prima è:
Scope (\_SI)
{
	Method (_MSG, 1, NotSerialized)
	{
		Store (Local0, Local0)
	}
	Method (_SST, 1, NotSerialized)
	{
		Store (Local0, Local0)
	}
}
Come si vede viene utilizzata due volte la variabile Local0, ma non viene mai dichiarata.
Vediamo di capire almeno un minimo il significato di questo pezzo di codice. La funzione Store è una funzione di assegnazione verso destra: alla variabile a destra viene assegnato il valore (o il valore della variabile) che si trova a sinistra.
In questo caso, però, è evidente che questa assegnazione è del tutto inutile, perché viene assegnato alla variabile Local0 il valore che ha già, quindi per correggere l'errore non faccio altro che cancellare l'istruzione commentandola:
Scope (\_SI)
{
	Method (_MSG, 1, NotSerialized)
	{
//		Store (Local0, Local0)
	}
	Method (_SST, 1, NotSerialized)
	{
//		Store (Local0, Local0)
	}
}
Come si vede i commenti sono marcati come in C.
Facendo questa correzione anche nelle altre posizioni segnalate vengono eliminati tutti gli errori, quindi passiamo al warning. Il codice è questo:
Method (\_WAK, 1, NotSerialized)
{
	Store (0xFF, DBG1)
	SALD (0x00)
	SFAN (0xFF)
	Notify (\_SB.PCI0.PX40.UAR1, 0x00)
	If (OSFL)
	{
		Notify (\_SB.PWRB, 0x02)
	}
	Else
	{
		If (LEqual (RTCW, 0x00))
		{
			Notify (\_SB.PWRB, 0x02)
		}
	}
	Notify (\_SB.PCI0.USB0, 0x00)
	Notify (\_SB.PCI0.USB1, 0x00)
	Notify (\_SB.PCI0.USB2, 0x00)
	Notify (\_SB.PCI0.USB3, 0x00)
}
Le ultime righe mi danno la prova che l'errore ha a che fare con le porte USB, come avevo già notato.
Cercando in rete scopro che il metodo \_WAK, che è una funzione utilizzata al risveglio da uno stato di risparmio energetico (o di spegnimento), deve restituire un valore, che indichi se l'operazione di risveglio è riuscita o meno.
Una possibile diagnosi del mio problema, a questo punto, è che in certi casi durante il boot viene richiamato questo metodo, e il sistema si blocca in attesa di un risultato, che però non viene mai restituito. (N.d.A.: la diagnosi è evidentemente sbagliata, perché il problema persiste ;))
Io non ho idea di come reperire, nel codice, l'informazione sull'esito dell'inizializzazione delle porte USB, quindi non mi è possibile correggere il codice in modo che assolva alla funzione per cui è stato scritto, ma posso usare un workaround, e fare in modo che restituisca comunque un esito positivo.
Per fare questo si trova (in rete), senza entrare nei dettagli, che è sufficiente aggiungere alla fine del metodo, subito prima dell'ultima parentesi graffa, la riga
Return(Package(0x02){0x00, 0x00})
Dopo le correzioni il codice viene ricompilato senza errori né warning ^_^
Ora però mi viene una curiosità, e mi metto a cercare nel codice la scritta "Microsoft". Questo è quello che ne viene fuori:
Method (\_SB.PCI0._INI, 0, NotSerialized)
{
	If (STRC (\_OS, "Microsoft Windows"))
	{
		Store (0x56, SMIP)
	}
	Else
	{
		If (STRC (\_OS, "Microsoft Windows NT"))
	{
		Store (0x58, SMIP)
		Store (0x00, OSFX)
		Store (0x00, OSFL)
	}
	Else
	{
	Store (0x57, SMIP)
	Store (0x02, OSFX)
	Store (0x02, OSFL)
	}
}
Anche senza conoscere il linguaggio, il codice è facilmente interpretabile: "se il Sistema Operativo si chiama 'Microsoft Windows' assegna il valore (esadecimale) 0x56 alla variabile SMIP, se invece si chiama 'Microsoft Windows NT' assegna 0x58 alla variabile SMIP e zero alle variabili OSFX e OSFL; se il S.O. è diverso da quelli elencati assegna alle tre variabili, rispettivamente, 0x57, 0x02 e 0x02".
Per qualche motivo a me ignoto chi ha impostato questa DSDT ha fatto in modo di cambiare le funzionalità del sottosistema ACPI a seconda del S.O. che si usa. Poiché questo non mi rende particolarmente felice, ho modificato il codice in questo modo, eliminando di fatto il controllo:
Method (\_SB.PCI0._INI, 0, NotSerialized)
{
//	If (STRC (\_OS, "Microsoft Windows"))
//	{
//		Store (0x56, SMIP)
//	}
//	Else
//	{
//		If (STRC (\_OS, "Microsoft Windows NT"))
//	{
		Store (0x58, SMIP)
		Store (0x00, OSFX)
		Store (0x00, OSFL)
//	}
//	Else
//	{
//	Store (0x57, SMIP)
//	Store (0x02, OSFX)
//	Store (0x02, OSFL)
//	}
}
Ora il mio sistema funziona un pochino meglio :-)
Aggiornamento: ricontrollando il codice ho notato che le tre variabili SMIP, OSFX e OSFL vengono inizializzate altrove, e quindi, in sostanza, il presente codice è inutile (se non dannoso ;-)), quindi l'ho semplicemente eliminato.

Vorrei far notare che le correzioni che sono state fatte non sono delle vere correzioni, ma dei workaround: non ci si assicura che il codice faccia quel che deve fare, ma solo che non ci siano errori formali.
Purtroppo la correzione vera di questi errori è al di là delle nostre possibilità, perché richiede, oltre alla conoscenza del linguaggio di programmazione, una conoscenza approfondita di come si comporta il nostro hardware, e nella grande maggioranza dei casi queste informazioni sono tenute segrete.

#35
jfk11

jfk11

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 199 posts

Purtroppo la correzione vera di questi errori è al di là delle nostre possibilità, perché richiede, oltre alla conoscenza del linguaggio di programmazione, una conoscenza approfondita di come si comporta il nostro hardware, e nella grande maggioranza dei casi queste informazioni sono tenute segrete.


Grazie Scrax,è sempre interessante leggerti.

Non mi è chiara questa conclusione...correggendo gli errori formali (quelli segnalati da IASL) qualcosa facciamo,oppure è una goccia in un mare di problematiche?

A questo proposito colgo l'occasione per chiederti se mi puoi dare un'occhiata qui Mio dsdt (l'ho rimesso zippato) per dirmi qual'è la sezione relativa alla RTL on Board, e se si può fare qualcosa per metterla farla funzionare sotto iDeneb 1.6.
Inoltre non ho trovato riscontri per gli errori 2047 e 2048.

Grazie ancora. :rolleyes:

Fabio

#36
scrax

scrax

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,704 posts
  • Gender:Male

Grazie Scrax,è sempre interessante leggerti.

Non mi è chiara questa conclusione...correggendo gli errori formali (quelli segnalati da IASL) qualcosa facciamo,oppure è una goccia in un mare di problematiche?

Fabio

Gi errori vanno risolti altrimenti non si può compilare, ma i warnings, i remarks e le ottimizzazioni sono trascurabili. Ora gli do un'occhio ma bisogna vedere con lscpi dov'è connessa. Puoi usare EvOsxTools per vedere i risultati di lspci.

Ad una prima occhiata non ti capita che ti resetta il bios ad ogni riavvio con quel dsdt?

#37
jfk11

jfk11

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 199 posts

Ad una prima occhiata non ti capita che ti resetta il bios ad ogni riavvio con quel dsdt?


Grazie intanto. No il bios non mi si resetta,l'unica anomalia,ma non so se dipenda dall'orario del Bios,è che quando utilizzo iDeneb,al ritorno su XP (ho dual boot) l'ora lì è sbagliata cioè mi dà GMT.

Attualmente ho solo questi errori tramite IASL da Win
C:\IASL>iasl -tc dsdt2.dsl
 
	
 
   Intel ACPI Component Architecture
 
   ASL Optimizing Compiler version 20090422 [Apr 22 2009]
 
   Copyright (C) 2000 - 2009 Intel Corporation
 
   Supports ACPI Specification Revision 3.0a
 
	
 
   dsdt2.dsl  2001:						 Method (_GTM, 0, NotSerialized)
 
   Warning  1080 - Reserved method must return a value ^  (_GTM)
 
	
 
   dsdt2.dsl  2045:						 Method (_GTM, 0, NotSerialized)
 
   Warning  1080 - Reserved method must return a value ^  (_GTM)
 
	
 
   dsdt2.dsl  2544:				 Method (STM, 0, Serialized)
 
   Warning  1087 -							^ Not all control paths return a valu
 
   e (STM_)
 
	
 
   dsdt2.dsl  4590:				 Field (DFSR, DWordAcc, NoLock, Preserve)
 
   Error	4027 -							^ Access width is greater than region
 
	size
 
	
 
   dsdt2.dsl  4592:					DFSN,   8
 
   Error	4028 -						^ Access width of Field Unit extends beyo
 
   nd region limit
 
	
 
   dsdt2.dsl  4863:				 Method (RVLT, 1, NotSerialized)
 
   Warning  1087 -							 ^ Not all control paths return a val
 
   ue (RVLT)
 
	
 
   dsdt2.dsl  4987:				 Method (RTMP, 1, NotSerialized)
 
   Warning  1087 -							 ^ Not all control paths return a val
 
   ue (RTMP)
 
	
 
   dsdt2.dsl  5154:				 Method (OCOP, 1, NotSerialized)
 
   Warning  1087 -							 ^ Not all control paths return a val
 
   ue (OCOP)
 
	
 
   ASL Input:  dsdt2.dsl - 8566 lines, 264512 bytes, 3232 keywords
 
   Compilation complete. 2 Errors, 6 Warnings, 0 Remarks, 1262 Optimizations




Grazie ancora.




Fabio

#38
scrax

scrax

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,704 posts
  • Gender:Male

Grazie intanto. No il bios non mi si resetta,l'unica anomalia,ma non so se dipenda dall'orario del Bios,è che quando utilizzo iDeneb,al ritorno su XP (ho dual boot) l'ora lì è sbagliata cioè mi dà GMT.


E' una differente maniera di leggere l'orario dal bios tra win e unix che ti da quel problema, capita anche in windows, devi usare un'altra località per l'orario in modo da compensare la differenza tra un os e l'altro sfruttando il fuso differente.

Per compilarlo devi modificare questa parte:
OperationRegion (DFSR, SystemMemory, 0x000F7A22, 0x01)
Field (DFSR, DWordAcc, NoLock, Preserve)
{
DFSN, 8
}
Method (_PRT, 0, NotSerialized)
{
Store (DFSN, Local1)
If (LNotEqual (Local1, 0xFF))
{
Store (Zero, Local0)
Store (One, Local4)
While (Local4)
{[/size]
_linenums:0'>[size=1] OperationRegion (DFSR, SystemMemory, 0x000F7A22, 0x01) Field (DFSR, DWordAcc, NoLock, Preserve) { DFSN, 8 } Method (_PRT, 0, NotSerialized) { Store (DFSN, Local1) If (LNotEqual (Local1, 0xFF)) { Store (Zero, Local0) Store (One, Local4) While (Local4) {[/size]
così, poi vedi se ti da problemi:
/*OperationRegion (DFSR, SystemMemory, 0x000F7A22, 0x01)
Field (DFSR, DWordAcc, NoLock, Preserve)
{
DFSN, 8
}*/
Method (_PRT, 0, NotSerialized)
{
Store (8, Local1)
If (LNotEqual (Local1, 0xFF))
{
[/size] _linenums:0'>[size=1] /*OperationRegion (DFSR, SystemMemory, 0x000F7A22, 0x01) Field (DFSR, DWordAcc, NoLock, Preserve) { DFSN, 8 }*/ Method (_PRT, 0, NotSerialized) { Store (8, Local1) If (LNotEqual (Local1, 0xFF)) { [/size]
Parti in rosso son state tolte commentandole ( /* comento */ ) quelle in blu solo sostituite col valore che abbiam tolto prima.

#39
jfk11

jfk11

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 199 posts

Parti in rosso son state tolte commentandole ( /* comento */ ) quelle in blu solo sostituite col valore che abbiam tolto prima.


Grandissimo Scrax!!!! ;)

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20091214 [Dec 16 2009]
Copyright (C) 2000 - 2009 Intel Corporation
Supports ACPI Specification Revision 4.0

ASL Input:  /Users/fabio/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl - 8524 lines, 264646 bytes, 3224 keywords
AML Output: /Users/fabio/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/./dsdt.aml - 27895 bytes, 1117 named objects, 2107 executable opcodes

Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 1260 Optimizations

Domani lo inserisco nella Extra dell'altro Computer!!

Grazie ancora. :P

Fabio

P.S.
Questo non mette a posto la RTL vero?


Posted Image

#40
scrax

scrax

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,704 posts
  • Gender:Male

Questo non mette a posto la RTL vero?

No, serve lspci.txt che puoi ottenere con EvOsxTools





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   Web hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy