Fix Audio Windows on MAC

 [GUIDE] DSDT override eGPU error 12 fix (Windows only)

 

here ◄ Mac owners please work through this thread to solve error 12 before doing a DSDT override
here ◄ pre-compiled DSDT overrides  - load or use as reference when making your own

 

Introduction

 

A Windows system's DSDT table root bridge definition (ACPI PNP0A08 or PNP0A03) is usually confined to a reserved 32-bit space (under 4GB) budgetted to be large enough to host the notebook's PCIe devices. A watermark TOLUD value is then set and locked in the system firmware. Windows OS honors the root bridge definition and will allocate PCIe devices within it. macOS ignores the root bridge constraints as too does Linux when booted with the 'pci=noCRS' parameter. Neither of those OS require a DSDT override and can allocate freely in the huge 64-bit PCIe address space.

 

When retrofitting a eGPU, an error 12 (This device cannot find enough free resources that it can use) can occur against an eGPU in Windows' device manager making it inoperable. This can indicate there is insufficient 32-bit addressing space available to host the eGPU. An eGPU requires a relatively large PCIe config space to allocate into. Decreasing TOLUD by reducing RAM to 2GB offers a somewhat impractical workaround. Rather, the definitive solution is below.

 


This three step solution removes Window's 32-bit PCIe allocation constraint in order to resolve the eGPU error 12:

 

Step 1. Create a dsdt-modified.aml DSDT file with a 36-bit root bridge

 

Step 2. Load your dsdt-modified.aml as registry override or in-memory substitution



Step 3. Confirm success with a 'Large Memory' area in Device Manager

 

 

macOS users: refer instead to Mikeal's post that covers these steps titled Windows 10 - Clover DSDT memory override [UEFI Windows on Macbooks only].

 


 

Step 1. Create a dsdt-modified.aml DSDT file with a 36-bit root bridge

 

 

OPTION 1: Use the Intel method

 

 

OPTION 2: Use the Microsoft method

 

 

 

Step 2. Load your dsdt-modified.aml as a registry override or in-memory substitution

 

OPTION 1: Load your dsdt-modified.aml as a registry override with Windows test signing mode enabled

 

 

OPTION 2: Avoid test signing mode - load your dsdt-modified.aml as an in memory DSDT substitution

 

 

Step 3. Confirm success with a 'large memory' area in Device Manager

 

 

Success stories

 

 

FAQ

 

1. I still have an error 12 with the 'large memory' area present. How can I fix it?

 

2. How do I disable the registry DSDT override?

Comentarios

Entradas más populares de este blog

Tkinter tkFileDialog module

Using real data types in VHDL