Jump to content

[Guida] OS X Lion 10.7 (GM e RTM) su Asus X58 LGA 1366 i7 9xx


1,005 posts in this topic

Recommended Posts

Complimenti per la guida ErmaC.

Ho virtualizzato Lion su windows 7 ultimate, ho seguito la tua procedura su una usb da 16 gb, riavvio e mi si blocca sulla schermata sulla mela. In pratica non parte neanche l'installazione. POtrebbe essere la mia gtx 570 non supportata? Se sì, cosa posso fare e come?

Grazie.

 

Prova a togliere il DSDT.aml dalla cartella Extra della USB che usi per fare il boot.

 

LA 570 dovrebbe essere supporata dal GraphicsEnabler.

 

Fabio

Link to comment
Share on other sites

Prova a togliere il DSDT.aml dalla cartella Extra della USB che usi per fare il boot.

 

LA 570 dovrebbe essere supporata dal GraphicsEnabler.

 

Fabio

 

Ho provato a togliere il DSDT.aml e ho riavviato in modalità verbose (-v, giusto?) Si blocca su Pci configuration begin. Su internet ho letto, non so s eperò è giusto, di inserire il device-id in Infi.plist of NVDAGF100Hal.kext. Dato che credo che questo kext non ci sia nella usb (ho provato a fare una ricerca), dov'è che potrei procurarmelo? E come farei a inserirlo? Se hai un altro metodo ti ascolto molto volentieri.

P.S. Per la gtx 570 l'id è 1081, ma per la asus dcii gtx 570 dovrebbe essere 1086.

Ancora grazie e complimenti per la tua guida.

 

