Blackmagic eGPU/Pro Firmware Update Tool on macOS
 
Notifications

Blackmagic eGPU/Pro Firmware Update Tool on macOS  

 of  2
  RSS

itsage
(@itsage)
Illustrious Member Admin
Joined: 3 years ago
 

Blackmagic Design released a firmware update package for the Blackmagic eGPU/Pro. What interests me the most is that it’s for macOS. I downloaded and installed the package but without the applicable eGPU I couldn’t see the process. I found the folder that contains new 1.2 firmware bin files. It would be great to figure out where the firmware update tool is and whether we could use it for other TB3 enclosures. I have heard from a TB3 vendor that Apple has this firmware update tool for a while.

Update: Thanks to @mac_editor, we now have a TBT-Flash solution that not only works in macOS but also is compatible with all versions of Thunderbolt Macs.

external graphics card builds
best laptops for external GPU
eGPU enclosure buyer's guide


ReplyQuote
mac_editor
(@mac_editor)
Famed Member Moderator
Joined: 3 years ago
 

@itsage

I took a quick look - it seems that it moves those firmware files into the root Library directory (which you found already anyway):

Screen Shot 2019 12 29 at 7.14.58 PM

And requires restarting the system to apply the update. I don't see a firmware updater itself in the package which likely means that macOS itself might have a firmware update mechanism (and it reads from the directory as shown). I'll look a bit more.

It might be possible to use the same process to update any eGPU enclosure by:

  1. Editing the plist to change the device that needs to be recognized/updated (info for enclosure from System Info > Thunderbolt might be enough).
  2. Replacing the bin files with the correct one for the enclosure.
  3. Keeping the file structure the same.

Can't say much right now as I think it would be good to get some insight/see how the installer officially works. The plist has information such as vendor/device name and model numbers. So maybe we could substitute/create another entry for different enclosures and try.

Edit: yep, that's all this "installer" does - places the files into /Library/ThunderboltAccessoryFirmwareUpdates folder and then tells you to restart. There is no check for Blackmagic eGPU, etc. Plain old file copy. Probably a sufficient indicator that the firmware updater actually lies in macOS itself. The minimum requirement for the firmware update to work is 19A583 which is macOS 10.15.

Finally, even if we substitute the correct values for other eGPU enclosures, we cannot yet say if the firmware update will succeed on restart. This will have to be a trial-and-error experiment.

purge-wranglertbt-flashpurge-nvdaset-eGPU
Insights Into macOS Video Editing Performance
2018 MacBook Pro 15" RP560X + RX 5700 XT (Mantiz Venus)

Master Threads:
2014 15-inch MacBook Pro 750M
2018 15-inch MacBook Pro


itsage liked
ReplyQuote
joevt
(@joevt)
Noble Member
Joined: 2 years ago
 

The firmware update is probably to fix the problem discussed at:
https://forums.macrumors.com/threads/imac-pro-not-compatible-with-pro-display-xdr.2215217/
https://forums.macrumors.com/threads/imac-pro-works-with-apples-new-pro-display-xdr-but-limited-to-5k-resolution.2215667/

 

Mac mini (2018), Mac Pro (Early 2008), MacBook Pro (Retina, 15-inch, Mid 2015), GA-Z170X-Gaming 7, Sapphire Pulse Radeon RX 580 8GB GDDR5, Sonnet Echo Express III-D, Trebleet Thunderbolt 3 to NVMe M.2 case


ReplyQuote
itsage
(@itsage)
Illustrious Member Admin
Joined: 3 years ago
 

@mac_editor Thank you for taking a look into the installer package. It would be great if a Blackmagic eGPU found this topic and make observation during the firmware update process and let us know. As you mentioned making changes to the plist file to match an enclosure bin firmware file is possibility but we don’t know what else macOS is verifying during the flashing process.

 

external graphics card builds
best laptops for external GPU
eGPU enclosure buyer's guide


ReplyQuote
mac_editor
(@mac_editor)
Famed Member Moderator
Joined: 3 years ago
 

@itsage

Indeed the plist trick might work as suspected: https://twitter.com/khaost/status/1211855078421757952?s=21

Edit: Was also able to reproduce notification to update Mantiz Venus. It seems the tool is called ThunderboltAccessoryFirmwareUpdater which uses MobileAccessoryUpdater:

/System/Library/PrivateFrameworks/MobileAccessoryUpdater.framework/Versions/A/MobileAccessoryUpdater
/System/Library/AccessoryUpdaterBundles/ThunderboltAccessoryFirmwareUpdater.bundle

