- Joined
- Jul 22, 2018
- Messages
- 8,153
- Motherboard
- Supermicro X11SPA-T
- CPU
- Intel Xeon W-3275 28 Core
- Graphics
- 2xAMD RX 580 8GB
- OS X/macOS
- 13.x
- Bootloader
- OpenCore (UEFI)
- Mac
- Mac mini
- MacBook Pro
- Mobile Phone
- Android
- iOS
How to Enable Apple VTD on macOS [Clover/OpenCore]
An EliteMacx86 Exclusive Guide - This guide covers the implementation of the Apple VTD function on macOS for Desktops and Laptops. By following this guide, you'll be able to enable VT-d on macOS using Clover or OpenCore Bootloader.
Overview
Intel's VT-d feature provides Kernel DMA Protection which is required by a few Thunderbolt Devices such as Antelope. By enabling VT-d on macOS, a few additional Thunderbolt Devices can be made to work such as Apple's Thunderbolt to Ethernet Adapter. Since macOS Ventura, enabling VT-d is a must. VT-d is required for working Network Adapters, including built-in and PCIe based. This has been already discussed in the thread below.
Requirements
Following are the requirements for enabling VT-d function on macOS.
QUICK INFO:
Enabling Apple VT-D on macOS
Following are the steps for spoofing Graphics on macOS.
STEP 1: Enable VT-d in BIOS/UEFI
1. On your target machine, boot the system into BIOS.
2. Under BIOS, find Intel VT-d. On some machines, the name can be simply VT-d. On a few server motherboards, the option is hidden under Northbridge or Chipset Tab.
3. Set
4. Restart your system and boot into macOS.
STEP 2: Configure Quirks
The next step is to add the required changes by editing your config.plist. The changes are supported by both bootloaders, i.e Clover and OpenCore.
For Clover:
1. Mount your ESP
2. Open your config.plist using any XML editor from the EFI/Clover directory.
3. Remove
4. Disable
5. Save your config.plist.
For OpenCore:
1. Mount your ESP
2. Open your config.plist using any XML editor from the EFI/OC directory.
3. Disable
4. Remove
5. Save your config.plist
STEP 3: Restarting your System
After performing all the above steps, restart your system for the applied changes to take effect. It is recommended to reset NVRAM twice at least. You should have VT-d enabled now.
NOTE: If you do not see AppleVT-d or have a network issue, you need to fix your DMAR Table. The steps have been described below.
Fixing DMAR Table
On a few systems (typically Desktops with less than 64GB and Laptops with less than 16GB of memory), when you enable
From OpenCore Documentation (DisableioMapper section)
"Misconfigured IOMMU in the firmware may result in broken devices such as ethernet or Wi-Fi adapters. For instance, an ethernet adapter may cycle in link-up link-down state infinitely and a Wi-Fi adapter may fail to discover networks. Gigabyte is one of the most common OEMs with these issues."
Such issues were seen on systems running Big Sur and later. To overcome this issue, a user @yosoyoco came up with a fix and the idea was to fix the DMAR Table by removing the reserved memory regions from the native OEM DMAR Table, and then further dropping the OEM DMAR Table, and using the fixed DMAR Table, with the removed reserved regions. Although, this fix is required for the systems (mostly consumer Desktops and a fewer Laptops) running Big Sur and Later, a few users have reported such issues on Catalina and prior too.
STEP 1: Extracting Native ACPI Tables
The very first step is to extract the native ACPI Tables. We recommend it extracting using Clover, for the highest level of integrity. Provided that you're not dropping the DMAR Table, you can directly use MaciASL to extract the DMAR Table. Follow the steps below to extract the DMAR Table using MaciASL.
1. Download MaciASL.
2. Extract the MaciASL and move it to the Applications folder.
3. Open MaciASL
4. Open the DMAR Table using
5. Go to File and then select Save As option.
6. A dialogue box will appear asking for the location and the file format to save the file. Select the location of your choice and select
7. Click on Save.
STEP 2: Remove Reserved Memory Regions
Once you have obtained the DMAR Table, the next step is to remove the Reserved Memory Regions. To remove the reserved memory regions, follow the steps below.
1. Open the
View attachment 5405
2. Find the Memory Regions and delete them. In our case, the Memory region starts from line 70 and ends at line 101.
Upon deleting the Memory Regions, the DMAR Table should look similar to the screenshot attached below.
As you can see, it's very clear that now, the memory regions have been deleted. Which is the essence
3. Click on compile button and look for errors in the Compiler Summary. If there's an error, fix it and again click on Compile.
4. Save the changes to the SSDT using
STEP 3: Installing the SSDT
The next step is to install the fixed DMAR SSDT. Follow the steps below to install the SSDT.
1. Mount your ESP.
2. Depending on your bootloader,
For Clover:
If you're using Clover, copy the
For OpenCore:
If you're using OpenCore, copy
3. Save your config.plist
STEP 4: Dropping the Native DMAR Table
The next step is to drop the native DMAR Table to prevent from loading and instead use the fixed version of the DMAR Table. Follow the steps below to drop the native DMAR Table.
1. Assuming the ESP is still mounted,
For Clover:
1. Open your config.plist using any XML editor from the EFI/Clover directory.
2. Add
3. Save your config.plist
For OpenCore:
1. Open your config.plist using any XML editor from the EFI/OC directory.
2. Add
3. Save your config.plist
STEP 5: Restarting your System
After performing all the above steps, restart your system for the applied changes to take effect. It is recommended to reset NVRAM twice at least. The network adapters should be stable now.
Verifying AppleVTD
After restarting, the final step is to check and verify the AppleVTD function, whether it is loading under macOS or not. Follow the steps below to verify AppleVTD.
1. Download and open IOReg.
IOReg
An EliteMacx86 Exclusive Guide - This guide covers the implementation of the Apple VTD function on macOS for Desktops and Laptops. By following this guide, you'll be able to enable VT-d on macOS using Clover or OpenCore Bootloader.
Overview
Intel's VT-d feature provides Kernel DMA Protection which is required by a few Thunderbolt Devices such as Antelope. By enabling VT-d on macOS, a few additional Thunderbolt Devices can be made to work such as Apple's Thunderbolt to Ethernet Adapter. Since macOS Ventura, enabling VT-d is a must. VT-d is required for working Network Adapters, including built-in and PCIe based. This has been already discussed in the thread below.
README - Common Problems in macOS Ventura (13.0)
Common Problems in macOS Ventura (13.0) This thread is for common problems in macOS Ventura. The problems listed here are likely to be experienced by users who attempt to install macOS Ventura 13.0. This is not a troubleshooting thread. Please do not ask questions regarding your specific issue...
elitemacx86.com
Requirements
Following are the requirements for enabling VT-d function on macOS.
Motherboard |
|
CPU |
|
QUICK INFO:
- CPUs from 2012 are supported by Apple's VT-d function. Any prior CPU will lack the VT-d feature even if provided by Intel.
- AMD CPUs do not support AMD-Vi on macOS, which is similar to Intel's VT-d feature, required for Kernel DMA Protection, demanded by several Thunderbolt Devices. This includes all AMD CPUs. However, a workaround for this feature is to use macOS Sierra.
- On some systems with VT-d enabled, you may have network disruption. To fix you need to fix the DMAR Table. Refer to the memory mapping guide for more information.
- Upgrading/Downgrading BIOS, changing BIOS Settings and upgrading Memory (RAM) may cause a change in memory regions and you'll need to patch the DMAR table again.
Enabling Apple VT-D on macOS
Following are the steps for spoofing Graphics on macOS.
STEP 1: Enable VT-d in BIOS/UEFI
1. On your target machine, boot the system into BIOS.
2. Under BIOS, find Intel VT-d. On some machines, the name can be simply VT-d. On a few server motherboards, the option is hidden under Northbridge or Chipset Tab.
3. Set
VT-d
to Enabled
.4. Restart your system and boot into macOS.
STEP 2: Configure Quirks
The next step is to add the required changes by editing your config.plist. The changes are supported by both bootloaders, i.e Clover and OpenCore.
For Clover:
1. Mount your ESP
2. Open your config.plist using any XML editor from the EFI/Clover directory.
3. Remove
dart=0
under Arguments in the Boot section
of your config.plist.4. Disable
DisableIoMapper
quirk in the Quirks section.5. Save your config.plist.
For OpenCore:
1. Mount your ESP
2. Open your config.plist using any XML editor from the EFI/OC directory.
3. Disable
DisableIoMapper
quirk in the Kernel section.4. Remove
dart=0
from boot-args
key under the 7C436110-AB2A-4BBB-A880-FE41995C9F82
UUID list in NVRAM
section of your config.plist.5. Save your config.plist
NOTES:
|
STEP 3: Restarting your System
After performing all the above steps, restart your system for the applied changes to take effect. It is recommended to reset NVRAM twice at least. You should have VT-d enabled now.
NOTE: If you do not see AppleVT-d or have a network issue, you need to fix your DMAR Table. The steps have been described below.
Fixing DMAR Table
On a few systems (typically Desktops with less than 64GB and Laptops with less than 16GB of memory), when you enable
VT-d
which is required for some major functioning of a few particular devices such as Antelope Audio Interface and other Thunderbolt capable Devices, and a few Ethernet Cards, the system starts acting weird and all of a sudden, the network devices no longer work including Ethernet and WiFi. When checking the Devices in System Preferences>Network, the network adapters are in a loop, infinite link-up and link-down but never connect. In addition, the WiFi can be disrupted if you enable additional devices in BIOS (such as IGPU).From OpenCore Documentation (DisableioMapper section)
"Misconfigured IOMMU in the firmware may result in broken devices such as ethernet or Wi-Fi adapters. For instance, an ethernet adapter may cycle in link-up link-down state infinitely and a Wi-Fi adapter may fail to discover networks. Gigabyte is one of the most common OEMs with these issues."
Such issues were seen on systems running Big Sur and later. To overcome this issue, a user @yosoyoco came up with a fix and the idea was to fix the DMAR Table by removing the reserved memory regions from the native OEM DMAR Table, and then further dropping the OEM DMAR Table, and using the fixed DMAR Table, with the removed reserved regions. Although, this fix is required for the systems (mostly consumer Desktops and a fewer Laptops) running Big Sur and Later, a few users have reported such issues on Catalina and prior too.
STEP 1: Extracting Native ACPI Tables
The very first step is to extract the native ACPI Tables. We recommend it extracting using Clover, for the highest level of integrity. Provided that you're not dropping the DMAR Table, you can directly use MaciASL to extract the DMAR Table. Follow the steps below to extract the DMAR Table using MaciASL.
1. Download MaciASL.
2. Extract the MaciASL and move it to the Applications folder.
3. Open MaciASL
4. Open the DMAR Table using
File>New From ACPI
option and then select the DMAR5. Go to File and then select Save As option.
6. A dialogue box will appear asking for the location and the file format to save the file. Select the location of your choice and select
ACPI Machine Language Binary
in the File Format option.7. Click on Save.
STEP 2: Remove Reserved Memory Regions
Once you have obtained the DMAR Table, the next step is to remove the Reserved Memory Regions. To remove the reserved memory regions, follow the steps below.
1. Open the
DMAR.aml
file using MaciASL. You should have a similar table as the screenshot attached below.View attachment 5405
2. Find the Memory Regions and delete them. In our case, the Memory region starts from line 70 and ends at line 101.
Upon deleting the Memory Regions, the DMAR Table should look similar to the screenshot attached below.
As you can see, it's very clear that now, the memory regions have been deleted. Which is the essence
3. Click on compile button and look for errors in the Compiler Summary. If there's an error, fix it and again click on Compile.
4. Save the changes to the SSDT using
File>Save
option.STEP 3: Installing the SSDT
The next step is to install the fixed DMAR SSDT. Follow the steps below to install the SSDT.
1. Mount your ESP.
2. Depending on your bootloader,
For Clover:
If you're using Clover, copy the
SSDT-DMAR.aml
to EFI/Clover/ACPI/patched directory.For OpenCore:
If you're using OpenCore, copy
SSDT-DMAR.aml
to EFI/OC/ACPI directory. You'll also need to add the ACPI entry for the same in ACPI>Add
section of your config.plist.3. Save your config.plist
STEP 4: Dropping the Native DMAR Table
The next step is to drop the native DMAR Table to prevent from loading and instead use the fixed version of the DMAR Table. Follow the steps below to drop the native DMAR Table.
1. Assuming the ESP is still mounted,
For Clover:
1. Open your config.plist using any XML editor from the EFI/Clover directory.
2. Add
DMAR
into the Signature
key under the Acpi>Drop Tables
section of your config.plist. If you're using Sorted Order configuration, add SSDT-DMAR.aml
to the list.3. Save your config.plist
For OpenCore:
1. Open your config.plist using any XML editor from the EFI/OC directory.
2. Add
DMAR
into the TableSignature
key under ACPI>Delete
section of your config.plist and also enable the entry.3. Save your config.plist
STEP 5: Restarting your System
After performing all the above steps, restart your system for the applied changes to take effect. It is recommended to reset NVRAM twice at least. The network adapters should be stable now.
Verifying AppleVTD
After restarting, the final step is to check and verify the AppleVTD function, whether it is loading under macOS or not. Follow the steps below to verify AppleVTD.
1. Download and open IOReg.
IOReg
- Verify the AppleVTD property. The AppleVTD property is located under the AppleACPIPlatformExpert node.
Last edited: