[EFI Loader] Error 12 Fix in Boot Camp for Apple T2 Security Chip Macs (apple_set_os loader v0.5)
In that case, we can only hope Microsoft to patch this. Some people report that they are able to use eGPU on the latest version of Windows by replacing pci.sys file to the one from build 295, not sure if that affects security though.
As I posted above, I'm having hardly any issues with the pci.sys swap and this left-right-left dance. It's a bit of a pain for the bootup but very stable afterwards, keep in mind I am using AMD's official drivers.
Have you tried the pci.sys swap with the latest on the Chroma? If that were to work consistently that would be sweet for future purchases.
By the way, I've been able to find a work around to get my CalDigit dock to work right away! Connecting the eGPU into the T3 pass-thru port and then doing the left-right-left everything works right away. I'll need to get a longer T3 cord before I can experiment with it too much but from initial benchmarks it does cut around 10-15% of performance off FPS so it'll definitely need some further testing to be a full solution for my setup.
I haven’t tried pci.sys trick on my setup because I use Windows just for gaming so I didn’t bother to test that out. However, I can test that when I have time.
Connecting your eGPU to a dock is not the best option if you have many peripherals connected to it already since they all share the bandwidth. I suggest you to run the benchmark again without any peripherals (just the dock and the eGPU) so we can isolate the issue. I connected a wireless keyboard/mouse receiver and a webcam to my Chroma but I haven’t notice any performance impact so far.
Would I have to do the "dance" every boot up or just once? I'd be willing to do that for the initial setup, but absolutely not every time I boot up the MacBook 😀
But do we know why it works? the port swap needs to happen WITH the apple_set_os change right?
If so, we're enabling the intel GPU ? leaving the AMI dGPU active?
Given this is a resource related issue, how does adding another GPU improve things?
Yes, port swapping is for apple_set_os only and Windows doesn’t really use the iGPU because the internal display is connected to dGPU.
I don’t think Windows is actually out of resource but the way it communicate with the enclosure breaks the eGPU functionality. When using apple_set_os, MacBook will change the PCIe allocation in firmware level so Windows is able to allocate enough resource for the eGPU. However, enclosure with newer controller seems to work with the 16” without using any patches.
I bought a 16'' MBP (32GB/1TB/5500M GB) and Razer Core-X Chroma in which I installed a ASUS Vega 64. Atfer installing Windows 1909 via Bootcamp I was greeted with the code 12 error. Googling the issue brought me directly to this thread. Unfortunately the patched bootx64.efi, including trying the left-right-left dance, didn't work for me.
The solution for me was replacing the pci.sys with the one from the v1 1903-ISO, as well. Cold plugging still doesn't work but hot plugging works like a charm. I also installed the bootcampdrivers-version of the latest red AMD drivers.
Edit: I did little bit of testing. When I plug the Core-X Chroma into one of the right ports (I only tried the upper one so far), cold-plugging works. Windows just needs about 30 seconds to boot. I also did Benchmarks with 3DMark and the GPU score is practically identical on both the left and the right ports. I expected the eGPU to perform worse on the right ports because, as far as I know, they are only connected via PCIe x4 and the left ones via x8, correct?
The Core X requires apple_set_os_loader patch and port swapping.
Core X Chroma works without any patches if follow the instruction below:
1. Unplug the eGPU before booting to Windows
3. Once you are at Desktop, plug in the eGPU. Windows should recognise it immediately.
Yeah, Chroma doesn't support cold plug under Windows but at least it works without port swapping.
This fix worked for me, thanks! Had to do the port swapping. I needed to unplug my USB-C keyboard/mouse for it to work.
Will try a Razer Core X Chroma to avoid the USB-C port swapping.
Windows 10 Pro 1903 V1. Installed drivers from Adrenaline 2020 BootCamp Red Edition manually from Device Manager.
I used the pci.sys technique on BCD.com drivers and it worked great - no hot plugging and wake from sleep works. Running a 15" MBPro though and it seems like from posts they may be pretty different than 16", but in case it helps I documented the build here:
@aa15032261 First of all thank you for your work on this elegant Boot Camp solution! Once set up properly, no user interactions required during boot up. For pairings that work through eGPU cold-plug, this is as seamless an experience as you can get. I know your main priority is with the 2019 16″ MacBook Pro + Radeon eGPU but many people can benefit from your EFI boot loader so I tested with other Macs.
First test was with Apple T2 Chip iGPU-only Macs, 2018 Mac mini and 2019 13″ MacBook Pro. These Macs have been known to work inconsistently with apple_set_os.efi as you’ve found on the 2019 16″ MacBook Pro. The Mac mini in particular is troublesome due to not having an built-in display. Your solution of automatically reseting until apple_set_os.efi works is a real blessing. The solution works well on the 2019 13″ MacBook Pro too. The eGPUs I used were RX Vega Nano and RTX 2070 Gaming Boxes.
One behavior I noticed on both Macs that may provide further insight as to why this solution works in Windows without error 12 is the delayed peripheral loading of WiFi and Audio at boot. This is very similar to the behavior when I hot-plug the eGPU in Windows without using any solutions. The system would disable WiFi and Audio temporarily to allocate resources for the detected PCIe component through Thunderbolt 3. Once the eGPU starts working, WiFi and Audio come back working.
I tested this solution with non-Apple T2 Chip Macs as well, 2016 15″ MacBook Pro and 2017 13″ MacBook Pro. So far they both experience the reloading loop. My guess is that they both boot up much quicker due to a minimal pre-boot compared to the Apple T2 Chip counterparts. These Macs don’t have issues with older apple_set_os.efi so it’s not a priority. I was hoping for one Boot Camp solution for all.
Thank you again and I will do more testings with these Macs in the coming days!
When plugged into OSX it runs and detects fine (shows in the menu bar).
However, in Windows when plugged in it doesn't even detect. Downloaded drivers and it says that the hardware isn't detected. Is there some steps that I am missing here?
Also to note Windows 10 is running of a Samsung T5 USBc SSD.
@laurence_vines Remove the Samsung T5 USB-C external drive from the equation until you can get the eGPU going in Boot Camp. You can partition the internal drive with 50GB to test Windows 10 1903 V1 ISO on it. Use the boot loader in OP if you encounter error 12.
@e-v-min Stay on Win10 1903 .30 to .295.
Just wanted to chime in real quick and say that I just purchased the Razer Core X Chroma and it works for me without the port swap dance and without modified EFI. Just have to hot plug and it works.
Previously I had the Sonnet eGFX Breakaway Box which required port swapping, apple_set_os loader, and some sacrificial blood. YMMV
Which Windows 10 build are you on?
Mine was working fine hot plugging on Win 10 1903 v1, but as soon as Windows did the security updates today, I couldn’t hot plug it again until I reverted back to a restore point that preceded the updates. Based on itsage’s comment, the updates must have taken me out of the Win 10 1903 v1 .30-.295 range.
What's the way to fix this error? I've downgraded my version of Windows with zero luck.
Confirmed for my system, reverting back to Win10 1903 .30, worked fine for my system. I returned the Razer Core X and switched to the Razer Core X Chroma and it now it also works for me without the port swap. I also deleted the modified EFI with no issues. Just boot into windows, plug the Chroma in, and it works great.
Are you having intermittent Bluetooth issues? Every once in a while I have to restart to macos and then return to windows. Sometimes I have to take it a step further and uninstall the Bluetooth controller in device manager and reinstall to get it to work. It's my only issue though.
I haven’t had the opportunity to use Bluetooth on my device. I use a USB mouse and keyboard. Those have had some issues though, for example sometimes when I wake my computer from sleep mode the USB mouse and keyboard are unresponsive and it takes a reboot to get them working again.
Interesting, thanks for that. I've also ordered one (was almost going to anyway because of the extra USB ports). I'll test and report back.
Ok so ... the enclosure matters.
Ordered and received a new Core X Chroma ... works first time, hot or cold plug.
Right now - i have a single cable setup - will need to convince myself of the stability first but looking good.
After a week testing, my two Apple T2 Chip Macs run very well with this modified apple_set_os.efi loader. Both 2019 13″ MacBook Pro and 2018 Mac mini boot reliably with the eGPU connected (cold-plug). Hot-plug once Windows fully loads also works well. The requirement is Win10 1903 18362.30-.295.
@aa15032261 You mentioned the difference in terms of Thunderbolt enclosures using DSL6540 vs JHL6540. I think this may be unique on the 2019 16-in MacBook Pro because my two Macs don’t seem to care. I’ve tried both with RTX 2070 and RX Nano Gaming Box. They can both go to sleep mode and wake up without issues.