- Joined
- Jun 9, 2013
- Messages
- 10,289
- Motherboard
- ASUS ROG STRIX Z390-F GAMING
- CPU
- i5 8500
- Graphics
- RTX 570
- Mac
- Mobile Phone
Attached
Test this. Verify that AppleLPC has loaded in ioreg.
Attached
Doesn't seem to be loading with this SSDT, checked via "kextstat|grep -y applelpc"Test this. Verify that AppleLPC has loaded in ioreg.
Doesn't seem to be loading with this SSDT, checked via "kextstat|grep -y applelpc"
Attached new ioreg copy
I think thats got it. LPC looks to be loading and the Intel Power app is still functional. ioreg attached.Try this.
I think thats got it. LPC looks to be loading and the Intel Power app is still functional. ioreg attached.View attachment 230415
Yup all are loading just fine on Logic, Ableton and pro tools. Very nice work. I'm grateful you took the time to help me out. What was the problem in the end with the LPC SSDT ?Yep. Looks good. Try you're audio plugins and see what you get.
Yup all are loading just fine on Logic, Ableton and pro tools. Very nice work. I'm grateful you took the time to help me out. What was the problem in the end with the LPC SSDT ?
Ive noticed that Z97, H97 uses two different ID here look at this. CC6 is H97 LPC Controller & CC3 is Z97 LPC Controller. Both has different IDs.
DefinitionBlock("", "SSDT", 2, "hack", "LPC", 0)
{
External(_SB.PCI0.LPCB, DeviceObj)
Scope(_SB.PCI0.LPCB)
{
OperationRegion(RMP2, PCI_Config, 2, 2)
Field(RMP2, AnyAcc, NoLock, Preserve)
{
LDID,16
}
Name(LPDL, Package()
{
// list of 9-series LPC device-ids not natively supported
// inject 0x8cc3 for unsupported LPC device-id
0x8cc4, 0x8cc6, 0,
Package()
{
"device-id", Buffer() { 0xc3, 0x8c, 0, 0 },
"compatible", Buffer() { "pci8086,8cc3" },
},
})
Method(_DSM, 4)
{
If (!Arg2) { Return (Buffer() { 0x03 } ) }
// search for matching device-id in device-id list, LPDL
Local0 = Match(LPDL, MEQ, LDID, MTR, 0, 0)
If (Ones != Local0)
{
// start search for zero-terminator (prefix to injection package)
Local0 = Match(LPDL, MEQ, 0, MTR, 0, Local0+1)
Return (DerefOf(LPDL[Local0+1]))
}
// if no match, assume it is supported natively... no inject
Return (Package() { })
}
}
}
Hi, again. Yes, that's why my SSDT-LPC did't work on your system. I just only added 8cc4 for Z97 to Rehabman's edited version...
Additionally i got some time for correcting your SSDT-SATA. I changed all wrong IDs and Buffers to correct names/values and it seems to work again. Don't need no AHCI injection kext anymore...
View attachment 230789
BUT... suddenly Intel Widget doesn't like to run anymore. Ok, so i removed all ID's (in SSDT-SATA) Rehabman didn't use also (ended up at: device-id & compatible). And now Intel Widget works again surprisingly and System Profiler still says "Intel 9 Series Chipset". SSDT-SATA is fixed in my point of view...
I'm delighted you're finally using Rehabman's version of SSDT-LPC. I don't know if you still interested in my version, but i like to share mine again. I added your 8086:8cc6 H97 LPC Controller and still keep on injecting 8cc3 HM97 LPC because it works here and it should work on yours too. Because like i said before: i didn't add your LPC device-id and we got some little trouble in understanding each other. Such as: you were using different device-id against compatible option. device-id and compatible must be the same ID. Otherwise Injection doesn't work. If you don't believe me, look at any SSDT Rehabman uses for injection.
Here is source of my edited SSDT-LPC for better reading.
Code:DefinitionBlock("", "SSDT", 2, "hack", "LPC", 0) { External(_SB.PCI0.LPCB, DeviceObj) Scope(_SB.PCI0.LPCB) { OperationRegion(RMP2, PCI_Config, 2, 2) Field(RMP2, AnyAcc, NoLock, Preserve) { LDID,16 } Name(LPDL, Package() { // list of 9-series LPC device-ids not natively supported // inject 0x8cc3 for unsupported LPC device-id 0x8cc4, 0x8cc6, 0, Package() { "device-id", Buffer() { 0xc3, 0x8c, 0, 0 }, "compatible", Buffer() { "pci8086,8cc3" }, }, }) Method(_DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } // search for matching device-id in device-id list, LPDL Local0 = Match(LPDL, MEQ, LDID, MTR, 0, 0) If (Ones != Local0) { // start search for zero-terminator (prefix to injection package) Local0 = Match(LPDL, MEQ, 0, MTR, 0, Local0+1) Return (DerefOf(LPDL[Local0+1])) } // if no match, assume it is supported natively... no inject Return (Package() { }) } } }
DefinitionBlock ("", "SSDT", 2, "Apple", "SSDT-LPC", 0x00000000)
{
External (_SB_.PCI0.LPCB, DeviceObj) // (from opcode)
Scope (_SB.PCI0.LPCB)
{
OperationRegion (RMP2, PCI_Config, 0x02, 0x02)
Field (RMP2, AnyAcc, NoLock, Preserve)
{
LDID, 16
}
Name (LPDL, Package (0x17)
{
0x9D48,
0xA14E,
0x8CC6,
0x8CC4,
0x8CC3,
0x8C4B,
0xA145,
Zero,
Package (0x04)
{
"device-id",
Buffer (0x04)
{
0xC1, 0x9C, 0x00, 0x00
},
"compatible",
Buffer (0x0D)
{
"pci8086,9cc1"
}
}
})
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
If (LNot (Arg2))
{
Return (Buffer (One)
{
0x03
})
}
Store (Match (LPDL, MEQ, LDID, MTR, Zero, Zero), Local0)
If (LNotEqual (Ones, Local0))
{
Store (Match (LPDL, MEQ, Zero, MTR, Zero, Add (Local0, One)), Local0)
Return (DerefOf (Index (LPDL, Add (Local0, One))))
}
Return (Package (0x00) {})
}
}
}