Blackmagic eGPU/Pro Firmware Update Tool on macOS
 
Notifications
Clear all

Blackmagic eGPU/Pro Firmware Update Tool on macOS  

 of  8
  RSS

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

I'll take a look at them Smile

Present: 2012 Mac mini + PowerColor RX 56 Vega Nano @10Gbps-TB1 + PowerColor Mini eGFX 180F via Apple TB3 to TB2 + macOS Catalina 10.15.4

Previous: 2012 Mac Mini + GTX1070 @ 10Gbps-TB1 (AKiTiO Thunder3 via Apple TB3 to TB2 adapter) + macOS

 
2012 Mac Mini [3rd,4C,Q] + GTX 970 @ 10Gbps-TB1>TB3 (AKiTiO Node) + macOS 10.12.4 [build link]  


ReplyQuote
Hải Đỗ Thanh
(@hai_do_thanh)
Active Member
Joined: 6 months ago
 

@mac_editor

That a great repo. Can we have a list/download link of all available firmware in this repo too?. This will make easy for those who want to run the script. 

Sonnet eGFX 350W + 2016 13" macbook pro


ReplyQuote
Teemu Arina
(@teemu_arina)
New Member
Joined: 9 months ago
 

I noticed something interesting with the 1.2 firmware for Blackmagic eGPU Pro in Bootcamp.

I have 15" 2019 MacBook pro with internal radeon pro 560x. I have got the Blackmagic eGPU Pro to work just fine from top left thunderbolt port with the pci.sys hack with latest Windows 10 versions without the need for apple_set_os.efi, disabling pci bridges or any other fancy hacks. All MacBook thunderbolt ports have worked just fine.

After flashing to 1.2 and changing absolutely nothing else on Mac or Windows 10 side (updates are disabled), the Blackmagic eGPU no longer works on Windows 10. The USB 3 ports do not register on the eGPU nor the thunderbolt port when connected to any of the thunderbolt ports on the Windows 10 side. The eGPU turns on, visible with standby lights on various devices as well as a light on the box itself but the GPU is not detected.

Also, the familiar Error 12 is not there ever in any configuration, OS version (latest or 295) as it used to without the pci.sys hack. It registers the thunderbolt port when connected but does not show the GPU nor the other devices connected to USB or thunderbolt ports.

After investigating this further I ended up reinstalling version 295 of Windows 10 (I used to run latest versions just fine with the pci.sys replacement) and I got it to work only with the modified apple_set_os.efi by booting up with the lower left thunderbolt port (not the upper left one as previously - Vega does not show up otherwise in device manager). Also the internal monitor does not turn on when booted like this but the external monitor does work. I'm running April 2020 bootcampdrivers for Radeon.

I have tested both Intel and Apple Thunderbolt drivers and there is no difference in functionality.

I assume the firmware update also updates the titan ridge firmware on the Blackmagic eGPU pro and that somehow changes/breaks the functionality/port allocation on Windows 10 side.

Based on my experience, I do not recommend the firmware update to anyone running similar configuration to mine and if Bootcamp is important to you and 6k resolution is not that important to achieve.

If someone has not yet flashed their Blackmagic eGPU Pro yet, I would be interested in a firmware dump in order to downgrade the eGPU to restore previous flawless functionality.

System preferences shows Thunderbolt bus firmware version 47,4, link controller firmware version 1.34.0 and eGPU Pro firmware version 50,4, link controller firmware version 1.37.0. I would like to hear also how these firmware versions look like on an unflashed Blackmagic eGPU Pro.

To do: Create my signature with system and expected eGPU configuration information to give context to my posts. I have no builds.

.

ReplyQuote
joevt
(@joevt)
Noble Member
Joined: 3 years ago
 

@teemu_arina, it's possible that the old firmware still exists on your Blackmagic (the chip is 1MB and the firmware is less than half of that - there's an active partition and an inactive partition - new firmwares are installed to the inactive partition and that partition is made active). If you can dump your entire rom (1MB) then you can extract the old firmware from it.

I don't know a non-hardware method to dump the entire rom though. Does ThorUtil.efi or TBTFlash have a dump option (I don't see a dump option in the ThorUtil help text)? ThunderboltPatcher is supposed to be able to dump firmwares, but I can't get it to work on a real Mac - (need to install ThunderboltReset and Lilu? but then my Mac mini doesn't boot up) - maybe it works on a Hackintosh.

You can buy a USB flash programmer and read the firmware from the Blackmagic (but then you would have to take it apart).

 

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
mac_editor
(@mac_editor)
Famed Member Moderator
Joined: 3 years ago
 
Posted by: @joevt

I don't know a non-hardware method to dump the entire rom though. Does ThorUtil.efi or TBTFlash have a dump option (I don't see a dump option in the ThorUtil help text)?