Here's some logs:

Spoiler
Firmware Update Failure
2020-01-19 21:29:10.056212-0800 0x22a4 Default 0x0 109 0 fud: (MobileAccessoryUpdater) Modal Default Client - completed step:Find device:com.apple.MobileAsset.MobileAccessoryUpdate.ThunderboltType3Switch successful:NO next-step:Find silentUpdate=0 error:Error Domain=com.apple.MobileAccessoryUpdater.StateMachine Code=7 "-[FudStateMachine didFind:info:updateAvailable:needsDownload:error:]: Unspecified error from plugin" UserInfo={PluginName=com.apple.ThunderboltAccessoryFirmwareUpdater, NSLocalizedDescription=-[FudStateMachine didFind:info:updateAvailable:needsDownload:error:]: Unspecified error from plugin, DeviceClassName=com.apple.MobileAsset.MobileAccessoryUpdate.ThunderboltType3Switch}
Screen Shot 2020 01 19 at 9.26.34 PM
 
I am interested to see if this firmware update will work on an Alpine Ridge Mac (apparently a requirement for this box). Not sure yet if it worked or not. I will try the Aorus Box as well. If anyone is willing to try, let me know and I can set you up with the edits needed to prompt the update.

purge-wranglertbt-flashpurge-nvdaset-eGPU
Insights Into macOS Video Editing Performance
2018 MacBook Pro 15" RP560X + RX 5700 XT (Mantiz Venus)

Master Threads:
2014 15-inch MacBook Pro 750M
2018 15-inch MacBook Pro


itsage liked
ReplyQuote
itsage
(@itsage)
Illustrious Member Admin
Joined: 3 years ago
 

@mac_editor This is promising. The Sonnet Breakaway Box uses the same TUL board. I have a firmware (from @kezzor) that enables 60W PD for 350W PSU version. I’d like to give it a shot and see how this process works. FW name is [Sonnet_Breakaway_Box_Developer_Edition_AR_EP_A68_B1_rev25_W_TI83_3p61_SEC1_sign.bin]

external graphics card builds
best laptops for external GPU
eGPU enclosure buyer's guide


ReplyQuote
mac_editor
(@mac_editor)
Famed Member Moderator
Joined: 3 years ago
 

@itsage

For kicks I tried flashing Venus firmware to the Sonnet box to see what happens. I noticed something important - when rebooting, I saw the progress bar for a second (meaning there was an attempt to flash firmware). Sadly my PD is still 15W so it failed. However, I gleaned much more insight, and now know the EFI app responsible for executing firmware flashes as well as its arguments:

BlessSettings = (
{
BlessArguments = (
"/usr/sbin/bless",
"--nextonly",
"-mount",
"/",
"-firmware",
"/System/Library/AccessoryUpdaterBundles/ThunderboltAccessoryFirmwareUpdater.bundle/Contents/Resources/ThorUtil.efi",
"-payload",
"/Library/ThunderboltAccessoryFirmwareUpdates/eGPU/MantizVenus.bin",
"-options",
"-g -o -u 0x00087B5C38F00B00 -fs efi-apple-payload0-data -nb -noreset"
);
ClearNVRAM = (
ThorUpdateResult
);
Priority = 705;
SetNVRAM = {
"tbt-options" = 4;
};
UniqueID = "0x00087B5C38F00B00-1";
}
);
CurrentFirmwareVersionOnAccessory = "25.02";

I still have to experiment with some other things like if version needs to be set different, and if we can force a flash without restarting, since that is a parameter.

To set it up for yourself, you just need to:

  1. Create /Library/ThunderboltAccessoryFirmwareUpdates folder (may need sudo - its permissions are 644).
  2. Unzip the attachment and add 'eGPU' folder to folder above (there is a plist of same name and firmware file(s) to keep inside 'eGPU' folder).
  3. Rename your firmware file to Sonnet60W.bin (see plist for Sonnet entry) or change in plist (either way) and place it inside 'eGPU' folder.
  4. Hot-plug enclosure and prompt should show up.

The plist can be used for multiple enclosures simultaneously. I've added Mantiz and Sonnet configuration for now.

purge-wranglertbt-flashpurge-nvdaset-eGPU
Insights Into macOS Video Editing Performance
2018 MacBook Pro 15" RP560X + RX 5700 XT (Mantiz Venus)

Master Threads:
2014 15-inch MacBook Pro 750M
2018 15-inch MacBook Pro


