Contribute
Register

[SUCCESS] Gigabyte Designare Z390 (Thunderbolt 3) + i7-9700K + AMD RX 580

I'm surprised there's no mention of ThunderboltNHI let alone IOThunderboltFamily. Is this from your Gigabyte X299? Is it Catalina 10.15.3?

I too saw no mention of either when on the X299 ASUS PD1, Mojave 14.6, using NVM43 flashed to a GB-Titan Ridge. However, I seemingy had all TB features working except port 7.

I then flashed NVM33 (Designare version) and it was no better, maybe a little worse (still no port 7 and no DROM results in logs). I'd set up ThunderboltDROM for an iMacPro1,1 with all 0x00 at end of file (no hidden messages ;)).

Later, I'll flash NVM23 and compare.

BTW, are there any interactions between ThunderboltConfig and ThunderboltDROM? Any special settings for ThunderboltConfig?
 
Then sign out of iCloud. Reboot. Sign back into iCloud (with new serial number).
Tried it sever times now, with new serial number each time. Unfortunately, I'm still prompted to contact customer support.
 
@CaseySJ @Elias64Fr
Could we dump the nvmem of the Thunderbolt controller using Linux from /sys/bus/thunderbolt/devices/0-0/nvm_active0/nvmem, patch the 7 bytes if applicable, and then do host NVM upgrade using these instructions?

Here's the nvmem file I have dumped, it's 516,096 bytes, I'm not sure if it has the bytes to be changed.
 

Attachments

  • nvmem.zip
    266.8 KB · Views: 158
Last edited:
*** Thunderbolt DROM Micro-Guide for Gigabyte GC-Titan Ridge V1.0 ***
Please do not quote this micro-guide in its entirety. Post a link instead.​


Target Audience for this Procedure:
  • Gigabyte GC-Titan Ridge V1.0 owners with activated Thunderbolt Bus.
    • To activate Thunderbolt Bus, it's necessary to flash a modified firmware onto the GC-Titan Ridge.
    • Become thoroughly familiar with the following posts:
  • If System Information --> Thunderbolt says No drivers are loaded, then this does not apply to you.
Benefits / Purpose:
  • Just as your Mac's serial number is unique and your Ethernet card's MAC address is unique, we need to assign a unique ID to the Thunderbolt controller.
  • Thunderbolt Ethernet Bridge and Target Disk Mode require this procedure.
  • Most eGPUs require this procedure.
  • QNAP Thunderbolt-based NAS units require this procedure.
    • Other Thunderbolt-based storage and NAS systems may require this procedure as well.
  • This procedure may improve overall compatibility with a wider set of Thunderbolt devices.
Preparation of Card:
  • If motherboard contains a compatible 5-pin Thunderbolt header (THB_C), connect the GC-Titan Ridge to motherboard with a Thunderbolt header cable that is supplied with the GC-Titan Ridge.
  • If motherboard does not contain a Thunderbolt header, connect pins 1 and 3 with a simple female/female breadboard jumper wire, as follows:
    • Hold the GC-Titan Ridge vertically so the PCIe pins are pointing down to the floor.
    • On the back of the card, locate the 5-pin vertical header (J1).
    • Pin 1 is the top pin
    • Pin 3 is the middle pin
    • Connect the top pin and middle pin
Procedure:
There are two options for configuring Thunderbolt DROM. Choose one of the two methods.

Option 1: Web GUI Method (credit: @Inqnuam)
This method is the easiest to use.
  • Click here
  • Follow on-screen instructions carefully
  • Thunderbolt DROM will be customized for you using a randomly generated Unique ID (UID) and all checksums will be auto-computed.
  • A complete Thunderbolt SSDT (with the new DROM) will be presented on screen and it will also be copied to the clipboard for you.
  • Download and run MaciASL, create new file (File --> New) and paste the clipboard.
  • Then save the file in ACPI Machine Language (AML) format: File --> Save As... and choose ACPI Machine Language from the pop-up menu.
  • Give the file an appropriate name such as: SSDT-TB3-DROM-HOTPLUG.aml.
    • Any name is okay as long as it begins with SSDT-
  • However, download SSDT-DTPG.aml from the bottom of this guide.
  • Both SSDT files must be copied to the CLOVER/ACPI/patched folder (for CLOVER users) or OC/ACPI folder (for OpenCore users).
