Jump to content

ayuda para crear un dsdt


4 posts in this topic

Recommended Posts

Hola buenos dias , compañeros llevo con hackcintosh desde Osx Lion y en aquel entonces hice un dsdt personalizado para chamaleón bootloader....

Despues me monte un mobo nuevo, mas potente y mas moderno, he intente crearle un dsdt personalizado para no tener que que estar dependiendo de kexts y parches.... ,pero por falta de tiempo y que entonces salio el nuevo bootloader que es Clover y desde entonces he trabajado con Clover actualización tras actualización....

y me ha ido de maravilla el Clover Bootloader.....

Hasta que me he cansado de tener que estar continuamente tras cada actualización ir configurando Clover he instalando y cambiando kexts....

 

Así que me he decidido a crearme un DSDT propio ya de una vez , para así ahorrarme configuraciones y kexts....

 

lo primero que he hecho ha sido bajarme el iasl51, lo he renombrado como iasl y lo he copiado en usr/bin de la raíz del sistema de Osx(no si antes ver las carpetas ocultas)...

 una vez copiado allí , he extraído el dsdt por medio de Clover y F4..... he montado la partición efi y he copiado el dsdt de Clover/acpi/origin

 a una carpeta en el escritorio de nombre dsdtmio....

hasta ahi bien , ahora vienen las dudas y los problemas, en la descompilacion del DSDT.aml.....

 

segun varios tutoriales que he seguido por internet hay dos comandos para descompilar el DSDT.aml en DSDT.dsl , para poder editarlo... (Yo Uso Maciasl)....

y los he descompilado con los dos comandos obteniendo resultados diferentes en cada  uno de ellos.....

 explico y aver si me podeis aclarar si es que hago algo mal o que passa...

 

Abro terminal y me situo sobre la carpeta en cuestión (cd Desktop/dsdtmio) y ejecuto este comando: iasl -da -dl *.aml

 

todo correcto, me ha creado el archivo DSDT.dsl, lo renombro a DSDT -da-dl.dsl .....

 lo abro con Maciasl , configuro en preferencias el iasl a 5.1 y antes de parcharlo  le doy a compile , para ver si tiene errores... y sorpresa tiene un error, un solo error....

 subo imagen para que lo veáis.... 

 

repito el proceso pero esta vez con el otro comando:iasl -da *.aml

 

todo correcto  me crea el dsdt.dsl al que renombro dsdt -da.dsl ...... y nuevamente lo abro con Maciasl iasl configurado a 5.1 y le doy a compile para ver si tiene errores, y sorpresa , este tiene 30 errores....

subo también imagen para que lo veáis....

 

 

conclusión cual de los 2 comandos es el bueno y cual es el dsdt bueno????

que diferencia hay de llevar un comando el -dl a no llevarlo???

 

yo he elegido el que solo tenia un error.... para parcharlo y ver que resultados me arrojaba...., Asi que he abierto dsdt-da-dl.dsl y lo he abierto con Maciasl....

me he ido ha patched , he elegido Gigabyte y he buscado mi modelo de placa Z87X-UD4h y le he aplicado el parche que es de PJALM...

y me ha parcheado correctamente , el DSDT, pues ahora dispone de DGTP, WAK.... y todo lo que en teoría lleva el parche..... comprobado escrupulosamente....

y me voy ha compilarlo y sorpresa 1 error y 16 remarks...., conclusión no me deja compilarlo así que guardo como DSDT parchado.dsl

Subo Imagen para que lo veáis...

 

y me pongo a buscar por san google acerca del error aver si puedo solventar el error y me deja compilarlo....  al final llego a un post donde alguien con la misma placa base tiene el mismo error y el dicen que borre la linea que le da el error , porque el error hace referencia a un apartado que no esta en el DSDT, sino en el SSDT .....

la linea borrada es esta: Notify (\_SB.PCI0.PEG0.PEGP, 0x02)

 

y el error como podeis ver en la imagen dice que no existe ese objeto.....

borro esa linea intento volver a compilar y ahora el error ya no esta .... pero aun tengo 16 Remarks que no me dejan compilar del dsdt he buscado por google posibles soluciones a este error , pues en la mayoría es todo el mismo error , y no he encontrado una respuesta clara y concisa.....  ver si podéis ayudarme... y aver consigo  compilar bien este dsdt....

subo los archivo dsl, por si alguien quiere hecharle un vistazo.....

 

y saber si es posible que alguien me explique como puedo agregar mas repositorios como el de Toleda a Maciasl, pues por mucho que lo intento no hay forma y quiero parchar también el SSDTs  los apartados de Grafica Y Audio....

 

 

Saludos y gracias

 

 

Captura de pantalla DSDT-da-dl.png

Captura de pantalla DSDT-da.png

Captura de pantalla DSDT Parchado.png

DSDT-da-dl.zip

DSDT-da.dsl.zip

DSDT parchado.zip

Edited by XAVIDENIA

Gracias mald0n por tu rápida respuesta desde que he puesto el post hasta ahora he tenido tiempo de ver, buscar por internet y por lo que veo  le problema es la versión del descompilador , que debe de ser la misma que la del compilador y si no me equivoco la versión del compilador de mi Acpi es esta: Compiler Version 0x20091112 (537465106), corrigeme, si estoy equivocado, veras la verdad es que necesito saber con que versión de iasl descompilarlo y volverlo a compilar, para no tener errores ni Remarks, pues aun tengo que parchar algunos archivos mas como SSDTs de gráfica y audio...  o con que versión de Maciasl pues en el DSDT solo se parcha el DTGP, WAK Y POCO MAS ....

