[Sticky] 2016 Macbook Pro: solving eGPU error 12 in Windows 10  

  RSS

nando4
Reputable Member
Joined: 2 months  ago
Posts: 255
December 23, 2016 6:48 am  
Below are a number of strategies to resolve error 12 on a bootcamped Win10 2016 13" or 15" Macbook notebook. These are presented in order of user difficulty:
 

1. Disable and re-enable the problem Thunderbolt PCIe bridge

Go to Device Manager -> View -> Device by Connection
Find the "Facetime BS Camera". Disable the PCI Root Bridge above it.
Find your NVidia eGPU. Disable the PCI Root Bridge above it.
Wait for the Windows Error sound
Go to the same PCI Root Bridge above your NVidia.  Click "Enable"
Reboot your system to see error 12 gone.

 

2. Have windows reallocate your Thunderbolt PCIe bridges

A Windows reinstall being one way of doing this. The other is to:

Go to Device Manager -> View Devices By Connection. Find your eGPU then disable the PCIe bridges above it one at a time like shown below including the (in this case) Root port #5. . Then re-enable them. The idea is to force reallocation by Windows. This worked on a Zbook 15/17 G2. A variation of this is to uninstall the top level PCI Bridge/Port so as to have Windows re-pnp the system upon reboot.

 
 
 
3. Perform a DSDT override to allow eGPU allocation in 36-bit space
 
Reported by several 2016 MBP owners as fixing their error 12:
 
 
Do the bridge reallocation in (2) if still see error 12.
 
 

 4. Set the VGA Enable bit on the hosting PCIe bridge using rEFIt/rEFInd

 

i. Install rEFIt

ii. In Mac OS mount the EFI partition using terminal:

mkdir /Volumes/EFI
sudo mount -t msdos /dev/disk0s1 /Volumes/EFI

iii. Create a textfile called "startup.nsh" in it's root. The bridge set  based on theitsage's 13" MBP research here and the 15" lspci output here.  Be sure to comment out the unneeded line below as in the instructions:

echo -off
echo "Setting VGA Enable register on PCI bridge hosting eGPU . . ."

########################################################################
# Remove the hash on the line after your system to include that parameter
########################################################################
# 2016 13" MBP setting
# 2013 13" MBP
# 2013 11/13" MBA
# mm 001C043E 1 ;PCI :8

# 2016 15" MBP setting
# mm 0001023E 1 ;PCI :8


# mm 001C043E 1 ;PCI :8
0:1c.4
echo "Booting Windows"
fs0:/EFI/BOOT/bootx64.efi

iv. Reboot while eGPU is connected and select "start EFI-Shell" in rEFIt.

"startup.nsh" launches and Windows 10 starts up with eGPU enabled.

Consider replacing rEFIt with rEFInd , a fork of rEFIt. It allows creation of a menuentry which boots Windows using your startup script, plus hides the non functional Windows entries.

 
Edited: 5 days  ago

DIY eGPU Setup 1.31 [was 1.30]eGPUing since '09


ReplyQuote

eGPU

1 User(s) Online Join Server
  • AquaeAtrae
  
Working

Please Login or Register