• Stars
    star
    528
  • Rank 83,250 (Top 2 %)
  • Language ASL
  • Created over 4 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Repo for Getting Started With ACPI

Getting started with ACPI

A quick explainer on ACPI

So what are DSDTs and SSDTs? Well, these are tables present in your firmware that outline hardware devices like USB controllers, CPU threads, embedded controllers, system clocks and such. A DSDT(Differentiated System Description Table) can be seen as the body holding most of the info with smaller bits of info being passed by the SSDT(Secondary System Description Table). You can think of the DSDT as the building blueprints with SSDTs being sticky notes outlining extra details to the project

You can read more about ACPI and it's spec here: ACPI 6.4 Manual

So why do we care about these tables?

macOS can be very picky about the devices present in the DSDT and so our job is to correct it. The main devices that need to be corrected for macOS to work properly:

  • Embedded controllers(EC)
    • All semi-modern Intel machines have an EC (usually called H_EC, ECDV, EC0, etc...) exposed in their DSDT, with many AMD systems also having it exposed. These controllers are generally not compatible with macOS and can cause panics, so then need to be hidden from macOS. macOS Catalina requires a device named EC to be present though, so a dummy EC is created.
    • With laptops, the actual embedded controller still needs to be enabled for battery and hotkeys to work, and renaming the EC can additionally cause issues with windows, so creating a fake EC without disabling the real embedded controller is preferable.
  • Plugin type
    • This allows the use of XCPM providing native CPU power management on Intel Haswell and newer CPUs, the SSDT will connect to the first thread of the CPU. Not meant for AMD
  • AWAC system clock.
    • This applies to all 300 series motherboards including many Z370 boards, the specific issue is that newer boards ship with AWAC clock enabled. This is a problem because macOS cannot communicate with AWAC clocks, so this requires us to either force on the legacy RTC clock or if unavailable create a fake one for macOS to play with
  • NVRAM SSDT
    • True 300 series motherboards(non-Z370) don't declare the FW chip as MMIO in ACPI and so the kernel ignores the MMIO region declared by the UEFI memory map. This SSDT brings back NVRAM support
  • Backlight SSDT
    • Used for fixing backlight control support on laptops
  • GPIO SSDT
    • Used for creating a stub to allow VoodooI2C to connect onto, for laptops only
  • XOSI SSDT
    • Used for rerouting OSI calls to this SSDT, mainly used for tricking our hardware into thinking its booting Windows so we get better trackpad support. This is a very hacky solution known for breaking Windows boot, use the GPIO SSDT instead. Usage of XOSI will not be covered in this guide
  • IRQ SSDT and ACPI patches
    • Needed for fixing IRQ conflicts within the DSDT, for laptops mainly. SSDTTime exclusive
    • Note Skylake and newer systems rarely have IRQ conflicts, this is mainly prevalent on Broadwell and older

Now head to the next page on what SSDTs do your systems need:

Choosing the SSDTs

More Repositories

1

OpenCore-Legacy-Patcher

Experience macOS just like before
Python
12,095
star
2

OpenCore-Install-Guide

Repo for the OpenCore Install Guide
JavaScript
3,440
star
3

OpenCore-Post-Install

https://dortania.github.io/OpenCore-Post-Install/
JavaScript
531
star
4

dortania.github.io

Homepage for dortania - Work in progress
HTML
277
star
5

build-repo

Python
175
star
6

macOS-VMware-Guide

Guide on making a AMD macOS virtual machine in VMware Player/Workstation
172
star
7

GPU-Buyers-Guide

Repo for GPU Buyers Guide
JavaScript
135
star
8

Anti-Hackintosh-Buyers-Guide

Repo for Anti-Hackintosh Buyers Guide
JavaScript
118
star
9

bugtracker

Dortania Bugtracker
108
star
10

OpenCore-Multiboot

Multi-boot Guide for OpenCore - WIP
JavaScript
94
star
11

vanilla-laptop-guide-legacy

Work in progress
CSS
74
star
12

KdkSupportPkg

Kernel Debug Kit Mirror for macOS Ventura and newer
68
star
13

PatcherSupportPkg

C
59
star
14

clover-laptop-guide

Clover Laptop Guide (Deprecated)
56
star
15

oc-laptop-guide-legacy

https://dortania.github.io/oc-laptop-guide/
CSS
54
star
16

Hackintosh-Mini-Guides

Group of miscellaneous guides that don't need their own repo
50
star
17

Wireless-Buyers-Guide

Repo for Wireless Buyers Guide
JavaScript
46
star
18

OCLP-GUI

Objective-C
37
star
19

USB-Map-Guide-Legacy

CSS
29
star
20

OpenCore-Desktop-Guide

HTML
26
star
21

Apple-Binaries-OCLP

Repository for Apple Binaries used in OpenCore Legacy Patcher
Objective-C
15
star
22

laptop-guide-artifacts

An artifact repository for the clover laptop guide. (Deprecated)
8
star
23

vanilla-vm

Vanilla VM guide
7
star
24

OpenCanopy-Gallery

JavaScript
7
star
25

vanilla-laptop-guide

HTML
4
star
26

build-files

Shared build files to prevent duplication across the guides
JavaScript
3
star
27

USB-Map-Guide

HTML
2
star
28

oc-laptop-guide

HTML
1
star
29

shared-tooling

Shared tooling for the guides
1
star
30

OCLP-Helper

Helper tool to run processes via AuthorizationExecuteWithPrivileges
Objective-C
1
star