XAVIDENIA Posted July 9, 2021 Share Posted July 9, 2021 hola buenas noches, aver si alguien es capaz de aclarar mis dudas , sobre como hacer este ssdt , solo para el dispositivo de mi placa.... He estado siguiendo la guia Op'encore de Dortania y he conseguido crear el ssdt-plug , especifico para mi placa, ahora estoy tratando de hacer el ssdt-ec , especifico pàra mi placa y siguiendo la guia opencore de Dortania, estoy tratando de hacer el ssdt-ec especifico pra mi placa de forma manual, segun explica en esta seccion de la guia.... Fixing Embedded Controllers: Manual | Getting Started With ACPI (dortania.github.io) En definitiva abro mi dsdt y busco el dispositivo PNP0C09 y solo me aparce un dispositivo, este: Scope (_SB.PCI0.LPCB) { Device (H_EC) { Name (_HID, EisaId ("PNP0C09") /* Embedded Controller Device */) // _HID: Hardware ID Name (_UID, One) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { ^^^GFX0.CLID = 0x03 Return (Zero) } como podeis ver en la imagen.... la duda que tengo es que al abrir el ssdt-ec-desktop , preconfigurado de la pagina de Dortania o el que viene preconfigurado en la carpeta docs de opencore , me salen muchos externals para muchas placas , asi que para personalizarlo , he ido quitando todos los dispositivos que no se conrrespondian con mi el de mi placa base... y al final solo me han quedado 3 dispositivos que podrian que pueden concordar con mi placa base , pero no se cual de los 3 es el que debo de dejar y y cual de los otros debo eliminar..... esa es mi principal duda..... de los 3 externals , marcados en amarillo,que me quedan despues de haber eliminado los que no eran, cual es el que se corresponde al de mi placa segun la imagen que he subido de mi dsdt??? y la otra duda es cuales son los dispositivos que debo de renombrar,todos, o renombro todos , menos el 1??? y como los renombro,como _SB.PC00.LPC0 o _SB.PC00.LPC0.H_EC??? Porque en la Guia de Dortania , no queda muy claro cuales renombrar , ni como renombrarlos.... Quote External (_SB_.PCI0.LPCB, DeviceObj) External (_SB_.PCI0.LPCB.H_EC, DeviceObj) External (_SB_.PCI0.LPCB.H_EC._STA, MethodObj) // 255 Arguments If (CondRefOf (\_SB.PCI0.LPCB.H_EC)) <---DEBO RENOMBRAR, ESTE QUE ES EL 1?? { If ((((CondRefOf (\_SB.PCI0.LPCB.H_EC._HID) && CondRefOf (\_SB.PCI0.LPCB.H_EC._CRS)) && CondRefOf (\_SB.PCI0.LPCB.H_EC._GPE )) && !CondRefOf (\_SB.PCI0.LPCB.H_EC._STA))) <--- DEBO RENOMBRAR , ESTOS QUE PONGAMOS SON EL 2 ?? { Scope (\_SB.PCI0.LPCB.H_EC) <--- DEBO RENOMBRAR, QUE POR DARLE UN IDENFICATIVO ES EL 3 ??? { Method (_STA, 0, NotSerialized) // _STA: Status { If (_OSI ("Darwin")) { Return (Zero) } Else { Return (0x0F) } } } } } Scope (\_SB) { Device (EC) { Name (_HID, "ACID0001") // _HID: Hardware ID Method (_STA, 0, NotSerialized) // _STA: Status { If (_OSI ("Darwin")) { Return (0x0F) } Else { Return (Zero) } } } } } espero alguien pueda ayudarma ha escalrecer mis dudas... gracias y saludos Link to comment Share on other sites More sharing options...
miliuco Posted July 9, 2021 Share Posted July 9, 2021 (edited) @XAVIDENIA Yo creo que tú estás en el subgrupo de la guía de Dortania "PNP0C09 already has an _STA method". Pero crear a mano el archivo SSDT-EC es una tarea relativamente compleja salvo que sólo tengas un dispositivo PNP0C09 y que este no tenga método _STA. La mayoría de nosotros usamos los SSDT precompilados, no creados por nosotros mismos, y suelen funcionar bien. Aunque veas más código del requerido por tu sistema, en la práctica no suele generar inconveniente alguno. Con tu CPU necesitas 2: SSDT-PLUG y SSDT-EC-DESKTOP, Este es el enlace para el que requiere tu sistema. Edited July 10, 2021 by miliuco Link to comment Share on other sites More sharing options...
XAVIDENIA Posted July 10, 2021 Author Share Posted July 10, 2021 Gracias por la rapida respuesta , y efectivamente, si lees bien mi post de arriba en mi dsdt , extraido de mi pc , desde windows 10, solo aparece un dispositivo PNP0C09 que es la imagen que he subido, por eso no creo que sea tan dificil , crearlo especificamente para mi placa.... solo necesito resolver las dudas que expuesto anteriormente , para poder llevarlo a cabo y terminarlo... nadie dice que no funcionen bien los ssdt's precompilados , pero en mi caso preferiria hacerlo exclusivo para mi placa o cpu, y asi evitar la penalizacion de tiempo de arranque y ejecucion, que conlleva poner un ssdt precompilado, asi entre un poco que le gano al ssdt-plug y otro poco al ssdt-ec entre otras cosas, aver si consigo hacer un arranque realmente rapido... gracias y saludos.... Link to comment Share on other sites More sharing options...
uzmi Posted July 10, 2021 Share Posted July 10, 2021 (edited) Este es tu caso O sea, no tocar nada de ahi y crear un Device EC ficticio Y si no me equivoco lo que querrias es algo asi: (Basado en el SSDT de Dortania y quitando no que no corresponde) Edited July 10, 2021 by uzmi Ahora si, me habia liado 1 Link to comment Share on other sites More sharing options...
etorix Posted July 10, 2021 Share Posted July 10, 2021 @uzmi tiene razón. El dispositivo H_EC no está activado (_STA devuelve 0); solo necesitas un EC ficticio. El SSDT-EC predeterminado es muy inteligente. If (CondRefOf (\_SB.PCI0.LPCB.H_EC)) <--- Esto prueba si hay un objeto \ _SB.PCI0.LPCB.H_EC. Nunca cambie el nombre, simplemente elimine toda la sección si no es aplicable. { If ((((CondRefOf (\_SB.PCI0.LPCB.H_EC._HID) && CondRefOf (\_SB.PCI0.LPCB.H_EC._CRS)) && CondRefOf (\_SB.PCI0.LPCB.H_EC._GPE )) && !CondRefOf (\_SB.PCI0.LPCB.H_EC._STA))) <--- Esto luego prueba que H_EC es un EC verdadero, funcional y NO tiene método _STA. No cambies. { Scope (\_SB.PCI0.LPCB.H_EC) <-- Si se cumplen todas las condiciones, esto deshabilita H_EC solo para OS X. No cambies. { … } } } <-- Fin de la sección. Elimine todo o déjelo todo como está. Disculpas si esto suena extraño, no hablo español. Pero yo hago mi propio SSDT, y creo en: "Dale un pescado a un hombre y lo alimentarás por un día. Enséñale a pescar y lo alimentarás por el resto de su vida". 1 1 Link to comment Share on other sites More sharing options...
miliuco Posted July 10, 2021 Share Posted July 10, 2021 @uzmi @etorix Excelente explicación. Espero que @XAVIDENIA solucione su duda con vuestra ayuda. 1 Link to comment Share on other sites More sharing options...
XAVIDENIA Posted July 13, 2021 Author Share Posted July 13, 2021 (edited) Gracias por las respuestas... he modificado el ssdt segun sus ayudas.... y así seria como se me queda.... Quote /* * Intel ACPI Component Architecture * AML/ASL+ Disassembler version 20210604 (32-bit version) * Copyright (c) 2000 - 2021 Intel Corporation * * Disassembling to symbolic ASL+ operators * * Disassembly of SSDT-EC-DESKTOP.aml, Fri Jul 9 21:34:26 2021 * * Original Table Header: * Signature "SSDT" * Length 0x00001C1B (7195) * Revision 0x02 * Checksum 0xB4 * OEM ID "DRTNIA" * OEM Table ID "SsdtEC" * OEM Revision 0x00001000 (4096) * Compiler ID "INTL" * Compiler Version 0x20210105 (539033861) */ DefinitionBlock ("", "SSDT", 2, "DRTNIA", "SsdtEC", 0x00001000) { External (_SB_.PCI0.LPCB.H_EC, DeviceObj) External (_SB_.PCI0.LPCB.H_EC._STA, MethodObj) // 255 Arguments If (CondRefOf (\_SB.PCI0.LPCB.H_EC)) { If ((((CondRefOf (\_SB.PCI0.LPCB.H_EC._HID) && CondRefOf (\_SB.PCI0.LPCB.H_EC._CRS)) && CondRefOf (\_SB.PCI0.LPCB.H_EC._GPE )) && !CondRefOf (\_SB.PCI0.LPCB.H_EC._STA))) { Scope (\_SB.PCI0.LPCB.H_EC) { Method (_STA, 0, NotSerialized) // _STA: Status { If (_OSI ("Darwin")) { Return (Zero) } Else { Return (0x0F) } } } } } Scope (\_SB) { Device (EC) { Name (_HID, "ACID0001") // _HID: Hardware ID Method (_STA, 0, NotSerialized) // _STA: Status { If (_OSI ("Darwin")) { Return (0x0F) } Else { Return (Zero) } } } } } Serian tan amables de decirme, si esta bien, o si me he dejado algo por el camino... gracias y saludos Edited July 13, 2021 by XAVIDENIA Link to comment Share on other sites More sharing options...
miliuco Posted July 13, 2021 Share Posted July 13, 2021 Yo lo veo bien. Notas que macOS funciona bien con este SSDT? Link to comment Share on other sites More sharing options...
Recommended Posts