There is no way to perform a software dump on macOS (Macs) as of now to my knowledge. However, I think it may be possible via Linux, and if investigated thoroughly, via EFI as well. Seems like firmware upgrades are rather straightforward (uses dd). Presumably we can dump it the same way.

https://www.kernel.org/doc/html/latest/admin-guide/thunderbolt.html

This post was modified 1 month ago

purge-wranglertbt-flashpurge-nvdaset-eGPU
Insights Into macOS Video Editing Performance

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

 
2019 13" MacBook Pro [8th,4C,U] + RX Vega 64 @ 32Gbps-TB3 (Mantiz Venus) + macOS 10.14.6 & Win10 [build link]  


ReplyQuote
joevt
(@joevt)
Noble Member
Joined: 3 years ago
 

@mac_editor, I was able to use Ubuntu 20.04 LTS to read firmwares from all my Thunderbolt 3 devices from the following computers:

MacBook Pro 2015 (Falcon Ridge)
Mac mini 2018 (Titan Ridge x2)
Gigabyte GA-Z170X-Gaming 7 (Alpine Ridge)
Mac Pro 2008 (Titan Ridge x2 - not Alpine Ridge)

I could not get Ubuntu 20.04 installed to the Mac Pro 2008 but I could boot the installer USB stick.

The firmwares don't include the 16K header of a normal firmware update - I guess you can just add it if it's necessary for a non Linux firmware updater (just follow the 16K header format of non Linux firmwares).

Thunderbolt 2 and Thunderbolt 1 devices are detected but don't have a firmware read option.

Thunderbolt firmware reading can be done even if the OS does not allocate PCIe resources for the Thunderbolt devices.

There does not appear to be a way to read the non-active partition with this method. The non-active sysfs device in Linux is only for writing an updated firmware.

 

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
mac_editor
(@mac_editor)
Famed Member Moderator
Joined: 3 years ago
 

@joevt, Nice!

Posted by: @joevt

The firmwares don't include the 16K header of a normal firmware update - I guess you can just add it if it's necessary for a non Linux firmware updater (just follow the 16K header format of non Linux firmwares).

I recall validation checks for ACE version, DROM, and version number (must be higher) in Apple's ThorUtil.efi. tbt-flash patches the program to bypass these checks, allowing for 'freely' patching things basically. Would be an interesting experiment to test the stripped firmware (no header) with tbt-flash/ThorUtil. Probably likely that the program might fail. tbt-flash can enable logging (Debug Flash option) so you can see logs when executed in EFI shell as advised on script wiki.

Posted by: @joevt

Thunderbolt firmware reading can be done even if the OS does not allocate PCIe resources for the Thunderbolt devices.

Nice.

Posted by: @joevt

There does not appear to be a way to read the non-active partition with this method. The non-active sysfs device in Linux is only for writing an updated firmware.

Not possible to remount device as readable?

 

purge-wranglertbt-flashpurge-nvdaset-eGPU
Insights Into macOS Video Editing Performance

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

 
2019 13" MacBook Pro [8th,4C,U] + RX Vega 64 @ 32Gbps-TB3 (Mantiz Venus) + macOS 10.14.6 & Win10 [build link]  


ReplyQuote
joevt
(@joevt)
Noble Member
Joined: 3 years ago
 

@mac_editor, I don't think there's anything useful in the first 16K. It just needs a pointer at 0 to 4000. I can scan all the firmwares I have to look for differences in the first 16K. You're right though, it would be interesting if we don't have to recreate the 16K header for tbt-flash. You would need the header for hardware flasher (or not update the first 16K).

About reading the non-active part of the firmware - the linux code explicitly assigns a read function that returns an error for the inactive part (see register_nvmem).
https://github.com/torvalds/linux/blob/master/Documentation/ABI/testing/sysfs-bus-thunderbolt

There is different method for reading eeprom:
https://github.com/torvalds/linux/blob/master/drivers/thunderbolt/eeprom.c
I don't know why they wouldn't expose a device for using that method (this might be the AppleHPMDevice that ThunderboltPatcher uses?)

 

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
joevt
(@joevt)
Noble Member
Joined: 3 years ago
 

I was able to boot Ubuntu on my MacPro3,1 by not installing third party software and not enabling auto-login.

If I enable the GC-ALPINE RIDGE with the mm command in the EFI Shell from rEFInd, then try to boot Ubuntu, the screen remains black and the keyboard is unresponsive. I don't know how to do a verbose boot to see why it stopped.

I would try the mm commands using setpci in the linux terminal but, unlike macOS pciutils, the linux pciutils doesn't seem to have an access method that allows writing to PCIe extended configuration space (register 0x100..0xFFF) for unknown devices (devices that are not enumerated in procfs or sysfs).

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
 of  8