Por ejemplo el parchado de la cpu  esta en dos SSDTs aparte SSDT Cpu0ist.aml y CpuPm.aml la gráfica esta en otro SSDT...

Para que te hagas una idea te paso todo lo SSDT que me vuelca Clover con la función de la tecla F4....

te subo la carpeta original  de  Clover/Acpi/Origin...... asi veras si tengo archivos para parchar..... y porque necesito saber la versión de iasl utilizada para descompilar y compilar con el menor numero de errores..... 

y necesito y quiero parchar todos esos SSDTs para no tener que depender de configuraciones y kexts , te agradecería cualquier ayuda sobre como puedo Descompilar y volver a Compilar todos estos SSDTs, sin que me den muchos errores. y Gracias por el DSDT parchado.... Gracias nuevamente y saludos

 

 

origin 27-11-2020.zip

Edited by XAVIDENIA

Bueno, tras estar investigando y haciendo pruebas , muchas pruebas y revisando información y parches  sobre todo el de PJALM para Z87X-UD4H...

he llagado a las siguientes conclusiones que paso a detallar......

 He extraído el DSDT en diferentes sistemas operativos , primeramente en Windows 10 , luego en Windows 7 y para terminar en Ubuntu(Linux), Mi sorpresa ha sido mayúscula  cuando en Windows 10 y 7  el DSDT es todo un solo archivo DSDT tras convertir los archivos bin de los DSDTs de Windows 10 y 7 a  aml y posteriormente descompilarlos a dsl, los he comparado y son prácticamente iguales difieren algo en los datos de los usb3.0 y en el stepspeed , pero son exactamente iguales en cuando a los dispositivos que contenidos dentro del DSDT.

y en dichos DSDTs esta hasta la gráfica GFX0 y sus datos, los Devices de sonido tanto HDMI, como el ALC898 con sus datos respectivamente ........

Para investigar un poco mas,  extraje el DSDT en Ubuntu(Linux) version 20.04.1LTS, el archivo obtenido es igual a los de Windows 10 y 7 un solo archivo llamado DSDT en este caso   con extension aml , tras descompilarlo a dsl, y compararlo con uno de los de Windows , los dispositivos contenidos en el DSDT son los mismos , solo difiere en los datos de los dispositivos y algunos de otro nombre de dispositivo....

Si ahora comparo estos DSDTs con los obtenidos en OsX(MacOs Mojave 10.14.6) por medio de Clover ,a lo que es el archivo DSDT le faltan muchos dispositivos que se encuentran en SSDts separados...

de esta forma , los archivos archivos que me arroja son los siguientes:

APIC:

BGRT: Boot Graphics Resource Table

DMAR: DMA Remapping table , Clover me lo Parchea...

DSDT-40400000:

DSDT: configuraciones de algunos dispositivos lo usb no se encuentran aquí...

FACP: Fixed ACPI Description Table (FADT)

FACS: Firmware ACPI Control Structure

FPDT: Firmware Performance Data Table

HPET: High Precision Event Timer table

MATS:

MCFG: Memory Mapped Configuration table

RSDP: Root System Description Pointer

RSDT-FACP: Root System Description Table Fixed ACPI Description Table (FADT)

RSDT-FACS: Root System Description Table Firmware ACPI Control Structure

RSDT: Root System Description Table

SSDT-0-Cpu0Ist: SteepSped Procesador

SSDT-1-CpuPm: otras configuraciones del procesador

SSDT-2-SataTabl: tablas de configuraciones de las conexiones sata

SSDT-3-SaSsdt: tabla de configuraciones de la gráfica Hd4600(GFX0) , asi como audio HDMI y ALC898(HDEF)

XSDT: Extended System Description TableY un DumpLog, que es este:

Quote

