EC Patching – Dealing with AppleACPIEC on a Catalina Hackintosh

An EFI folder that could boot macOS Mojave cannot necessary boot macOS Catalina due to changes in the way AppleACPIEC behaves which require it to be either disabled, renamed or spoofed to boot macOS Catalina on most hackintosh motherboards. Not addressing EC in Catalina can cause hagging with verbose outputs such as Waiting on root device… or AE_NOT_FOUND that will prevent you from booting Catalina.

Hackintosh Catalina EC Patching

  • The option to disable AppleACPIEC currently has issues and is only for those using the OpenCore method of hackintoshing and not Clover, leaving us with the option to fake or rename our EC device which is needed .for AppleBusPower to function.
  • Renaming EC – Recommended for laptop use as this still loads AppleACPIEC which is not used or compatible with a desktop but still works.
  • Faking EC is done turning off the real EC one and setting a fake one up by placing a patched SSDT-EC.aml file in EFI/CLOVER/ACPI/patched.
    • Recommended by the community for desktops, do not use for laptops.
    • The downside to this method is if you change the hardware in your system i.e. swapping out the motherboard or computer trying to get the Catalina installer to load. The SSDT will need to be remade for a specific machines hardware before being able to boot while the specific rename patch tends to be similar across motherboard generations i.e. a Gigabyte Z370 motherboard and an ASUS Z390 motherboard will have the same EC rename. In that case starting with the rename method might be a better solution to start with.

To do either fix you’ll want to generate a DSDT:

  1. Generate a DSDT table by restarting computer and entering Clover Bootloader
  2. Press F4 will cause a DSDT to be generated and placed in EFI/CLOVER/ACPI/origin
  3. Reboot back into macOS and Mount EFI partition
#1 Renaming EC Method
  • Renaming EC adds a simple Hex patch under Acpi -> Patches of config.plist from this table:
    Comment Find* [HEX] Replace [HEX]
    change EC0 to EC 4543305f 45435f5f
    change H_EC to EC 485f4543 45435f5f
    change ECDV to EC 45434456 45435f5f
  • Only one of these three patches is used at a time. DO NOT enable multiple at the same time or you may not be able to boot
  • To find out which patch is correct for you’re computer can either guess by adding one at a time and trying to boot Catalina or you can simply check the DSDT you generated by following steps 1-6:
    1. Download MaciASL
    2. Open EFI/CLOVER/ACPI/origin/
    3. Open DSDT.aml with MaciASL
    4. Use ⌘F to open the Find search bar
    5. Search for PNP0C09 it will be in a bracketed under a device named Device (EC0) or Device (H_EC) or Device (ECDV)
    6. Some computers will return two device results for PNP0C09 to find out which is the correct device it must contain an _HID, _CRS and _GPE in its brackets for example:
      • (_HID, EisaId ("PNP0C09")) // _HID: Hardware ID
      • Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
      • Name (_GPE, 0x16) // _GPE: General Purpose Events

        Finding EC for Hackintosh Catalina EC Renaming

        In this example EC0 is the correct EC as it contains a _HID, _CRS and _GPE value, therefore the patch used will be rename EC0 to EC

    7. Once you figure out what patch you need from the table add it by opening config.plist with Clover Configurator and placing the patch under Acpi Patches:
      ACPI Patches Empty

      If you are using the EFI from https://hackintosher.com/guides/guide-to-fresh-installing-macos-catalina-on-a-hackintosh/ I’ve included the patches in config.plist already however they are all disabled by default enable the one that is right for you by unchecking disabled.

      Here’s the table again:

      Comment Find* [HEX] Replace [HEX]
      change EC0 to EC 4543305f 45435f5f
      change H_EC to EC 485f4543 45435f5f
      change ECDV to EC 45434456 45435f5f
