From f91094fafe7d7b9be2572baf145bb4b271a90e4d Mon Sep 17 00:00:00 2001 From: 1alessandro1 <46293832+1alessandro1@users.noreply.github.com> Date: Sat, 29 Aug 2020 00:38:36 +0200 Subject: [PATCH 01/11] Add AWAC/RTC0 guide Using SSDTTime by corpnewt, this feature can be added for quicker ways to build that SSDT --- Universal/awac-methods/ssdttime.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 Universal/awac-methods/ssdttime.md diff --git a/Universal/awac-methods/ssdttime.md b/Universal/awac-methods/ssdttime.md new file mode 100644 index 0000000..eea968c --- /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: + +* `4. 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) From 964ceb5245ee4dfb5fd43d6609c4f592106f76ac Mon Sep 17 00:00:00 2001 From: 1alessandro1 <46293832+1alessandro1@users.noreply.github.com> Date: Sat, 29 Aug 2020 00:39:24 +0200 Subject: [PATCH 02/11] Update ssdt-easy.md --- ssdt-methods/ssdt-easy.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/ssdt-methods/ssdt-easy.md b/ssdt-methods/ssdt-easy.md index 148534e..49174cb 100644 --- a/ssdt-methods/ssdt-easy.md +++ b/ssdt-methods/ssdt-easy.md @@ -10,18 +10,10 @@ What this tool does is, it dumps your DSDT from your firmware, and then creates * 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**: @@ -41,11 +33,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? From 5089f496f2815ebcd6208c5c524f05871111fd05 Mon Sep 17 00:00:00 2001 From: 1alessandro1 <46293832+1alessandro1@users.noreply.github.com> Date: Sat, 29 Aug 2020 00:43:12 +0200 Subject: [PATCH 03/11] Create ssdttime.md --- Universal/pmc-methods/ssdttime.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 Universal/pmc-methods/ssdttime.md diff --git a/Universal/pmc-methods/ssdttime.md b/Universal/pmc-methods/ssdttime.md new file mode 100644 index 0000000..71243ae --- /dev/null +++ b/Universal/pmc-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: + +* `4. 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) From 49aed2efd17a9d1e21fc092dc568764120b9a129 Mon Sep 17 00:00:00 2001 From: 1alessandro1 <46293832+1alessandro1@users.noreply.github.com> Date: Sat, 29 Aug 2020 00:45:45 +0200 Subject: [PATCH 04/11] Update ssdttime.md --- Universal/ec-methods/ssdttime.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/Universal/ec-methods/ssdttime.md b/Universal/ec-methods/ssdttime.md index 0e54f82..859d975 100644 --- a/Universal/ec-methods/ssdttime.md +++ b/Universal/ec-methods/ssdttime.md @@ -12,8 +12,6 @@ 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 From 49181309346628ca31ebb5c11efa236768c364d6 Mon Sep 17 00:00:00 2001 From: 1alessandro1 <46293832+1alessandro1@users.noreply.github.com> Date: Sat, 29 Aug 2020 00:46:41 +0200 Subject: [PATCH 05/11] Update ssdttime.md --- Universal/ec-methods/ssdttime.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Universal/ec-methods/ssdttime.md b/Universal/ec-methods/ssdttime.md index 859d975..354f324 100644 --- a/Universal/ec-methods/ssdttime.md +++ b/Universal/ec-methods/ssdttime.md @@ -2,9 +2,13 @@ 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` + +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. From 7fef8c3204ef3f543cab32d03b827e7203080012 Mon Sep 17 00:00:00 2001 From: 1alessandro1 <46293832+1alessandro1@users.noreply.github.com> Date: Sat, 29 Aug 2020 00:46:58 +0200 Subject: [PATCH 06/11] Update ssdttime.md --- Universal/awac-methods/ssdttime.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Universal/awac-methods/ssdttime.md b/Universal/awac-methods/ssdttime.md index eea968c..937d469 100644 --- a/Universal/awac-methods/ssdttime.md +++ b/Universal/awac-methods/ssdttime.md @@ -4,7 +4,7 @@ The second involves using SSDTTime which automates most of the process. See here To get the SSDT-PMC, run the following: -* `4. Dump DSDT` then run `6. AWAC` +* `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. From 754b5e3bdc4b1f4ba917edb6e205f6f643ceaaf7 Mon Sep 17 00:00:00 2001 From: 1alessandro1 <46293832+1alessandro1@users.noreply.github.com> Date: Sat, 29 Aug 2020 00:48:08 +0200 Subject: [PATCH 07/11] Delete ssdttime.md --- Universal/pmc-methods/ssdttime.md | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 Universal/pmc-methods/ssdttime.md diff --git a/Universal/pmc-methods/ssdttime.md b/Universal/pmc-methods/ssdttime.md deleted file mode 100644 index 71243ae..0000000 --- a/Universal/pmc-methods/ssdttime.md +++ /dev/null @@ -1,20 +0,0 @@ -# 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: - -* `4. 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) From d50cd9c1ab8fd2bfb32460bdacf273cb1841ef6f Mon Sep 17 00:00:00 2001 From: 1alessandro1 <46293832+1alessandro1@users.noreply.github.com> Date: Sat, 29 Aug 2020 00:48:30 +0200 Subject: [PATCH 08/11] Create ssdttime.md --- Universal/nvram-methods/ssdttime.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 Universal/nvram-methods/ssdttime.md diff --git a/Universal/nvram-methods/ssdttime.md b/Universal/nvram-methods/ssdttime.md new file mode 100644 index 0000000..71243ae --- /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: + +* `4. 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) From 33166a29d9f686d880592a817388cafd2ed3e752 Mon Sep 17 00:00:00 2001 From: 1alessandro1 <46293832+1alessandro1@users.noreply.github.com> Date: Sat, 29 Aug 2020 00:48:43 +0200 Subject: [PATCH 09/11] Update ssdttime.md --- Universal/nvram-methods/ssdttime.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Universal/nvram-methods/ssdttime.md b/Universal/nvram-methods/ssdttime.md index 71243ae..0f4cda3 100644 --- a/Universal/nvram-methods/ssdttime.md +++ b/Universal/nvram-methods/ssdttime.md @@ -4,7 +4,7 @@ The second involves using SSDTTime which automates most of the process. See here To get the SSDT-PMC, run the following: -* `4. Dump DSDT` then run `5. PMC` +* `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. From 7e198202ea03323fb84ecbff0d2d1bee4610c944 Mon Sep 17 00:00:00 2001 From: 1alessandro1 <46293832+1alessandro1@users.noreply.github.com> Date: Sat, 29 Aug 2020 00:49:14 +0200 Subject: [PATCH 10/11] Update ssdttime.md --- Universal/plug-methods/ssdttime.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Universal/plug-methods/ssdttime.md b/Universal/plug-methods/ssdttime.md index fb87b4b..0fcbadd 100644 --- a/Universal/plug-methods/ssdttime.md +++ b/Universal/plug-methods/ssdttime.md @@ -4,7 +4,7 @@ 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. From 0b98e8232e516c18e4fa54b2db0217e0bb330bd3 Mon Sep 17 00:00:00 2001 From: Mykola Grymalyuk <48863253+khronokernel@users.noreply.github.com> Date: Tue, 1 Sep 2020 11:27:37 -0600 Subject: [PATCH 11/11] Misc fixes --- .vuepress/config.js | 12 +++++ Universal/awac-methods/ssdttime.md | 2 +- Universal/awac.md | 5 +- Universal/ec-fix.md | 2 +- Universal/ec-methods/ssdttime.md | 2 +- Universal/imei-methods/manual.md | 40 +++++++++++++++ Universal/imei-methods/prebuilt.md | 11 ++++ Universal/imei.md | 22 ++++++++ Universal/nvram-methods/ssdttime.md | 2 +- Universal/nvram.md | 3 +- Universal/plug-methods/ssdttime.md | 2 +- Universal/plug.md | 1 - cleanup.md | 2 +- extra-files/compiled/SSDT-IMEI-S.aml | Bin 0 -> 80 bytes extra-files/compiled/SSDT-IMEI.aml | Bin 0 -> 197 bytes extra-files/decompiled/SSDT-IMEI-S.dsl | 19 +++++++ extra-files/decompiled/SSDT-IMEI-prebuilt.dsl | 25 ++++++++++ ssdt-methods/ssdt-easy.md | 8 ++- ssdt-methods/ssdt-methods.md | 2 +- ssdt-methods/ssdt-prebuilt.md | 25 ++++++++-- ssdt-platform.md | 47 ++++++++++++------ 21 files changed, 197 insertions(+), 35 deletions(-) create mode 100644 Universal/imei-methods/manual.md create mode 100644 Universal/imei-methods/prebuilt.md create mode 100644 Universal/imei.md create mode 100644 extra-files/compiled/SSDT-IMEI-S.aml create mode 100644 extra-files/compiled/SSDT-IMEI.aml create mode 100644 extra-files/decompiled/SSDT-IMEI-S.dsl create mode 100644 extra-files/decompiled/SSDT-IMEI-prebuilt.dsl 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 index 937d469..a413d95 100644 --- a/Universal/awac-methods/ssdttime.md +++ b/Universal/awac-methods/ssdttime.md @@ -6,7 +6,7 @@ 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. +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: 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 354f324..d933370 100644 --- a/Universal/ec-methods/ssdttime.md +++ b/Universal/ec-methods/ssdttime.md @@ -10,7 +10,7 @@ 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. +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: 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 index 0f4cda3..02f3eba 100644 --- a/Universal/nvram-methods/ssdttime.md +++ b/Universal/nvram-methods/ssdttime.md @@ -6,7 +6,7 @@ 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. +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: 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 0fcbadd..e5e4d77 100644 --- a/Universal/plug-methods/ssdttime.md +++ b/Universal/plug-methods/ssdttime.md @@ -6,7 +6,7 @@ To get the SSDT-PLUG, run the following: * `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 0000000000000000000000000000000000000000..341ac825cc2fa66dbc6f4dcf106d604ebb2764ec GIT binary patch literal 80 zcmWFzb_oe!U|?X%a|sIZ^K=X@PAT#9b@c=aF?jlg_-L>yC@kP-5RK7`4|a+VaP~A{ Z`!663=R`O0gH&_GJGun%FffQQ000wv69E7K literal 0 HcmV?d00001 diff --git a/extra-files/compiled/SSDT-IMEI.aml b/extra-files/compiled/SSDT-IMEI.aml new file mode 100644 index 0000000000000000000000000000000000000000..1f1a2a1918066416bea09c644ef4a2da5049d76c GIT binary patch literal 197 zcmWFzb_qGkz`(%t(j_Rw&(kruIHknX*VPj!#Ng={;-kT;ps>J=g+Vk%FFx2QKET=2 zfbG9%j6O4r2U3hG;^FFyCIVCv&-QlcI&tG&7(Ifpnt@fwVISNW&cv-NX;F Pl_TEKC5VTCL5u+a_DnSa literal 0 HcmV?d00001 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 49174cb..36b9366 100644 --- a/ssdt-methods/ssdt-easy.md +++ b/ssdt-methods/ssdt-easy.md @@ -6,10 +6,6 @@ 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) * **SSDT-PNLF**: * Need to be configured to your system * **SSDT-GPI0**: @@ -17,7 +13,9 @@ What this tool does is, it dumps your DSDT from your firmware, and then creates * **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. 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)