-
Notifications
You must be signed in to change notification settings - Fork 483
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
SSDTTime pages Updated & DMAR Table Patch Guide (#84)
- Loading branch information
1 parent
97003ad
commit d01ce9b
Showing
16 changed files
with
182 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
# Fixing Backlight: SSDTTime Method | ||
|
||
This method 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 begin, you must have a valid `DSDT.aml` dump. If you do not, you will have to run SSDTTime in either Windows or Linux booted outside of OpenCore or with the debug version of OpenCore utilizing the `SysReport` quirk. Once you have your `DSDT.aml` file, follow these steps: | ||
|
||
* Select `0. PNLF`, then it will ask a series of questions regarding what platform you have. Once you choose a proper `_UID`, SSDTTime will find your GPU's ACPI path, and properly create a PNLF device at that location. An added bonus of SSDTTime is that it will search your entire DSDT for any references to PNLF anywhere and rename them so that any conflicts are removed as well. | ||
|
||
![](/images/Laptops/backlight-md/ssdttime_pnlf.png) | ||
|
||
Once done, SSDTTime will create several files inside its Results folder. A SSDT-PNLF.**aml**, SSDT-PNLF.**dsl** and may create two plist files: `patches_OC.plist` and `patches_Clover.plist`. | ||
|
||
The `patches_OC(Clover).plist` file contains the necessary patch required for your `SSDT-PNLF.aml` to function, so it must not be skipped. | ||
|
||
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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
# Fixing Trackpads: SSDTTime Method | ||
|
||
This method 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 begin, you must have a valid `DSDT.aml` dump. If you do not, you will have to run SSDTTime in either Windows or Linux booted outside of OpenCore or with the debug version of OpenCore, utilizing the `SysReport` quirk. Once you have your `DSDT.aml` file, follow these steps: | ||
|
||
* Select `A. XOSI`, then either the earliest version of Windows your system shipped with, or choose the Auto option. | ||
|
||
Once done, SSDTTime will create several files inside its Results folder. A SSDT-XOSI.**aml**, SSDT-XOSI.**dsl** and two plist files: `patches_OC.plist` and `patches_Clover.plist`. | ||
|
||
The `patches_OC(Clover).plist` file contains the necessary patch required for your `SSDT-XOSI.aml` to function, so it must not be skipped. | ||
|
||
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 | ||
* Can only make SSDT-XOSI | ||
* If you need SSDT-GPI0, then you still need to make it [manually](/Laptops/trackpad-methods/manual.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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
# Patching DMAR Table: Manual | ||
|
||
What we will be doing is removing the Reserved Memory Regions to allow this table to load without conflicts in macOS - which is necessary for the following hardware devices: | ||
* Intel I225 based Ethernet Controllers | ||
* Aquantia Ethernet Controllers | ||
* Some WiFi devices | ||
|
||
## Preparation | ||
|
||
First we need to gather files necessary to patch our DMAR Table. If you've used the `SysReport` Quirk that is included with the Debug version of OpenCore, then you should have a `DMAR-1.aml` file residing inside your EFI Partition `SysReport/ACPI` folder, otherwise please follow the procedure [here](/Manual/dump.html#sysreport-quirk) to get started. Once you have the file, it is best to store it in a safe location for easy access later on in this section. | ||
|
||
## Manipulation | ||
|
||
### Creating our Customized DMAR Table | ||
|
||
Easiest way to manipulate the DMAR table is to use the GUI program MaciASL, this is a macOS only program, which can be acquired [here](https://github.com/acidanthera/MaciASL). It is time to create our customized version of our original DMAR table with the Reserved Memory Regions removed. So to start, we will open the copy of our `DMAR-1.aml` file we extracted from our system. | ||
|
||
![](../../images/Universal/dmar-md/dmar-example-rmr.png) | ![](../../images/Universal/dmar-md/dmar-example-normr.png) | ||
:-------------------------------:|:------------------: | ||
Example of a DMAR Table with Reserved Memory Regions. | Example of a DMAR Table without Reserved Memory Regions | ||
|
||
If your DMAR Table looks like Example #2 which has no Reserved Memory Regions, you can skip this guide and merely disable `DisableIoMapper` in your `config.plist`, and enable VT-d in your BIOS. | ||
|
||
Now if your DMAR Table looks like Example #1, please continue below. | ||
|
||
With our `DMAR-1.aml` file open, it is time to begin patching it, and do not worry this is pretty easy to do. All we are doing is highlighting every section that is labelled `Reserved Memory Region` or Subtable Type of `0001` until you reach the next non-`0001` Subtable Type or when you reach the end of the file just like in the example below, and remove the entries entirely. | ||
|
||
![](../../images/Universal/dmar-md/dmar-rmr-selected.png) | ||
::: details Learn More | ||
|
||
To learn more, you can read up on [DMA Remapping Table: "Intel® Virtualization Technology for Directed I/O"](https://software.intel.com/content/dam/develop/external/us/en/documents-tps/vt-directed-io-spec.pdf). | ||
|
||
::: | ||
|
||
The information starting with `Raw Table Data` at the end of the table is safe to remove as well if you choose to, this is merely raw binary table data and is only there for display. When you Compile and Save as a new `ACPI Machine Language Binary`, this data is changed to reflect the new information in the binary table. | ||
|
||
::: warning | ||
|
||
**NOTE**: Do not confuse this with a SSDT, as that is a `Secondary System Description Table` which provides extra details for the actual DSDT. | ||
|
||
::: | ||
|
||
### Dropping the DMAR Table | ||
|
||
Now you will need to prepare your `config.plist` for deleting or "dropping" the DMAR table. This is done in the `ACPI->Delete` section. | ||
|
||
::: tip Delete Code | ||
|
||
| Comment | String | Drop DMAR Table | | ||
| :------ | :------ | :-------------- | | ||
| All | Boolean | YES | | ||
| Enabled | Boolean | YES | | ||
| TableSignature | Data | 444D4152 | | ||
|
||
::: warning | ||
|
||
You must still conform to the OpenCore's `config.plist` schema, so make sure to consult with the [OpenCore Configuration](https://dortania.github.io/docs/release/Configuration.html) document for all required fields that must be present within `ACPI->Delete` and fill them in with their failsafe values. | ||
|
||
::: | ||
|
||
## Cleaning Up | ||
|
||
Of course make sure your new patched `DMAR.aml` file is in your EFI Partition's `EFI/OC/ACPI` folder and also added to your `config.plist`. Then disable `DisableIoMapper` under `Kernel->Quirks` and reboot. | ||
|
||
If you are using a I225 based Ethernet Controller, and are utilizing `e1000=0` or `dk.e1000=0` for macOS 12.2.1 and below. You will need to remove this boot-arg before rebooting so that `com.apple.DriverKit-AppleEthernetE1000` can match to your Intel I225-V Ethernet controller. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# Patching DMAR Table (DMAR.aml) | ||
|
||
* [What this ACPI Table does](#what-this-acpi-table-does) | ||
* [Methods to make this ACPI Table](#methods-to-make-this-acpi-table) | ||
|
||
## What this ACPI Table does | ||
|
||
The purpose of patching the DMAR table is to remove any Reserved Memory Regions within it. This is necessary as `VT-d` is now required in Big Sur and newer for certain ethernet controllers utilizing DriverKit extensions; including but not limited to I225 based controllers, Aquantia Ethernet Controllers and some WiFi devices. Now, in order for our patched ACPI Table to load properly we must also drop the current DMAR table residing in our firmware to allow our patched ACPI Table to take its place. | ||
|
||
This is for any CPU that supports `VT-d` or Intel Virtualization Technology for Directed I/O. | ||
|
||
## Methods to make this ACPI Table | ||
|
||
To create this ACPI Table, there is currently 1 method available. | ||
|
||
* [Manual](/Universal/dmar-methods/manual.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters