Contribute
Register

Thunderbolt 4, modified firmware, Full Thunderbolt Bus tree

@Elias64Fr,

See attached TB debug log and IOReg screenshots.
No Patching.

z790 Pro Art
Bios 0814
SMBIOS iMacPro1,1
Monterey 12.7.2
OC 9.2

Note:
Sleep works, however takes slightly longer to sleep/wake than before (not by much).
And, i have a USBC 3.1 dock plugged in the Thunderbolt port with an SSD, upon wake it pops up as "device not ejected properly" although it's there and working. Never did this before.
@gandem can you try on your Monterey system to see if it does the same?

Screen Shot 2024-04-12 at 6.20.21 pm.png
Screen Shot 2024-04-12 at 6.20.12 pm.png
Screen Shot 2024-04-11 at 12.56.37 pm.png
 

Attachments

  • LOG_Thunderbolt01.txt
    314.9 KB · Views: 1
So new Discoveries from my site:

1. Sleep works well with both Cards, it takes a bit longer to enter sleep and wake from sleep.

2. Hotplug doesnt work anymore for the GC-Maple-Ridge.
It works for one boot after I freshly flashed the firmware on the card. When I shutdown or Restart, then hot plug doesn't work anymore for the GC-Maple-Ridge.

Don't know whats the issue here.
 
Here's another data point for you guys:

I'm running SSDT-THB4-RP05.aml with the 3 kernel patches and I'm noticing that my USB4 enclosure needs a warm reboot for devices to show up on the TB bus. If I cold boot the computer with the enclosure plugged in the TB bus does not show up at all in the system profiler.

I notice a performance difference when it doesn't show up on the bus because it doesn't seem to be running at 40Gbps but runs at 10Gbps instead.
 

Attachments

  • Screenshot 2024-04-12 at 11.44.54 AM.png
    Screenshot 2024-04-12 at 11.44.54 AM.png
    276.4 KB · Views: 17
Here's another data point for you guys:

I'm running SSDT-THB4-RP05.aml with the 3 kernel patches and I'm noticing that my USB4 enclosure needs a warm reboot for devices to show up on the TB bus. If I cold boot the computer with the enclosure plugged in the TB bus does not show up at all in the system profiler.
If you disable the first 2 of those kernel patches and reboot, does it help?
 
Here's another data point for you guys:

I'm running SSDT-THB4-RP05.aml with the 3 kernel patches and I'm noticing that my USB4 enclosure needs a warm reboot for devices to show up on the TB bus. If I cold boot the computer with the enclosure plugged in the TB bus does not show up at all in the system profiler.

I notice a performance difference when it doesn't show up on the bus because it doesn't seem to be running at 40Gbps but runs at 10Gbps instead.
Quick data point -- I kept having the same issue you are reporting and eventually my Thunderbolt devices wouldn't show up when connected. The solution for me was to remove the kernel patches, reboot, still didn't show up quite right, but then I generated a DROM from NVM 38 firmware bin and added to my SSDT which has resolved the issue for me.

Attached is the updated SSDT I used.

Furthermore, I see there is a minor difference between your thunderbolt bus device list and mine. I see that your Port (Upstream) doesn't have a Link Controller Firmware Version at the very bottom of the window.

ioreg.png


Screenshot 2024-04-12 at 10.19.43 AM.png
 

Attachments

  • SSDT-THB4-RP05.aml
    2.3 KB · Views: 21
Last edited:
If you disable the first 2 of those kernel patches and reboot, does it help?
Quick data point -- I kept having the same issue you are reporting and eventually my Thunderbolt devices wouldn't show up when connected. The solution for me was to remove the kernel patches, reboot, still didn't show up quite right, but then I generated a DROM from NVM 38 firmware bin and added to my SSDT which has resolved the issue for me.

Attached is the updated SSDT I used.

Furthermore, I see there is a minor difference between your thunderbolt bus device list and mine. I see that your Port (Upstream) doesn't have a Link Controller Firmware Version at the very bottom of the window.

View attachment 581354

View attachment 581355
That may be a function of the enclosure itself not enumerating a firmware version. I've plugged the enlosure into a M2 Pro MBP and it connects as USB4 without any issue running 13.6.6

On the ProArt Z690, I can only get it to show up in the system profiler after a warm boot usually and sometimes it doesn't show up at all in there but it does show up in the USB section of system profiler as a USB 3.1 device. It's as if the computer/port picks USB 3.1 mode before attempting to connect to it as a USB4 device?

I don't have any proper TB3/4 devices here to test but it seems like you guys are on it. I figured I'd add my experience with USB4 devices which isn't as common.
 

Attachments

  • Screenshot 2024-04-12 at 14.11.46.png
    Screenshot 2024-04-12 at 14.11.46.png
    213.5 KB · Views: 14
  • Screenshot 2024-04-12 at 2.25.07 PM.png
    Screenshot 2024-04-12 at 2.25.07 PM.png
    248.8 KB · Views: 15
Last edited:
If you disable the first 2 of those kernel patches and reboot, does it help?
Doesn't seem to help. If the Ventura and Common patches are disabled, I don't see the TB bus on a cold boot but a warm boot will enable the TB bus.
 
That may be a function of the enclosure itself not enumerating a firmware version. I've plugged the enlosure into a M2 Pro MBP and it connects as USB4 without any issue running 13.6.6

On the ProArt Z690, I can only get it to show up in the system profiler after a warm boot usually and sometimes it doesn't show up at all in there but it does show up in the USB section of system profiler as a USB 3.1 device. It's as if the computer/port picks USB 3.1 mode before attempting to connect to it as a USB4 device?

I don't have any proper TB3/4 devices here to test but it seems like you guys are on it. I figured I'd add my experience with USB4 devices which isn't as common.
Port@C and Port@D are USB4 adapters for AppleThunderboltUSBDownAdapter, I have enabled them on DROM (0x28C & 0x28D).. alas this driver plug-in is not available for Intel x86 platform (Apple Silicon only).. We should try an USB4 device that use PCIe bus to see what happen.
This could be a partial response.

As you have an USB4 device that use PCIe downstream, You can try flashing with a modified firmware that include port@C & port@D enabled... this also may not work.
 
Furthermore, I see there is a minor difference between your thunderbolt bus device list and mine. I see that your Port (Upstream) doesn't have a Link Controller Firmware Version at the very bottom of the window.
I think that IOThunderboltSwitchUSB4, IOThunderboltSwitchType6 & IOThunderboltSwitchOS don't use Link Controller, only on IOThunderboltSwitchType 1,2 & 3 (Thunderbolt 1,2 & 3)
 
Update on sleep issue on Asus Z690 ProArt Creator:
  • With Sonoma 14.5 public beta, this system does not enter sleep even with Thunderbolt disabled in BIOS
  • With Sonoma 14.3, sleep works normally even with Thunderbolt Local Node enabled via new SSDT
  • I do not have Sonoma 14.4 pre-installed so haven't checked, but I recall Apple making fixes to USB hubs in monitors; this may have broken sleep on Z690 ProArt
  • I'll do a clean install of 14.5 to see what happens...

Update on sleep issue on Asus Z690 ProArt Creator with Sonoma 14.5:
  • Sleep works now
I restored from a 14.3 backup, upgraded it to 14.5 and that was it. So what caused the sleep problem? I am not sure, but it may be due to a third-party application that was recently installed. I'll attempt to narrow it down.
 
Back
Top