No Thunderbolt 4/USB4 on ASUS ProArt X670E-CREATOR WIFI

Tormod

New member
AMD OS X Member
Jun 23, 2023
12
10
3
CPU:
7950x
Good evening!

I've spent the better part of the last few days straight (...) trying to shore up the remaining incompatibilities with my Hackintosh, and so far as I know, the only thing I don't have functional right now is USB4/Thunderbolt via the onboard JHL8540 controller. I've poked around EFIs posted by @CaseySJ and various others, but none of those that I've found seem to have ACPI device trees that line up with the latest BIOS revisions, and I'd like to continue using the latest revisions as they're posted, now that full DSDT patching allows booting into macOS once again.

I attempted to create a USB mapping SSDT, which I apparently did incorrectly, because several ports were unavailable within macOS after booting with that SSDT applied, so I ended up remapping with USBToolBox from within Windows and continuing down the kext route, which restored things like Intel Bluetooth and my onboard RGB controller. I have a sneaking suspicion that my Thunderbolt woes may be related to USB mapping, but I just don't know enough to be certain. I tried to create a Thunderbolt 4 hotplug SSDT that uses the ACPI devices that seem to match up with @CaseySJ's X670E Gene example, but nothing changes within IORegistryExplorer to indicate that the device renames/additions have occurred.

I'm attaching my entire EFI folder, plus an export from IORegistryExplorer for what my fresh 14.6.1 install sees. I had been testing some in Sequoia, so some additional kexts and SSDTs are present, but not enabled in my configuration for Sonoma. I'd love some help! This is the part of Hackintoshing that is beyond me for the most part, but I'm happy to learn and receive guidance. I really hope it's something trivial that I'm overlooking :)


Thank you,
Tormod
 

Attachments

Hello @Tormod,

It’s been a busy week at the office so I’ll take a look at your EFI folder this weekend. Thunderbolt hot plug is very elusive with Maple Ridge on an AMD system. Making things worse is my observation that any attempt to change Thunderbolt device properties results in even more problems such as inability to shutdown and getting a “BIOS has been reset” message on startup.

If your Thunderbolt devices work when connected and powered up before macOS boots, then that might be the most we can hope for.
 
Hello @Tormod,

It’s been a busy week at the office so I’ll take a look at your EFI folder this weekend. Thunderbolt hot plug is very elusive with Maple Ridge on an AMD system. Making things worse is my observation that any attempt to change Thunderbolt device properties results in even more problems such as inability to shutdown and getting a “BIOS has been reset” message on startup.

If your Thunderbolt devices work when connected and powered up before macOS boots, then that might be the most we can hope for.
Thanks, Casey! Right now, even if I have devices plugged in on boot, nothing shows up under 'Thunderbolt/USB4 Bus' within System Information. USB 3.1 functionality works, and I see devices under the hubs on my TB4 docking station populate and function, even with hotplugging, both within Windows 11 and macOS.

Where things start to get really screwy is when plugging devices in that use PCIe tunneling: if I boot either my X670E-CREATOR WIFI with such a device plugged into either TB4 port, or my B650A-GAMING WIFI with such a device plugged into either TB4 port of the ASUS ThunderboltEX 4 card I installed, the boards won't POST -- they just hang at the ASUS logo and never move past it. If I hotplug within macOS nothing happens; if I hotplug within Windows, the Thunderbolt Control Center sees the device appear, but the OS immediately locks up, chugs hard for 5-6 minutes, and then the entire Thunderbolt controller and child devices completely disappear from the device tree until reboot, as if they were never there...

This behavior persists beyond BIOS versions, as I've tested revisions that went back to the first versions that supported the CPUs installed in both boards. OpenCore doesn't seem to be a factor, as my B650A-GAMING WIFI board only runs Windows Server 2025 and uses the standard Windows bootloader. The only Thunderbolt device I had that used PCIe tunneling that I could test with was the HighPoint RocketStor 6614V, and both boards had the same problems with the device, both with and without drives. Thinking the device was defective, I ordered another, which did the same thing. The USB4 controller in my AMD laptop (1022:1669), weirdly, worked straight away with the device, even with hotplugging, and was able to see, manipulate, and use the drive array without issue. This leads me to think something's screwy with ASUS's implementation of the JHL8540 firmware... or something. I intend to purchase a Thunderbolt to NVMe enclosure soon, which I assume should use PCIe tunneling, as I've returned both HighPoint arrays and the ASUS ThunderboltEX 4 AIC before the return windows closed. I'll gladly take suggestions for test devices!

