miliuco Posted January 31, 2009 Share Posted January 31, 2009 Cuando genero el archivo dsdst.aml en el hardware de la firma suelo obtener este aviso (warning): ./dsdt_fixed.txt 222: Method (\_WAK, 1, NotSerialized) Warning 1080 - ^ Reserved method must return a value (_WAK) ASL Input: ./dsdt_fixed.txt - 5553 lines, 185901 bytes, 2321 keywords AML Output: ././dsdt.aml - 17902 bytes, 658 named objects, 1663 executable opcodes Compilation complete. 0 Errors, 1 Warnings, 0 Remarks, 638 Optimizations El motivo radica efectivamente en el método _WAK que aparece así (para verlo hay que descompilar el archivo dsdt.aml con la herramienta iasl y la opción -d obteniendo un archivo dsdt.dsl que es de tipo texto): Method (_WAK, 1, NotSerialized) { Store (0xFF, DBG1) If (LEqual (Arg0, 0x03)) { Store (0x8F, SCP) } If (LEqual (Arg0, 0x04)) { If (LEqual (OSFL, Zero)) { If (LEqual (OSFX, 0x03)) { Store (0x59, SMIP) } Else { Store (0x58, SMIP) } } If (LEqual (OSFL, One)) { Store (0x56, SMIP) } If (LEqual (OSFL, 0x02)) { Store (0x57, SMIP) } If (LEqual (OSFX, 0x03)) { Store (0x59, SMIP) } } If (LEqual (Arg0, One)) {} If (OSFL) { Notify (\_SB.PWRB, 0x02) } Else { If (LEqual (RTCW, Zero)) { Notify (\_SB.PWRB, 0x02) } } Notify (\_SB.PCI0.USB0, Zero) Notify (\_SB.PCI0.USB1, Zero) Notify (\_SB.PCI0.USB2, Zero) Notify (\_SB.PCI0.USB3, Zero) Notify (\_SB.PCI0.USB4, Zero) Notify (\_SB.PCI0.USB5, Zero) } Si añado al final del método (antes del último paréntesis de cierre) este texto: Return (Package (0x02) { Zero, Zero }) dejando el método _WAK completo así: Method (_WAK, 1, NotSerialized) { Store (0xFF, DBG1) If (LEqual (Arg0, 0x03)) { Store (0x8F, SCP) } If (LEqual (Arg0, 0x04)) { If (LEqual (OSFL, Zero)) { If (LEqual (OSFX, 0x03)) { Store (0x59, SMIP) } Else { Store (0x58, SMIP) } } If (LEqual (OSFL, One)) { Store (0x56, SMIP) } If (LEqual (OSFL, 0x02)) { Store (0x57, SMIP) } If (LEqual (OSFX, 0x03)) { Store (0x59, SMIP) } } If (LEqual (Arg0, One)) {} If (OSFL) { Notify (\_SB.PWRB, 0x02) } Else { If (LEqual (RTCW, Zero)) { Notify (\_SB.PWRB, 0x02) } } Notify (\_SB.PCI0.USB0, Zero) Notify (\_SB.PCI0.USB1, Zero) Notify (\_SB.PCI0.USB2, Zero) Notify (\_SB.PCI0.USB3, Zero) Notify (\_SB.PCI0.USB4, Zero) Notify (\_SB.PCI0.USB5, Zero) Return (Package (0x02) { Zero, Zero }) } al compilar de nuevo el archivo dsdt.dsl con la herramienta iasl sin opciones se obtiene un archivo dsdt.aml sin avisos del compilador: iasl dsdt.dsl Intel ACPI Component Architecture ASL Optimizing Compiler version 20080926 [Oct 4 2008] Copyright (C) 2000 - 2008 Intel Corporation Supports ACPI Specification Revision 3.0a ASL Input: dsdt.dsl - 5561 lines, 185038 bytes, 2322 keywords AML Output: dsdt.aml - 17908 bytes, 658 named objects, 1664 executable opcodes Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 31 Optimizations Esto es una parte de lo aprendido con las guías DSDT de Roisoft y Pere (gracias) y otros textos sobre DSDT. NOTAS: en mi hardware hay que tener en cuenta 2 cosas que parecen lograr que el parcheo DSDT funcione mejor: 1. al crear el dsdt.aml con el parcheador de Fassl hay que emplear el modificador newHPET: sudo ./DSDTPatcher -newHPET 2. da mejor resultado elegir la opción 2 (Vista) cuando pregunta qué tipo de OSI elegir. Link to comment https://www.insanelymac.com/forum/topic/150514-dsdt-solucionar-aviso-en-m%C3%A9todo-_wak/ Share on other sites More sharing options...
roidm Posted January 31, 2009 Share Posted January 31, 2009 Salu2 ! Tb es válido añadir Return (Zero) como en un Mac Pro, por ejemplo : Method (_WAK, 1, Serialized) { Store (Zero, P80D) P8XH (Zero, Arg0) Store (Zero, \_SB.PCI0.LPCB.EC.ECSS) If (OSDW ()) { \_SB.PCI0.SBUS.ENAB () \_SB.DBEN () } Notify (\_SB.PCI0.UHC1, Zero) Notify (\_SB.PCI0.UHC2, Zero) Notify (\_SB.PCI0.UHC3, Zero) Notify (\_SB.PCI0.UHC4, Zero) Notify (\_SB.PCI0.EHCI, Zero) Return (Zero) } Link to comment https://www.insanelymac.com/forum/topic/150514-dsdt-solucionar-aviso-en-m%C3%A9todo-_wak/#findComment-1063966 Share on other sites More sharing options...
miliuco Posted February 1, 2009 Author Share Posted February 1, 2009 No lo sabía, gracias por la información, lo probaré también, el caso es que _WAK devuelva algún valor, ¿no?. Link to comment https://www.insanelymac.com/forum/topic/150514-dsdt-solucionar-aviso-en-m%C3%A9todo-_wak/#findComment-1064411 Share on other sites More sharing options...
Recommended Posts