Contribute
Register

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

Hello @LeSeChe,

Welcome to the forum -- and what a grand entrance! Some observations and questions:
  • Because you have two LG 5K displays, it means:
    • Display 1 is connected to Thunderbolt Port 1 (closest to HDMI).
    • Display 1 is driven by Vega 64 because you must have connected DP cable from Vega to DP-In.
    • Display 2 is connected to Thunderbolt Port 2.
    • Display 2 is driven by iGPU (not Vega) because there is no physical connection between Vega and Thunderbolt Port 2. This is why you needed to set iGPU to Platform ID 0x3E9B0007.
  • I am puzzled why:
    • About this Mac --> Displays shows both monitors driven by Vega 64.
    • System Preferences --> Graphics/Displays shows that Vega 64 is connected to only one monitor.
    • However, this may be okay -- it may just be an artifact of macOS.
  • In BIOS, is Internal Graphics set to Enabled?
  • In BIOS, is Initial Display Output set to PCIe 1 Slot?
    • If so, have you tried setting this to IGFX instead?

Hi @CaseySJ, thank you for the welcoming reply and for helping me debug! :)

I had thought that both displays were using the graphics card. I think you’re right that this wasn’t the case. Looks like the Initial Display Output setting makes a difference for my setup.

Previously, my BIOS settings were Internal Graphics: Enabled and Initial Display Output: PCIe 1 Slot. I’ve now changed the Initial Display Output setting to IGFX. As a result, the iGPU now shows up under System Information > Hardware > Graphics/Displays and I can see both displays connected to the graphics card and iGPU separately.
The info in About This Mac has also updated accordingly. I tested with Plex (with the (GPU) Hardware Acceleration setting enabled) and saw that watching a movie on the main display (SSP1) would use the IGPU and moving the movie to the secondary display (SSP2) would use the graphics card. I noticed that Fortnite will use the iGPU no matter what (basically unplayable) but I'm not playing much Fortnite these days so that doesn't bother me at all (just something I like to test).

I still don’t have any graphics output to my display when powering on my machine until the macOS loading bar and user login screen. I worked around that by powering on my computer (using the case button) and then rebooting (using the macOS user login screen button), which somehow gives me display output during the re-boot so I can access and use the BIOS settings. If I flash the original firmware back onto the Winbond chip I can see the Gigabyte boot logo when booting from a powered-off state (as normal). But I'd rather have the configured thunderbolt 3 controller :)

