diff --git a/CONTRIBUTING.html b/CONTRIBUTING.html
index a0d7973..adf6ef0 100644
--- a/CONTRIBUTING.html
+++ b/CONTRIBUTING.html
@@ -262,7 +262,7 @@
- Embedded Controller
+ Embedded Controller
@@ -447,7 +447,7 @@
Last modified: Mon Apr 27 2020 19:57:31 GMT+0000 (Coordinated Universal Time) Last modified: Thu Apr 30 2020 15:41:14 GMT+0000 (Coordinated Universal Time) Note: This is a community run guide which is not officially endorsed by Acidanthera. Please do not bug Acidanthera with issues about this guide. Last modified: Mon Apr 27 2020 19:57:31 GMT+0000 (Coordinated Universal Time) Last modified: Thu Apr 30 2020 15:41:14 GMT+0000 (Coordinated Universal Time) So this is mainly needed for GPUs that are not supported in macOS, mainly this will be Nvidia users who wish to pair an AMD GPU for macOS use. While WhateverGreen does support the boot-arg Last modified: Mon Apr 27 2020 19:57:31 GMT+0000 (Coordinated Universal Time) Last modified: Thu Apr 30 2020 15:41:14 GMT+0000 (Coordinated Universal Time) So what this SSDT does is create a PNLF device for macOS to play with, specifically one with a hardware ID of Last modified: Mon Apr 27 2020 19:57:31 GMT+0000 (Coordinated Universal Time) Last modified: Thu Apr 30 2020 15:41:14 GMT+0000 (Coordinated Universal Time) So with laptops, we can hide the dGPU from macOS with the little boot-arg called Last modified: Mon Apr 27 2020 19:57:31 GMT+0000 (Coordinated Universal Time) Last modified: Thu Apr 30 2020 15:41:14 GMT+0000 (Coordinated Universal Time) This SSDT is used to force enable our GPI0 for VoodooI2C to connect onto. Last modified: Mon Apr 27 2020 19:57:31 GMT+0000 (Coordinated Universal Time) Last modified: Thu Apr 30 2020 15:41:14 GMT+0000 (Coordinated Universal Time) See Troubleshooting if you have dumping/compiling errors Last modified: Mon Apr 27 2020 19:57:31 GMT+0000 (Coordinated Universal Time) Last modified: Thu Apr 30 2020 15:41:14 GMT+0000 (Coordinated Universal Time) So to start, we'll need to get a copy of your DSDT from your firmware. The easiest way is grabbing the DSDT.aml SSDTTime dumped for us earlier but here are some other options: Last modified: Mon Apr 27 2020 19:57:31 GMT+0000 (Coordinated Universal Time) Last modified: Thu Apr 30 2020 15:41:14 GMT+0000 (Coordinated Universal Time) For Intel 300 series chipsets and newer, this also includes X299 refreshes and Icelake laptops. Common machines: So on newer Intel 300 series motherboards, manufactures started pushing for a new type of system clock: AWAC( A Weird Ass Clock). One small problem, macOS doesn't know what the hell an AWAC clock is instead only familiar with the legacy RTC(Real Time Clock). So we need to figure out how to bring back the old clock, thats where Last modified: Mon Apr 27 2020 19:57:31 GMT+0000 (Coordinated Universal Time) Last modified: Thu Apr 30 2020 15:41:14 GMT+0000 (Coordinated Universal Time) What we'll be doing is creating a fake Embedded Controller (EC) to satisfy macOS Catalina's EC addiction, and disabling the EC on desktops to prevent panics and crashes. Note if you have an STA Method as well, see below: STA Edge Case This means you only need to fake an Embedded Controller rather so that AppleBusPowerController will load and handle USB power properly and continue booting. To make the actual SSDT, its almost plug and play as no uncommenting needed. The main thing that needs to be changed:
-
Supporting the guides
-
Disabling unsupported GPUs(Desktops)
-wegnoegpu, this only works when running on iGPU so for the rest of us we'll need to make an SSDT.
-
Fixing Backlight
APP0002. WhateverGreen will handle the rest of the work
-
Disabling laptop dGPUs
-wegnoegpu from WhateverGreen. But one small problem, the dGPU is still pulling power draining your battery slowly. We'll be going over 2 methods for disabling the dGPU in a laptop:
-
Fixing Trackpads
-
Compiling and decompiling ACPI Tables
-
Getting a copy of our DSDT
-
Fixing System Clocks
SSDT-AWAC and SSDT-RTC0 come in:
@@ -536,7 +536,7 @@
diff --git a/Universal/ec-fix.html b/Universal/ec-fix.html
index ff5eafb..76f41b0 100644
--- a/Universal/ec-fix.html
+++ b/Universal/ec-fix.html
@@ -4,7 +4,7 @@
-
- Embedded Controller
+ Embedded Controller
@@ -449,7 +449,7 @@
-
Fixing Embedded Controller
_GPE (General Purpose Events)What happens if no
+PNP0C09 show up?What happens if no
PNP0C09 show up
-Last modified: Mon Apr 27 2020 19:57:31 GMT+0000 (Coordinated Universal Time)
+Last modified: Thu Apr 30 2020 15:41:14 GMT+0000 (Coordinated Universal Time)
So you miss having those fancy hot-patches from Clover like FixIPIC, FixTMR, FixRTC, FixHPET, etc
@@ -497,7 +497,7 @@ diff --git a/Universal/nvram.html b/Universal/nvram.html index 0267185..15e3588 100644 --- a/Universal/nvram.html +++ b/Universal/nvram.html @@ -264,7 +264,7 @@ - Embedded Controller + Embedded Controller @@ -449,7 +449,7 @@-Last modified: Mon Apr 27 2020 19:57:31 GMT+0000 (Coordinated Universal Time)
+Last modified: Thu Apr 30 2020 15:41:14 GMT+0000 (Coordinated Universal Time)
This SSDT is required for all "true" 300 series motherboards and newer(Z370 is excluded), it specifically brings back NVRAM support and requires very little configuration for the end user.
@@ -460,15 +460,15 @@By default it uses PCI0.LPCB for the PCI and LowPinCount path. The device names can vary between PC00 and PCI0 for PCI path and LPCB, LBC and LBC0 for LowPinCount path. To see what you have:
Name (_ADR, 0x001F0000)PNP0A08 (If multiple show up, use the first one)-Last modified: Mon Apr 27 2020 19:57:31 GMT+0000 (Coordinated Universal Time)
+Last modified: Thu Apr 30 2020 15:41:14 GMT+0000 (Coordinated Universal Time)
CPU naming is fairly easy to figure out as well, open your decompiled DSDT and search for Processor. This should give you a result like this:

As we can see, the first processor in our list is PR00. This is what we'll be applying the plugin-type=1 property too. Now grab SSDT-PLUG and replace the default CPU0 with our PR00. There's a couple things to note:
As we can see, the first processor in our list is PR00. This is what we'll be applying the plugin-type=1 property too. Now grab SSDT-PLUG and replace the default CPU0 with our PR00. There's a couple things to note:
PR path may need to be changed, in our example we can see that our PR00 has SB in front.So in our final example, we'd have _SB_.PR00 and \_SB.PR00
There are also some edge cases with Processor, specifically on HEDT series like X79, X99 and X299. This edge case is that the ACPI path is much longer and not so obvious:

If we then search for instances of CP00 we find that it's ACPI path is SB.SCK0.CP00:
-Last modified: Mon Apr 27 2020 19:57:31 GMT+0000 (Coordinated Universal Time)
+Last modified: Thu Apr 30 2020 15:41:14 GMT+0000 (Coordinated Universal Time)
This section of the guide refers to fixing AppleSMBus support in macOS, what is AppleSMBus? Well this mainly handles the System Management Bus, which has many functions like:
@@ -466,7 +466,7 @@For install purposes, this SSDT isn't needed but for post-install it's recommended to put the final touches on your hack.
So to get started, we'll want to grab our SMBus SSDT:
@@ -497,7 +497,7 @@ Look for the SMBus device under Subclass, then look beside and you'll see tExternal (_SB_.PC00, DeviceObj) <- Renamed
External (_SB_.PC00.SMBS.BUS0, DeviceObj) <- Renamed
-Scope (_SB.PC00)
+Scope (_SB.PC00)
{
Device (MCHC)
{
@@ -554,7 +554,7 @@ Device (_SB.PC00.SMBS.BUS0) <- Renamed
diff --git a/Universal/spoof.html b/Universal/spoof.html
index a40429e..7666a83 100644
--- a/Universal/spoof.html
+++ b/Universal/spoof.html
@@ -264,7 +264,7 @@
- Embedded Controller
+ Embedded Controller
@@ -449,7 +449,7 @@
-Last modified: Mon Apr 27 2020 19:57:31 GMT+0000 (Coordinated Universal Time)
+Last modified: Thu Apr 30 2020 15:41:14 GMT+0000 (Coordinated Universal Time)
Renaming GPUs
So this is mainly needed for GPUs that are not natively supported out of the box due to their names, most commonly:
@@ -485,7 +485,7 @@ Buffer (0x04)
As you can see, the bytes are swapped in pairs. Keep this in mind when we make our SSDT
The specifics are due to Endianness for those who are curious
To find the PCI path of a GPU is fairly simple, best way to find it is running Windows:
+To find the PCI path of a GPU is fairly simple, best way to find it is running Windows:
"device-id" will be set to our PCI ID that we found in "Finding a suitable PCI ID" and "model" is mainly cosmetic
"device-id" will be set to our PCI ID that we found in "Finding a suitable PCI ID" and "model" is mainly cosmetic
-Last modified: Mon Apr 27 2020 19:57:31 GMT+0000 (Coordinated Universal Time)
+Last modified: Thu Apr 30 2020 15:41:14 GMT+0000 (Coordinated Universal Time)
So you've made all your SSDTs but now there's one thing left: Adding them to Opencore
@@ -510,7 +510,7 @@ diff --git a/extra-files/SSDT-PLUG.dsl b/extra-files/SSDT-PLUG.dsl new file mode 100644 index 0000000..dbd2a0f --- /dev/null +++ b/extra-files/SSDT-PLUG.dsl @@ -0,0 +1,50 @@ +/* + * XCPM power management compatibility table. + */ +DefinitionBlock ("", "SSDT", 2, "Dortania", "CpuPlug", 0x00003000) +{ + External (_PR_.CPU0, ProcessorObj) // Rename this + + Scope (\_PR.CPU0) // Rename this + { + Method (DTGP, 5, NotSerialized) + { + If ((Arg0 == ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b"))) + { + If ((Arg1 == One)) + { + If ((Arg2 == Zero)) + { + Arg4 = Buffer (One) + { + 0x03 // . + } + Return (One) + } + + If ((Arg2 == One)) + { + Return (One) + } + } + } + + Arg4 = Buffer (One) + { + 0x00 // . + } + Return (Zero) + } + + Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method + { + Local0 = Package (0x02) + { + "plugin-type", + One + } + DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) + Return (Local0) + } + } +} diff --git a/extra-files/SSDT-PLUG.dsl.zip b/extra-files/SSDT-PLUG.dsl.zip new file mode 100644 index 0000000..c556573 Binary files /dev/null and b/extra-files/SSDT-PLUG.dsl.zip differ diff --git a/index.html b/index.html index 4da693e..02a50ef 100644 --- a/index.html +++ b/index.html @@ -262,7 +262,7 @@ - Embedded Controller + Embedded Controller @@ -447,7 +447,7 @@-Last modified: Mon Apr 27 2020 19:57:31 GMT+0000 (Coordinated Universal Time)
+Last modified: Thu Apr 30 2020 15:41:14 GMT+0000 (Coordinated Universal Time)

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:
EC to be present though, so a dummy EC is created. EC to be present though, so a dummy EC is created.-Last modified: Mon Apr 27 2020 19:57:31 GMT+0000 (Coordinated Universal Time)
+Last modified: Thu Apr 30 2020 15:41:15 GMT+0000 (Coordinated Universal Time)
So here we'll be using a super simple tool made by CorpNewt: SSDTTime
@@ -573,7 +573,7 @@ diff --git a/ssdt-long.html b/ssdt-long.html index 5594375..cfad1ca 100644 --- a/ssdt-long.html +++ b/ssdt-long.html @@ -264,7 +264,7 @@ - Embedded Controller + Embedded Controller @@ -449,7 +449,7 @@-Last modified: Mon Apr 27 2020 19:57:31 GMT+0000 (Coordinated Universal Time)
+Last modified: Thu Apr 30 2020 15:41:15 GMT+0000 (Coordinated Universal Time)
Well sadly some things are not handled by SSDTTime, well have no fear as making SSDTs is super easy. The basic process:
@@ -503,7 +503,7 @@ diff --git a/troubleshooting.html b/troubleshooting.html index 12870af..d082871 100644 --- a/troubleshooting.html +++ b/troubleshooting.html @@ -264,7 +264,7 @@ - Embedded Controller + Embedded Controller @@ -449,7 +449,7 @@-Last modified: Mon Apr 27 2020 19:57:31 GMT+0000 (Coordinated Universal Time)
+Last modified: Thu Apr 30 2020 15:41:15 GMT+0000 (Coordinated Universal Time)