73:773  66:705  Found BIOS RSDP at F0000
73:773  0:000  Printing ACPI tables from RSDP F0000 ...
73:773  0:000   F0000: 'RSD PTR ', Rev: 2 (Acpi 2.0 or newer), Len: 36
73:773  0:000    (Xsdt: 7E1C3080, Rsdt: 7E1C3028)
73:773  0:000    7E1C3080: 'XSDT', 'A M I', Rev: 1, Len: 132
73:773  0:000    7E1C3028: 'RSDT', 'A M I', Rev: 1, Len: 84
73:773  0:000    Tables in Xsdt: 12
73:773  0:000    0. 7E1CF090: 'FACP', 'A M I', Rev: 5, Len: 268
73:773  0:000        (Dsdt: 7E1C31A0, Facs: 7E1EB080, XDsdt: 7E1C31A0, XFacs: 0)
73:773  0:000        7E1C31A0: 'DSDT', 'A M I', Rev: 2, Len: 48880
73:773  0:000        7E1EB080: 'FACS', Ver: 2, Len: 64
73:773  0:000    1. 7E1CF1A0: 'APIC', 'A M I', Rev: 3, Len: 146
73:773  0:000    2. 7E1CF238: 'FPDT', 'A M I', Rev: 1, Len: 68
73:773  0:000    3. 7E1CF280: 'SSDT', 'Cpu0Ist', Rev: 1, Len: 1337
73:773  0:000    4. 7E1CF7C0: 'SSDT', 'CpuPm', Rev: 1, Len: 2776
73:773  0:000    5. 7E1D0298: 'MCFG', '', Rev: 1, Len: 60
73:773  0:000    6. 7E1D02D8: 'HPET', 'A M I', Rev: 1, Len: 56
73:773  0:000    7. 7E1D0310: 'SSDT', 'SataTabl', Rev: 1, Len: 877
73:773  0:000    8. 7E1D0680: 'SSDT', 'SaSsdt', Rev: 1, Len: 12953
73:773  0:000    9. 7E1D3920: 'BGRT', 'A M I', Rev: 0, Len: 56
73:773  0:000    10. 7E1D3958: 'DMAR', 'HSW', Rev: 1, Len: 144
73:773  0:000    11. 7E1D39E8: 'MATS', 'A M I', Rev: 2, Len: 52
73:773  0:000    Tables in Rsdt: 12
73:773  0:000    0. 7E1C3118: 'FACP', 'A M I', Rev: 2, Len: 132
73:773  0:000        (Dsdt: 7E1C31A0, Facs: 7E1EB040)
73:773  0:000        7E1C31A0: 'DSDT', 'A M I', Rev: 2, Len: 48880
73:773  0:000        7E1EB040: 'FACS', Ver: 0, Len: 64
73:773  0:000    1. 7E1CF1A0: 'APIC', 'A M I', Rev: 3, Len: 146
73:773  0:000    2. 7E1CF238: 'FPDT', 'A M I', Rev: 1, Len: 68
73:773  0:000    3. 7E1CF280: 'SSDT', 'Cpu0Ist', Rev: 1, Len: 1337
73:773  0:000    4. 7E1CF7C0: 'SSDT', 'CpuPm', Rev: 1, Len: 2776
73:773  0:000    5. 7E1D0298: 'MCFG', '', Rev: 1, Len: 60
73:773  0:000    6. 7E1D02D8: 'HPET', 'A M I', Rev: 1, Len: 56
73:773  0:000    7. 7E1D0310: 'SSDT', 'SataTabl', Rev: 1, Len: 877
73:773  0:000    8. 7E1D0680: 'SSDT', 'SaSsdt', Rev: 1, Len: 12953
73:773  0:000    9. 7E1D3920: 'BGRT', 'A M I', Rev: 0, Len: 56
73:773  0:000    10. 7E1D3958: 'DMAR', 'HSW', Rev: 1, Len: 144
73:773  0:000    11. 7E1D39E8: 'MATS', 'A M I', Rev: 2, Len: 52
73:773  0:000  Found UEFI Acpi 2.0 RSDP at 7E1C3000
73:773  0:000  Saving ACPI tables from RSDP 7E1C3000 to EFI\CLOVER\ACPI\origin ...
73:773  0:000   7E1C3000: 'RSD PTR ', Rev: 2 (Acpi 2.0 or newer), Len: 36 -> RSDP.aml
73:804  0:030    (Xsdt: 7E1C3080, Rsdt: 7E1C3028)
73:804  0:000    7E1C3080: 'XSDT', 'A M I', Rev: 1, Len: 132 -> XSDT.aml
73:812  0:008    7E1C3028: 'RSDT', 'A M I', Rev: 1, Len: 84 -> RSDT.aml
73:813  0:000    Tables in Xsdt: 12
73:813  0:000    0. 7E1CF090: 'FACP', 'A M I', Rev: 5, Len: 268 -> FACP.aml
73:814  0:000        (Dsdt: 7E1C31A0, Facs: 7E1EB080, XDsdt: 7E1C31A0, XFacs: 0)
73:814  0:000        7E1C31A0: 'DSDT', 'A M I', Rev: 2, Len: 48880 -> DSDT.aml
73:830  0:015        7E1EB080: 'FACS', Ver: 2, Len: 64 -> FACS.aml
73:830  0:000    1. 7E1CF1A0: 'APIC', 'A M I', Rev: 3, Len: 146 -> APIC.aml
73:831  0:000    2. 7E1CF238: 'FPDT', 'A M I', Rev: 1, Len: 68 -> FPDT.aml
73:832  0:000    3. 7E1CF280: 'SSDT', 'Cpu0Ist', Rev: 1, Len: 1337 -> SSDT-0-Cpu0Ist.aml
73:833  0:000    4. 7E1CF7C0: 'SSDT', 'CpuPm', Rev: 1, Len: 2776 -> SSDT-1-CpuPm.aml
73:834  0:001    5. 7E1D0298: 'MCFG', '', Rev: 1, Len: 60 -> MCFG.aml
73:835  0:000    6. 7E1D02D8: 'HPET', 'A M I', Rev: 1, Len: 56 -> HPET.aml
73:836  0:000    7. 7E1D0310: 'SSDT', 'SataTabl', Rev: 1, Len: 877 -> SSDT-2-SataTabl.aml
73:836  0:000    8. 7E1D0680: 'SSDT', 'SaSsdt', Rev: 1, Len: 12953 -> SSDT-3-SaSsdt.aml
73:839  0:002    9. 7E1D3920: 'BGRT', 'A M I', Rev: 0, Len: 56 -> BGRT.aml
73:840  0:000    10. 7E1D3958: 'DMAR', 'HSW', Rev: 1, Len: 144 -> DMAR.aml
73:840  0:000    11. 7E1D39E8: 'MATS', 'A M I', Rev: 2, Len: 52 -> MATS.aml
73:841  0:000    Tables in Rsdt: 12
73:841  0:000    0. 7E1C3118: 'FACP', 'A M I', Rev: 2, Len: 132 -> RSDT-FACP.aml
73:842  0:000        (Dsdt: 7E1C31A0, Facs: 7E1EB040)
73:842  0:000        7E1C31A0: 'DSDT', 'A M I', Rev: 2, Len: 48880
73:842  0:000        7E1EB040: 'FACS', Ver: 0, Len: 64 -> RSDT-FACS.aml
73:843  0:000    1. 7E1CF1A0: 'APIC', 'A M I', Rev: 3, Len: 146
73:843  0:000    2. 7E1CF238: 'FPDT', 'A M I', Rev: 1, Len: 68
73:843  0:000    3. 7E1CF280: 'SSDT', 'Cpu0Ist', Rev: 1, Len: 1337
73:843  0:000    4. 7E1CF7C0: 'SSDT', 'CpuPm', Rev: 1, Len: 2776
73:843  0:000    5. 7E1D0298: 'MCFG', '', Rev: 1, Len: 60
73:843  0:000    6. 7E1D02D8: 'HPET', 'A M I', Rev: 1, Len: 56
73:843  0:000    7. 7E1D0310: 'SSDT', 'SataTabl', Rev: 1, Len: 877
73:843  0:000    8. 7E1D0680: 'SSDT', 'SaSsdt', Rev: 1, Len: 12953
73:843  0:000    9. 7E1D3920: 'BGRT', 'A M I', Rev: 0, Len: 56
73:843  0:000    10. 7E1D3958: 'DMAR', 'HSW', Rev: 1, Len: 144
73:843  0:000    11. 7E1D39E8: 'MATS', 'A M I', Rev: 2, Len: 52
73:843  0:000  Found UEFI Acpi 1.0 RSDP at 7E1C3000
73:843  0:000  Printing ACPI tables from RSDP 7E1C3000 ...
73:843  0:000   7E1C3000: 'RSD PTR ', Rev: 2 (Acpi 2.0 or newer), Len: 36
73:843  0:000    (Xsdt: 7E1C3080, Rsdt: 7E1C3028)
73:843  0:000    7E1C3080: 'XSDT', 'A M I', Rev: 1, Len: 132
73:843  0:000    7E1C3028: 'RSDT', 'A M I', Rev: 1, Len: 84
73:843  0:000    Tables in Xsdt: 12
73:843  0:000    0. 7E1CF090: 'FACP', 'A M I', Rev: 5, Len: 268
73:843  0:000        (Dsdt: 7E1C31A0, Facs: 7E1EB080, XDsdt: 7E1C31A0, XFacs: 0)
73:843  0:000        7E1C31A0: 'DSDT', 'A M I', Rev: 2, Len: 48880
73:843  0:000        7E1EB080: 'FACS', Ver: 2, Len: 64
73:843  0:000    1. 7E1CF1A0: 'APIC', 'A M I', Rev: 3, Len: 146
73:843  0:000    2. 7E1CF238: 'FPDT', 'A M I', Rev: 1, Len: 68
73:843  0:000    3. 7E1CF280: 'SSDT', 'Cpu0Ist', Rev: 1, Len: 1337
73:843  0:000    4. 7E1CF7C0: 'SSDT', 'CpuPm', Rev: 1, Len: 2776
73:843  0:000    5. 7E1D0298: 'MCFG', '', Rev: 1, Len: 60
73:843  0:000    6. 7E1D02D8: 'HPET', 'A M I', Rev: 1, Len: 56
73:843  0:000    7. 7E1D0310: 'SSDT', 'SataTabl', Rev: 1, Len: 877
73:843  0:000    8. 7E1D0680: 'SSDT', 'SaSsdt', Rev: 1, Len: 12953
73:843  0:000    9. 7E1D3920: 'BGRT', 'A M I', Rev: 0, Len: 56
73:843  0:000    10. 7E1D3958: 'DMAR', 'HSW', Rev: 1, Len: 144
73:843  0:000    11. 7E1D39E8: 'MATS', 'A M I', Rev: 2, Len: 52
73:843  0:000    Tables in Rsdt: 12
73:843  0:000    0. 7E1C3118: 'FACP', 'A M I', Rev: 2, Len: 132
73:843  0:000        (Dsdt: 7E1C31A0, Facs: 7E1EB040)
73:843  0:000        7E1C31A0: 'DSDT', 'A M I', Rev: 2, Len: 48880
73:843  0:000        7E1EB040: 'FACS', Ver: 0, Len: 64
73:843  0:000    1. 7E1CF1A0: 'APIC', 'A M I', Rev: 3, Len: 146
73:843  0:000    2. 7E1CF238: 'FPDT', 'A M I', Rev: 1, Len: 68
73:843  0:000    3. 7E1CF280: 'SSDT', 'Cpu0Ist', Rev: 1, Len: 1337
73:843  0:000    4. 7E1CF7C0: 'SSDT', 'CpuPm', Rev: 1, Len: 2776
73:843  0:000    5. 7E1D0298: 'MCFG', '', Rev: 1, Len: 60
73:843  0:000    6. 7E1D02D8: 'HPET', 'A M I', Rev: 1, Len: 56
73:843  0:000    7. 7E1D0310: 'SSDT', 'SataTabl', Rev: 1, Len: 877
73:843  0:000    8. 7E1D0680: 'SSDT', 'SaSsdt', Rev: 1, Len: 12953
73:843  0:000    9. 7E1D3920: 'BGRT', 'A M I', Rev: 0, Len: 56
73:843  0:000    10. 7E1D3958: 'DMAR', 'HSW', Rev: 1, Len: 144
73:843  0:000    11. 7E1D39E8: 'MATS', 'A M I', Rev: 2, Len: 52
 

 

