diff --git a/.vuepress/config.js b/.vuepress/config.js index f4d1cab..9ea69dc 100755 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -205,6 +205,7 @@ module.exports = { sidebarDepth: 2, children: [ ['/Universal/awac-methods/prebuilt', 'Prebuilt'], + ['/Universal/awac-methods/ssdttime', 'SSDTTime'], ['/Universal/awac-methods/manual', 'Manual'], ] }, @@ -215,6 +216,7 @@ module.exports = { sidebarDepth: 2, children: [ ['/Universal/nvram-methods/prebuilt', 'Prebuilt'], + ['/Universal/nvram-methods/ssdttime', 'SSDTTime'], ['/Universal/nvram-methods/manual', 'Manual'], ] }, @@ -228,6 +230,16 @@ module.exports = { ['/Universal/rhub-methods/manual', 'Manual'], ] }, + ['/Universal/imei', 'IMEI'], + { + title: 'Methods', + collapsable: true, + sidebarDepth: 2, + children: [ + ['/Universal/imei-methods/prebuilt', 'Prebuilt'], + ['/Universal/imei-methods/manual', 'Manual'], + ] + }, ['/Universal/smbus', 'Fixing SMBus Support'], { title: 'Methods', diff --git a/Universal/awac-methods/ssdttime.md b/Universal/awac-methods/ssdttime.md new file mode 100644 index 0000000..a413d95 --- /dev/null +++ b/Universal/awac-methods/ssdttime.md @@ -0,0 +1,20 @@ +# Fixing System Clocks (SSDT-AWAC/RTC0) + +The second involves using SSDTTime which automates most of the process. See here on how to use it: [SSDTs: Easy Way](/ssdt-methods/ssdt-easy.md) + +To get the SSDT-PMC, run the following: + +* `7. Dump DSDT` then run `6. AWAC` + +This will provide you with some files, the main one you care about is SSDT-AWAC.**aml**. or SSDT-RTC0.**aml**. The DSDT and .dsl are only left for referencing or verification. + +The main things to note with this method: + +* Doesn't really teach you anything + * For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey + +## Wrapping up + +Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up: + +* [**Cleanup**](/cleanup.md) diff --git a/Universal/awac.md b/Universal/awac.md index 37e569b..7576b3b 100644 --- a/Universal/awac.md +++ b/Universal/awac.md @@ -5,7 +5,7 @@ ## What this SSDT does -The purpose of SSDT-AWAC/RTC0 is to fix the system clocks found on newer hardware, maily found in the following: +The purpose of SSDT-AWAC/RTC0 is to fix the system clocks found on newer hardware, mainly found in the following: * B360 * B365 @@ -23,7 +23,8 @@ SSDT-AWAC tries to re-enable the old RTC clock that is compatible with macOS, wh ## Methods to make this SSDT -For the RTC fix, there are 2 methods you can choose from: +For the RTC fix, there are 3 methods you can choose from: * [Prebuilt](/Universal/awac-methods/prebuilt.md) +* [SSDTTime](/Universal/awac-methods/ssdttime.md) * [Manual](/Universal/awac-methods/manual.md) diff --git a/Universal/ec-fix.md b/Universal/ec-fix.md index b966fc7..616f4f5 100644 --- a/Universal/ec-fix.md +++ b/Universal/ec-fix.md @@ -28,5 +28,5 @@ For the EC fix, there are 3 methods you can choose from: * The prebuilt for desktops are very bloated. It's recommended to use the two methods below. * The Laptop prebuilts are easily usable. * [SSDTTime](/Universal/ec-methods/ssdttime.md) - * Note this method does not support **laptops**, **servers** or **HEDT systems** + * [Manual](/Universal/ec-methods/manual.md) diff --git a/Universal/ec-methods/ssdttime.md b/Universal/ec-methods/ssdttime.md index 0e54f82..d933370 100644 --- a/Universal/ec-methods/ssdttime.md +++ b/Universal/ec-methods/ssdttime.md @@ -2,18 +2,20 @@ The second involves using SSDTTime which automates most of the process. See here on how to use it: [SSDTs: Easy Way](/ssdt-methods/ssdt-easy.md) -To get the SSDT-PLUG, run the following: +To get the SSDT-PLUG on desktops, run the following: -* `4. Dump DSDT` then run `2. FakeEC` +* `7. Dump DSDT` then run `2. FakeEC` -This will provide you with some files, the main one you care about is SSDT-EC**.aml**. The DSDT and .dsl are only left for referencing or verification. +To get the SSDT-PLUG on laptops, run the following: + +* `7. Dump DSDT` then run `3. FakeEC Laptop` + +This will provide you with some files, the main one you care about is SSDT-EC.**aml**. The DSDT and .dsl are only left for referencing or verification. The main things to note with this method: * Doesn't work on HEDT and server hardware(ie. X99 and X299) * While the majority following this guide are likely on consumer hardware, those with fancier hardware will need to either use the [Prebuilt](#prebuilts) or [Manual](#manual) method -* Doesn't work on Laptops - * Just like with HEDT, you will need to either use the [Prebuilt](#prebuilts) or [Manual](#manual) method * Doesn't provide you the USBX property to fix power * This can easily be fixed by using this prebuilt file in addition to SSDT-EC: [SSDT-USBX.aml](https://github.com/dortania/OpenCore-Post-Install/blob/master/extra-files/SSDT-USBX.aml) * Note USBX is only needed for Skylake and newer diff --git a/Universal/imei-methods/manual.md b/Universal/imei-methods/manual.md new file mode 100644 index 0000000..91e982d --- /dev/null +++ b/Universal/imei-methods/manual.md @@ -0,0 +1,40 @@ +# Fixing USB: Manual + +* [Finding the ACPI device](#finding-the-acpi-device) +* [Edits to the sample SSDT](#edits-to-the-sample-ssdt) +* [Compiling the SSDT](#compiling-the-ssdt) +* [Wrapping up](#wrapping-up) + +## Finding the ACPI device + +Finding the ACPI pathing is quite easy actually, first open your decompiled DSDT you got from [Dumping the DSDT](/Manual/dump.md) and [Decompiling and Compiling](/Manual/compile.md) with either maciASL(if in macOS) or any other text editor if in Windows or Linux(VSCode has an [ACPI extension](https://marketplace.visualstudio.com/items?itemName=Thog.vscode-asl) that can also help). + +Next, search for the following devices: + +* `IMEI` +* `HECI` +* `MEI` + +If none of the 3 show up, you'll need to create an SSDT-IMEI. + +**If one of these 3 devices show up**, you do not need SSDT-IMEI! You can simply skip this page. + +The rest of this page will however assume none of those 3 devices showed up. + + +## Compiling the SSDT + +So there's actually no edits required to SSDT-IMEI, you can either grab the source code and compile yourself or use the prebuilt + +* [Prebuilt SSDT-IMEI](https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-IMEI-S.aml) + +* [SSDT-IMEI's source code](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-IMEI.dsl) + + +With the SSDT done, you're now [ready to compile the SSDT!](/Manual/compile.md) + +## Wrapping up + +Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up: + +* [**Cleanup**](/cleanup.md) diff --git a/Universal/imei-methods/prebuilt.md b/Universal/imei-methods/prebuilt.md new file mode 100644 index 0000000..321a161 --- /dev/null +++ b/Universal/imei-methods/prebuilt.md @@ -0,0 +1,11 @@ +# Fixing USB: Prebuilt + +By far the easiest method, all you need to do is download the following file: + +* [SSDT-IMEI.aml](https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-IMEI.aml) + +## Wrapping up + +Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up: + +* [**Cleanup**](/cleanup.md) diff --git a/Universal/imei.md b/Universal/imei.md new file mode 100644 index 0000000..21a91b2 --- /dev/null +++ b/Universal/imei.md @@ -0,0 +1,22 @@ +# Fixing IMEI (SSDT-IMEI) + +- [Fixing IMEI (SSDT-IMEI)](#fixing-imei-ssdt-imei) + - [What this SSDT does](#what-this-ssdt-does) + - [Methods to make this SSDT](#methods-to-make-this-ssdt) + +## What this SSDT does + +The purpose of SSDT-IMEI is: + +* When mixing Ivy Bridge CPUs with 6 series motherboard, we get an issue where the IMEI device becomes incompatible with macOS. Specifically the device-id won't be recognized and this is a very important issue as macOS relies on the IMEI device for iGPU drivers. + * The same applies when mixing Sandy Bridge motherboards with 7 series motherboards +* An extra issue that may pop up is that the IMEI won't appear in ACPI, which can lead to more issues as macOS expects there to be an ACPI device to apply device-id's. So to resolve, we'll want to verify if we have an IMEI device, and if not create a new device. + + +## Methods to make this SSDT + +For the IMEI fix, there are 2 methods you can choose from: + +* [Prebuilt](/Universal/imei-methods/prebuilt.md) + * The prebuilt are a bit bloated. It's recommended to use the method below. +* [Manual](/Universal/imei-methods/manual.md) \ No newline at end of file diff --git a/Universal/nvram-methods/ssdttime.md b/Universal/nvram-methods/ssdttime.md new file mode 100644 index 0000000..02f3eba --- /dev/null +++ b/Universal/nvram-methods/ssdttime.md @@ -0,0 +1,20 @@ +# Fixing NVRAM (SSDT-PMC) + +The second involves using SSDTTime which automates most of the process. See here on how to use it: [SSDTs: Easy Way](/ssdt-methods/ssdt-easy.md) + +To get the SSDT-PMC, run the following: + +* `7. Dump DSDT` then run `5. PMC` + +This will provide you with some files, the main one you care about is SSDT-PMC.**aml**. The DSDT and .dsl are only left for referencing or verification. + +The main things to note with this method: + +* Doesn't really teach you anything + * For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey + +## Wrapping up + +Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up: + +* [**Cleanup**](/cleanup.md) diff --git a/Universal/nvram.md b/Universal/nvram.md index 99542e3..edac591 100644 --- a/Universal/nvram.md +++ b/Universal/nvram.md @@ -20,4 +20,5 @@ This SSDT is required for all "true" 300 series motherboards(Z370 is excluded), The main ways to make this SSDT: * [Prebuilt](/Universal/nvram-methods/prebuilt.md) -* [Manual](/Universal/nvram-methods/manual.md) +* [SSDTTime](/Universal/nvram-methods/ssdttime.md) +* [Manual](/Universal/nvram-methods/manual.md) \ No newline at end of file diff --git a/Universal/plug-methods/ssdttime.md b/Universal/plug-methods/ssdttime.md index fb87b4b..e5e4d77 100644 --- a/Universal/plug-methods/ssdttime.md +++ b/Universal/plug-methods/ssdttime.md @@ -4,9 +4,9 @@ The second involves using SSDTTime which automates most of the process. See here To get the SSDT-PLUG, run the following: -* `4. Dump DSDT` then run `3. PluginType` +* `7. Dump DSDT` then run `3. PluginType` -This will provide you with some files, the main one you care about is SSDT-PLUG**.aml**. The DSDT and .dsl are only left for referencing or verification. +This will provide you with some files, the main one you care about is SSDT-PLUG.**aml**. The DSDT and .dsl are only left for referencing or verification. The main things to note with this method: diff --git a/Universal/plug.md b/Universal/plug.md index 7ccac3a..2f621a4 100644 --- a/Universal/plug.md +++ b/Universal/plug.md @@ -16,5 +16,4 @@ For SSDT-PLUG, there are 3 methods you can choose from: * [Prebuilt](/Universal/plug-methods/prebuilt.md) * [SSDTTime](/Universal/plug-methods/ssdttime.md) - * Note this method does not support **servers** or **HEDT systems** * [Manual](/Universal/plug-methods/manual.md) diff --git a/cleanup.md b/cleanup.md index a4b9e8e..671728f 100644 --- a/cleanup.md +++ b/cleanup.md @@ -4,7 +4,7 @@ So you've made all your SSDTs but now there's one thing left: Adding them to Ope The 2 main locations: -* EFI/OC/ACPI (Only **.aml** files, reminder to [compile your SSDTs](/Manual/compile.md)) +* EFI/OC/ACPI (Only .**aml** files, reminder to [compile your SSDTs](/Manual/compile.md)) * config.plist -> ACPI -> Add You can save yourself some work with the config.plist by running Cmd/Ctrl+R in ProperTree. **Reminder do not add your DSDT.aml to your EFI** diff --git a/extra-files/compiled/SSDT-IMEI-S.aml b/extra-files/compiled/SSDT-IMEI-S.aml new file mode 100644 index 0000000..341ac82 Binary files /dev/null and b/extra-files/compiled/SSDT-IMEI-S.aml differ diff --git a/extra-files/compiled/SSDT-IMEI.aml b/extra-files/compiled/SSDT-IMEI.aml new file mode 100644 index 0000000..1f1a2a1 Binary files /dev/null and b/extra-files/compiled/SSDT-IMEI.aml differ diff --git a/extra-files/decompiled/SSDT-IMEI-S.dsl b/extra-files/decompiled/SSDT-IMEI-S.dsl new file mode 100644 index 0000000..18346db --- /dev/null +++ b/extra-files/decompiled/SSDT-IMEI-S.dsl @@ -0,0 +1,19 @@ +/* + * Only necessary when no IMEI device (with any name) is present in the DSDT and a custom device-id + * is needed to be set via DeviceProperties (some Sandy Bridge or Ivy Bridge configurations). + * + * Source: https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-IMEI.dsl + */ +DefinitionBlock ("", "SSDT", 2, "DRTNIA", "IMEI", 0x00000000) +{ + External (_SB_.PCI0, DeviceObj) + + Scope (_SB.PCI0) + { + Device (IMEI) + { + Name (_ADR, 0x00160000) // _ADR: Address + } + } +} + diff --git a/extra-files/decompiled/SSDT-IMEI-prebuilt.dsl b/extra-files/decompiled/SSDT-IMEI-prebuilt.dsl new file mode 100644 index 0000000..d6c3911 --- /dev/null +++ b/extra-files/decompiled/SSDT-IMEI-prebuilt.dsl @@ -0,0 +1,25 @@ +/* Purpose of this SSDT is to: + * + * - Find references of devices named IMEI, HECI, MEI + * - If none are found, only then create a new IMEI device + * + */ +DefinitionBlock ("", "SSDT", 2, "DRTNIA", "SsdtIMEI", 0x00000000) +{ + External (_SB_.PCI0, DeviceObj) + External (_SB_.PCI0.IMEI, DeviceObj) + External (_SB_.PCI0.HECI, DeviceObj) + External (_SB_.PCI0.MEI, DeviceObj) + + If ((!CondRefOf (\_SB.PCI0.IMEI) && !CondRefOf (\_SB.PCI0.HECI) && !CondRefOf (\_SB.PCI0.MEI))) + { + Scope (_SB.PCI0) + { + Device (IMEI) + { + Name (_ADR, 0x00160000) // _ADR: Address + } + } + } +} + diff --git a/ssdt-methods/ssdt-easy.md b/ssdt-methods/ssdt-easy.md index 148534e..36b9366 100644 --- a/ssdt-methods/ssdt-easy.md +++ b/ssdt-methods/ssdt-easy.md @@ -6,26 +6,16 @@ What this tool does is, it dumps your DSDT from your firmware, and then creates ## So what **CAN'T** SSDTTime do -* **HEDT SSDTs**: - * The ACPI is odd on these platforms so manual work is required - * This includes X79, X99 and X299 systems - * Prebuilt can be found here: [Embedded Controller](/Universal/ec-fix.md) -* **Laptop EC fix**: - * This is because you do not want the EC powered off - * Prebuilt can be found here: [Embedded Controller](/Universal/ec-fix.md) * **SSDT-PNLF**: * Need to be configured to your system * **SSDT-GPI0**: * Need to be configured to your system -* **AWAC and RTC0 SSDTs**: - * 300 series Intel boards will also need to figure this out (Z390 systems are most common for requiring this but some Gigabyte Z370 do as well) -* **PMC SSDT**: - * For fixing 300 series Intel NVRAM - * Prebuilt can be found here: [NVRAM PMC](/Universal/nvram.md) * **USBX SSDT**: * This is included on sample SSDTs but SSDTTime only makes the SSDT-EC part, Skylake and newer users can grab a pre-built here: [SSDT-USBX.aml](https://github.com/dortania/OpenCore-Post-Install/blob/master/extra-files/SSDT-USBX.aml) * **RHUB SSDT**: - * if you have a 10th gen CPU, you'll need to either use the prebuilt or manually create it. + * If you have a 10th gen CPU, you'll need to either use the prebuilt or manually create it. +* **IMEI SSDT**: + * If you have either a Sandy bridge CPU with 7 series motherboard or Ivy Bridge with 6 series motherboard, you'll need to either use the prebuilt or manually create it. For users who don't have all the options available to them in SSDTTime, you can follow the "SSDTs: The long way" section. You can still use SSDTTime for SSDTs it does support. @@ -41,11 +31,18 @@ What are all these options?: * IRQ patching, mainly needed for X79, X99 and laptop users(use option `C` to omit conflicting legacy IRQs) * `2. FakeEC - OS-aware Fake EC` * This is the SSDT-EC, required for Catalina users -* `3. PluginType - Sets plugin-type = 1 on CPU0/PR00` +* `3. FakeEC Laptop - OS-aware Fake EC` + * This is the SSDT-EC, but the laptop version only Builds Fake EC and leaves the existing EC devices untouched, again required for Catalina users +* `4. PluginType - Sets plugin-type = 1 on CPU0/PR00` * This is the SSDT-PLUG, for Intel only -* `4. Dump DSDT - Automatically dump the system DSDT` +* `5. PMC - Sets Power Management controller status` + * This is the SSDT-PMC, for Intel true 300+ series only, this device is missing from ACPI in recent boards and helps to bring back NVRAM support. +* `6. PluginType - Sets plugin-type = 1 on CPU0/PR00` + * This is the SSDT-AWAC/RTC0, its purpose is to fix the system clocks found on newer hardware +* `7. Dump DSDT - Automatically dump the system DSDT` * Dumps your DSDT from your firmware + What we want to do is select option `4. Dump DSDT` first, then select the appropriate option(s) for your system. > What about USBX? diff --git a/ssdt-methods/ssdt-methods.md b/ssdt-methods/ssdt-methods.md index b6c22b8..07fb603 100644 --- a/ssdt-methods/ssdt-methods.md +++ b/ssdt-methods/ssdt-methods.md @@ -5,7 +5,7 @@ Creating SSDTs mainly fall into 3 camps: * [Prebuilt SSDTs](../ssdt-methods/ssdt-prebuilt.md) * They're universal but don't teach much * [Automated tools](../ssdt-methods/ssdt-easy.md) - * Mainly seen with SSDTTime, work much better though can't cover all situations + * Mainly seen with SSDTTime, work much better than prebuilts as there's less bloat however doesn't teach you much * [Manually creating them](../ssdt-methods/ssdt-long.md) * Will always work, be much cleaner and get to learn about the process * However requires you to deal with code diff --git a/ssdt-methods/ssdt-prebuilt.md b/ssdt-methods/ssdt-prebuilt.md index 41fa165..22bfbdc 100644 --- a/ssdt-methods/ssdt-prebuilt.md +++ b/ssdt-methods/ssdt-prebuilt.md @@ -7,6 +7,8 @@ * [Backlight](#backlight) * [System Clock(AWAC)](#system-clockawac) * [NVRAM(PMC)](#nvrampmc) +* [USB(RHUB)](#usbrhub) +* [IMEI](#imei) This is mainly for users who are having troubles either compiling, decompiling or understanding the overall process of ACPI. The main reasons you'd want to avoid is for the following: @@ -29,9 +31,9 @@ For Haswell and newer: For Ivy Bridge and older, see the [Optimizing Power Management page](https://dortania.github.io/OpenCore-Post-Install/universal/pm.html). This will be done *after* install. AMD CPU users **do not** need any SSDTs for power management. -### B550 Fix +### B550 and A520 Fix -For AMD B550 users, you **must** include this SSDT to boot: +For AMD B550 and A520 users, you **must** include this SSDT to boot: * [SSDT-CPUR](https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-CPUR.aml) @@ -93,7 +95,7 @@ The biggest issue with this prebuilt is that we're just guessing you both have a Needed to bring back NVRAM support for Z390 , **DO NOT USE ON Z370 or older or Z490 and newer** -Note: Desktop Z490 boards seem to not need this, though if you're having NVRAM issues you can try this SSDT. +Note: Comet Lake, Ice Lake and newer do not need this. * [SSDT-PMC](https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PMC.aml) @@ -109,4 +111,19 @@ Reminder only the following need this SSDT: Needed for 10th gen Asus motherboards, Gigabyte and AsRock motherboards don't need this: -* [SSDT-RHUB.aml](https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-RHUB.aml) \ No newline at end of file +* [SSDT-RHUB.aml](https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-RHUB.aml) + + +## IMEI + +Required when pairing either: + +* Sandy Bridge CPU with 7 series motherboard + * ie. B75, Q75, Z75, H77, Q77, Z77 + +* Ivy Bridge CPU with 6 series motherboard + * ie. H61, B65, Q65, P67, H67, Q67, Z68 + +Simply grab the following SSDT: + +* [SSDT-IMEI.aml](https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-IMEI.aml) \ No newline at end of file diff --git a/ssdt-platform.md b/ssdt-platform.md index 1c4845e..0a1de31 100644 --- a/ssdt-platform.md +++ b/ssdt-platform.md @@ -11,38 +11,55 @@ Please see the **specific ACPI section of your config.plist**, all SSDTs needed | Platforms | **CPU** | **EC** | **AWAC** | **NVRAM** | **USB** | | :-------: | :-----: | :----: | :------: | :-------: | :-----: | -| SandyBridge | [CPU-PM](https://dortania.github.io/OpenCore-Post-Install/universal/pm.html#sandy-and-ivy-bridge-power-management) (Run in Post-Install) | [SSDT-EC](/Universal/ec-fix.html) | N/A | N/A | N/A | +| SandyBridge | [CPU-PM](https://dortania.github.io/OpenCore-Post-Install/universal/pm.html#sandy-and-ivy-bridge-power-management) (Run in Post-Install) | [SSDT-EC](/Universal/ec-fix) | N/A | N/A | N/A | | Ivy Bridge | ^^ | ^^ | N/A | N/A | N/A | -| Haswell | [SSDT-PLUG](/Universal/plug.html) | ^^ | ^^ | ^^ | ^^ | +| Haswell | [SSDT-PLUG](/Universal/plug) | ^^ | ^^ | ^^ | ^^ | | Broadwell | ^^ | ^^ | ^^ | ^^ | ^^ | -| Skylake | ^^ | [SSDT-EC-USBX](/Universal/ec-fix.html) | ^^ | ^^ | ^^ | +| Skylake | ^^ | [SSDT-EC-USBX](/Universal/ec-fix) | ^^ | ^^ | ^^ | | Kaby Lake | ^^ | ^^ | ^^ | ^^ | ^^ | -| Coffee Lake | ^^ | ^^ | [SSDT-AWAC](/Universal/awac.html) | [SSDT-PMC](/Universal/nvram.html) | ^^ | -| Comet Lake | ^^ | ^^ | ^^ | N/A | [SSDT-RHUB](/Universal/rhub.html) | -| AMD (15/16/17h) | [SSDT-CPUR](https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-CPUR.aml) | ^^ | N/A | ^^ | N/A | +| Coffee Lake | ^^ | ^^ | [SSDT-AWAC](/Universal/awac) | [SSDT-PMC](/Universal/nvram) | ^^ | +| Comet Lake | ^^ | ^^ | ^^ | N/A | [SSDT-RHUB](/Universal/rhub) | +| AMD (15/16h) | N/A | ^^ | N/A | ^^ | N/A | +| AMD (17h) | [SSDT-CPUR for B550](https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-CPUR.aml) | ^^ | N/A | ^^ | N/A | ## High End Desktop | Platforms | **CPU** | **EC** | **AWAC** | | :-------: | :-----: | :----: | :------: | -| Ivy Bridge-E | [SSDT-PLUG](/Universal/plug.html) | [SSDT-EC](/Universal/ec-fix.html) | N/A | -| Haswell-E | ^^ | [SSDT-EC-USBX](/Universal/ec-fix.html) | ^^ | +| Nehalem and Westmere | N/A | [SSDT-EC](/Universal/ec-fix) | N/A | +| Ivy Bridge-E | [SSDT-PLUG](/Universal/plug) | ^^ | ^^ | +| Haswell-E | ^^ | [SSDT-EC-USBX](/Universal/ec-fix) | ^^ | | Broadwell-E | ^^ | ^^ | ^^ | -| Skylake-X | ^^ | ^^ | [SSDT-AWAC](/Universal/awac.html) | +| Skylake-X | ^^ | ^^ | [SSDT-AWAC](/Universal/awac) | ## Laptop | Platforms | **CPU** | **EC** | **Backlight** | **I2C Trackpad** | **AWAC** | **USB** | **IRQ** | | :-------: | :-----: | :----: | :-----------: | :--------------: | :------: | :-----: | :-----: | -| SandyBridge | [CPU-PM](https://dortania.github.io/OpenCore-Post-Install/universal/pm.html#sandy-and-ivy-bridge-power-management) (Run in Post-Install) | [SSDT-EC](/Universal/ec-fix.html) | [SSDT-PNLF](/Laptops/backlight.html) | [SSDT-GPI0](/Laptops/trackpad.html) | N/A | N/A | [IRQ SSDT](/Universal/irq.html) | +| SandyBridge | [CPU-PM](https://dortania.github.io/OpenCore-Post-Install/universal/pm.html#sandy-and-ivy-bridge-power-management) (Run in Post-Install) | [SSDT-EC](/Universal/ec-fix) | [SSDT-PNLF](/Laptops/backlight) | N/A | N/A | N/A | [IRQ SSDT](/Universal/irq) | | Ivy Bridge | ^^ | ^^ | ^^ | ^^ | ^^ | ^^ | ^^ | -| Haswell | [SSDT-PLUG](/Universal/plug.html) | ^^ | ^^ | ^^ | ^^ | ^^ | ^^ | +| Haswell | [SSDT-PLUG](/Universal/plug) | ^^ | ^^ | [SSDT-GPI0](/Laptops/trackpad) | ^^ | ^^ | ^^ | | Broadwell | ^^ | ^^ | ^^ | ^^ | ^^ | ^^ | ^^ | -| Skylake | ^^ | [SSDT-EC-USBX](/Universal/ec-fix.html) | ^^ | ^^ | ^^ | ^^ | N/A | +| Skylake | ^^ | [SSDT-EC-USBX](/Universal/ec-fix) | ^^ | ^^ | ^^ | ^^ | N/A | | Kaby Lake | ^^ | ^^ | ^^ | ^^ | ^^ | ^^ | ^^ | -| Coffee Lake (8th Gen) | ^^ | ^^ | [SSDT-PNLF-CFL](/Laptops/backlight.html) | ^^ | ^^ | ^^ | ^^ | -| Coffee Lake (9th Gen) | ^^ | ^^ | ^^ | ^^ | [SSDT-AWAC](/Universal/awac.html) | ^^ | ^^ | +| Coffee Lake (8th Gen) and Whiskey Lake | ^^ | ^^ | [SSDT-PNLF-CFL](/Laptops/backlight) | ^^ | ^^ | ^^ | ^^ | +| Coffee Lake (9th Gen) | ^^ | ^^ | ^^ | ^^ | [SSDT-AWAC](/Universal/awac) | ^^ | ^^ | | Comet Lake | ^^ | ^^ | ^^ | ^^ | ^^ | ^^ | ^^ | -| Ice Lake | ^^ | ^^ | ^^ | ^^ | ^^ | [SSDT-RHUB](/Universal/rhub.html) | ^^ | +| Ice Lake | ^^ | ^^ | ^^ | ^^ | ^^ | [SSDT-RHUB](/Universal/rhub) | ^^ | + +Continuing: + +| Platforms | **NVRAM** | **IMEI** | +| :-------: | :-------: | :------: | +| Sandy Bridge | N/A | [SSDT-IMEI](/Universal/imei) | +| Ivy Bridge | ^^ | ^^ | +| Haswell | ^^ | N/A | +| Broadwell | ^^ | ^^ | +| Skylake | ^^ | ^^ | +| Kaby Lake | ^^ | ^^ | +| Coffee Lake (8th Gen) and Whiskey Lake | ^^ | ^^ | +| Coffee Lake (9th Gen) | [SSDT-PMC](/Universal/nvram) | ^^ | +| Comet Lake | N/A | ^^ | +| Ice Lake | ^^ | ^^ | ## [SSDT Creation](/ssdt-methods/ssdt-methods.md)