mirror of
https://github.com/AskDavis/Getting-Started-With-ACPI.git
synced 2026-01-01 05:05:57 -08:00
Add new pre-built EC SSDTs
This commit is contained in:
@@ -3,13 +3,24 @@
|
|||||||
|
|
||||||
What we'll be doing is creating a fake Embedded Controller (EC) to satisfy macOS Catalina's EC addiction, and disabling the EC on desktops to prevent panics and crashes.
|
What we'll be doing is creating a fake Embedded Controller (EC) to satisfy macOS Catalina's EC addiction, and disabling the EC on desktops to prevent panics and crashes.
|
||||||
|
|
||||||
You'll want to begin by grabbing either one of these uncompiled SSDT files:
|
For desktops, you'll want to begin by grabbing either one of these uncompiled SSDT files:
|
||||||
|
|
||||||
* [SSDT-EC-USBX](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC-USBX.dsl)
|
* [SSDT-EC-USBX](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC-USBX.dsl)
|
||||||
* For Skylake and newer and all AMD systems
|
* For Skylake and newer and all AMD systems
|
||||||
* [SSDT-EC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC.dsl)
|
* [SSDT-EC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC.dsl)
|
||||||
* For Broadwell and older
|
* For Broadwell and older
|
||||||
|
|
||||||
|
For laptops, you'll can actually use the pre-builts:
|
||||||
|
|
||||||
|
* [SSDT-EC-USBX-LAPTOP.aml](https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/SSDT-EC-USBX-LAPTOP.aml)
|
||||||
|
* For Skylake and newer
|
||||||
|
* [SSDT-EC-LAPTOP.aml](https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/SSDT-EC-LAPTOP.aml)
|
||||||
|
* For Broadwell and older
|
||||||
|
|
||||||
|
With laptops it's a simple as that, all this does is check for an existing `EC__` and if one doesn't appear then create a fake EC to make macOS happy.
|
||||||
|
|
||||||
|
Desktops however will need to follow below on creating a proper SSDT.
|
||||||
|
|
||||||
### Fixing the Path
|
### Fixing the Path
|
||||||
|
|
||||||
For Intel systems, the path is *likely* correct, though it's worth double checking. You will want to find your current EC by opening your decompiled DSDT and searching for `PNP0C09`. You should get a result similar to this:
|
For Intel systems, the path is *likely* correct, though it's worth double checking. You will want to find your current EC by opening your decompiled DSDT and searching for `PNP0C09`. You should get a result similar to this:
|
||||||
|
|||||||
BIN
extra-files/SSDT-EC-LAPTOP.aml
Normal file
BIN
extra-files/SSDT-EC-LAPTOP.aml
Normal file
Binary file not shown.
36
extra-files/SSDT-EC-LAPTOP.dsl
Normal file
36
extra-files/SSDT-EC-LAPTOP.dsl
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
/* Purpose of this SSDT is to:
|
||||||
|
*
|
||||||
|
* - Find references of devices named EC__
|
||||||
|
* - If none are found, only then create a new EC
|
||||||
|
*
|
||||||
|
* Reason for this is to avoid having multiple EC__ in devices
|
||||||
|
* like Lenovo who already use the name EC__
|
||||||
|
*/
|
||||||
|
DefinitionBlock ("", "SSDT", 2, "DRTNIA", "SsdtEC", 0x00001000)
|
||||||
|
{
|
||||||
|
External (_SB_.PCI0.LPC_.EC__, DeviceObj)
|
||||||
|
External (_SB_.PCI0.LPCB.EC__, DeviceObj)
|
||||||
|
|
||||||
|
If ((!CondRefOf (\_SB.PCI0.LPCB.EC) && !CondRefOf (\_SB.PCI0.LPC.EC)))
|
||||||
|
{
|
||||||
|
Scope (\_SB)
|
||||||
|
{
|
||||||
|
Device (EC)
|
||||||
|
{
|
||||||
|
Name (_HID, "ACID0001") // _HID: Hardware ID
|
||||||
|
Method (_STA, 0, NotSerialized) // _STA: Status
|
||||||
|
{
|
||||||
|
If (_OSI ("Darwin"))
|
||||||
|
{
|
||||||
|
Return (0x0F)
|
||||||
|
}
|
||||||
|
Else
|
||||||
|
{
|
||||||
|
Return (Zero)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
BIN
extra-files/SSDT-EC-USBX-LAPTOP.aml
Normal file
BIN
extra-files/SSDT-EC-USBX-LAPTOP.aml
Normal file
Binary file not shown.
62
extra-files/SSDT-EC-USBX-LAPTOP.dsl
Normal file
62
extra-files/SSDT-EC-USBX-LAPTOP.dsl
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
/* Purpose of this SSDT is to:
|
||||||
|
*
|
||||||
|
* - Find references of devices named EC__
|
||||||
|
* - If none are found, only then create a new EC
|
||||||
|
*
|
||||||
|
* Reason for this is to avoid having multiple EC__ in devices
|
||||||
|
* like Lenovo who already use the name EC__
|
||||||
|
*/
|
||||||
|
DefinitionBlock ("", "SSDT", 2, "DRTNIA", "SsdtEC", 0x00001000)
|
||||||
|
{
|
||||||
|
External (_SB_.PCI0.LPC_.EC__, DeviceObj)
|
||||||
|
External (_SB_.PCI0.LPCB.EC__, DeviceObj)
|
||||||
|
|
||||||
|
If ((!CondRefOf (\_SB.PCI0.LPCB.EC) && !CondRefOf (\_SB.PCI0.LPC.EC)))
|
||||||
|
{
|
||||||
|
Scope (\_SB)
|
||||||
|
{
|
||||||
|
Device (EC)
|
||||||
|
{
|
||||||
|
Name (_HID, "ACID0001") // _HID: Hardware ID
|
||||||
|
Method (_STA, 0, NotSerialized) // _STA: Status
|
||||||
|
{
|
||||||
|
If (_OSI ("Darwin"))
|
||||||
|
{
|
||||||
|
Return (0x0F)
|
||||||
|
}
|
||||||
|
Else
|
||||||
|
{
|
||||||
|
Return (Zero)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Device (USBX)
|
||||||
|
{
|
||||||
|
Name (_ADR, Zero) // _ADR: Address
|
||||||
|
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
|
||||||
|
{
|
||||||
|
If ((Arg2 == Zero))
|
||||||
|
{
|
||||||
|
Return (Buffer (One)
|
||||||
|
{
|
||||||
|
0x03 // .
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
Return (Package (0x08)
|
||||||
|
{
|
||||||
|
"kUSBSleepPowerSupply",
|
||||||
|
0x13EC,
|
||||||
|
"kUSBSleepPortCurrentLimit",
|
||||||
|
0x0834,
|
||||||
|
"kUSBWakePowerSupply",
|
||||||
|
0x13EC,
|
||||||
|
"kUSBWakePortCurrentLimit",
|
||||||
|
0x0834
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user