estos archivos varían en mas o menos cantidad dependiendo de la version de Osx (MacOs) o de version de Clover y eso es algo constatado, por mi tras haber actualizado a varias versiones  de OsX y con ello actualizado las versiones de Clover.... Puedo decir que la version actual es la que menos archivos me arroja....

 

Conclusion o modifican algo de Clover que hace que tras cada actualización varíen los números de archivos que extrae , seccionando el DSDT en SSDTs  o  esa modificación esta en el propio OsX que es lo mas posible debido a que sufre mas cambios el sistema operativo que el propio Clover.....

Llegue a pensar que el problema era la forma de extraer en el DSDT con Clover, es por eso que he buscado y rebuscado por internet y san Google otra forma de extraer el DSDT en OsX , solo obtuve un resultado para extraerlo sin Clover, se trataba de un comando de terminal, era algo antiguo pues por lo que puede leer se uso desde OsX Lion hasta OsX Mavericks para extraer los DSDTs, pero no perdía nada por probar y ver si funcionaba, lo probé y no me extrajo nada , ni me hizo nada... el comando era este, y lo extraje de este foro en una respuesta de Maniac10... en este post: https://www.insanelymac.com/forum/topic/298324-extraer-dsdt/

 

Quote

perl -e 'open(CMD, "ioreg -lw0 \| grep DSDT|") or die; while(<CMD>) { chomp; if($_ =~ /\"DSDT\.?\d?\"=<([^>]*)>/) { $buff = $1; open(PIP, "|xxd -r -p > ~/Desktop/dsdt.aml") or die; print PIP "$1"; } }'

 