Ideally I’d be able to use the graphics card for both displays. My understanding is that a "Headless" configuration isn’t compatible with dual thunderbolt displays (but I haven't tried it). So maybe I should try a GC Titan Ridge addon-card if I'm limited by the motherboard's single DisplayPort-In connector, but is that card even compatible without a THB_C header on the Designare?

Here are the updated screenshots, and photos of my BIOS settings.
 

Attachments

  • AboutThisMac_Overview.png
    AboutThisMac_Overview.png
    443.9 KB · Views: 155
  • AboutThisMac_Displays.png
    AboutThisMac_Displays.png
    221.7 KB · Views: 166
  • SystemReport_GraphicsDisplays_iGPU.png
    SystemReport_GraphicsDisplays_iGPU.png
    1.1 MB · Views: 180
  • SystemReport_GraphicsDisplays_Vega.png
    SystemReport_GraphicsDisplays_Vega.png
    1.1 MB · Views: 175
  • SystemReport_Thunderbolt.png
    SystemReport_Thunderbolt.png
    1.3 MB · Views: 158
  • Extra_VideoProc.png
    Extra_VideoProc.png
    547 KB · Views: 171
  • BIOS_1.jpeg
    BIOS_1.jpeg
    984 KB · Views: 168
  • BIOS_2_IO.jpeg
    BIOS_2_IO.jpeg
    989.2 KB · Views: 156
  • BIOS_4_TB_Discrete.jpeg
    BIOS_4_TB_Discrete.jpeg
    909.2 KB · Views: 151
  • BIOS_3_TB.jpeg
    BIOS_3_TB.jpeg
    884.9 KB · Views: 152
  • BIOS_5_TB_DTBTController0Configuration.jpeg
    BIOS_5_TB_DTBTController0Configuration.jpeg
    941.9 KB · Views: 136
  • BIOS_6.jpeg
    BIOS_6.jpeg
    845.9 KB · Views: 162
  • BIOS_7_Boot.jpeg
    BIOS_7_Boot.jpeg
    946.6 KB · Views: 165
  • BIOS_9.jpeg
    BIOS_9.jpeg
    939.3 KB · Views: 164
  • BIOS_8_CPU.jpeg
    BIOS_8_CPU.jpeg
    881 KB · Views: 157
Side note, but I now have both UltraFine 5K displays working the with the OWC 14-port TB3 dock (using the modified Z390 TB3 firmware and accompanying SSDT with patched DROM)
 

Attachments

  • SSP1Display_SSP2Dock.png
    SSP1Display_SSP2Dock.png
    1.6 MB · Views: 140
That is normal. We’ve disabled USB 2 on all the USB-C ports in order to avoid exceeding the 15 port limit. I’ll add this note to the Catalina mini guide soon.
Thanks for getting back to me so fast! Answers a lot.
 
Hello, starting a similar build, and I am trying to figure out if I need to connect the Broadcom WIFI card wire from the card to the motherboard. I do not have any available header slots available on this board.
 

Attachments

  • Screen Shot 2020-03-31 at 11.34.03 PM.png
    Screen Shot 2020-03-31 at 11.34.03 PM.png
    102.5 KB · Views: 119
Hi @CaseySJ,

I can confirm that these TB3 components are working with the internal TB3 ports that I have upgraded the onboard firmware using the DESIGNARE-Z390-NVM33-Elias64Fr.bin.

I was wondering if you can update the ThunderBolt list with these?
 
Okay I'm gonna ask the obvious question: If you're watching Netflix in Sidecar, why not just run the Netflix app on the iPad? :)
Could this be it?

Hi @CaseySJ,

Did a bit of R&D and I'm now running shikigva=80 instead of 16 or 30. This allows me to run both my RX 580 and iGPU in headless mode and allows Safari on the iMac to display Netflix without any extensions etc.

At the same time I can use my iPad Pro as Sidecar, which would only display a black interface using shikigva=30.

Due to DRM, I have to watch Netflix on the iPad natively, something that I can live with.

Thanks for your help.:)
 
Hello, starting a similar build, and I am trying to figure out if I need to connect the Broadcom WIFI card wire from the card to the motherboard. I do not have any available header slots available on this board.

Hi @jeff.m.ruth,

Yes, you do have to attach the cable to a USB port. If you don't, Bluetooth will not work.
Make sure you also load the DESIGNARE-Z390-NO-CNVW.aml by copying it to the CLOVER/ACPI/patched folder on the EFI partition.
See the Recommended WiFi/BT Wireless Cards section in post 1 of this build guide.
If you don't have any USB ports on the internal header, then I suggest you look into getting a USB splitter as mentioned in post 1 of this build guide by @CaseySJ under this heading 9 Pin USB Splitter 1-to-2
I have in the past used one of these splitters with no issues, but since I'm now using a Corsair Commander Pro controller attached to this USB port, it has an inbuilt hub that supports four devices.

I hope this helps.
 
When we look through Apple firmware files we find a number of Thunderbolt SSDTs for various Mac models.
  • Some of the table names are TbtOnPch.
    • This is for Thunderbolt controllers on the PCH bus.
    • The Designare's Thunderbolt controller is on the PCH bus.
  • Some of the table names are TbtOnPEG.
    • This is for Thunderbolt controllers on the PCIe bus.
    • The GC-Titan Ridge and other add-in-cards are PCIe cards, so their controllers are on the PCIe bus.
  • So Thunderbolt firmware might be configured slightly differently for controllers on PCH versus controllers on PCIe.
So if you open the Mac Pro 7,1 SSDT-3, what is the table name in the first line (DefinitionBlock)?

