Contribute
Register

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

@Elias64Fr,

Finally found some time to continue testing Thunderbolt. Here are some observations:

TNODE/TBUS will appear under these circumstances:
  • Device Path Properties:
    • ThunderboltDROM must be specified. When booting without a valid ThunderboltDROM, TNODE/TBUS never appeared in many attempts.
    • ThunderboltConfig must be specified. When booting without ThunderboltConfig, TNODE/TBUS never appeared in many attempts.
    • Both of these parameters must be specified. They are being specified currently in config.plist.
  • ThunderboltConfig:
    • If an invalid ThunderboltConfig is specified, TNODE/TBUS will not appear.
    • This means macOS is parsing and using the information in ThunderboltConfig.
    • The following byte arrays have been tested:
      • 00021C00 02000503 01000400 05030200 03000503 01000000 03030200 01000200
        • Result: Causes TNODE/TBUS to appear if SSP1=UsbCPortNumber 0x01 and SSP2=UsbCPortNumber 0x02.
        • 1C might be referring to root port (RP05@1C,4)
        • 01 and 02 seem to correspond to UsbCPortNumber for SSP1 and SSP2
        • If SSP1 is set to UsbCPortNumber 0x01 and SSP2 is set to UsbCPortNumber 0x02, then TNODE/TBUS will appear only if last 4 bytes of ThunderboltConfig are 01000200.
        • But if we intentionally reverse this by setting SSP1 to 0x02 and SSP2 to 0x01, but leave the last 4 bytes as 01000200, this causes a mismatch and TNODE/TBUS do not appear.
          • But if now we only change last 4 bytes of ThunderboltConfig to 02000100, then TNODE/TBUS will appear.
      • 0002FFFF 04000301 01000400 05010200 03000301 01000000 03010200 02000100
        • Result: This also causes TNODE/TBUS to appear, but only if:
          • SSP1 UsbCPortNumber is 0x02
          • SSP1 UsbCPortNumber is 0x01
    • Conclusion:
      • ThunderboltConfig is important, and it is being used by macOS.
      • Strong correlation between last 4 bytes of ThunderboltConfig and UsbCPortNumber for SSP1/SSP2.
      • We may have to figure out what the other bytes mean, and set them correctly...
  • When above 2 conditions are satisfied, then we can make TNODE/TBUS appear every time by doing this:
    • Either hot-plug or hot-unplug a Thunderbolt device (not a USB-C device).
    • Wait for system to freeze (in about 2-3 seconds).
    • Press physical Reset button to reboot.
    • When system starts up again, just login to macOS.
    • TNODE/TBUS will not appear (a) at cold boot with or without TB3 device, (b) warm boot with or without TB3 device.
      • Instead, we must first hot-plug or hot-unplug a TB3 device, then press Reset button to reboot.
      • From this point onwards, TNODE/TBUS will appear with every reboot (even if we do not hot-plug or hot-unplug a device).
      • This means that after a hot-plug/hot-unplug event, the state of Thunderbolt registers/devices changes in such a way that TNODE/TBUS will appear from this point onwards.
        • So a hot-plug or hot-unplug is triggering something that then allows TNODE/TBUS to appear.
        • Can we figure out what this trigger is?
    • Open IORegistryExplorer and you will see TNODE/TBUS.
      • But system will freeze after about 10 seconds.
      • I am trying to comment-out various parts of NHI0 ACPI methods to see if this can be isolated. Will provide more details on this soon.
      • UPDATE: Removing the call to CTBT() from inside NHI0._PS0() consistently prevents the hot-plug/hot-unplug hang. However, this does not necessarily mean that the freeze is happening inside CTBT(). Instead, the freeze can be happening inside the Thunderbolt kext after it calls or returns from CTBT().
    • Here's an example of TNODE/TBUS appearing this morning at 4:51am, but system hanged after 10 seconds.
      IMG_0286.JPG
 
Last edited:
Hey man,

Congrats on your build and thank you for providing such a comprehensive journal of it. Been super helpful!

I've run into a snag, hoping maybe you ran into it at somepoint as well, I am new to hackintosh's so be patient with me.

I was trying to create the framebuffer patch using hackintool like you suggested, i followed along with the guide that had linked. However after creating the patch and rebooting i get the cursed black screen on HDMI that you warned about.

Is there any way around this without using a display port cable? Currently only have my tv and its HDMI only.

I've tried older monitors using vga to displayport adapters but that doesnt work, same with displayport to dvi.