Un'altra piccola cosa, che un po' esula da questo discorso. Quando premo tab al boot, i tasti non alfanumerici (caratteri speciali, puntini, virgole, trattini, e l'uguale) non corrispondono. Sono tutti sballati e l'uguale non c'è proprio. Li ho provati tutti. Ho anche provato tre tastiere diverse, invano. Il bios è l'ultimo, 1108. Sapresti darmi un consiglio?

Grazie.

Link to comment
Share on other sites

Ho provato a togliere il DSDT.aml e ho riavviato in modalità verbose (-v, giusto?) Si blocca su Pci configuration begin. Su internet ho letto, non so s eperò è giusto, di inserire il device-id in Infi.plist of NVDAGF100Hal.kext. Dato che credo che questo kext non ci sia nella usb (ho provato a fare una ricerca), dov'è che potrei procurarmelo? E come farei a inserirlo? Se hai un altro metodo ti ascolto molto volentieri.

P.S. Per la gtx 570 l'id è 1081, ma per la asus dcii gtx 570 dovrebbe essere 1086.

Ancora grazie e complimenti per la tua guida.

 

Un'altra piccola cosa, che un po' esula da questo discorso. Quando premo tab al boot, i tasti non alfanumerici (caratteri speciali, puntini, virgole, trattini, e l'uguale) non corrispondono. Sono tutti sballati e l'uguale non c'è proprio. Li ho provati tutti. Ho anche provato tre tastiere diverse, invano. Il bios è l'ultimo, 1108. Sapresti darmi un consiglio?

Grazie.

 

Come ti dissi poco più sopra...

	// 1080 - 108F
{ 0x10DE1054, "GeForce GT 410M" },
{ 0x10DE1056, "NVS 4200M" },
{ 0x10DE1057, "NVS 4200M" },
{ 0x10DE107F, "NVIDIA GF119-ES" },
{ 0x10DE1080, "GeForce GTX 580" },
[b]{ 0x10DE1081, "GeForce GTX 570" },[/b]
{ 0x10DE1082, "GeForce GTX 560 Ti" },
{ 0x10DE1083, "D13U" },
[b]{ 0x10DE1086, "GeForce GTX 570" },[/b]
{ 0x10DE1088, "GeForce GTX 590" },
// 1090 - 109F	

Il NVDAGF100Hal.kext viene di serie con Lion.

Prova ad aggiungere npci=0x2000 al Kernel Flags del org.chameleon.Boot.plist

 

Per la tastiera...

Credo che usi la formattazione Americana.. (Ipotesi)

 

Fabio

 

EDIT

Piccola rettifica

la { 0x10DE1086, "GeForce GTX 570" }, non è ancora nel chameleon ma nella versione che c'è nel mio pacchetto è presente...

Link to comment
Share on other sites

Come ti dissi poco più sopra...

	// 1080 - 108F
{ 0x10DE1054, "GeForce GT 410M" },
{ 0x10DE1056, "NVS 4200M" },
{ 0x10DE1057, "NVS 4200M" },
{ 0x10DE107F, "NVIDIA GF119-ES" },
{ 0x10DE1080, "GeForce GTX 580" },
[b]{ 0x10DE1081, "GeForce GTX 570" },[/b]
{ 0x10DE1082, "GeForce GTX 560 Ti" },
{ 0x10DE1083, "D13U" },
[b]{ 0x10DE1086, "GeForce GTX 570" },[/b]
{ 0x10DE1088, "GeForce GTX 590" },
// 1090 - 109F	

Il NVDAGF100Hal.kext viene di serie con Lion.

Prova ad aggiungere npci=0x2000 al Kernel Flags del org.chameleon.Boot.plist

 

Per la tastiera...

Credo che usi la formattazione Americana.. (Ipotesi)

 

Fabio

Ok, grazie, provo e poi ti dico.

Comunque avevi ragione, anche sul Lion virtualizzato (file di vmware scaricati da sito inglese) l'uguale non c'era. Ho dovuto copiarlo da windows. Come dicevi, penso proprio che usi la tastiera americana. Non c'è modo di modificarlo?

Link to comment
Share on other sites

Ok, grazie, provo e poi ti dico.

Comunque avevi ragione, anche sul Lion virtualizzato (file di vmware scaricati da sito inglese) l'uguale non c'era. Ho dovuto copiarlo da windows. Come dicevi, penso proprio che usi la tastiera americana. Non c'è modo di modificarlo?

 

da boot no.(credo)

Una volta avviato installato e configurato in OSX gli metti la tastiera che vuoi.

 

Fabio

Link to comment
Share on other sites

Ok, grazie, provo e poi ti dico.

Comunque avevi ragione, anche sul Lion virtualizzato (file di vmware scaricati da sito inglese) l'uguale non c'era. Ho dovuto copiarlo da windows. Come dicevi, penso proprio che usi la tastiera americana. Non c'è modo di modificarlo?

Niente, ho seguito il tuo consiglio ma ancora niente. Ho provato normalmente e si blocca sulla schermata con la mela. Provo in modalità verbose e si blocca ancora su pci configuration begin. Se hai qualche altro consiglio, ti ascolto.

Grazie

Link to comment
Share on other sites

Niente, ho seguito il tuo consiglio ma ancora niente. Ho provato normalmente e si blocca sulla schermata con la mela. Provo in modalità verbose e si blocca ancora su pci configuration begin. Se hai qualche altro consiglio, ti ascolto.

Grazie

 

Curiosità ma il BIOS come lo hai settato...???

 

Usa i parametri della guida per Snow. segui il link che ho in firma.

 

Fabio

Link to comment
Share on other sites

mettere su la Ati (vedo alternativa nella firma)

Sempre se sia la scheda grafica l problema...

 

Snow Leopard ti dava problemi?

 

Fabio

La ati era la mia vecchia scheda.

Con la gtx 570 snow mi dava lo stesso identico problema, con la ati no, però me ne dava un altro. http://www.insanelymac.com/forum/index.php...p;#entry1737945

(Semmai, se si riesce a superare il problema con la ati, posso installare i driver per 570 e usare quella successivamente?)

Comunque, che soluzione mi consigli?

Link to comment
Share on other sites

La ati era la mia vecchia scheda.

Con la gtx 570 snow mi dava lo stesso identico problema, con la ati no, però me ne dava un altro. http://www.insanelymac.com/forum/index.php...p;#entry1737945

(Semmai, se si riesce a superare il problema con la ati, posso installare i driver per 570 e usare quella successivamente?)

Comunque, che soluzione mi consigli?

 

La unica cosa che mi viene in mete al momento è quella di generarti una EFI strings da Snow (per la GTX570)

e inserirla nel org.chameleon.Boot.plist disabilitando il GraphicsEnabler... all'interno della USB (Extra/org.chameleon.Boot.plist)

 

Fabio

Link to comment
Share on other sites

La unica cosa che mi viene in mete al momento è quella di generarti una EFI strings da Snow (per la GTX570)

e inserirla nel org.chameleon.Boot.plist disabilitando il GraphicsEnabler... all'interno della USB (Extra/org.chameleon.Boot.plist)

 

Fabio

 

Ok, ma aavrei due problemi: il primo è che snow non mi si installa per quel problema con la ati, secondo come faccio a generare la efi strings? Posso farlo dal lion virtualizzato? Se si, come?

Grazie.

Link to comment
Share on other sites

Ok, ma aavrei due problemi: il primo è che snow non mi si installa per quel problema con la ati, secondo come faccio a generare la efi strings? Posso farlo dal lion virtualizzato? Se si, come?

Grazie.

 

Purtroppo no. devi farlo da sistema REALE.

 

c'è una opzione in chameleon PrefPanel che genera la EFI per hardware riconosciuto...

 

Fabio

Link to comment
Share on other sites

Purtroppo no. devi farlo da sistema REALE.

 

c'è una opzione in chameleon PrefPanel che genera la EFI per hardware riconosciuto...

 

Fabio

ok, ma se non posso intallare snow.....Come risolvo il problema della ati? Oppure c'è qualche kext per la gtx 570 per snow?

 

Ah, scusa la domanda idiota da neofita ignorante, ma chameleon prefpanel?

Link to comment
Share on other sites

ok, ma se non posso intallare snow.....Come risolvo il problema della ati? Oppure c'è qualche kext per la gtx 570 per snow?

 

Ah, scusa la domanda idiota da neofita ignorante, ma chameleon prefpanel?

Ora, con la 4350, mi scrive, sulla schermata precedente a quella della mela: Unsupported card!, però dopo circa un minuto va avanti, arrivo alla selezione della lingua, vado avanti, formatto un hard disk intero (il wd, windows è sull'altro) come Esteso (Journaled) con disco utility (prima era formattato in ntfs, scelgo questo hard disk e parte l'installazione. Quando mancano 14 minuti al completamento Scrive: Installazione non riuscita

Impossibile installare Mac OS X sul computer

Installer ha incontrato un errore che ha impedito l'installazione.

Contatta il produttore del software per ottenere assistenza. Che faccio?

Grazie

Link to comment
Share on other sites

Sono riuscito ad installare lion, non so come. Ho usato la 4350. Ora però non va la scheda wireless, una netgear wna 1100. Ho provato a cercare sul sito kexts.com, ma non ho trovato nulla. Se qualcuno ha qualche consiglio,è ben accetto.

Link to comment
Share on other sites

Signori e ...

È con immenso piacere che vi propongo Lionize

 

È l'evoluzione e l'esperienza maturata sopra il "vecchio" sistema Base.

 

Caratteristiche:

- Script e componenti completamente riscritti

- Doppio click e via! (basta seguire le istruzioni che propone lo script)

- Multilingue :D (Italiano - Inglese - Francese -Spagnolo)

- Supporta il patching e preparazione per l'update 10.7.1.

- Supporta scaricamento e utilizzo degli aggiornamenti per Lion (iTunes e RemoteDesktop)

- Supporta scaricamento e preparazione per i driver CUDA (Solo nvidia)

- "Interfaccia" completamente ridisegnata :)

- Aggiunto supporto per SabertoohX58 e P6T6 WS

- Aggiunto supporto per USB3.0 (NEC Controller)

- Include i DSDT corretti per : P6T e P6T WS Pro

- Include l'ultimo Chameleon 2.1 r1454 :P

- l'USB creata non necessita di successivi script fix dopo l'installazione sulla partizione definitiva :)

 

Buon divertimento utenti AsusX58!

 

;) Fabio