itsage liked
ReplyQuote
itsage
(@itsage)
Illustrious Member Admin
Joined: 3 years ago
 

Thank you for the instructions and details on your attempt! Here’s the Sonnet Breakaway Developer Edition BIN if you’d like to give it a shot.

external graphics card builds
best laptops for external GPU
eGPU enclosure buyer's guide


ReplyQuote
mac_editor
(@mac_editor)
Famed Member Moderator
Joined: 3 years ago
 

@itsage

Changing reboot requirements may allow updating the firmware without a restart. So far still unsuccessful but investigating:

 

Screen Shot 2020 01 21 at 10.48.57 AM
 
Edit: No go. This also seems to just bless for firmware update on reboot. Keeping setting to required reboot recommended. It still did not work for me. Maybe the TUL board indeed needs Alpine ridge controller. @itsage let me know how it goes. Apparently, when you perform/attempt an update, you get the result in NVRAM:
nvram ThorUpdateResult
My output of failed update after Sonnet was:
ThorUpdateResult %07%00%12%00%00%00%00%00
 
I will try with the Aorus box last, but not sure if I'll be able to tell the difference in firmwares unless firmware versions are different as well.

purge-wranglertbt-flashpurge-nvdaset-eGPU
Insights Into macOS Video Editing Performance
2018 MacBook Pro 15" RP560X + RX 5700 XT (Mantiz Venus)

Master Threads:
2014 15-inch MacBook Pro 750M
2018 15-inch MacBook Pro


itsage liked
ReplyQuote
mac_editor
(@mac_editor)
Famed Member Moderator
Joined: 3 years ago
 

@itsage I tried again with the Aorus box. This time, I observed something a little different: when rebooting, the progress bar came up, filled up all the way for a moment (probably successful?) and then rebooted. Result from NVRAM:

ThorUpdateResult %19%00%00%00%ce%00%00%00

For some reason my Aorus box says 60W PD now (I believe I flashed H2D firmware). It's supposed to be 100W right?

 

 Screen Shot 2020 01 21 at 11.34.14 AM

purge-wranglertbt-flashpurge-nvdaset-eGPU
Insights Into macOS Video Editing Performance
2018 MacBook Pro 15" RP560X + RX 5700 XT (Mantiz Venus)

Master Threads:
2014 15-inch MacBook Pro 750M
2018 15-inch MacBook Pro


ReplyQuote
mac_editor
(@mac_editor)
Famed Member Moderator
Joined: 3 years ago
 

@itsage