I'm wondering if it makes sense to capture the firmware from a real Mac whose Thunderbolt SSDT table is named TbtOnPEG. Then modify and flash that to a PCIe card?

This is some interesting insight. But i think i would take a slightly different interpretation. Apologies if some of this is already well know.

So obviously the thunderbolt controller (or any PCIe device) can be connected to PCIe lanes that either come directly from the CPU, or alternatively to PCIe lanes which are routed through the PCH (which is much like a southbridge). It appears real macs can have this setup either way, depending on the model. On PC motherboards certain PCI slots are routed directly to the CPUs PCIe lanes, and others are routed through the PCH. This can be further complicated on some motherboards with PCIe switches that will route some lanes/slots depending on BIOS settings or overall PCIe lane usage.

This is interesting because there have been at least some reports of people having an AIC work well in some slots, for instance RP05, which is /probably/ PCIe lanes off the PCH- and that same card not working well or at all in another slot on the same board, for instance PEGX which is /probably/ PCIe lanes directly on the CPU- even after making the proper adjustments in the SSDT for the root device.

Why this should matter is not clear to me, one might hope PCIe lanes are PCIe lanes regardless of how they route, but it seems quite feasible that there could be specific issues in how the thunderbolt interfaces with one type or the other, and that apple has different SSDTs for the different cases seems telling. This might affect how some of the sub components populate and whether hotplug events are handled properly, etc.

So the Apple TbtOnPEG is probably in reference to controllers attached to CPU PCIe lanes. This can be through an add-on card or onboard controller in theory. And TbtOnPCH should be, as the name implies, for controllers connected to PCIe lanes routed to the PCH. Its just important to note that in theory a given motherboard could have its onboard controller routed either way (in practice it seems most common to route through PCH, but i bet some have them on "PEG"), and that depending on which slot an AIC is used in it could be routed either way.

I also suspect that the important differences between these are more in the SSDT/ACPI handling and maybe not in the firmware itself. But i think it would be very interesting to compare differences between the two SSDT tables, as well as do a diff on the firmwares... ESPECIALLY if they could be from the same mac since that should eliminate other potential differences in the files.


So a few questions then.

Do we have the ability to compare differences in the two SSDTs? if mac pro 7,1 has both tables i will pull them.

@CaseySJ didn't you have a method of reading complete firmware from a linux terminal? If so i can possibly grab one from each of the 4 controllers on the mac pro 7,1. If not i am not sure i will be able to read any firmware using the regular SPI RPi/programmer methods on that machine. I've yet to locate any compatible chips in that system.

Unlike many of the older SSDTs developed for Thunderbolt hot plug, etc- the current SSDTs we are using for "native" thunderbolt have been stripped down to super basics right? basically just TDROM and TConfig? In any case if we can discover important differences between TbtOnPCH and TbtOnPEG, and implement those changes in our SSDTs we may be able to get cards and controllers working on system and slots where they currently don't work properly.

g\
 
@genzai there is no need to. The firmwares can by extracted without any issues from the macos installer itself.

EDIT: See attached zip. Extracted from the 10.15.4 Installer.
Also Thunderbolt Related Part is SSDT-9-TBTPEX.aml
 

Attachments

  • USBCUpdater.zip
    8.9 MB · Views: 143
  • SSDT-9-TBTPEX.aml
    189.2 KB · Views: 143
Last edited:
@genzai there is no need to. The firmwares can by extracted without any issues from the macos installer itself.
But those are not the complete 1mb firmware dumps right? they need additional padding to get them to 1mb so they could be flashed on our hardware?
Also Thunderbolt Related Part is SSDT-9-TBTPEX.aml
Yes, it is (not surprisingly) the same on mine. interesting that the SSDT seems to contain data for 6 controllers, which i believe is the max you could have on the system, but in order to have that many you would need two MPX GPU modules. In my system (and i suspect most) i only have one GPU MPX so a total of 4 controllers (8ports), yet have data in the SSDT for 6 controllers. Also a bit surprised to see all defined at the same root PC04 but maybe i dont understand the structure of the ACPI tables enough.

g\
 
Back
Top