Contribute
Register

Thunderbolt 4, modified firmware, Full Thunderbolt Bus tree

… Could the chip be F-d?
Do you mean fried? :)

I don’t think the chip is fried. If the card works when installed, then we know it’s still good.
 
Do you mean fried? :)

I don’t think the chip is fried. If the card works when installed, then we know it’s still good.
Do you think it’s safe to flash the patched firmware? I haven’t attempted to write back yet. Makes me nervous that my reads have turned to crap.
 
Do you think it’s safe to flash the patched firmware? …
No — it’s absolutely not safe. We have to get three consecutive good reads to be confident that the chip is being accessed properly.
 
No — it’s absolutely not safe. We have to get three consecutive good reads to be confident that the chip is being accessed properly.
I finally managed to get it flashed.
I'm not sure why I was having such difficulties. It would detect the Winbond chip almost every time, but the checksums were not lining up. After about the 50th attempt, it worked. I flashed it, and re-read, and it checked out.

Now, on GC-Maple Ridge I had to short the pins to activate the card. Do you know if that's the case with the Asus EX4 card? The pins for the header are significantly different than Gigabyte.
 
I also have Asrock Thunderbolt 4 AIC and I flashed FW with Linux

Thanks to @racermaster for the nixOS Linux Live CD patched for Maple Ridge, being able to flash thunderbolt Firmware

Thanks to @Elias64Fr for the modified FW attached on first post (1MB size)
I cut the last 512K bytes off (zeroes), because thunderbolt kernel module for Linux only allows FW with size between 32K and 512K for flashing, according to kernel source code.

I replaced UID on FW with mine and the corresponding CRC8, for Bus 0

Boot from USB nixOS Live CD and following the procedure explained on Linux kernel documentation (USB4 and Thunderbolt)

First step. This command copies FW to internal buffer of linux thunderbolt kernel module:

# dd if=ASROCK_Thunderbolt4_AIC_modified_Elias64Fr_512K.bin of=/sys/bus/thunderbolt/devices/0-0/nvm_non_active0/nvmem

Second step. This is the flashing process indeed. It takes several minutes to write EEPROM
Once the operation completes we can trigger NVM authentication and upgrade process as follows:

# echo 1 > /sys/bus/thunderbolt/devices/0-0/nvm_authenticate

Don't touch anything and wait several minutes until the flashing process has finished.

Reboot

From SSDT posted on this thread to enable Thunderbolt Bus for RP05 on Asus Z790 ProArt, I replace RP05 with RP09 for Asrock Card and Thunderbolt Bus was enabled on Monterey and Ventura. I don't have Sonoma for now.

On Ventura DROM was shown on ioreg - IOThunderboltSwitchOS

My Hackintosh with Asrock card connected to my laptop
Asrock_Thunderbolt_Bus_laptop_connected.png
 
With the patched NVM36 on Asus ThunderboltEX 4,
I'm able to see activated local bus but no uid and no devices are showing up. Also no connectivity.

Screenshot 2024-04-28 at 1.18.52 PM.png

Screenshot 2024-04-28 at 1.17.55 PM.png
 
I also have Asrock Thunderbolt 4 AIC and I flashed FW with Linux

Thanks to @racermaster for the nixOS Linux Live CD patched for Maple Ridge, being able to flash thunderbolt Firmware

I used this process couple of years ago with Titan Ridge, but nvm_authenticate would not succeed. That's why earlier in this thread I asked whether modified firmware could be flashed using this method, and here is the reply:

Screenshot 2024-04-28 at 11.41.29 AM.png


Hence I never tried the Linux method. But if you have just proved that it works, I'm on it...
 
Last edited:
I used this process couple of years ago with Titan Ridge, but nvm_authenticate would not succeed. That's why earlier in this thread I asked whether modified firmware could be flashed using this method, and here is the reply:

View attachment 581959

Hence I never tried the Linux method. But if you have just proved that it works, I'm on it...
After flashing with Linux I tried to read back active region like @racermaster did, but it didn't work with Timeout error. I don't mind. Just reboot and the new FW was in place.
 
After flashing with Linux I tried to read back active region like @racermaster did, but it didn't work with Timeout error. I don't mind. Just reboot and the new FW was in place.

On my Gigabyte Z390 (no Thunderbolt header) I am currently booted into the modified NixOS. Some notes:
  • This motherboard has built-in Titan Ridge (RP05)
  • This motherboard also has ASRock Thunderbolt 4 AIC (RP17)
  • Modified NixOS detects Titan Ridge, but does not detect Maple Ridge
Code:
[nixos@nixos:/sys/bus/thunderbolt/devices]$ ls
0-0  domain0
  • Above, we can see only 0-0, which is Titan Ridge. If I disable this in BIOS, then /sys/bus/thunderbolt directory does not exist
  • In macOS, both Titan Ridge and Maple Ridge are enabled and working, which means ASRock AIC is functioning properly
I'll check jumpers on the ASRock AIC...

Update:
  • Jumpers are okay, but instruction manual says the card is supported on Intel 500 series and higher
  • So I've removed it from Z390 system; will try on Asus Z690 ProArt soon
Update 2:
  • NixOS does not detect the ASRock Thunderbolt 4 AIC on Asus Z690 ProArt (no Thunderbolt header)
  • Maybe the card needs to be connected via Thunderbolt header...
 
Last edited:
@Elias64Fr / @CaseySJ :

In my Z690 ProArt (onboard TBT), for some reason, the SSDT-THB4-RP05 ssdt only worked once to show up the smbus info in the system report app. And by the way, it didn't list any of TB4 devices I had connected at that time (Satechi TB4 docking & Satechi TB3 enclosure).

I'm using the RP05 ssdt along with the two patches for Sonoma. Hotplug seems to work flawlessly.

I'm on bios 3401, TBT FW 36 (stock). The DTPG ssdt is also enabled. I've tried changing ACPI files order to see if I can reproduce how the smbus got succesfuly shown the first time, but to no avail.

Could you please point me onto any parameter I should check/change/add?


Attached is my ioreg & config files just in case any of you had the chance to take a look into it.

Thank you guys!
 

Attachments

  • Screenshot 2024-04-28 at 2.37.22 p.m..png
    Screenshot 2024-04-28 at 2.37.22 p.m..png
    370.2 KB · Views: 10
  • Screenshot 2024-04-28 at 2.37.50 p.m..png
    Screenshot 2024-04-28 at 2.37.50 p.m..png
    81.9 KB · Views: 11
  • config.plist
    43.7 KB · Views: 3
  • Mac Pro.ioreg
    32.8 MB · Views: 2
  • SSDT-THB4-RP05.aml
    2.1 KB · Views: 5
Back
Top