Pavo Posted December 5, 2019 Share Posted December 5, 2019 So.... anyone know away to change the _STA method on a device that already has a _STA method in the DSDT without patching the DSDT directly. Was trying to figure it out using a SSDT but getting AE_ALREADY_EXIST error in ACPI. Original Device: Device (HPET) { Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID Method (_STA, 0, NotSerialized) // _STA: Status { If ((HPEN == One)) { If ((OSVR >= 0x0C)) { Return (0x0F) } HPEN = Zero Return (One) } Return (One) } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (BUF0, ResourceTemplate () { IRQNoFlags () {0} IRQNoFlags () {8} Memory32Fixed (ReadOnly, 0xFED00000, // Address Base 0x00000400, // Address Length ) }) Return (BUF0) /* \HPET._CRS.BUF0 */ } } Would like to change it to using SSDT: Device (HPET) { Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID Method (_STA, 0, NotSerialized) // _STA: Status { { Return (0x0F) } } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (BUF0, ResourceTemplate () { IRQNoFlags () {0} IRQNoFlags () {8} Memory32Fixed (ReadOnly, 0xFED00000, // Address Base 0x00000400, // Address Length ) }) Return (BUF0) /* \HPET._CRS.BUF0 */ } } 1 Link to comment https://www.insanelymac.com/forum/topic/341585-hpet/ Share on other sites More sharing options...
hardcorehenry Posted December 5, 2019 Share Posted December 5, 2019 15 minutes ago, Pavo said: So.... anyone know away to change the _STA method on a device that already has a _STA method in the DSDT without patching the DSDT directly. Was trying to figure it out using a SSDT but getting AE_ALREADY_EXIST error in ACPI. Original Device: Device (HPET) { Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID Method (_STA, 0, NotSerialized) // _STA: Status { If ((HPEN == One)) { If ((OSVR >= 0x0C)) { Return (0x0F) } HPEN = Zero Return (One) } Return (One) } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (BUF0, ResourceTemplate () { IRQNoFlags () {0} IRQNoFlags () {8} Memory32Fixed (ReadOnly, 0xFED00000, // Address Base 0x00000400, // Address Length ) }) Return (BUF0) /* \HPET._CRS.BUF0 */ } } Would like to change it to using SSDT: Device (HPET) { Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID Method (_STA, 0, NotSerialized) // _STA: Status { { Return (0x0F) } } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (BUF0, ResourceTemplate () { IRQNoFlags () {0} IRQNoFlags () {8} Memory32Fixed (ReadOnly, 0xFED00000, // Address Base 0x00000400, // Address Length ) }) Return (BUF0) /* \HPET._CRS.BUF0 */ } } Check this stuff. Link to comment https://www.insanelymac.com/forum/topic/341585-hpet/#findComment-2699731 Share on other sites More sharing options...
nmano Posted December 5, 2019 Share Posted December 5, 2019 (edited) if you like HPET with SSDT you have to disable _HID ID via ACPI patches PNP0103 to PNP010A Find 504e5030313033 Replace 504e5030313041 Replace Edited December 5, 2019 by nmano 1 Link to comment https://www.insanelymac.com/forum/topic/341585-hpet/#findComment-2699736 Share on other sites More sharing options...
Pavo Posted December 5, 2019 Author Share Posted December 5, 2019 24 minutes ago, nmano said: if you like HPET with SSDT you have to disable _HID address via ACPI patches PNP0103 to PNP010A Find 504e5030313033 Replace 504e5030313041 Its not the address that is flagging on, it the _STA method already in the DSDT. 1 hour ago, hardcorehenry said: Check this stuff. Does not work. 1 Link to comment https://www.insanelymac.com/forum/topic/341585-hpet/#findComment-2699739 Share on other sites More sharing options...
hardcorehenry Posted December 5, 2019 Share Posted December 5, 2019 (edited) 21 minutes ago, Pavo said: Its not the address that is flagging on, it the _STA method already in the DSDT. Does not work. Mine works: DefinitionBlock ("", "SSDT", 2, "ACDT", "HPET", 0x00000000) { External (_SB_.PCI0.LPCB, DeviceObj) Name (\_SB.PCI0.LPCB.HPET._STA, 0x0F) // _STA: Status Name (\_SB.PCI0.LPCB.HPET._CRS, ResourceTemplate () // _CRS: Current Resource Settings { IRQNoFlags () {0,8,11,12} Memory32Fixed (ReadWrite, 0xFED00000, // Address Base 0x00000400, // Address Length ) }) } Also: _CRS to XCRS, _STA to XSTA (with proper skip value(OpenCore))and IRQ fixes(renames) from script. Edited December 5, 2019 by hardcorehenry Link to comment https://www.insanelymac.com/forum/topic/341585-hpet/#findComment-2699742 Share on other sites More sharing options...
nmano Posted December 5, 2019 Share Posted December 5, 2019 27 minutes ago, Pavo said: Its not the address that is flagging on, it the _STA method already in the DSDT. Does not work. post your DSDT I will check Link to comment https://www.insanelymac.com/forum/topic/341585-hpet/#findComment-2699743 Share on other sites More sharing options...
Pavo Posted December 5, 2019 Author Share Posted December 5, 2019 28 minutes ago, hardcorehenry said: Mine works: DefinitionBlock ("", "SSDT", 2, "ACDT", "HPET", 0x00000000) { External (_SB_.PCI0.LPCB, DeviceObj) Name (\_SB.PCI0.LPCB.HPET._STA, 0x0F) // _STA: Status Name (\_SB.PCI0.LPCB.HPET._CRS, ResourceTemplate () // _CRS: Current Resource Settings { IRQNoFlags () {0,8,11,12} Memory32Fixed (ReadWrite, 0xFED00000, // Address Base 0x00000400, // Address Length ) }) } Also: _CRS to XCRS, _STA to XSTA (with proper skip value(OpenCore))and IRQ fixes(renames) from script. Good point, I didn't think about using ACPI patches to change _STA to XSTA. 1 Link to comment https://www.insanelymac.com/forum/topic/341585-hpet/#findComment-2699744 Share on other sites More sharing options...
nmano Posted December 5, 2019 Share Posted December 5, 2019 (edited) 50 minutes ago, Pavo said: Try this HPET Disable ID Find 48504554 085F4849 440C41D0 0103 Replace 48504554 085F4849 440C41D0 010A Edited December 5, 2019 by nmano Link to comment https://www.insanelymac.com/forum/topic/341585-hpet/#findComment-2699745 Share on other sites More sharing options...
Recommended Posts