Link to comment
Share on other sites

Signori e ...

È con immenso piacere che vi propongo Lionize

..........

 

Buon divertimento utenti AsusX58!

 

:( Fabio

 

Fabio ciao, grande lavoro, creata e provata! installazione riuscita perfettamente.

.... una sola cosa, ho provato a crearla da Snow sulla P6T SE ma mi va in errore prima della copia dei pacchetti dall'immagine di OS X Lion.........

 

Mentre creata dal MBP sempre con Snow va fino alla fine perfettamente..

Se ti occorre la ricreo sulla P6T SE e ti posto l'errore.

Maurizio ;)

Link to comment
Share on other sites

Fabio ciao, grande lavoro, creata e provata! installazione riuscita perfettamente.

.... una sola cosa, ho provato a crearla da Snow sulla P6T SE ma mi va in errore prima della copia dei pacchetti dall'immagine di OS X Lion.........

 

Mentre creata dal MBP sempre con Snow va fino alla fine perfettamente..

Se ti occorre la ricreo sulla P6T SE e ti posto l'errore.

Maurizio :(

 

Ciao Maurizio.

 

Si grazie, postami l'errore...

(Lo script gestisce "l'installer" sia fuori che dentro la cartella Applicazioni)

(Stessa cosa per la "destinazione" se trova USB Boot bene, altrimenti chiede dove si trova la destinazione)

 

Fabio

Link to comment
Share on other sites

Ciao Maurizio.

 

Si grazie, postami l'errore...

(Lo script gestisce "l'installer" sia fuori che dentro la cartella Applicazioni)

(Stessa cosa per la "destinazione" se trova USB Boot bene, altrimenti chiede dove si trova la destinazione)

 

Fabio

 

Ciao Fabio,verso sera riprovo dall'hack e ti posto l'errore.....

un altra cosa, il disco dove ho installato (usb esterno) non lanciava il boot, ho dovuto da snow con chameleon vizzard reinstallare il boot....... (forse per l'usb esterno?)

poi tutto perfetto

a stasera per l'errore di creazione da P6T SE

Ciao

Maurizio

Link to comment
Share on other sites

Hi Fabio, to make JMB362 eSata ports of Sabertooth X58 work you should replace this in dsdt:

				Device (JMB0)
			{
				Name (_ADR, Zero)
				OperationRegion (CF40, PCI_Config, 0x40, 0x04)
				Field (CF40, ByteAcc, NoLock, Preserve)
				{
					CHE0,   1, 
					MULT,   1, 
						,   1, 
					CAB0,   1, 
					CHE1,   1, 
							Offset (0x01), 
					AHEN,   1, 
						,   3, 
					PRT0,   1, 
					AHM0,   1, 
					PRT1,   1, 
					AHM1,   1, 
					CF42,   6, 
					SWAP,   1, 
					PATA,   1, 
						,   6, 
					WTEN,   1, 
							Offset (0x04)
				}

				Name (PIOT, Package (0x05)
				{
					0x0258, 
					0x0186, 
					0x014A, 
					0xB4, 
					0x78
				})
				Name (UDMA, Package (0x07)
				{
					0x78, 
					0x50, 
					0x3C, 
					0x28, 
					0x1E, 
					0x14, 
					0x0F
				})
				Name (MDMA, Package (0x03)
				{
					0x01E0, 
					0x96, 
					0x78
				})
				Name (IDEB, Buffer (0x14) {})
				CreateDWordField (IDEB, Zero, GTM0)
				CreateDWordField (IDEB, 0x04, GTM1)
				CreateDWordField (IDEB, 0x08, GTM2)
				CreateDWordField (IDEB, 0x0C, GTM3)
				CreateDWordField (IDEB, 0x10, GTM4)
				Name (PIO0, 0x04)
				Name (DMA0, 0x06)
				Name (MDA0, 0x02)
				Name (PIO1, 0x04)
				Name (DMA1, 0x06)
				Name (MDA1, 0x02)
				Name (PIO2, 0x04)
				Name (DMA2, 0x06)
				Name (MDA2, 0x02)
				Name (PIO3, 0x04)
				Name (DMA3, 0x06)
				Name (MDA3, 0x02)
				Name (FLGP, 0x1F)
				Name (FLGS, 0x1F)
				Device (IDE0)
				{
					Name (_ADR, Zero)
					Method (_GTM, 0, NotSerialized)
					{
						Store (DerefOf (Index (PIOT, PIO0)), Local0)
						Store (DerefOf (Index (PIOT, PIO1)), Local2)
						Store (0x1A, Local4)
						If (LAnd (FLGP, One))
						{
							If (LNot (MULT))
							{
								If (LAnd (CAB0, SWAP))
								{
									Store (0x02, DMA0)
								}
							}

							Store (DerefOf (Index (UDMA, DMA0)), Local1)
							Or (Local4, One, Local4)
						}
						Else
						{
							Store (DerefOf (Index (MDMA, MDA0)), Local1)
						}

						If (LAnd (FLGP, 0x04))
						{
							If (LAnd (CAB0, SWAP))
							{
								Store (0x02, DMA1)
							}

							Store (DerefOf (Index (UDMA, DMA1)), Local3)
							Or (Local4, 0x04, Local4)
						}
						Else
						{
							Store (DerefOf (Index (MDMA, MDA1)), Local3)
						}

						Store (Local0, GTM0)
						Store (Local1, GTM1)
						Store (Local2, GTM2)
						Store (Local3, GTM3)
						Store (Local4, GTM4)
						Return (IDEB)
					}

					Method (_STM, 3, NotSerialized)
					{
						Store (Arg0, IDEB)
						Store (GTM0, Local0)
						Store (GTM1, Local1)
						Store (GTM2, Local2)
						Store (GTM3, Local3)
						Store (GTM4, Local4)
						Store (Local4, FLGP)
						If (LAnd (LNotEqual (Local0, Ones), LNotEqual (Local0, Zero)))
						{
							Store (Match (PIOT, MEQ, Local0, MTR, Zero, Zero), PIO0)
						}

						If (LAnd (LNotEqual (Local1, Ones), LNotEqual (Local1, Zero)))
						{
							If (LAnd (FLGP, One))
							{
								Store (Match (UDMA, MEQ, Local1, MTR, Zero, Zero), DMA0)
							}
							Else
							{
								Store (Match (MDMA, MEQ, Local1, MTR, Zero, Zero), MDA0)
							}
						}

						If (LAnd (LNotEqual (Local2, Ones), LNotEqual (Local2, Zero)))
						{
							Store (Match (PIOT, MEQ, Local2, MTR, Zero, Zero), PIO1)
						}

						If (LAnd (LNotEqual (Local3, Ones), LNotEqual (Local3, Zero)))
						{
							If (LAnd (FLGP, 0x04))
							{
								Store (Match (UDMA, MEQ, Local3, MTR, Zero, Zero), DMA1)
							}
							Else
							{
								Store (Match (MDMA, MEQ, Local3, MTR, Zero, Zero), MDA1)
							}
						}
					}

					Device (DRV0)
					{
						Name (_ADR, Zero)
						Method (_GTF, 0, NotSerialized)
						{
							Store (Buffer (0x07)
								{
									0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
								}, Local0)
							Store (Buffer (0x07)
								{
									0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
								}, Local1)
							CreateByteField (Local0, One, PIOM)
							CreateByteField (Local1, One, DMAM)
							Store (PIO0, PIOM)
							Or (PIOM, 0x08, PIOM)
							If (LAnd (FLGP, One))
							{
								Store (DMA0, DMAM)
								Or (DMAM, 0x40, DMAM)
							}
							Else
							{
								Store (MDA0, DMAM)
								Or (DMAM, 0x20, DMAM)
							}

							Concatenate (Local0, Local1, Local2)
							Return (Local2)
						}
					}

					Device (DRV1)
					{
						Name (_ADR, One)
						Method (_GTF, 0, NotSerialized)
						{
							Store (Buffer (0x07)
								{
									0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
								}, Local0)
							Store (Buffer (0x07)
								{
									0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
								}, Local1)
							CreateByteField (Local0, One, PIOM)
							CreateByteField (Local1, One, DMAM)
							Store (PIO1, PIOM)
							Or (PIOM, 0x08, PIOM)
							If (LAnd (FLGP, 0x04))
							{
								Store (DMA1, DMAM)
								Or (DMAM, 0x40, DMAM)
							}
							Else
							{
								Store (MDA1, DMAM)
								Or (DMAM, 0x20, DMAM)
							}

							Concatenate (Local0, Local1, Local2)
							Return (Local2)
						}
					}
				}

				Device (IDE1)
				{
					Name (_ADR, One)
					Method (_GTM, 0, NotSerialized)
					{
						Store (DerefOf (Index (PIOT, PIO2)), Local0)
						Store (DerefOf (Index (PIOT, PIO3)), Local2)
						Store (0x1A, Local4)
						If (LAnd (FLGS, One))
						{
							If (LNot (MULT))
							{
								If (LAnd (CAB0, LNot (SWAP)))
								{
									Store (0x02, DMA2)
								}
							}

							Store (DerefOf (Index (UDMA, DMA2)), Local1)
							Or (Local4, One, Local4)
						}
						Else
						{
							Store (DerefOf (Index (MDMA, MDA2)), Local1)
						}

						If (LAnd (FLGS, 0x04))
						{
							If (LAnd (CAB0, LNot (SWAP)))
							{
								Store (0x02, DMA3)
							}

							Store (DerefOf (Index (UDMA, DMA3)), Local3)
							Or (Local4, 0x04, Local4)
						}
						Else
						{
							Store (DerefOf (Index (MDMA, MDA3)), Local3)
						}

						Store (Local0, GTM0)
						Store (Local1, GTM1)
						Store (Local2, GTM2)
						Store (Local3, GTM3)
						Store (Local4, GTM4)
						Return (IDEB)
					}

					Method (_STM, 3, NotSerialized)
					{
						Store (Arg0, IDEB)
						Store (GTM0, Local0)
						Store (GTM1, Local1)
						Store (GTM2, Local2)
						Store (GTM3, Local3)
						Store (GTM4, Local4)
						Store (Local4, FLGS)
						If (LAnd (LNotEqual (Local0, Ones), LNotEqual (Local0, Zero)))
						{
							Store (Match (PIOT, MEQ, Local0, MTR, Zero, Zero), PIO2)
						}

						If (LAnd (LNotEqual (Local1, Ones), LNotEqual (Local1, Zero)))
						{
							If (LAnd (FLGS, One))
							{
								Store (Match (UDMA, MEQ, Local1, MTR, Zero, Zero), DMA2)
							}
							Else
							{
								Store (Match (MDMA, MEQ, Local1, MTR, Zero, Zero), MDA2)
							}
						}

						If (LAnd (LNotEqual (Local2, Ones), LNotEqual (Local2, Zero)))
						{
							Store (Match (PIOT, MEQ, Local2, MTR, Zero, Zero), PIO3)
						}

						If (LAnd (LNotEqual (Local3, Ones), LNotEqual (Local3, Zero)))
						{
							If (LAnd (FLGS, 0x04))
							{
								Store (Match (UDMA, MEQ, Local3, MTR, Zero, Zero), DMA3)
							}
							Else
							{
								Store (Match (MDMA, MEQ, Local3, MTR, Zero, Zero), MDA3)
							}
						}
					}

					Device (DRV0)
					{
						Name (_ADR, Zero)
						Method (_GTF, 0, NotSerialized)
						{
							Store (Buffer (0x07)
								{
									0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
								}, Local0)
							Store (Buffer (0x07)
								{
									0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
								}, Local1)
							CreateByteField (Local0, One, PIOM)
							CreateByteField (Local1, One, DMAM)
							Store (PIO2, PIOM)
							Or (PIOM, 0x08, PIOM)
							If (LAnd (FLGS, One))
							{
								Store (DMA2, DMAM)
								Or (DMAM, 0x40, DMAM)
							}
							Else
							{
								Store (MDA2, DMAM)
								Or (DMAM, 0x20, DMAM)
							}

							Concatenate (Local0, Local1, Local2)
							Return (Local2)
						}
					}

					Device (DRV1)
					{
						Name (_ADR, One)
						Method (_GTF, 0, NotSerialized)
						{
							Store (Buffer (0x07)
								{
									0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
								}, Local0)
							Store (Buffer (0x07)
								{
									0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
								}, Local1)
							CreateByteField (Local0, One, PIOM)
							CreateByteField (Local1, One, DMAM)
							Store (PIO3, PIOM)
							Or (PIOM, 0x08, PIOM)
							If (LAnd (FLGS, 0x04))
							{
								Store (DMA3, DMAM)
								Or (DMAM, 0x40, DMAM)
							}
							Else
							{
								Store (MDA3, DMAM)
								Or (DMAM, 0x20, DMAM)
							}

							Concatenate (Local0, Local1, Local2)
							Return (Local2)
						}
					}
				}
			}

			Device (JMB1)
			{
				Name (_ADR, One)
				OperationRegion (CF40, PCI_Config, 0x40, 0x04)
				Field (CF40, ByteAcc, NoLock, Preserve)
				{
					CHE0,   1, 
					MULT,   1, 
						,   1, 
					CAB0,   1, 
					CHE1,   1, 
							Offset (0x01), 
					AHEN,   1, 
						,   3, 
					PRT0,   1, 
					AHM0,   1, 
					PRT1,   1, 
					AHM1,   1, 
					CF42,   6, 
					SWAP,   1, 
					PATA,   1, 
						,   6, 
					WTEN,   1, 
							Offset (0x04)
				}

				Name (PIOT, Package (0x05)
				{
					0x0258, 
					0x0186, 
					0x014A, 
					0xB4, 
					0x78
				})
				Name (UDMA, Package (0x07)
				{
					0x78, 
					0x50, 
					0x3C, 
					0x28, 
					0x1E, 
					0x14, 
					0x0F
				})
				Name (MDMA, Package (0x03)
				{
					0x01E0, 
					0x96, 
					0x78
				})
				Name (IDEB, Buffer (0x14) {})
				CreateDWordField (IDEB, Zero, GTM0)
				CreateDWordField (IDEB, 0x04, GTM1)
				CreateDWordField (IDEB, 0x08, GTM2)
				CreateDWordField (IDEB, 0x0C, GTM3)
				CreateDWordField (IDEB, 0x10, GTM4)
				Name (PIO0, 0x04)
				Name (DMA0, 0x06)
				Name (MDA0, 0x02)
				Name (PIO1, 0x04)
				Name (DMA1, 0x06)
				Name (MDA1, 0x02)
				Name (PIO2, 0x04)
				Name (DMA2, 0x06)
				Name (MDA2, 0x02)
				Name (PIO3, 0x04)
				Name (DMA3, 0x06)
				Name (MDA3, 0x02)
				Name (FLGP, 0x1F)
				Name (FLGS, 0x1F)
				Device (IDE0)
				{
					Name (_ADR, Zero)
					Method (_GTM, 0, NotSerialized)
					{
						Store (DerefOf (Index (PIOT, PIO0)), Local0)
						Store (DerefOf (Index (PIOT, PIO1)), Local2)
						Store (0x1A, Local4)
						If (LAnd (FLGP, One))
						{
							If (LAnd (CAB0, SWAP))
							{
								Store (0x02, DMA0)
							}

							Store (DerefOf (Index (UDMA, DMA0)), Local1)
							Or (Local4, One, Local4)
						}
						Else
						{
							Store (DerefOf (Index (MDMA, MDA0)), Local1)
						}

						If (LAnd (FLGP, 0x04))
						{
							If (LAnd (CAB0, SWAP))
							{
								Store (0x02, DMA1)
							}

							Store (DerefOf (Index (UDMA, DMA1)), Local3)
							Or (Local4, 0x04, Local4)
						}
						Else
						{
							Store (DerefOf (Index (MDMA, MDA1)), Local3)
						}

						Store (Local0, GTM0)
						Store (Local1, GTM1)
						Store (Local2, GTM2)
						Store (Local3, GTM3)
						Store (Local4, GTM4)
						Return (IDEB)
					}

					Method (_STM, 3, NotSerialized)
					{
						Store (Arg0, IDEB)
						Store (GTM0, Local0)
						Store (GTM1, Local1)
						Store (GTM2, Local2)
						Store (GTM3, Local3)
						Store (GTM4, Local4)
						Store (Local4, FLGP)
						If (LAnd (LNotEqual (Local0, Ones), LNotEqual (Local0, Zero)))
						{
							Store (Match (PIOT, MEQ, Local0, MTR, Zero, Zero), PIO0)
						}

						If (LAnd (LNotEqual (Local1, Ones), LNotEqual (Local1, Zero)))
						{
							If (LAnd (FLGP, One))
							{
								Store (Match (UDMA, MEQ, Local1, MTR, Zero, Zero), DMA0)
							}
							Else
							{
								Store (Match (MDMA, MEQ, Local1, MTR, Zero, Zero), MDA0)
							}
						}

						If (LAnd (LNotEqual (Local2, Ones), LNotEqual (Local2, Zero)))
						{
							Store (Match (PIOT, MEQ, Local2, MTR, Zero, Zero), PIO1)
						}

						If (LAnd (LNotEqual (Local3, Ones), LNotEqual (Local3, Zero)))
						{
							If (LAnd (FLGP, 0x04))
							{
								Store (Match (UDMA, MEQ, Local3, MTR, Zero, Zero), DMA1)
							}
							Else
							{
								Store (Match (MDMA, MEQ, Local3, MTR, Zero, Zero), MDA1)
							}
						}
					}

					Device (DRV0)
					{
						Name (_ADR, Zero)
						Method (_GTF, 0, NotSerialized)
						{
							Store (Buffer (0x07)
								{
									0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
								}, Local0)
							Store (Buffer (0x07)
								{
									0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
								}, Local1)
							CreateByteField (Local0, One, PIOM)
							CreateByteField (Local1, One, DMAM)
							Store (PIO0, PIOM)
							Or (PIOM, 0x08, PIOM)
							If (LAnd (FLGP, One))
							{
								Store (DMA0, DMAM)
								Or (DMAM, 0x40, DMAM)
							}
							Else
							{
								Store (MDA0, DMAM)
								Or (DMAM, 0x20, DMAM)
							}

							Concatenate (Local0, Local1, Local2)
							Return (Local2)
						}
					}

					Device (DRV1)
					{
						Name (_ADR, One)
						Method (_GTF, 0, NotSerialized)
						{
							Store (Buffer (0x07)
								{
									0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
								}, Local0)
							Store (Buffer (0x07)
								{
									0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
								}, Local1)
							CreateByteField (Local0, One, PIOM)
							CreateByteField (Local1, One, DMAM)
							Store (PIO1, PIOM)
							Or (PIOM, 0x08, PIOM)
							If (LAnd (FLGP, 0x04))
							{
								Store (DMA1, DMAM)
								Or (DMAM, 0x40, DMAM)
							}
							Else
							{
								Store (MDA1, DMAM)
								Or (DMAM, 0x20, DMAM)
							}

							Concatenate (Local0, Local1, Local2)
							Return (Local2)
						}
					}
				}

				Device (IDE1)
				{
					Name (_ADR, One)
					Method (_GTM, 0, NotSerialized)
					{
						Store (DerefOf (Index (PIOT, PIO2)), Local0)
						Store (DerefOf (Index (PIOT, PIO3)), Local2)
						Store (0x1A, Local4)
						If (LAnd (FLGS, One))
						{
							If (LAnd (CAB0, LNot (SWAP)))
							{
								Store (0x02, DMA2)
							}

							Store (DerefOf (Index (UDMA, DMA2)), Local1)
							Or (Local4, One, Local4)
						}
						Else
						{
							Store (DerefOf (Index (MDMA, MDA2)), Local1)
						}

						If (LAnd (FLGS, 0x04))
						{
							If (LAnd (CAB0, LNot (SWAP)))
							{
								Store (0x02, DMA3)
							}

							Store (DerefOf (Index (UDMA, DMA3)), Local3)
							Or (Local4, 0x04, Local4)
						}
						Else
						{
							Store (DerefOf (Index (MDMA, MDA3)), Local3)
						}

						Store (Local0, GTM0)
						Store (Local1, GTM1)
						Store (Local2, GTM2)
						Store (Local3, GTM3)
						Store (Local4, GTM4)
						Return (IDEB)
					}

					Method (_STM, 3, NotSerialized)
					{
						Store (Arg0, IDEB)
						Store (GTM0, Local0)
						Store (GTM1, Local1)
						Store (GTM2, Local2)
						Store (GTM3, Local3)
						Store (GTM4, Local4)
						Store (Local4, FLGS)
						If (LAnd (LNotEqual (Local0, Ones), LNotEqual (Local0, Zero)))
						{
							Store (Match (PIOT, MEQ, Local0, MTR, Zero, Zero), PIO2)
						}

						If (LAnd (LNotEqual (Local1, Ones), LNotEqual (Local1, Zero)))
						{
							If (LAnd (FLGS, One))
							{
								Store (Match (UDMA, MEQ, Local1, MTR, Zero, Zero), DMA2)
							}
							Else
							{
								Store (Match (MDMA, MEQ, Local1, MTR, Zero, Zero), MDA2)
							}
						}

						If (LAnd (LNotEqual (Local2, Ones), LNotEqual (Local2, Zero)))
						{
							Store (Match (PIOT, MEQ, Local2, MTR, Zero, Zero), PIO3)
						}

						If (LAnd (LNotEqual (Local3, Ones), LNotEqual (Local3, Zero)))
						{
							If (LAnd (FLGS, 0x04))
							{
								Store (Match (UDMA, MEQ, Local3, MTR, Zero, Zero), DMA3)
							}
							Else
							{
								Store (Match (MDMA, MEQ, Local3, MTR, Zero, Zero), MDA3)
							}
						}
					}

					Device (DRV0)
					{
						Name (_ADR, Zero)
						Method (_GTF, 0, NotSerialized)
						{
							Store (Buffer (0x07)
								{
									0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
								}, Local0)
							Store (Buffer (0x07)
								{
									0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
								}, Local1)
							CreateByteField (Local0, One, PIOM)
							CreateByteField (Local1, One, DMAM)
							Store (PIO2, PIOM)
							Or (PIOM, 0x08, PIOM)
							If (LAnd (FLGS, One))
							{
								Store (DMA2, DMAM)
								Or (DMAM, 0x40, DMAM)
							}
							Else
							{
								Store (MDA2, DMAM)
								Or (DMAM, 0x20, DMAM)
							}

							Concatenate (Local0, Local1, Local2)
							Return (Local2)
						}
					}

					Device (DRV1)
					{
						Name (_ADR, One)
						Method (_GTF, 0, NotSerialized)
						{
							Store (Buffer (0x07)
								{
									0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
								}, Local0)
							Store (Buffer (0x07)
								{
									0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
								}, Local1)
							CreateByteField (Local0, One, PIOM)
							CreateByteField (Local1, One, DMAM)
							Store (PIO3, PIOM)
							Or (PIOM, 0x08, PIOM)
							If (LAnd (FLGS, 0x04))
							{
								Store (DMA3, DMAM)
								Or (DMAM, 0x40, DMAM)
							}
							Else
							{
								Store (MDA3, DMAM)
								Or (DMAM, 0x20, DMAM)
							}

							Concatenate (Local0, Local1, Local2)
							Return (Local2)
						}
					}
				}
			}

 

with this :

				Device (JMB0)
			{
				Name (_ADR, Zero)
				OperationRegion (BAR0, PCI_Config, 0x40, 0x04)
				Field (BAR0, WordAcc, NoLock, Preserve)
				{
					M1,	 8, 
					M2,	 8, 
					M3,	 8
				}

				Method (_DSM, 4, NotSerialized)
				{
					Store (0xB3, M1)
					Store (0xA1, M2)
					Store (0xC2, M3)
					Store (Package (0x02)
						{
							"name", 
							Buffer (0x16)
							{
								"J-Micron JMB36x eSATA"
							}
						}, Local0)
					DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
					Return (Local0)
				}
			}

			Device (JMB1)
			{
				Name (_ADR, One)
				OperationRegion (BAR0, PCI_Config, 0x40, 0x04)
				Field (BAR0, WordAcc, NoLock, Preserve)
				{
					M1,	 8, 
					M2,	 8, 
					M3,	 8
				}

				Method (_DSM, 4, NotSerialized)
				{
					Store (Zero, M1)
					Store (Zero, M2)
					Store (Zero, M3)
					Return (Zero)
				}
			}

 

With that code eSata ports work but without hot plugging. Would be nice to get a JMicron datasheet, maybe then we could fix that problem too.

Link to comment
Share on other sites

Hi Fabio, to make JMB362 eSata ports of Sabertooth X58 work you should replace this in dsdt:

...split out...

with this :

...split out...

 

With that code eSata ports work but without hot plugging. Would be nice to get a JMicron datasheet, maybe then we could fix that problem too.

 

Done!

Thx mm67

Here the new version

I will add it in the next Lionize version

 

Q: this "patch" works for all JMB362? is still needed the mod into the Info.plist (JMicronATA.kext) ?

 

Thx

 

Fabio

Link to comment
Share on other sites

 Share

×
×
  • Create New...