I've tried just typing the configuration into the UEFI shell on the clover boot up and screen and restarting but still get the black screen.

As a test i removed the SSD i had attempted to install the OS on and booted straight from the usb with no problems, but while my SSD was installed even if i selected the usb to boot from i'd get the black screen.

Please any input or advice would help currently panicking:oops:
There are two common causes for this (and always some uncommon causes):
  1. Framebuffer Patch not setup correctly.
    • To diagnose this, please post screenshots of just these 2 section of Clover Configurator after opening your config.plist:
      • Devices --> Properties
      • Graphics
  2. Computer is not synchronizing the video signal to your HDMI television.
    • Every TV has its peculiarities. Your first step should be to look through the TV Owner's Manual to find a section on connecting PCs / Computers.
    • If you have a relatively recent computer monitor that supports HDMI 1.4 or later, please try that as well. Do not use video adapters such as the ones you mentioned above (VGA to DisplayPort or DisplayPort to DVI).
 
Has anyone got 10.5.3 to work. I tried a clean install and I tried upgrading through OSX
When I used the clean install it loads the apple logo with a black screen and stays there.
When I update through the App Store it loads just a black screen and hangs.

10.5.2 works flawlessly for me except for the messenger and FaceTime. I get that error where it tells me to call apple. I call apple and they still can't get it to connect.


oh one more thing my configuration is using all the same stuff that you have in your suggest hardware. no variation

Am I best to stay at 10.5.2?

all the best.

jay
Please enter your CPU, Graphics, and Motherboard information in account-details by clicking here. This is required when asking for assistance.
 
<screenshot of devices --> properties>
Please follow this guide to specify Headless Platform ID 0x3E980003. If you still experience a problem, please let us know.
 
Update Catalina report:
Everything looks good, or at least the same way before the upgrade from Mojave.

I have been doing all my tests in my Backup SSD, now, can I clone directly in the 970PRO? or I do the Upgrade on it?
Thanks for your help.

Cloning to your 970 will be the easiest and quickest. You don't need to go through the whole upgrade process.
 
Hi @CaseySJ - Question on ACPIDebug. I've been trying to learn from you and Elias64Fr on the Thunderbolt tree. I have ACPIDebug installed in L/E (also tried injecting from OC/Clover) and the SSDT in ACPI called correctly in config.plist for OC. I can see the SSDT getting loaded but no logs for ACPIDebug in Hackintool. The SSDT is patched with the RMDT method and also has calls to the function are also made. What am I doing wrong ?
I fully support your initiative to follow this Thunderbolt journey. However, certain kinds of mistakes in the SSDT can lead to adverse consequences. As you probably know, I've set up a completely separate Test Bench for this task. It's just too risky to do this on the main system.

Let me suggest that for the time being it's better not to run these experiments on your own system -- until a more stable version of the SSDT has been created.

Screen Shot 2020-02-02 at 11.43.41 AM.png
 
Last edited:
CasaySJ, any suggestions here?
Thanks for your help.

Update Catalina report:
Everything looks good, or at least the same way before the upgrade from Mojave.
I notice, In the overview, the processor name is 8-Core Intel Core i7 but, I'm using the I9900K, I don't know if this matters or no. I just what the processor to work at the max capacity.


Screen Shot 2020-02-02 at 10.53.55.png


Do I need to change the processor name?
I have been doing all my tests in my Backup SSD, now, can I clone directly in the 970PRO? or I do the Upgrade on it?
Thanks for your help.

Quote Reply

Edit
 
Last edited by a moderator:
CasaySJ, any suggestions here?
Thanks for your help.

Update Catalina report:
Everything looks good, or at least the same way before the upgrade from Mojave.
I notice, In the overview, the processor name is 8-Core Intel Core i7 but, I'm using the I9900K, I don't know if this matters or no. I just what the processor to work at the max capacity.


Screen Shot 2020-02-02 at 10.53.55.png


Do I need to change the processor name?
I have been doing all my tests in my Backup SSD, now, can I clone directly in the 970PRO? or I do the Upgrade on it?
Thanks for your help.

Quote Reply

Edit
No worries about the processor name. It's okay to leave it as-is.
 
No worries about the processor name. It's okay to leave it as-is.
Thanks for the response, I'm assuming just to clone SSD to M2 right?
I have CCC.
 
Thanks for the response, I'm assuming just to clone SSD to M2 right?
I have CCC.
If the SSD is fully operational and up to date, it can be cloned directly to the M.2 drive.
 
Back
Top