Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Alder Lake and Rocket Lake support #73

Open
wants to merge 13 commits into
base: master
Choose a base branch
from
19 changes: 19 additions & 0 deletions .vuepress/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,16 @@ module.exports = {
['/Universal/plug-methods/manual', 'Manual'],
]
},
['/Universal/plug-alt', 'CPU Power Management and Processor Definition'],
{
title: 'Methods',
collapsable: true,
sidebarDepth: 2,
children: [
['/Universal/plug-alt-methods/prebuilt', 'Prebuilt'],
['/Universal/plug-alt-methods/manual', 'Manual'],
]
},
['/Universal/awac', 'AWAC vs RTC'],
{
title: 'Methods',
Expand Down Expand Up @@ -256,6 +266,15 @@ module.exports = {
['/Universal/smbus-methods/manual', 'Manual'],
]
},
['/Universal/brg0', 'Fixing Property Injection'],
{
title: 'Methods',
collapsable: true,
sidebarDepth: 2,
children: [
['/Universal/brg0-methods/manual', 'Manual'],
]
},
['/Universal/irq', 'IRQ Fix'],
['/Universal/spoof', 'GPU Spoof'],
]
Expand Down
51 changes: 51 additions & 0 deletions Universal/brg0-methods/manual.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Fixing Property Injection: Manual
tarbaII marked this conversation as resolved.
Show resolved Hide resolved

