Jump to content

DSDT MSI Z68MA ED55 B3 (Solucionado)


uzmi
 Share

8 posts in this topic

Recommended Posts

Hola:
Hace tiempo atrás con una placa base para plataforma 775 hice mis pinitos con el DSDT.aml y logré que funcionara muy bien.
Hoy con una MSI Z68MA ED55 B3 no hay manera.
Intento levantar una gráfica His Radeon 6850 de 1Gb pero estoy mas perdido que Adán en el día de la madre.
Clover y Chameleon me levantan el sistema gráfico correctamente pero necesito hacerlo sin sus intervenciones.

Quiero insertar esto en mi DSDT pero ¿donde? ¿como?

 

Device (PCI0)
{
Name (_HID, EisaId ("PNP0A03"))
Name (_UID, Zero)
Name (_ADR, Zero)
Name (_BBN, Zero)
Method (_S3D, 0, NotSerialized)
{
If (LEqual (OSFL, 0x02))
{
Return (0x02)
}
Else
{
Return (0x03)
}
}
Device (PEGP)
{
Name (_ADR, 0x00010000) -----------¿Debería ser 10000? PEG0@1 del ioreg o considero PEGP@0 en cuyo caso que numero corresponde?-----------
Device (GFX0)
{
Name (_ADR, Zero)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x42)
{
"@0,AAPL,boot-display",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"@0,compatible",
Buffer (0x0D)
{
"ATY,Duckweed"
},
"@0,connector-type",
Buffer (0x04)
{
0x00, 0x04, 0x00, 0x00
},
"@0,device_type",
Buffer (0x08)
{
"display"
},
"@0,display-type",
Buffer (0x05)
{
"NONE"
},
"@0,name",
Buffer (0x0D)
{
"ATY,Duckweed"
},
"@0,VRAM,memsize",
Buffer (0x08)
{
/* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40
},
"@1,compatible",
Buffer (0x0D)
{
"ATY,Duckweed"
},
"@1,connector-type",
Buffer (0x04)
{
0x00, 0x80, 0x00, 0x00
},
"@1,device_type",
Buffer (0x08)
{
"display"
},
"@1,display-type",
Buffer (0x05)
{
"NONE"
},
"@1,name",
Buffer (0x0D)
{
"ATY,Duckweed"
},
"@2,compatible",
Buffer (0x0D)
{
"ATY,Duckweed"
},
"@2,connector-type",
Buffer (0x04)
{
0x04, 0x00, 0x00, 0x00
},
"@2,device_type",
Buffer (0x08)
{
"display"
},
"@2,display-type",
Buffer (0x05)
{
"NONE"
},
"@2,name",
Buffer (0x0D)
{
"ATY,Duckweed"
},
"@3,compatible",
Buffer (0x0D)
{
"ATY,Duckweed"
},
"@3,connector-type",
Buffer (0x04)
{
0x00, 0x02, 0x00, 0x00
},
"@3,device_type",
Buffer (0x08)
{
"display"
},
"@3,display-type",
Buffer (0x05)
{
"NONE"
},
"@3,name",
Buffer (0x0D)
{
"ATY,Duckweed"
},
"AAPL,aux-power-connected",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"AAPL,slot-name",
Buffer (0x09)
{
"PCIe x16"
},
"ATY,Card#",
Buffer (0x0F)
{
"113-E14802-X06"
},
"ATY,Copyright",
Buffer (0x33)
{
"Copyright AMD Inc. All Rights Reserved. 2005-2008"
},
"ATY,Rom#",
Buffer (0x0F)
{
"113-B7710C-176"
},
"ATY,VendorID",
Buffer (0x02)
{
0x02, 0x10
},
"ATY,DeviceID",
Buffer (0x02)
{
0x39, 0x67
},
"device_type",
Buffer (0x13)
{
"ATY,DuckweedParent"
},
"model",
Buffer (0x15)
{
"HIS RADEON 6850 1 GB"
},
"name",
Buffer (0x13)
{
"ATY,DuckweedParent"
},
"hda-gfx",
Buffer (0x0A)
{
"onboard-1"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (HDAU)
{
Name (_ADR, One)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"hda-gfx",
Buffer (0x0A)
{
"onboard-1"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
}

 



Si miro mi ioreg desde PCI0 parte la rama PEG0@1 y de ahí PEGP@1



Si miro mi DSDT tengo PEG0, PEG1, PEG2, PEG3 y GFX0.



¿Donde lo coloco? ¿Debería ir en PEG0 (del DSDT) y abrir una llave con PEGP? ¿Que hay con el GFX0 del archivo que voy a agregar y el GFX0 del DSDT? ¿Debo renombrar el GFX0 del DSDT por IGPU (suponiendo que se refiere a la gráfica integrada)?

Como ven son muchas dudas y estoy perdido.
Cualquier ayuda será muy apreciada. Por si no soy claro adjunto mi Ioreg y mi DSDT.

Si fuera posible en lugar de darme dsdt corregido me interesaría aprender como corregirlo.

Gracias
Uzmi

Guzman’s iMac IOR.zip

DSDT.aml.zip

Guzman’s iMacCHAMELEON.zip

Link to comment
Share on other sites

Hola. Le voy a echar un vistazo y edito aquí. Supongo que tanto la dsdt como el ioreg están solo con inyección de la gráfica únicamente desde el bootloader, para trabajar desde cero. Es la forma correcta de empezar antes de modificar nada por el tema mas importante en la inyección dsdt, que son las rutas (adr).

 

Editado. Tenías casi todo aclarado tu mismo, fíjate:

 

A - PEG0@1 (_ADR, 0x00010000) = puerto PCIE de la gráfica dedicada y su respectiva salida de audio HDMI. El puerto PCIE se queda igual.

 

A.1 - Renombrado y corregido PEGP@0 (_ADR, 0xFFFF) hacia GFX0@0 (_ADR, Zero) = Esta es la gráfica dedicada para inyecciones (ver nota).

 

A.1.1 - Agregada la inyección propuesta = Método _DSM, 4, NotSerialized ... blablabla.

 

A.2 - Agregado (no existe originalmente) el dispositivo HDAU@0,1 (_ADR, One) = audio HDMI integrado en la gráfica dedicada.

 

Nota: ha sido renombrada GFX0 hacia IGPU y todas sus declaraciones, que corresponde a la gráfica integrada en el procesador (CPU). Así podemos utilizar GFX0 como gráfica dedicada, que es lo usual en los Mac originales. Entonces: GFX0@2 (_ADR, 0x00020000) ahora es IGPU@2 manteniendo su misma ruta.

 

Te adjunto la dsdt corregida y aplicados los cambios e inyecciones propuestos. Prueba con "GraphicsEnabler=No". Cualquier duda a la orden, Saludos.

dsdt.aml.zip

  • Like 2
Link to comment
Share on other sites

Juanerson:


Muchísimas gracias por tu tiempo y dedicación.


 


Había hecho un DSDT pero no funcionaba.


Comparando con el tuyo había renombrado GFX0 a IGPU pero fallaba en que abría una rama a partir de PEGP colgando de allí GFX0 en lugar de renombrarlo. Y aparte me faltaba el agregado HDAU en HDMI.


 


Bien pasando al tema de si trabaja te comento lo siguiente:


 


Mi gráfica tiene dos salidas DVI     -->  DVI-I Dual -funciona, y  DVI-D Dual -que cuando debería aparecer el escritorio, se apaga el monitor.


 


El tema está en que para la inyección me basé en una gráfica muy similar solo que en lugar de DVI- Dual tiene DVI-I Single link por eso supongo que no le estoy dando la información correcta.


 


dvicopia.jpg


 


Tanto con Chameleon como con Clover funcionan ambos DVI.


Trataré de buscar información a ver si llego a solucionarlo. 


 


Un dato muy curioso: durante las pruebas con el DSDT sin modificar (sin la inyección para la gráfica) y con Graphics Enabler=No levantaba el sistema gráfico sin problemas.


Ademas se crea en la partición oculta EFI un archivo que no se si es así siempre o se trata de algo relacionado con UEFI.


 


efipn.jpg


 


También debo comentarte que me equivoqué al subir el IOREG porque ese corresponde a Clover.


Voy a adjuntar el de Chameleon en el primer post para que quien quiera tenga toda la información posible.


 


ior.jpg


 


 


De nuevo muchísimas gracias.


 


Un saludo.


Uzmi


Link to comment
Share on other sites

Lo mas sencillo es tomar los datos del ioreg inyectados por el bootloader y llevarlos a la DSDT, así no hay rollo. Esa seria tu mejor base, porque el bootloader normalmente hace su trabajo de forma correcta respecto los framebuffers (las salidas de señal), luego ajustas y pruebas lo que quieras. Entiendes el procedimiento y la orientación de la estructura en el ioreg? En un principio lo iba a hacer en la dsdt que te subí, pero me confíe en el código que subiste, pensé que estaba correcto, ni siquiera lo revise, solo copie y pegue. Saludos.

Link to comment
Share on other sites

Hola Juanerson:

Mi manejo del Ioreg es limitado.

Estuve mirando y a pesar de estar todo allí no entiendo como se convierte para el DSDT.

 

Por ejemplo:

 

                       Ioreg

 

ATIFramebuffer@0  connector-type 0x4   ¿como se traduce al DSDT?        ¿0x00, 0x04, 0x00, 0x00? o ¿0x04, 0x00, 0x00, 0x00?

 

ATIFramebuffer@1  connector-type 0x400                                                ¿0x40, 0x00, 0x00, 0x00? o ¿0x00, 0x40, 0x00, 0x00?

 

ATIFramebuffer@2 connector-type 0x800                                                 ¿0x80, 0x00, 0x00, 0x00? o ¿0x00, 0x80, 0x00, 0x00?

 

ATIFramebuffer@3 connector-type 0x4 

 

Te agradezco si una vez mas me orientas (y van ya…. mi deuda contigo ya es notoria)

 

Un saludo. 

 

 

Añadido al dia 15/06/2013

 

Hasta hace poco no conseguía obtener las Aty-personalitys de mi gráfica de forma correcta.

Gracias a Alex Auditore ( http://www.insanelymac.com/forum/topic/287995-how-to-launch-ati-card-by-dsdt/page-3?do=findComment&comment=1924480 ) que me proporcionó el ultimo scrip ati-personality.pl.0.11 logré obtener mas información para seguir adelante.

 

Ahora entiendo mejor (solo un poco) que debería poner en mi dsdt (big indian - little indian) pero como el tema me parece fascinante, trataré de modificar las personality´s para mi gráfica.

Veré hasta donde puedo llegar.

 

De momento queda contestada esta duda.

 

Gracias. 

  • Like 1
Link to comment
Share on other sites

Mañana aprovecharé que tengo algo de tiempo libre y te voy a migrar todo el código del ioreg hacia la dsdt. Exactamente y como aparece en el ioreg. Para que puedas prescindir de GE=Y con el bootloader de tu preferencia, luego si lo deseas pues juegas un poco con el. Entonces comparas el codigo y aclaramos dudas. También podemos cambiarle el título al tópico por uno mas concreto y apropiado, si estas de acuerdo. Saludos.

Link to comment
Share on other sites

De acuerdo Juanerson:

Lo del titulo lo dejo en tus manos.

De todas formas si logro resultados positivos tenía intención de hacer un post a modo de guia (pero todo depende de los resultados),

Gracias y un saludo.

Link to comment
Share on other sites

 Share

×
×
  • Create New...