Total al final me decidi por parchar el DSDT Obtenido Tanto en Linux , Como en Osx con el parche Z87x-UD4H de PJALM...

en el de Linux me lo Parcha, pero me arroja un error tras buscar este error en internet y san google  descubrí que era un error en el parche de Z87x-UD4H de PJALM, error que expondré mas abajo junto con el parche, junto con la solución...

en el OsX lo parchea bien pero al igual que en Linux me arroja el mismo error que al igual que en Linux pude solucionar, mas otro error comentado en el primer post y en el cual  hay fotos y que tiene que ver con esta linea  Notify (\_SB.PCI0.PEG0.PEGP, 0x02)

el error es en la linea: 11963 con código: 6084 y descripción: Object does not exist(/_SB.PCI0-PEG0.PEGP) y tras buscar por internet conseguí llegar a un post donde se recomendaba quitar es linea  Notify (\_SB.PCI0.PEG0.PEGP, 0x02) quitar el error pues esta linea hacia referencia a un dispositivo que se encontraba en otra tabla ósea en un SSDT....

error tambien solucionado.... lo demas son 16 Remarks , que en teoría no debería afectar al funcionamiento del DSDT , pero que estaría bien corregir y depurar...

expongo parche de PJALM Y marco el error que se puede evitar corrigiendo el parche antes de aplicarlo...

Quote

# Maintained by: PJALM for: PJALM Gigabyte at: Thu Apr 10 09:44:57 UTC 2014
# Patch Name   : Z87X-UD4H
# Note         : Please apply a graphics patch after applying this patch, available from the graphics repository.

# Add the DTGP method
into method label DTGP remove_entry;
into definitionblock code_regex . insert begin
Method (DTGP, 5, NotSerialized)\n
{\n
	If (LEqual (Arg0, Buffer (0x10)\n
		{\n
			/* 0000 */	0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,\n
			/* 0008 */	0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B\n
		}))\n
	{\n
		If (LEqual (Arg1, One)) {\n
			If (LEqual (Arg2, Zero)) {\n
				Store (Buffer (One) { 0x03 }, Arg4)\n
				Return (One)\n
			}\n
			If (LEqual (Arg2, One)) {\n
				Return (One)\n
			}\n
		}\n
	}\n
	Store (Buffer (One) { 0x00 }, Arg4)\n
	Return (Zero)\n
}
end;