* [Getting IORegistryExplorer](#getting-io)
* [Finding the ACPI path](#finding-the-acpi-path)
* [Edits to the sample SSDT](#edits-to-the-sample-ssdt)
* [Compiling the SSDT](#compiling-the-ssdt)
* [Wrapping up](#wrapping-up)

## Getting IORegistryExplorer

To find the ACPI path of your missing PCI bridge, we can use [IORegistryExplorer](https://developer.apple.com/downloads). Download the `Additional Tools for Xcode` package, IORegistryExplorer will be in the `Hardware` folder of the DMG.

## Finding the ACPI path

Open IORegistryExplorer, and search for your GPU. It may be called a number of different things, the most common names are `GFX0` and `display`. Once you find it, select it, your screen should look like one of these two images:

| No PCI bridge | Present PCI bridge |
| :-------------------------: | :-------------------------: |
| ![](../../images/Universal/brg0-md/no-bridge-ioreg.png) | ![](../../images/Universal/brg0-md/bridge-ioreg.png) |
| Doesn't need SSDT-BRG0 | May need SSDT-BRG0 |
tarbaII marked this conversation as resolved.
Show resolved Hide resolved

At this point, if your IORegistry looks like the screenshot on the left, meaning your GPU is not attached to a PCI bridge, you're done and can move on to the [Wrapping Up](#wrapping-up) section, as you do not need SSDT-BRG0. If your GPU is attached to a PCI bridge like the screenshot on the right (worth noting that on your IORegistry, the bridge will almost certainly be called `pci-bridge`, not `BRG0`) then you may need SSDT-BRG0.

You can check for certain by looking for the `acpi-path` property of the PCI bridge. If there is no `acpi-path` property, you need SSDT-BRG0. If the `acpi-path` property exists, you do not need this SSDT and can continue to [Wrapping Up](#wrapping-up). To find the path to your GPU, look at the second dropdown at the top left of IORegistryExplorer that should contain a string starting with `IOService:/`. We need to look for substrings containing an @ symbol, these will be part of our final path.

![](../../images/Universal/brg0-md/no-bridge-ioreg.png)

In this example, the dropdown's text is `IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1,2/IOPP/GFX0@0`. Since we need to prefix this with `_SB_`, our GPU's full path in this example would be `_SB_.PCI0.PEG0.GFX0`. However, in this SSDT we need to set the scope to just before both the GPU and PCI bridge, so we'd remove `GFX0`: `_SB_.PCI0.PEG0`. This will, of course, probably be different from what the path is on your system.

## Edits to the sample SSDT

Now that we have our ACPI path, lets grab our SSDT and get to work:

* [SSDT-BRG0.dsl](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/Source/SSDT-BRG0.dsl)

Once you've opened it up in your text editor or IDE of choice, replace the path in the `External` and `Scope` blocks with the path you found earlier. Make sure to keep the backslash prefix on the `Scope` block.

| Before | After |
| :-------------------------: | :-------------------------: |
| ![](../../images/Universal/brg0-md/before-edit.png) | ![](../../images/Universal/brg0-md/after-edit.png) |
| The after photo is an example based on the earlier screenshot. Edit the SSDT with your own path. |

## Compiling the SSDT

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)
16 changes: 16 additions & 0 deletions Universal/brg0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Fixing Property Injection (SSDT-BRG0)

* [Fixing Property Injection (SSDT-BRG0)](#fixing-property-injection-ssdt-brg0)
* [What this SSDT does](#what-this-ssdt-does)
* [Methods to make this SSDT](#methods-to-make-this-ssdt)

## What this SSDT does

On some platforms, the PCI bridge your GPU is connected to is not defined.
tarbaII marked this conversation as resolved.
Show resolved Hide resolved
This SSDT fixes that by defining the bridge device (BRG0) and your GPU under that bridge.

## Methods to make this SSDT

For SSDT-BRG0, there's only one option:

* [Manual](/Universal/brg0-methods/manual.md)
19 changes: 19 additions & 0 deletions Universal/plug-alt-methods/manual.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Fixing Power Management and Processor Definition: Manual

* [Grabbing the SSDT](#grabbing-the-ssdt)
* [Compiling the SSDT](#compiling-the-ssdt)
* [Wrapping up](#wrapping-up)

## Grabbing the SSDT

[Download SSDT-PLUG-ALT.dsl from here.](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/Source/SSDT-PLUG-ALT.dsl)

## Compiling the SSDT

This SSDT requires no editing, so 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)
18 changes: 18 additions & 0 deletions Universal/plug-alt-methods/prebuilt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Fixing Power Management and Processor Definition: Prebuilt

By far the easiest way to get SSDT-PLUG-ALT is just downloading the below file:

* [SSDT-PLUG-ALT.aml](https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PLUG-ALT.aml)

This prebuilt file is just a precompiled version of [SSDT-PLUG-ALT.dsl](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/Source/SSDT-PLUG-ALT.dsl) provided by Acidanthera.

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)
16 changes: 16 additions & 0 deletions Universal/plug-alt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Fixing Power Management and Processor Definition (SSDT-PLUG-ALT)

* [Fixing Power Management and Processor Definition (SSDT-PLUG-ALT)](#fixing-power-management-and-processor-definition-ssdt-plug-alt)
* [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-PLUG-ALT is to allow the kernel's XCPM (XNU's CPU Power Management) to manage our CPU's power management. It's pretty self explanatory why you'd want this. In addition to that, newer boards such as the Intel 600 series define CPU objects as `Device` according to the new ACPI 5.0 specification, but macOS expects them to be defined as `Processor`. This SSDT fixes this issue by defining `Device` objects for macOS.
tarbaII marked this conversation as resolved.
Show resolved Hide resolved

## Methods to make this SSDT

For SSDT-PLUG-ALT, there are 3 methods you can choose from:

* [Prebuilt](/Universal/plug-alt-methods/prebuilt.md)
* [Manual](/Universal/plug-alt-methods/manual.md)
2 changes: 1 addition & 1 deletion Universal/plug.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

## What this SSDT does

The purpose of SSDT-PLUG is to allow the kernel's XCPM(XNU's CPU Power Management) to manage our CPU's power management. It's pretty self explanatory why you'd want this.
The purpose of SSDT-PLUG is to allow the kernel's XCPM (XNU's CPU Power Management) to manage our CPU's power management. It's pretty self explanatory why you'd want this.

**Note**: SSDT-PLUG is only compatible with Intel's Haswell and newer CPUs, Sandy Bridge and Ivy Bridge will need to follow the [ssdtPRgen method](https://dortania.github.io/OpenCore-Post-Install/universal/pm.html#sandy-and-ivy-bridge-power-management)(in post-install) while AMD users should not use this(unless attempting to attach AGPM which is outside the scope of Dortania's guides)

Expand Down
31 changes: 31 additions & 0 deletions Universal/usbw-methods/prebuilt-manual.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Fixing USB Wake: Prebuilt and Manual

* [Prebuilt](#prebuilt)
* [Manual](#manual)
* [Grabbing the sample SSDT](#grabbing-the-sample-ssdt)
* [Compiling the SSDT](#compiling-the-ssdt)
* [Wrapping up](#wrapping-up)

## Prebuilt

By far the easiest way to get SSDT-USBW is just downloading the below file:

* [SSDT-USBW.aml](https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-USBW.aml)

This prebuilt file is just a precompiled version of [SSDT-USBW](https://raw.githubusercontent.com/osy/USBWakeFixup/master/SSDT-USBW.dsl).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think just providing the prebuilt method here is fine, since the decompiled version is linked here.


## Manual

### Grabbing the sample SSDT

[Download SSDT-USBW.dsl here.](https://raw.githubusercontent.com/osy/USBWakeFixup/master/SSDT-USBW.dsl)

### Compiling the SSDT

This SSDT requires no modification, so 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)
15 changes: 15 additions & 0 deletions Universal/usbw.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Fixing USB Wake (SSDT-USBW)

* [Fixing USB Wake (SSDT-USBW)](#fixing-usb-wake-ssdt-usbw)
* [What this SSDT does](#what-this-ssdt-does)
* [Methods to make this SSDT](#methods-to-make-this-ssdt)

## What this SSDT does

SSDT-USBW is a companion to the [USBWakeFixup kext](https://github.com/osy/USBWakeFixup/releases/), which addresses USB wake issues on certain Intel platforms. Do not use this SSDT unless you have the USBWakeFixup kext.
tarbaII marked this conversation as resolved.
Show resolved Hide resolved

## Methods to make this SSDT

For SSDT-USBW, there are 2 methods you can choose from, both on one page:

* [Prebuilt and Manual](/Universal/usbw-methods/prebuilt-manual.md)
Binary file added extra-files/compiled/SSDT-PLUG-ALT.aml
Binary file not shown.
Binary file added extra-files/compiled/SSDT-USBW.aml
Binary file not shown.
Loading