Option 2: Superuser Method (credit: @joevt)
Please see this guide for advanced users.

Option 3: Manual Method
  • Specify a new Unique ID (UID) in the 5 green bytes below (0x11).
  • Replace the 5 green numbers below with 5 randomly selected hex numbers.
  • Now click here to visit an online CRC calculator and configure it as shown:
    Screen Shot 2020-03-18 at 9.35.24 AM.png
  • Copy the boldfaced bytes below (bytes 2-9 after replacing the green bytes with your own values) to clipboard and paste them into the Bytes field as shown and click CRC button:
    Screen Shot 2020-03-18 at 9.37.02 AM.png
  • Enter the CRC-8 checksum into the 1st byte of Thunderbolt DROM as shown in red below.
  • Save this into your Thunderbolt SSDT, in the NHI0._DSM method.
    • The attached SSDTs may be used, but they are configured for PCI0.RP05. Adapt the SSDT for the actual PCIe path for your system. If you have questions about this, just ask.
    • Both SSDTs should be copied to CLOVER/ACPI/patched or for OpenCore users, OC/ACPI
  • Optional but Highly Recommended for Add-in-Cards: Byte #2 below (between 0x88 and 0x11) represents the Thunderbolt Bus ID. If you have multiple Thunderbolt controllers, assign a different bus to each one. If you change this byte, please re-compute the CRC-8 checksum.
    • The first byte of ThunderboltConfig should then be changed to the same Bus ID.
"ThunderboltDROM",
Buffer (0x76)
{
0x88, 0x00, 0x11, 0x11, 0x11, 0x11, 0x11, 0x00,
0x00, 0xbf, 0x6b, 0xda, 0x44, 0x01, 0x58, 0x00,
0x01, 0x00, 0x0d, 0x00, 0x01, 0x08, 0x08, 0x81,​
0x80, 0x02, 0x80, 0x00, 0x00, 0x00, 0x08, 0x82,​
0x90, 0x01, 0x80, 0x00, 0x00, 0x00, 0x08, 0x83,​
0x80, 0x04, 0x80, 0x01, 0x00, 0x00, 0x08, 0x84,​
0x90, 0x03, 0x80, 0x01, 0x00, 0x00, 0x05, 0x85,​
0x50, 0x00, 0x00, 0x05, 0x86, 0x50, 0x00, 0x00,​
0x02, 0x87, 0x0B, 0x88, 0x20, 0x01, 0x00, 0x64,​
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x89, 0x80,​
0x05, 0x8A, 0x50, 0x40, 0x00, 0x05, 0x8B, 0x50,​
0x40, 0x00, 0x0B, 0x01, 0x47, 0x49, 0x47, 0x41,​
0x42, 0x59, 0x54, 0x45, 0x00, 0x11, 0x02, 0x47,​
0x43, 0x2D, 0x54, 0x49, 0x54, 0x41, 0x4E, 0x20,​
0x52, 0x49, 0x44, 0x47, 0x45, 0x00​
},
  • CRITICAL WARNING:
    • Do not copy and paste the text above into MaciASL. Instead, copy-and-paste from the spoiler below. Failure to do so will be catastrophic.