#2 Faking EC Method
  1. Download SSDT-Time and unzip the folder
    1. Read the instructions
  2. Open SSDTTime-master folder
  3. Right-click open SSDTTime.command
  4. This will open Terminal
  5. Please make a selection: 2
  6. Drag and drop a DSDT.aml or origin folderSSDTTime.command SSDT-EC creation Terminal
  7. SSDTTime will automatically open a Results folder
  8. Copy SSDT-EC.aml from the Results folder and place it in EFI/CLOVER/ACPI/patched
    • Note: The patched folder not the origins folder
    • If you have any issues getting SSDTTime to work use the rename method instead.

Leave a Reply

10 Comments on "EC Patching – Dealing with AppleACPIEC on a Catalina Hackintosh"

Sort by:   newest | oldest
kris
Guest
kris

After “#2 Faking EC Method” macos update to Catalina just fine, but now CPU is stuck at 800MHz.

edit: The DSDT.aml appears to be corrupted. Opening it results in:

Decompilation Error
iASL returned:
Loading Acpi table from file iASL4WbEd2.aml
Acpi table [DSDT] successfully installed and loaded
Pass 1 parse of [DSDT]

ASUS PRIME Z370-A II, i5-9600K, RX-580

kris
Guest
kris

Not caused by the upgrade. The issue was bad CPU cooler mounting pressure.

Nicolas
Guest
Nicolas

I am getting the same error :/ Any news on that?

tomasz152
Guest
tomasz152

Thank you, I was looking for solution for very long time. You are my hero!

sang lee
Guest
sang lee

worked perfect. Thank God for smart people like you…
Thank you.

sang lee
Guest
sang lee

thank you.

mackattackjack
Guest
mackattackjack

Hi, I tried this twice, and IORegistryExplorer still shows no EC.

I Patched the file as instructed. It reported

Locating PNP0C09 devices…
– None found – only needs a Fake EC device
Locating LPC(B)/SBRG…
– Found LPCB
Creating SSDT-EC…
Compiling…

Done.

Then I put the SSDT-EC.aml in the ACPI patched folder.

1. should I leave the DSDT and other files created by clover in the Origin folder?
2. Is there something in my config file that could prevent clover from implementing this SSDT Patch

/*
* Intel ACPI Component Architecture
* AML/ASL+ Disassembler version 20180427 (64-bit version)(RM)
* Copyright (c) 2000 – 2018 Intel Corporation
*
* Disassembling to non-symbolic legacy ASL operators
*
* Disassembly of iASL3EzDph.aml, Sat Apr 25 03:00:52 2020
*
* Original Table Header:
* Signature “SSDT”
* Length 0x0000007D (125)
* Revision 0x02
* Checksum 0x88
* OEM ID “CORP ”
* OEM Table ID “SsdtEC”
* OEM Revision 0x00001000 (4096)
* Compiler ID “INTL”
* Compiler Version 0x20180427 (538444839)
*/
DefinitionBlock (“”, “SSDT”, 2, “CORP “, “SsdtEC”, 0x00001000)
{
External (_SB_.PCI0.LPCB, DeviceObj) // (from opcode)

Scope (\_SB.PCI0.LPCB)
{
Device (EC)
{
Name (_HID, “ACID0001”) // _HID: Hardware ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (_OSI (“Darwin”))
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
}
}
}

In verbose boot is still shows AE_NOT_FOUND.

Kind of at a loss. I’ve been trying to fix this a while. I’m using an EVGA X299 Micro

MakhptaLuta
Guest
MakhptaLuta

I am sure this is a dumb question….I am using the preconfigured EFI folder for coffeelake and z390 chipset. I am trying to use the rename method not the fake EC method. In adding the patch for H_EC to EC in Clover, beyond changing the check box to unchecked ( un-disabled) do I need to edit the hex and create the SSDT and put in the patched folder ? Seems like I need that, but what does adding the patch in Clover Configurator do then? I am persistent and will figure this out thru trial and error….any help appreciated. Thanks

MakhptaLuta
Guest
MakhptaLuta

i tried the SSDT timer and seemed to work fine that way. thanks

David
Guest
David

I just checked on my Aorus Ultra Motherboard and PNP0C09 is bracketed under a device called “EC”.

Is this the same as “EC0”?