In terms of Thunderbolt firmware, the ProArt X670E-CREATOR WIFI had NVM38 and the ThunderboltEX 4 installed in the B650A-GAMING WIFI had NVM36. In an effort to determine if returning to NVM31 would help, I scoured the Internet for all BIOS revisions for the ProArt board, but found that BIOS versions below 1005 didn't include the Thunderbolt firmware, and 1005+ have all used version 38. I ended up finding a version of NVM31 from a BIOS of a similar board that used the JHL8540 controller and followed instructions in this thread to edit the DROM and change some values to potentially enable hotplugging. I altered the firmware version to 39, flashed it to the controller, and retested, but unfortunately ended up with the same results. Despite the firmware flash being successful, Windows still reported that the firmware version was 38, so there's a chance I did it incorrectly, but USB 3.1 functionality still worked, and plugging my TB4 dock in while in Windows still had it appear within Thunderbolt Control Center properly, so I'm not sure. I was able to get a copy of the ASUS ThunderboltEX 4 NVM31 downgrade tool a few days into my camping trip (that I'm still on... don't judge me :) ), so I think I'll try to modify the DROM and hotplug values within that firmware and attempt to use the tool to downgrade my ProArt X670E-CREATOR WIFI's on-board controller with it in a week.

One thing I realized a few days ago was that I never connected the DisplayPort passthrough cables -- either on my ProArt X670E-CREATOR WIFI or on the ThunderboltEX 4 -- and I'm starting to wonder if that's actually a requirement as part of the Thunderbolt spec... is it? Regardless, I want to look into ACPI patching that doesn't require removing all of the conditional statements from the DSDTs of 'modern' BIOS releases and forcing me to inject an entire DSDT.aml, and I want to get my USB ports mapped property via SSDT and not kext. I feel like I'm in a bit of a quagmire at the moment am don't know which direction to start down!

Rambling aside, very happy for any direction you could provide. Thanks as always!
 
I decided to start over and create an entirely new EFI folder, and ... well ... I have pretty much everything working in Sonoma 14.6.1, including Thunderbolt 4 and USB 4, with a combination of modified firmware for the JHL8540, an SSDT, and Elias64Fr's kernel patches. I noticed that my USB mappings looked off after adding the SSDT, and that my Intel AX210 Bluetooth that had been functional no longer appeared, even if I disabled the SSDT. I would have been doing more testing this evening, but I ran into an issue where I've either needed to clear my CMOS (constantly.. I'm in the mid 20s for clears in the last 8 hours) or use the BIOS flashback function to get the board to POST (on my third flashback as I type this). Doing a little digging here has revealed that this is likely a fault of the AM5 firmware code. It's not particularly necessary for hotplug to work for me, but I do quite like having the device tree, System Information panes, and other functionality. Is there a happy medium? How can I get my USB ports mapped and also have Thunderbolt behave? Once I get my board booting again I'll grab my EFI folder and an IORegistryExplorer dump and attach them here. The folks on the Discord have been very encouraging :)
 
Despite it all, TB4 hotplug doesn't appear to work, though XHCI hotplug does! I was able to confirm my suspicion that adding the SSDT broke my USB mapping by recreating my USB mapping in Windows without the SSDT enabled in macOS, verifying the "correct" device names in IORegistryExplorer and functionality of all the devices I expected to be connected (including Bluetooth), and re-enabled the TB4 hotplug DSDT, which renamed all of my USB ports and left my Bluetooth device's internal USB port missing again.

Attached is the IOReg output with the SSDT applied, my BIOS settings, my latest OpenCore boot log, and my full EFI folder. I fully anticipate that my machine won't POST after this until I do a BIOS flashback or perhaps clear NVRAM from within macOS before rebooting again. Is there a way to get proper device naming (NHI0 and subdevices) and the PCI and Thunderbolt/USB4 panes filled out without getting the AM5 bugs associated with having hotplugging enabled? I'd love to help get it enabled (and stable!)... so I'm certainly open to that, now that I know how to get my machine back to a working state :)
TB:USB4 Device Tree.png
 

Attachments

(nvram -c before rebooting did not keep me from running into trouble, unfortunately; clearing the CMOS allowed me to get to the BIOS once, but like other attempts today, every subsequent reboot hung in POST. I'm currently going through BIOS flashback again... :) )
 
Hello, any updates on your project?
 
  AdBlock Detected
Sure, ad-blocking software does a great job at blocking ads, but it also blocks some useful and important features of our website. For the best possible site experience please take a moment to disable your AdBlocker.