Code:
"ThunderboltDROM",
Buffer (0x76)
{
0x88, 0x00, 0x11, 0x11, 0x11, 0x11, 0x11, 0x00,
0x00, 0xbf, 0x6b, 0xda, 0x44, 0x01, 0x58, 0x00,
0x01, 0x00, 0x0d, 0x00, 0x01, 0x08, 0x08, 0x81,
0x80, 0x02, 0x80, 0x00, 0x00, 0x00, 0x08, 0x82,
0x90, 0x01, 0x80, 0x00, 0x00, 0x00, 0x08, 0x83,
0x80, 0x04, 0x80, 0x01, 0x00, 0x00, 0x08, 0x84,
0x90, 0x03, 0x80, 0x01, 0x00, 0x00, 0x05, 0x85,
0x50, 0x00, 0x00, 0x05, 0x86, 0x50, 0x00, 0x00,
0x02, 0x87, 0x0B, 0x88, 0x20, 0x01, 0x00, 0x64,
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x89, 0x80,
0x05, 0x8A, 0x50, 0x40, 0x00, 0x05, 0x8B, 0x50,
0x40, 0x00, 0x0B, 0x01, 0x47, 0x49, 0x47, 0x41,
0x42, 0x59, 0x54, 0x45, 0x00, 0x11, 0x02, 0x47,
0x43, 0x2D, 0x54, 0x49, 0x54, 0x41, 0x4E, 0x20,
0x52, 0x49, 0x44, 0x47, 0x45, 0x00
},

Reboot.
  • Check if Thunderbolt Port 7 is activated.
    Screen Shot 2020-03-18 at 9.41.59 AM.png
 

Attachments

  • SSDT-DTPG.aml
    100 bytes · Views: 576
Last edited:
@CaseySJ @Elias64Fr
Could we dump the nvmem of the Thunderbolt controller using Linux from /sys/bus/thunderbolt/devices/0-0/nvm_active0/nvmem, patch the 7 bytes if applicable, and then do host NVM upgrade using these instructions?

Here's the nvmem file I have dumped, it's 516,096 bytes, I'm not sure if it has the bytes to be changed.

Linux is very new to me. Are you saying there's a feature where we can write to firmware of a device? I just read through the link but want to confirm.
 
...
BTW, are there any interactions between ThunderboltConfig and ThunderboltDROM? Any special settings for ThunderboltConfig?
That's the next challenge... :)
 
I understand this is a way back, reflashing the GA firmware makes TB work again in Windows. But if I flash for Mac TB, TB on Windows is completely/partially broken until I reflash to the Gigabyte firmware?
After Firmware has been patched, and prior booting for macOS then rebooting to windows, my EGPU seem to have a normal operating. I have quickly tested a graphic bench (GPUZ) and nothing abnormal : max GPU frequency and VRAM, 100% loaded. .. more testing should be done by compare results on more sophisticated Graphic test bench :)
 
Tried it sever times now, with new serial number each time. Unfortunately, I'm still prompted to contact customer support.
thinking back to the tricks we needed in the "old days" when messages/iMessage was more finicky.
log out of Messages/iCloud on all your Macs/hacks. log out of iMessage on all your iDevices. on your hack, open system preferences--network and delete your ethernet and wifi (if using) connections. go to Library/Preferences/System Configuration and delete NetworkInterfaces.plist. empty trash and reboot. open the network control panel again and add the Ethernet and wifi (if you use wifi) connections. log back in to iMessage on one iDevice, then try logging into Messages on your Hackintosh.
 
Linux is very new to me. Are you saying there's a feature where we can write to firmware of a device? I just read through the link but want to confirm.
Yeah, if this works, then it will make it a lot easier to patch without using external tools.
 
@CaseySJ @Elias64Fr
Could we dump the nvmem of the Thunderbolt controller using Linux from /sys/bus/thunderbolt/devices/0-0/nvm_active0/nvmem, patch the 7 bytes if applicable, and then do host NVM upgrade using these instructions?

Here's the nvmem file I have dumped, it's 516,096 bytes, I'm not sure if it has the bytes to be changed.
HOLY C$%P!!!

The bytes we need to patch are right there in the first 0x200 bytes of what you retrieved from Linux:
Screen Shot 2020-03-18 at 4.40.13 PM.png
 
Back
Top