Edit: Or maybe not? 60W seems to be an on/off thing. But flashing does seem to be affecting wattage should not change on a restart unless the power source was unplugged/restarted (which I didn't). I think it is working but the only verification would be comparing H2D results.

Edit 2: Yep wattage does not change when I have 60W PD and restart. But when I flash firmware it does seem to change. Either firmware is actually updated (boot bar under apple logo goes to full - this on FileVault system so you don't see this normally), or it does something to the box which reinitializes PD but does not update firmware.

Can confirm flashing worked for Aorus box! Flashed 1.0 firmware back and PD is normal again (using 2m cable/didn't change it)!

Screen Shot 2020 01 21 at 11.37.11 AM
 
This means that the following result in NVRAM means success:
ThorUpdateResult %19%00%00%00%ce%00%00%00

I can come up with an automation for this (:p) which should make it easy for any enclosure to be flashed provided firmware file is accessible.

Edit 3: Tried flashing Mantiz again to see what error code I get - its the same as Sonnet box:

ThorUpdateResult %07%00%12%00%00%00%00%00

purge-wranglertbt-flashpurge-nvdaset-eGPU
Insights Into macOS Video Editing Performance
2018 MacBook Pro 15" RP560X + RX 5700 XT (Mantiz Venus)

Master Threads:
2014 15-inch MacBook Pro 750M
2018 15-inch MacBook Pro


itsage and Username liked
ReplyQuote
itsage
(@itsage)
Illustrious Member Admin
Joined: 3 years ago
 

Amazing work and news! This should make life so much easier for everybody. The TUL board may be an exception. I remember some of us received prototype TB3 mainboards in early 2017 that could not be flashed at all. Mantiz had to shipped final version which could be flashed with compatible machine & TB3 controller. I will try flashing the Sonnet Breakaway Box with my 2016 15-in MacBook Pro.

Please feel free to edit OP with instructions on the flashing process and automation!

external graphics card builds
best laptops for external GPU
eGPU enclosure buyer's guide


ReplyQuote
mac_editor
(@mac_editor)
Famed Member Moderator
Joined: 3 years ago
 

@itsage

Can only say for sure once I test H2D in Windows (since its a GTX 1070). Will try and report back.

purge-wranglertbt-flashpurge-nvdaset-eGPU
Insights Into macOS Video Editing Performance
2018 MacBook Pro 15" RP560X + RX 5700 XT (Mantiz Venus)

Master Threads:
2014 15-inch MacBook Pro 750M
2018 15-inch MacBook Pro


ReplyQuote
mac_editor
(@mac_editor)
Famed Member Moderator
Joined: 3 years ago
 

@itsage

The AORUS firmware marked 1.0 is supposed to show reduced H2D right? I was not able to produce reduced H2D after macOS flash. Unfortunately I’m unable to flash in Windows for some reason to verify. Guess I’ll look into it. 

purge-wranglertbt-flashpurge-nvdaset-eGPU
Insights Into macOS Video Editing Performance
2018 MacBook Pro 15" RP560X + RX 5700 XT (Mantiz Venus)

Master Threads:
2014 15-inch MacBook Pro 750M
2018 15-inch MacBook Pro


ReplyQuote
itsage
(@itsage)
Illustrious Member Admin
Joined: 3 years ago
 

@mac_editor The default 1.0 firmware has Host-to-Device capped at 1,1XX Mib/s. The 1.0 H2D firmware has no cap on Host-to-Device and should be 2,2XX Mib/s. [Gigabyte Support website].

 

external graphics card builds
best laptops for external GPU
eGPU enclosure buyer's guide


ReplyQuote
mac_editor
(@mac_editor)
Famed Member Moderator
Joined: 3 years ago
 

@itsage

Thanks for the clarification. Do you remember roughly about how long it takes for a firmware flash to happen in Windows? In my case with the Aorus, it seems to do it in a few seconds (maybe 3-5s) which gives me the impression that it didn't do anything/failed. Edit: Nvm I was able to flash the Box in Windows to get reduced H2D. Needed to use Thunderbolt Control Center + Lenovo's FWUpdateTool.

I'm still investigating and I've gotten as far as to be able execute firmware updates on macOS on demand using a single command from Terminal. This command takes in the firmware file path and the eGFX UID as input and on next boot attempts to update firmware - this completely eliminates the need to create a plist and folders as mentioned earlier. If we can get this working, this will be the easiest way to update firmware on Thunderbolt devices (one command + reboot).

purge-wranglertbt-flashpurge-nvdaset-eGPU
Insights Into macOS Video Editing Performance
2018 MacBook Pro 15" RP560X + RX 5700 XT (Mantiz Venus)

Master Threads:
2014 15-inch MacBook Pro 750M
2018 15-inch MacBook Pro


Username and itsage liked
ReplyQuote
goalque
(@goalque)
Noble Member Admin
Joined: 3 years ago
 

I found string references to ThorUtil.efi which is supposedly the same firmware update utility we discussed with @itsage last year. Back then, factory firmware went through successfully with my HL23T and -u option. Alternatively you can use the route option (-r) too. I wasn't able to flash the Sonnet board.

Thunderbolt Configuration Update Utility over JTAG/CIO v7.63E

Copyright (c) Apple Inc. 2010-2016

Usage: ThorUtil [-r | -u ] {[-i|-ii] | {[options] {type [-f] image}...}}

-r

Hex presentation of the route to Thunderbolt router [default is 0 - host] (e.g. 0201)

-sr

Hex presentation of the super route (host router index and route) to Thunderbolt router (e.g. 2 0201)

-u UID of device.

Hex presentation of Thunderbolt's UID

type:

'-ee' Update EEPROM over high speed link.

'-fs' Update FLASH with signed image over high speed link.

'-ei ' Update EEPROM over IECS on EM/LC using LC or PM (JTAG).

'-em []' Update EM over high speed link.

'-sm []' Update SM over high speed link.

'-pm []' Update PM on PM/LC using IECS.

'-lcm []' Update Local CM on EM/LC .

'-rcm []' Update Remote CM on EM/LC

'-cm []' Update Local and Remote CM on EM/LC

-f Force updating image

image: binary image for given type



Options:

-o Image files are passed as variable names.

-g Use graphics mode to show update progress.

-i Display info of the first hop.

-ii Display recursive info.

-nb Do not perform cold boot on hosts' Thunderbolt router EEPROM update.

-ve Display Thunderbolt router EEPROM version.

-vm Display [E|S]M version.

-d

Debug level output (default is 0x81)

0x01 Informative 0x02 Command line parsing / File System

0x04 JTAG 0x08 EEPROM

0x10 I2C (EM) 0x20 IECS (PM/CM)

0x40 Protocol 0x80 Error

-h Help

automate-eGPU EFIapple_set_os.efi
--
Mid 2015 15-inch MacBook Pro eGPU Master Thread


itsage liked
ReplyQuote
mac_editor
(@mac_editor)
Famed Member Moderator
Joined: 3 years ago
 

@goalque

Yep, that's indeed the utility managing the firmware flash. Here's the way macOS does it (inferred from logs and tested to yield same results as above):

sudo bless --verbose --nextonly -mount / -folder MULTIUPDATER -firmware /usr/standalone/firmware/FUD/MultiUpdater/MultiUpdater.efi -payload /System/Library/AccessoryUpdaterBundles/ThunderboltAccessoryFirmwareUpdater.bundle/Contents/Resources/ThorUtil.efi -payload /Users/mayank/Downloads/AORUS_N1070IXEB_8GD_VER10.bin -options "ThorUtil.efi (-g -o -u 0x00ED7B5C48A14100 -fs efi-apple-payload1-data -nb -noreset )"

Which seems to write payload data to NVRAM. Presumably, one could just execute ThorUtil.efi from EFI shell with given params to flash (which is what you did?).

purge-wranglertbt-flashpurge-nvdaset-eGPU
Insights Into macOS Video Editing Performance
2018 MacBook Pro 15" RP560X + RX 5700 XT (Mantiz Venus)

Master Threads:
2014 15-inch MacBook Pro 750M
2018 15-inch MacBook Pro


goalque liked
ReplyQuote
mac_editor
(@mac_editor)
Famed Member Moderator
Joined: 3 years ago
 

This shorter command also seems to attempt to patch, though UI behavior is different:

sudo bless --nextonly -mount / -firmware /System/Library/AccessoryUpdaterBundles/ThunderboltAccessoryFirmwareUpdater.bundle/Contents/Resources/ThorUtil.efi -payload /Library/ThunderboltAccessoryFirmwareUpdatesDone/eGPU/AORUS_N1070IXEB_8GD_VER10H2D.bin -options "-g -o -u 0x00ED7B5C48A14100 -fs efi-apple-payload0-data -nb -noreset"

purge-wranglertbt-flashpurge-nvdaset-eGPU
Insights Into macOS Video Editing Performance
2018 MacBook Pro 15" RP560X + RX 5700 XT (Mantiz Venus)

Master Threads:
2014 15-inch MacBook Pro 750M
2018 15-inch MacBook Pro


ReplyQuote
goalque
(@goalque)
Noble Member Admin
Joined: 3 years ago
 

Yes, I did it from the EFI Shell and it shows progress if I recall right. It’s great to know that also possible from the user space.

automate-eGPU EFIapple_set_os.efi
--
Mid 2015 15-inch MacBook Pro eGPU Master Thread


ReplyQuote
mac_editor
(@mac_editor)
Famed Member Moderator
Joined: 3 years ago
 

@goalque

At least for the Aorus box I am unable to get it to actually patch the firmware from OS/userspace (works in Windows). Tried a few variations to the CLI to no avail. Guess trying in an EFI shell will provide more insight.

purge-wranglertbt-flashpurge-nvdaset-eGPU
Insights Into macOS Video Editing Performance
2018 MacBook Pro 15" RP560X + RX 5700 XT (Mantiz Venus)

Master Threads:
2014 15-inch MacBook Pro 750M
2018 15-inch MacBook Pro


ReplyQuote
mac_editor
(@mac_editor)
Famed Member Moderator
Joined: 3 years ago
 

@goalque

ThorUtil.efi is standalone right? I copied the EFI app to an accessible USB drive to give it a shot. Have attached EFI log. Sadly I cannot access my macOS partition(s) via EFI (to try and execute the EFI app from its original location) or am missing something. When I list directories, I just see '1 file' with no name (hence using USB drive) and the size of the entire disk. I did try disabling FileVault. Guessing its a T2 thing and it needs to boot further before disk data is unlocked.

purge-wranglertbt-flashpurge-nvdaset-eGPU
Insights Into macOS Video Editing Performance
2018 MacBook Pro 15" RP560X + RX 5700 XT (Mantiz Venus)

Master Threads:
2014 15-inch MacBook Pro 750M
2018 15-inch MacBook Pro


ReplyQuote
goalque
(@goalque)
Noble Member Admin
Joined: 3 years ago
 

What ThorUtil.efi are you using? MacOS combo update packages contain that efi as well as the MultiUpdater.efi. I couldn’t get it work directly, and had to use TB2 MBP, otherwise got ”not supported” messages.

Try with this version:

https://www.onestopsystems.com/product/expressbox-3t-v3-egpu-chassis

FWMac.zip under docs/drivers tab.

automate-eGPU EFIapple_set_os.efi
--
Mid 2015 15-inch MacBook Pro eGPU Master Thread


ReplyQuote
mac_editor
(@mac_editor)
Famed Member Moderator
Joined: 3 years ago
 

@goalque

I used the one bundled here:

/System/Library/AccessoryUpdaterBundles/ThunderboltAccessoryFirmwareUpdater.bundle/Contents/Resources/ThorUtil.efi

I’ll give the one you linked a shot and provide an update tomorrow. 

purge-wranglertbt-flashpurge-nvdaset-eGPU
Insights Into macOS Video Editing Performance
2018 MacBook Pro 15" RP560X + RX 5700 XT (Mantiz Venus)

Master Threads:
2014 15-inch MacBook Pro 750M
2018 15-inch MacBook Pro


ReplyQuote
itsage
(@itsage)
Illustrious Member Admin
Joined: 3 years ago
 
Posted by: @goalque

I found string references to ThorUtil.efi which is supposedly the same firmware update utility we discussed with @itsage last year. Back then, factory firmware went through successfully with my HL23T and -u option. Alternatively you can use the route option (-r) too. I wasn’t able to flash the Sonnet board.

Hi @goalque. Glad you join the discussion. I remember we were discussing ways to provide more value for our community and TBT FW flashing was one of them.

Thunderbolt partners have requested for such a tool or at least clear instructions from Apple so that people can flash their eGFX when the needs arise. The problem is the definition of needs. Apple deemed the Blackmagic eGPU/Pro needed a FW flash to support new Pro Display XDR monitor. Other vendors haven’t had such good luck convincing Apple they need a similar solution for their products too.

external graphics card builds
best laptops for external GPU
eGPU enclosure buyer's guide


goalque liked
ReplyQuote
mac_editor
(@mac_editor)
Famed Member Moderator
Joined: 3 years ago
 

@goalque

As you mentioned, the app you linked errors out with board ID not being supported for me.

purge-wranglertbt-flashpurge-nvdaset-eGPU
Insights Into macOS Video Editing Performance
2018 MacBook Pro 15" RP560X + RX 5700 XT (Mantiz Venus)

Master Threads:
2014 15-inch MacBook Pro 750M
2018 15-inch MacBook Pro


ReplyQuote
mac_editor
(@mac_editor)
Famed Member Moderator
Joined: 3 years ago
 

More updates on this:

The short command alone is insufficient, so to execute a firmware update, the large command is needed:

sudo bless --verbose --nextonly -mount / -folder MULTIUPDATER -firmware /usr/standalone/firmware/FUD/MultiUpdater/MultiUpdater.efi -payload /System/Library/AccessoryUpdaterBundles/ThunderboltAccessoryFirmwareUpdater.bundle/Contents/Resources/ThorUtil.efi -payload /Library/ThunderboltAccessoryFirmwareUpdates/AORUS_N1070IXEB_8GD_VER10.bin -options "ThorUtil.efi (-g -o -u 0x00ED7B5C48A14100 -fs efi-apple-payload1-data -nb -noreset)" && sudo nvram tbt-options=4

The bold payload is the path to the firmware binary, while the bold hex is the UID for the eGPU enclosure which one can easily look up from About This Mac > System Report... > Thunderbolt with eGFX connected.

Explanation of this command: It basically copies MultiUpdater.efiThorUtil.efi, and the firmware binary to the ESP/EFI partition of the internal disk, and sets the next boot priority to execute the MultiUpdater.efi app that uses ThorUtil.efi. You can check the contents of the ESP partition to see the folder structure by mounting it via Terminal. For example, this disk is disk0s1 on my system so I'd mount it as follows:

sudo diskutil mount disk0s1

The large command also saves information in NVRAM for access. The variables in question start with prefix efi-apple-payload* with numerals appended. A quick NVRAM read can provide more information:

nvram efi-apple-payload0
nvram efi-apple-payload0-data
nvram efi-apple-payload1
nvram efi-apple-payload1-data
... etc.

Notably, tbt-options NVRAM variable is set to 4 when I investigated the plist update mechanism, so I've added that to the command.

And as explained above, the result is saved in the ThorUpdateResult NVRAM variable. If you have access to EFI shell, then you could possibly just copy these EFI apps to an accessible USB drive and execute them in the shell. For example:

ThorUtil.efi -g -u <eGFX UID> -fs <eGFX bin file> -nb -noreset

To use with MultiUpdater (though I haven't tried it):

MultiUpdater.efi ThorUtil.efi (-g -u <eGFX UID> -fs <eGFX bin file> -nb -noreset)

Since we are not using NVRAM variables in EFI shell, we don't need -o flag.

Sadly, I haven't succeeded in flashing the firmware on the Aorus box using these techniques. I have a feeling that the 2018+ MBPs might be a bit problematic in this regard. Still haven't disassembled anything yet, which could reveal more interesting things.

purge-wranglertbt-flashpurge-nvdaset-eGPU
Insights Into macOS Video Editing Performance
2018 MacBook Pro 15" RP560X + RX 5700 XT (Mantiz Venus)

Master Threads:
2014 15-inch MacBook Pro 750M
2018 15-inch MacBook Pro


Username and itsage liked
ReplyQuote
goalque
(@goalque)
Noble Member Admin
Joined: 3 years ago
 

I used ThorUtil only:

Here’s the output with TUL Corporation board:
 
Thunderbolt Configuration Update Utility over JTAG/CIO v7.63E
 
Copyright (c) Apple Inc. 2010-2016
 
Load image from: \Mantiz_DSL6540C_V10_A68_B1_V23_tps65983_Intel_Apex_Creek_CH_2_10_PD60W_L_201670109_001.bin
 
 
 
Loaded 0x4A000 bytes
 
ERR: CioConfigWrite: ConfigWrite returned 0x8000000000000007.
 
ERR: Can't initiate command (8000000000000007)
 
ERR: Can't initiate read @ 00000000 (8000000000000007)
 
UpdateEE: Programming
 
ERR: CioConfigWrite: ConfigWrite returned 0x8000000000000007.
 
ERR: Can't initiate command (8000000000000007)
 
ERR: Can't request WEL @ 00000000 (8000000000000007)
 
ERR: CioConfigWrite: ConfigWrite returned 0x8000000000000007.
 
ERR: Can't initiate command (8000000000000007)
 
ERR: Can't request WEL @ 00000000 (8000000000000007)
 
ERR: CioConfigWrite: ConfigWrite returned 0x8000000000000007.
 
ERR: Can't initiate command (8000000000000007)
 
ERR: Can't request WEL @ 00000000 (8000000000000007)
 
ERR: Can't erase block @ 0x00000000 (0x8000000000000007)
 
0x8000000000000007 is EFI_DEVICE_ERROR code.
 
The force option did not make difference, so I guess the firmware binary is somehow made compatible to be used with Apple EFI tool when the product is certificated by Apple.

automate-eGPU EFIapple_set_os.efi
--
Mid 2015 15-inch MacBook Pro eGPU Master Thread


ReplyQuote
goalque
(@goalque)
Noble Member Admin
Joined: 3 years ago
 

AORUS gaming box is only eGFX Windows certified and so is Mantiz according to www.thunderbolttechnology.net. Furthermore, I tried to flash Sonnet (or DevilBox, I don't remember) board with the Mantiz binary. We should try first with the same manufacturer. Someone should test more enclosures so that we get a bigger picture of compatibility. Of course you first need to pass ”not officially supported” Mac host validation, a TB2 Mac with Apple TB2 to TB3 adapter is the best candidate. My test was almost a year ago, I don’t know how it works now.

This post was modified 1 month ago

automate-eGPU EFIapple_set_os.efi
--
Mid 2015 15-inch MacBook Pro eGPU Master Thread


ReplyQuote
mac_editor
(@mac_editor)
Famed Member Moderator
Joined: 3 years ago
 

@goalque

With the Mantiz I was told only an Alpine Ridge host/Mac can flash it (2018+ MBPs are Titan Ridge). The Sonnet has the same board so it may apply there too. That leaves only the Aorus Box which I have on hand that I know is patchable on my Mac (hardware-wise - it works in Windows). Will look into this more today.

purge-wranglertbt-flashpurge-nvdaset-eGPU
Insights Into macOS Video Editing Performance
2018 MacBook Pro 15" RP560X + RX 5700 XT (Mantiz Venus)

Master Threads:
2014 15-inch MacBook Pro 750M
2018 15-inch MacBook Pro


ReplyQuote
goalque
(@goalque)
Noble Member Admin
Joined: 3 years ago
 
Posted by: @mac_editor

@goalque

With the Mantiz I was told only an Alpine Ridge host/Mac can flash it (2018+ MBPs are Titan Ridge). The Sonnet has the same board so it may apply there too. That leaves only the Aorus Box which I have on hand that I know is patchable on my Mac (hardware-wise - it works in Windows). Will look into this more today.

Oddly, the tool from onestopsystems worked with my old Late 2013 15" MBP (whose firmware had not been updated), even if their web site said MacBook Pro Late 2016, Mid-2017, or Mid-2018. My 2018 13" MBP was not supported with this EFI. I never tested later versions of ThorUtil.

I forgot to say: as with all firmware flashing, people should be aware of the risks involved.

automate-eGPU EFIapple_set_os.efi
--
Mid 2015 15-inch MacBook Pro eGPU Master Thread


mac_editor and itsage liked
ReplyQuote
itsage
(@itsage)
Illustrious Member Admin
Joined: 3 years ago
 

I recently ran across a Hackintosh build that discusses flashing the Thunderbolt firmware from a Mac mini to a NUC. It’s a very interesting read [Thunderbolt 3 Fix Part 3].

external graphics card builds
best laptops for external GPU
eGPU enclosure buyer's guide


ReplyQuote
mac_editor
(@mac_editor)
Famed Member Moderator
Joined: 3 years ago
 

@goalque

Thank you for sharing your logs from when you tested. The help output for the tool has been helpful as well. I think I have a slightly better understanding of the situation now. First off, the Blackmagic eGPU likely requires the -fs (FLASH) argument to flash its firmware (macOS default args when initiated), while other boards require -ee (EEPROM) [and some others might just not work]. ThorUtil.efi from OneStopSystems completely blocks my Mac (board ID), but the tool bundled in Catalina should work (has to, for Blackmagic). The caveat is that it will probably only work for -fs argument (thus only Blackmagic), and will not proceed with -ee argument (tried) [or other args, for that matter], stating that system is not supported (yet). However, we already know that the -ee argument works on TB2 Mac from your test, so assuming that has not changed, my next step will be to try patching ThorUtil.efi board ID checks and retry. The hopeful end goal is for patching to at least be attempted if I am able to patch the EFI app successfully.

purge-wranglertbt-flashpurge-nvdaset-eGPU
Insights Into macOS Video Editing Performance
2018 MacBook Pro 15" RP560X + RX 5700 XT (Mantiz Venus)

Master Threads:
2014 15-inch MacBook Pro 750M
2018 15-inch MacBook Pro


goalque and itsage liked
ReplyQuote
mac_editor
(@mac_editor)
Famed Member Moderator
Joined: 3 years ago
 

@itsage @goalque

Sat down with a friend who has a knack for this and we've seen the light. Successfully flashed Aorus Box to H2D and non-H2D firmware (verified in CUDA-Z) on TB3 Mac. I did this twice to be certain. We patched Apple's provided ThorUtil.efi (the one in Catalina used by Blackmagic eGPU) to accomplish this. The error was exceedingly simple actually, but because the logs never spit out anything useful we couldn't see it [thus we patched the log level too]. Have attached the logs. Will update on how it goes with the Sonnet. Will also be testing direct macOS/Blackmagic like update using the bless commands above and seeing what happens. If all goes well, I will create an automation for the same when I have the time.

purge-wranglertbt-flashpurge-nvdaset-eGPU
Insights Into macOS Video Editing Performance
2018 MacBook Pro 15" RP560X + RX 5700 XT (Mantiz Venus)

Master Threads:
2014 15-inch MacBook Pro 750M
2018 15-inch MacBook Pro


ReplyQuote
Username
(@username)
Reputable Member
Joined: 3 years ago
 

This is wickedly good!

Present: 2012 Mac mini + PowerColor RX 56 Vega Nano @10Gbps-TB1 +
PowerColor eGFX Mini 180F via TB3->TB2 adapter + macOS Mojave

Previous: 2012 Mac Mini + [email protected] (AKiTiO Thunder3 via TB3->TB2 adapter) + macOS


ReplyQuote
itsage
(@itsage)
Illustrious Member Admin
Joined: 3 years ago
 

@mac_editor Amazing work! Thank you very much for keeping at it. We’re looking forward to having this automated TBT FW flasher for macOS!

 

external graphics card builds
best laptops for external GPU
eGPU enclosure buyer's guide


ReplyQuote
 of  2