Contribute
Register

Compiled SSDT Examples for macOS

tonymacx86

Administrator
Staff member
Joined
Nov 17, 2009
Messages
7,367
Motherboard
Z370N WIFI
CPU
i7 8700K
Graphics
HD 630
Mac
  1. MacBook Air
Classic Mac
  1. Apple
  2. PowerBook
Mobile Phone
  1. iOS

Attachments

  • SSDT-AWAC.aml
    73 bytes · Views: 1,231
  • SSDT-CPUR.aml
    1.4 KB · Views: 724
  • SSDT-EC-DESKTOP.aml
    6.3 KB · Views: 1,086
  • SSDT-EC-LAPTOP.aml
    190 bytes · Views: 822
  • SSDT-EC-USBX-DESKTOP.aml
    6.4 KB · Views: 1,147
  • SSDT-EC-USBX-LAPTOP.aml
    335 bytes · Views: 778
  • SSDT-IMEI-S.aml
    80 bytes · Views: 737
  • SSDT-IMEI.aml
    197 bytes · Views: 753
  • SSDT-PLUG-DRTNIA.aml
    693 bytes · Views: 1,136
  • SSDT-PMC.aml
    414 bytes · Views: 878
  • SSDT-PNLF-CFL.aml
    125 bytes · Views: 741
  • SSDT-PNLF.aml
    1.1 KB · Views: 699
  • SSDT-RHUB.aml
    325 bytes · Views: 740
  • SSDT-XOSI.aml
    323 bytes · Views: 779
To help those in need of example compiled SSDT files...

Thanks @tonymacx86. It may be interesting to write a short comment about each SSDT.
  • SSDT-AWAC: to fix errors with system clock on Z390, B460, Z490 motherboards. This file is equivalent to SSDT-RTC0.aml, SSDT-AWAC tries to activate the old macOS compatible RTC clock and SSDT-RTC0 creates a fake compatible RTC clock if it does not exist.
  • SSDT-CPUR: to boot systems with AMD B550 and A520.
  • SSDT-EC-DESKTOP and SSDT-EC-LAPTOP: fake Embedded Controller for macOS Catalina on Broadwell and earlier systems.
  • SSDT-EC-USBX-DESKTOP and SSDT-EC-USBX-LAPTOP: fake Embedded Controller for macOS Catalina on Skylake and later and AMD systems, also fix USB power.
  • SSDT-IMEI-S and SSDT-IMEI: required in systems with Sandy Bridge CPU + 7 series motherboard or systems with Ivy Bridge CPU + 6 series motherboard, to verify if there is an IMEI device and, if not, create a new device.
  • SSDT-PLUG-DRTNIA: power management on Haswell and newer CPUs, not required on AMD; to configure the plugin-type=1 parameter on the first processor.
  • SSDT-PMC: native NVRAM support on systems that lack it, for example Z390 chipsets. It is equivalent to SSDT-NVRAM, both have the same function; 10th gen motherboards do not need this SSDT.
  • SSDT-PNLF-CFL and SSDT-PNLF: screen brightness on notebooks, CFL for Coffe Lake and later.
  • SSDT-RHUB: for 10th generation ASUS motherboards, to turn off the RHUB device and force macOS to manually rebuild the ports.
  • SSDT-XOSI: Windows features on I2C type Trackpads, not needed on PS2 Trackpads.
Source: Dortania Getting Started with ACPI.

(To be improved or completed with contributions from other users).
 
Last edited:
It may be interesting to write a short comment about each SSDT.
More than just interesting to those of us who are ignorant of their functions; thanks much both for the listing and for the comments!
 
More than just interesting to those of us who are ignorant of their functions; thanks much both for the listing and for the comments!
Thank you!!!
 
There is an SSDT required for any of the other SSDTs to work: SSDT-DTGP.aml.
DTGP method serves to inject custom parameters to some devices (device properties), without it no patches or corrections can be applied to the DSDT table.
Someone more expert can correct me, I think that SSDT-DTGP has to be present whenever there is at least one other SSDT
> This isn't true. SSDT-DTGP isn't necessary because the Dortania SSDTs are self-contained and they can work separately. See this post below.
 
Last edited:
There is an SSDT required for any of the other SSDTs to work: SSDT-DTGP.aml.
DTGP method serves to inject custom parameters to some devices (device properties), without it no patches or corrections can be applied to the DSDT table.
Someone more expert can correct me, I think that SSDT-DTGP has to be present whenever there is at least one other SSDT.
Do you have a link reference?
All the SSDTs from the Dortania repo should be self contained, if they need a DTGP method. Though the only one that does is SSDT-SBUS. SSDT-PLUG does contain a paired down version under a different method name though. Could probably edit SSDT-SBUS in a similar way.
 
Do you have a link reference?
All the SSDTs from the Dortania repo should be self contained, if they need a DTGP method. Though the only one that does is SSDT-SBUS. SSDT-PLUG does contain a paired down version under a different method name though. Could probably edit SSDT-SBUS in a similar way.

On some sites that I'm trying to locate now I had read that SSDT-DTGP was a help file for the rest of SSDT, not useful by itself. In addition, in several of the Dortania SSDTs I have not seen DTGP or equivalent method, from what I have deduced that it was necessary. The only one in which I see something similar to the DTGP method is in SSDT-PLUG where I read
Code:
  Method (PMPM, 4, NotSerialized)
     {
         If ((Arg2 == Zero))
         {
             Return (Buffer (One)
             {
                  0x03
             })
         }

         Return (Package (0x02)
         {
             "plugin-type",
             One
         })
     }
In the others I do not see equivalent code but I warn you that my knowledge about DSDT and ACPI is small so I may be confused in my conclusion.
 
Last edited:
Basically, macOS won't actually read/merge the device properties from ACPI unless a Buffer with 0x03 in it is returned when it asks for this property (Arg0 = some random UUID I don't remember, Arg1 = 1, Arg2 = 0). DTGP is just the original ACPI Method from actual Apple DSDTs which contain this logic to figure out what to return - though it's fairly simple. None of the Dortania SSDTs need it, as they are all self-contained.
 
Basically, macOS won't actually read/merge the device properties from ACPI unless a Buffer with 0x03 in it is returned when it asks for this property (Arg0 = some random UUID I don't remember, Arg1 = 1, Arg2 = 0). DTGP is just the original ACPI Method from actual Apple DSDTs which contain this logic to figure out what to return - though it's fairly simple. None of the Dortania SSDTs need it, as they are all self-contained.

Understood. Thanks for the explanation. I will modify post # 5 according to it.
 
Back
Top