# Add Darwin to the supported operating systems
into method label _INI code_regex \{(\s+)(If\s\(_OSI\s\("Windows\s2001"\)\)) replace_matched begin  {\n
						If (_OSI ("Darwin"))\n
						{\n
							Store (0x2710, OSYS)\n
						}\n
\n
						$2
end;

# Intel 8 Series Fixes
into_all all code_regex _T_([0-6]) replaceall_matched begin T_%1 end;
into device label EC0 set_label begin EC end;
into_all all code_regex EC0 replaceall_matched begin EC end;
into method label _REG parent_label EC remove_entry;
into device label COPR set_label begin MATH end;
into_all all code_regex COPR replaceall_matched begin MATH end;
into_all all code_regex 0x000EC00 replaceall_matched begin 0x000EC000 end;
into_all all code_regex 0xFEC0000 replaceall_matched begin 0xFEC00000 end;
_________________________________________________________________________________________________________________
into_all all code_regex (Name\s\(_HID,\s"ABCDEFGH") replace_matched begin Name (_HID, EisaId ("PNP0C15") end;
En esta Linea  esta el error que se produce al usar este parche  marcado en rojo GH se debe de cambiar a FF pues GH no existe
en hexadecimal, esto lo puede extraer despues de mucho buscar por internet...
_________________________________________________________________________________________________________________
into device label SIO1 code_regex 0x00(,\s+//\s+L) replaceall_matched begin 0x01%1 end;
into_all all code_regex (Acquire\s\(MUT0,\s0x)....\) replace_matched begin %1FFFF) end;
into_all all code_regex pnp0c14 replaceall_matched begin PNP0C14 end;
into method label _CRS parent_label PCI0 code_regex CreateDWordField\s\(BUF0,\s\\_SB.PCI0._Y0F._LEN,\sMSLN\) replace_matched begin CreateQWordField (BUF0, \\_SB.PCI0._Y0F._LEN, MSLN) end;
into_all all code_regex (Return\s\(Package\s\()0x00(\)\s\{\}\)) replace_matched begin %1Zero%2 end;
into_all all code_regex (Name\s\(XMPT,\sBuffer\s\()0x0000(\)\s\{\}\)) replace_matched begin %1Zero%2 end;
into method label RDGI parent_label _SB insert begin Return (Zero) end;
into method label RDGP parent_label _SB insert begin Return (Zero) end;
into method label SPL1 insert begin Return (Zero) end;
into method label _DEP parent_label PRT1 code_regex (Return\s\(Package\s\()0x00(\)\s\{\}\)) replace_matched begin %1Zero%2 end;
into method label _HID parent_label _SB.TPM code_regex (Return\s\(Zero\)\s*) removeall_matched;
into method label _HID parent_label _SB.TPM insert begin Return (Zero) end;

into definitionblock code_regex External\s\(_SB_.PCI0.PEG0\) removeall_matched;
into definitionblock code_regex External\s\(_SB_.PCI0.PEG1\) removeall_matched;
into definitionblock code_regex External\s\(_SB_.PCI0.PEG2\) removeall_matched;

into method label _DEP parent_label XHC remove_entry;
into method label PR2S parent_label XHC remove_entry;
into method label _PS0 parent_label XHC remove_entry;
into method label _PS3 parent_label XHC remove_entry;

into method label _E1E parent_label _GPE insert begin Return (Zero) end;

into method label ADBG parent_label PRT1 code_regex (Return\s\(Package\s\()0x00(\)\s\{\}\)) remove_matched;
into method label ADBG replace_content begin
If (CondRefOf (MDBG))\n
{\n
    Return (MDBG)\n
}\n
Return (Zero)\n
end;

into device label SAT0 set_label begin SATA end;
into_all all code_regex SAT0 replaceall_matched begin SATA end;
into device label SAT1 remove_entry;
into method label _DSM parent_label SATA remove_entry;
into device label SATA insert begin
Method (_DSM, 4, NotSerialized)\n
{\n
	Store (Package (0x08) {\n
		"AAPL,slot-name", "Built In",\n
		"name", "Intel AHCI Controller",\n
		"model", Buffer (0x2D) {"Intel 8 Series Chipset Family SATA Controller"},\n
		"device_type", Buffer (0x0F) {"AHCI Controller"},\n
	}, Local0)\n
	DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
	Return (Local0)\n
}
end;

#Gigabyte Haswell Additional Fixes

#into method label RDGI parent_label _SB code_regex Return\s\(Zero\) remove_matched;
#into method label RDGP parent_label _SB code_regex Return\s\(Zero\) remove_matched;

## Method RDGI in _SB
into method label RDGI parent_label _SB code_regex ([\s\S]*) store_%8;
into method label RDGI parent_label _SB remove_entry;
into scope label _SB insert begin Method (RDGI, 1, Serialized)\n{\n\n} end;
into method label RDGI parent_label _SB code_regex .* replace_matched begin %8 end;

## Method RDGP in _SB
into method label RDGP parent_label _SB code_regex ([\s\S]*) store_%8;
into method label RDGP parent_label _SB remove_entry;
into scope label _SB insert begin Method (RDGP, 1, Serialized)\n{\n\n} end;
into method label RDGP parent_label _SB code_regex .* replace_matched begin %8 end;

## Method WTGP in _SB
into method label WTGP parent_label _SB code_regex ([\s\S]*) store_%8;
into method label WTGP parent_label _SB remove_entry;
into scope label _SB insert begin Method (WTGP, 2, Serialized)\n{\n\n} end;
into method label WTGP parent_label _SB code_regex .* replace_matched begin %8 end;

## Method WTIN in _SB
into method label WTIN parent_label _SB code_regex ([\s\S]*) store_%8;
into method label WTIN parent_label _SB remove_entry;
into scope label _SB insert begin Method (WTIN, 2, Serialized)\n{\n\n} end;
into method label WTIN parent_label _SB code_regex .* replace_matched begin %8 end;

## Method WPGP in _SB
into method label WPGP parent_label _SB code_regex ([\s\S]*) store_%8;
into method label WPGP parent_label _SB remove_entry;
into scope label _SB insert begin Method (WPGP, 2, Serialized)\n{\n\n} end;
into method label WPGP parent_label _SB code_regex .* replace_matched begin %8 end;

## Method GP2N in _SB
into method label GP2N parent_label _SB code_regex ([\s\S]*) store_%8;
into method label GP2N parent_label _SB remove_entry;
into scope label _SB insert begin Method (GP2N, 2, Serialized)\n{\n\n} end;
into method label GP2N parent_label _SB code_regex .* replace_matched begin %8 end;

## Method GP2A in _SB
into method label GP2A parent_label _SB code_regex ([\s\S]*) store_%8;
into method label GP2A parent_label _SB remove_entry;
into scope label _SB insert begin Method (GP2A, 2, Serialized)\n{\n\n} end;
into method label GP2A parent_label _SB code_regex .* replace_matched begin %8 end;

## Method GP2B in _SB
into method label GP2B parent_label _SB code_regex ([\s\S]*) store_%8;
into method label GP2B parent_label _SB remove_entry;
into scope label _SB insert begin Method (GP2B, 2, Serialized)\n{\n\n} end;
into method label GP2B parent_label _SB code_regex .* replace_matched begin %8 end;

## Method GACI in PTMD
into method label GACI parent_label PTMD code_regex ([\s\S]*) store_%8;
into method label GACI parent_label PTMD remove_entry;
into device label PTMD insert begin Method (GACI, 0, Serialized)\n{\n\n} end;
into method label GACI parent_label PTMD code_regex .* replace_matched begin %8 end;

## Method GDSV in PTMD
into method label GDSV parent_label PTMD code_regex ([\s\S]*) store_%8;
into method label GDSV parent_label PTMD remove_entry;
into device label PTMD insert begin Method (GDSV, 1, Serialized)\n{\n\n} end;
into method label GDSV parent_label PTMD code_regex .* replace_matched begin %8 end;

## Method GXDV in PTMD
#into method label GXDV parent_label PTMD code_regex ([\s\S]*) store_%8;
#into method label GXDV parent_label PTMD remove_entry;
#into device label PTMD insert begin Method (GXDV, 0, Serialized)\n{\n\n} end;
#into method label GXDV parent_label PTMD code_regex .* replace_matched begin %8 end;

## Method _GTF in PRT0
#into method label _GTF parent_label PRT0 code_regex ([\s\S]*) store_%8;
#into method label _GTF parent_label PRT0 remove_entry;
#into device label PRT0 insert begin Method (_GTF, 0, Serialized)\n{\n\n} end;
#into method label _GFT parent_label PRT0 code_regex .* replace_matched begin %8 end;

## Method _GTF in PRT1
#into method label _GTF parent_label PRT1 code_regex ([\s\S]*) store_%8;
#into method label _GTF parent_label PRT1 remove_entry;
#into device label PRT1 insert begin Method (_GTF, 0, Serialized)\n{\n\n} end;
#into method label _GFT parent_label PRT1 code_regex .* replace_matched begin %8 end;

## Method _GTF in PRT3
#into method label _GTF parent_label PRT3 code_regex ([\s\S]*) store_%8;
#into method label _GTF parent_label PRT3 remove_entry;
#into device label PRT3 insert begin Method (_GTF, 0, Serialized)\n{\n\n} end;
#into method label _GFT parent_label PRT3 code_regex .* replace_matched begin %8 end;

## Method GXDV in PTMD
into method label GXDV parent_label PTMD code_regex ([\s\S]*) store_%8;
into method label GXDV parent_label PTMD remove_entry;
into device label PTMD insert begin Method (GXDV, 1, Serialized)\n{\n\n} end;
into method label GXDV parent_label PTMD code_regex .* replace_matched begin %8 end;

# Fix HDEF device for the Realtek ALC898 audio codec, edits thanks to Toleda
into method label _DSM parent_label HDEF remove_entry;
into device label HDEF insert begin
Method (_DSM, 4, NotSerialized)\n
{\n
	Store (Package (0x0E) {\n
		"AAPL,slot-name", "Built In",\n
		"name", "Realtek Audio Controller",\n
		"model", Buffer () {"Realtek ALC898 Audio Controller"},\n
		"device_type", Buffer (0x10) {"Audio Controller"},\n
		"layout-id", Buffer (0x04) {0x01,0x00,0x00,0x00},\n
		"PinConfigurations", Buffer (Zero) {},\n
		"hda-gfx", Buffer (0x0A) {"onboard-1"}\n
	}, Local0)\n
	DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
	Return (Local0)\n
}
end;

# Fixes 'Built-in' status for Intel Gigabit Ethernet
into method label _DSM parent_label GLAN remove_entry;
into device label GLAN insert begin
Method (_DSM, 4, NotSerialized)\n
{\n
	Store (Package (0x0C) {\n
		"AAPL,slot-name", "Built In",\n
		"name", "Intel Ethernet Controller",\n
		"model", "Intel I217-V Gigabit Network Controller",\n
		"device_type", Buffer (0x13) {"Ethernet Controller"},\n
		"built-in", Buffer (One) {0x01},\n
		"location", Buffer (0x02) {"1"}\n
	}, Local0)\n
	DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
	Return (Local0)\n
}
end;

# Patches the Intel USB3 on Intel 8 Series chipsets to allow more power output
#Fix EHC1
into method label _DSM parent_label EHC1 remove_entry;
into device label EHC1 insert begin
Method (_DSM, 4, NotSerialized)\n
{\n
	Store (Package (0x15) {\n
		"AAPL,slot-name", "Built In",\n
		"name", "Intel EHCI Controller",\n
		"model", Buffer(0x3E) {"Intel 8 Series Chipset Family USB Enhanced Host Controller #1"},\n
		"device_type", Buffer (0x0E) {"USB Controller"},\n
		"AAPL,current-available", 0x0834,\n
		"AAPL,current-extra", 0x0A8C,\n    
		"AAPL,current-in-sleep", 0x03E8,\n
		"AAPL,current-extra-in-sleep", 0x0834,\n
		"AAPL,max-port-current-in-sleep", 0x0A8C,\n
		"AAPL,device-internal", 0x02,\n
		Buffer (One) {0x00}\n
	}, Local0)\n
	DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
	Return (Local0)\n
}
end;

#Fix EHC2
into method label _DSM parent_label EHC2 remove_entry;
into device label EHC2 insert begin
Method (_DSM, 4, NotSerialized)\n
{\n
	Store (Package (0x15) {\n
		"AAPL,slot-name", "Built In",\n
		"name", "Intel EHCI Controller",\n
		"model", Buffer (0x3E) {"Intel 8 Series Chipset Family USB Enhanced Host Controller #2"},\n
		"device_type", Buffer (0x0E) {"USB Controller"},\n
		"AAPL,current-available", 0x0834,\n
		"AAPL,current-extra", 0x0A8C,\n
		"AAPL,current-in-sleep", 0x03E8,\n
		"AAPL,current-extra-in-sleep", 0x0834,\n
		"AAPL,max-port-current-in-sleep", 0x0A8C,\n
		"AAPL,device-internal", 0x02,\n
		Buffer (One) {0x00}\n
	}, Local0)\n
	DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
	Return (Local0)\n
}
end;

#Fix XHC1
into device label XHC set_label begin XHC1 end;
into_all all code_regex XHC(?=\W) replaceall_matched begin XHC1 end;
into method label _DSM parent_label XHC1 remove_entry;
into device label XHC1 insert begin
Method (_DSM, 4, NotSerialized)\n
{\n
	Store (Package (0x15) {\n
		"AAPL,slot-name", "Built In",\n
		"name", "Intel XHCI Controller",\n
		"model", Buffer (0x37) {"Intel 8 Series Chipset Family USB xHCI Host Controller"},\n
		"device_type", Buffer (0x0E) {"USB Controller"},\n
		"AAPL,current-available", 0x0834,\n
		"AAPL,current-extra", 0x0A8C,\n
		"AAPL,current-in-sleep", 0x03E8,\n
		"AAPL,current-extra-in-sleep", 0x0834,\n
		"AAPL,max-port-current-in-sleep", 0x0A8C,\n
		"AAPL,device-internal", 0x02,\n
		Buffer (One) {0x00}\n
	}, Local0)\n
	DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
	Return (Local0)\n
}
end;

 

  

un error tonto, pero que es fácil que pase , no critico a PJALM , que bastante hace creando parches de forma desinteresada, para aquellos que no tienen mucha idea de programación  todo esto... y es comprensible que tras hacer tantos parches cometas algún error...

por lo demas el parche es bastante completo, renombra bastantes dispositivos y edita muchos dispositivos de la placa como la conexión Lan I-217, dispositivos de audio alc898 y Hdmi, usb´s 3.0 y así con casi todos los dispositivos de la placa.....

 

el unico problema que le encuentro yo a este parche es que esta creado para parchar un solo archivo DSDT, con lo cual con DSDts extraídos como el mío que lleva muchos SSDTs, muchos dispositivos darán error al no encontrarlos por estar en otras Tablas SSDT, con lo cual la forma de parchar con este parche, tablas asi seria ir buscando dispositivos en los distintos SSDts y parchando manualmente uno por uno , con el trabajo que ello conlleva....

 

Lo cual me hace pensar , si PJALM creo este parche para mi modelo de placa y para parchar todos los dispositivos en un solo DSDT.....

esta mal el DSDT que el Extrajo y parcheo o esta mal el DSDT que yo extraigo con F4 de Clover y todos sus SSDTs???

poniéndonos en el peor de los casos y poniendo que ambas extracciones estan bien y que depende de la version de BIOS, o de la version de la placa....

Debo de poner el DSDT que me ha pasado en la respuesta anterior Mald0n con todos los dispositivos en un solo DSDT??

o por el contrario Debería de parchar los SSDTs necesarios de los que he extraído y usar estos???

 

Perdonad el Ladrillo, pero  creo de debía de explicar todo lo investigado y averiguado concienzudamente, para que todos puedan entenderlo y puedan expresar sus opiniones, dudas y sabiduría , para asi sacar una conclusión y posible solución al parcheo del DSDT de esta placa , y para que sirva de referencia , por si alguien mas con esta placa tiene , mis mismas dudas o problemas para parchar el DSDT de esta placa...

 

espero que entro todos lleguemos a buen puerto...

Gracias y saludos

Edited by XAVIDENIA
×
×
  • Create New...