Contribute
Register

Thunderbolt 4, modified firmware, Full Thunderbolt Bus tree

@alpha2005,

Please try a cold boot with no Thunderbolt devices connected. Does Thunderbolt Local Node (Thunderbolt Bus; not smbus) show up?
 
@alpha2005,

Please try a cold boot with no Thunderbolt devices connected. Does Thunderbolt Local Node (Thunderbolt Bus; not smbus) show up?
Thank you @CaseySJ !!! It worked...

Out of curiosity... Is there any reason for the thunderbolt bus (local node) to be shown only when no devices are attached at boot?

Thank you man!
 

Attachments

  • Screenshot 2024-04-28 at 8.20.55 p.m..png
    Screenshot 2024-04-28 at 8.20.55 p.m..png
    108.6 KB · Views: 18
Last edited:
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...
I created NixOS USB with Rufus, and the Asrock card was installed on Asus Z790 ProArt with onboard Thunderbolt disabled.
Because no Thunderbolt header on this board, I set Force_PWR1 jumper to position 1-2 (no more changes)
Screenshot_20240429_071438.png

Check USB was properly created.
 
...

Out of curiosity... Is there any reason for the Thunderbolt bus (local node) to be shown only when no devices are attached at boot?

...
Thunderbolt devices can be connected when doing either cold or warm boot.

If Thunderbolt Local Node disappears, then I recommend disconnecting them during a cold boot, but this is not strictly necessary.
 
I created NixOS USB with Rufus, and the Asrock card was installed on Asus Z790 ProArt with onboard Thunderbolt disabled.
Because no Thunderbolt header on this board, I set Force_PWR1 jumper to position 1-2 (no more changes)

Check USB was properly created.

Repeating the test as follows:
  • Installed ASRock Thunderbolt 4 AIC into Asus Z690 ProArt Creator slot #2 below AMD GPU
  • Set Force_PRW1 jumper to positions 1-2 and all other jumpers in their default positions
  • Disabled on-board Thunderbolt and USB4 PCIe Tunneling in BIOS
  • Booted modified NixOS from @racermaster
Bash:
[nixos@nixos:/sys/bus]$ lspci -vnnt
-[0000:00]-+-00.0  Intel Corporation 12th Gen Core Processor Host Bridge/DRAM Registers [8086:4668]
           +-01.0-[01-03]----00.0-[02-03]----00.0-[03]--+-00.0  Advanced Micro Devices, Inc. [AMD/ATI] Navi 21 [Radeon RX 6800/6800 XT / 6900 XT]
[1002:73bf]
           |                                            \-00.1  Advanced Micro Devices, Inc. [AMD/ATI] Navi 21/23 HDMI/DP Audio Controller [1002:a
b28]
           +-01.1-[04-09]----00.0-[05-09]--+-00.0-[06]----00.0  Intel Corporation Thunderbolt 4 NHI [Maple Ridge 4C 2020] [8086:1137]
           |                               +-01.0-[07]--
           |                               +-02.0-[08]--
           |                               \-03.0-[09]--
           +-06.0-[0a]----00.0  Sandisk Corp WD PC SN810 / Black SN850 NVMe SSD [15b7:5011]
           +-0a.0  Intel Corporation Platform Monitoring Technology [8086:467d]
           +-0e.0  Intel Corporation Volume Management Device NVMe RAID Controller [8086:467f]
           +-14.0  Intel Corporation Alder Lake-S PCH USB 3.2 Gen 2x2 XHCI Controller [8086:7ae0]
           +-14.2  Intel Corporation Alder Lake-S PCH Shared SRAM [8086:7aa7]
           +-15.0  Intel Corporation Alder Lake-S PCH Serial IO I2C Controller #0 [8086:7acc]
           +-15.1  Intel Corporation Alder Lake-S PCH Serial IO I2C Controller #1 [8086:7acd]
           +-15.2  Intel Corporation Alder Lake-S PCH Serial IO I2C Controller #2 [8086:7ace]
           +-16.0  Intel Corporation Alder Lake-S PCH HECI Controller #1 [8086:7ae8]
           +-17.0  Intel Corporation Alder Lake-S PCH SATA Controller [AHCI Mode] [8086:7ae2]
           +-1a.0-[0b]--
           +-1b.0-[0c]--
           +-1b.4-[0d]----00.0  Phison Electronics Corporation E16 PCIe4 NVMe Controller [1987:5016]
           +-1c.0-[0e]----00.0  Aquantia Corp. AQC113CS NBase-T/IEEE 802.3bz Ethernet Controller [AQtion] [1d6a:94c0]
           +-1c.2-[0f]----00.0  Intel Corporation Wi-Fi 6 AX210/AX211/AX411 160MHz [8086:2725]
           +-1c.3-[10]----00.0  Intel Corporation Ethernet Controller I225-V [8086:15f3]
           +-1d.0-[11]----00.0  Broadcom Inc. and subsidiaries BCM4360 802.11ac Wireless Network Adapter [14e4:43a0]
           +-1f.0  Intel Corporation Z690 Chipset LPC/eSPI Controller [8086:7a84]
           +-1f.3  Intel Corporation Alder Lake-S HD Audio Controller [8086:7ad0]
           +-1f.4  Intel Corporation Alder Lake-S PCH SMBus Controller [8086:7aa3]
           \-1f.5  Intel Corporation Alder Lake-S PCH SPI Controller [8086:7aa4]

We can see that Thunderbolt 4 AIC is detected at 01.1 even though Thunderbolt 4 USB controller is not explicitly mentioned, but its address at 02.0-[08] is shown.

But if we list the /sys/bus directory, we get this:
Bash:
[nixos@nixos:/sys/bus]$ ls -l
total 0
drwxr-xr-x 4 root root 0 Apr 29 20:55 ac97
drwxr-xr-x 4 root root 0 Apr 29 20:55 acpi
drwxr-xr-x 4 root root 0 Apr 29 20:55 auxiliary
drwxr-xr-x 4 root root 0 Apr 29 20:55 bcma
drwxr-xr-x 4 root root 0 Apr 29 20:55 clockevents
drwxr-xr-x 4 root root 0 Apr 29 20:55 clocksource
drwxr-xr-x 4 root root 0 Apr 29 20:55 container
drwxr-xr-x 4 root root 0 Apr 29 20:55 cpu
drwxr-xr-x 4 root root 0 Apr 29 20:55 dax
drwxr-xr-x 4 root root 0 Apr 29 20:55 event_source
drwxr-xr-x 4 root root 0 Apr 29 20:55 gpio
drwxr-xr-x 4 root root 0 Apr 29 20:55 hdaudio
drwxr-xr-x 4 root root 0 Apr 29 20:55 hid
drwxr-xr-x 4 root root 0 Apr 29 20:55 i2c
drwxr-xr-x 4 root root 0 Apr 29 20:55 isa
drwxr-xr-x 4 root root 0 Apr 29 20:55 machinecheck
drwxr-xr-x 4 root root 0 Apr 29 20:55 media
drwxr-xr-x 4 root root 0 Apr 29 20:55 mei
drwxr-xr-x 4 root root 0 Apr 29 20:55 memory
drwxr-xr-x 4 root root 0 Apr 29 20:55 memory_tiering
drwxr-xr-x 4 root root 0 Apr 29 20:55 mipi-dsi
drwxr-xr-x 4 root root 0 Apr 29 20:55 node
drwxr-xr-x 4 root root 0 Apr 29 20:55 nvmem
drwxr-xr-x 5 root root 0 Apr 29 20:55 pci
drwxr-xr-x 4 root root 0 Apr 29 20:55 pci_express
drwxr-xr-x 4 root root 0 Apr 29 20:55 platform
drwxr-xr-x 4 root root 0 Apr 29 20:55 pnp
drwxr-xr-x 4 root root 0 Apr 29 20:55 scsi
drwxr-xr-x 4 root root 0 Apr 29 20:55 serial
drwxr-xr-x 4 root root 0 Apr 29 20:55 serio
drwxr-xr-x 4 root root 0 Apr 29 20:55 snd_seq
drwxr-xr-x 4 root root 0 Apr 29 20:55 soundwire
drwxr-xr-x 4 root root 0 Apr 29 20:55 spi
drwxr-xr-x 4 root root 0 Apr 29 20:55 ssb
drwxr-xr-x 4 root root 0 Apr 29 20:55 typec
drwxr-xr-x 4 root root 0 Apr 29 20:55 usb
drwxr-xr-x 4 root root 0 Apr 29 20:55 wmi
drwxr-xr-x 4 root root 0 Apr 29 20:55 workqueue
drwxr-xr-x 4 root root 0 Apr 29 20:55 xen
drwxr-xr-x 4 root root 0 Apr 29 20:55 xen-backend

Note that there is no thunderbolt directory.

Next, I'll boot Ubuntu to see whether it can detect the ASRock add-in-card.
 
With Ubuntu I get the same result:

Bash:
casey@Ubuntu:/sys/bus$ lspci -vnnt
-[0000:00]-+-00.0  Intel Corporation 12th Gen Core Processor Host Bridge/DRAM Registers [8086:4668]
           +-01.0-[01-03]----00.0-[02-03]----00.0-[03]--+-00.0  Advanced Micro Devices, Inc. [AMD/ATI] Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] [1002:73bf]
           |                                            \-00.1  Advanced Micro Devices, Inc. [AMD/ATI] Navi 21/23 HDMI/DP Audio Controller [1002:ab28]
           +-01.1-[04-09]----00.0-[05-09]--+-00.0-[06]----00.0  Intel Corporation Thunderbolt 4 NHI [Maple Ridge 4C 2020] [8086:1137]
           |                               +-01.0-[07]--
           |                               +-02.0-[08]--
           |                               \-03.0-[09]--
           +-06.0-[0a]----00.0  Sandisk Corp WD PC SN810 / Black SN850 NVMe SSD [15b7:5011]
           +-0a.0  Intel Corporation Platform Monitoring Technology [8086:467d]
           +-0e.0  Intel Corporation Volume Management Device NVMe RAID Controller [8086:467f]
           +-14.0  Intel Corporation Alder Lake-S PCH USB 3.2 Gen 2x2 XHCI Controller [8086:7ae0]
           +-14.2  Intel Corporation Alder Lake-S PCH Shared SRAM [8086:7aa7]
           +-15.0  Intel Corporation Alder Lake-S PCH Serial IO I2C Controller #0 [8086:7acc]
           +-15.1  Intel Corporation Alder Lake-S PCH Serial IO I2C Controller #1 [8086:7acd]
           +-15.2  Intel Corporation Alder Lake-S PCH Serial IO I2C Controller #2 [8086:7ace]
           +-16.0  Intel Corporation Alder Lake-S PCH HECI Controller #1 [8086:7ae8]
           +-17.0  Intel Corporation Alder Lake-S PCH SATA Controller [AHCI Mode] [8086:7ae2]
           +-1a.0-[0b]--
           +-1b.0-[0c]--
           +-1b.4-[0d]----00.0  Phison Electronics Corporation E16 PCIe4 NVMe Controller [1987:5016]
           +-1c.0-[0e]----00.0  Aquantia Corp. AQC113CS NBase-T/IEEE 802.3bz Ethernet Controller [AQtion] [1d6a:94c0]
           +-1c.2-[0f]----00.0  Intel Corporation Wi-Fi 6 AX210/AX211/AX411 160MHz [8086:2725]
           +-1c.3-[10]----00.0  Intel Corporation Ethernet Controller I225-V [8086:15f3]
           +-1d.0-[11]----00.0  Broadcom Inc. and subsidiaries BCM4360 802.11ac Wireless Network Adapter [14e4:43a0]
           +-1f.0  Intel Corporation Z690 Chipset LPC/eSPI Controller [8086:7a84]
           +-1f.3  Intel Corporation Alder Lake-S HD Audio Controller [8086:7ad0]
           +-1f.4  Intel Corporation Alder Lake-S PCH SMBus Controller [8086:7aa3]
           \-1f.5  Intel Corporation Alder Lake-S PCH SPI Controller [8086:7aa4]

Contents of /sys/bus has no thunderbolt directory:

Bash:
casey@Ubuntu:/sys/bus$ ls -l
total 0
drwxr-xr-x 4 root root 0 Apr 29 14:10 ac97
drwxr-xr-x 4 root root 0 Apr 29 14:10 acpi
drwxr-xr-x 4 root root 0 Apr 29 14:10 auxiliary
drwxr-xr-x 4 root root 0 Apr 29 14:10 bcma
drwxr-xr-x 4 root root 0 Apr 29 14:10 cec
drwxr-xr-x 4 root root 0 Apr 29 14:10 clockevents
drwxr-xr-x 4 root root 0 Apr 29 14:10 clocksource
drwxr-xr-x 4 root root 0 Apr 29 14:10 container
drwxr-xr-x 4 root root 0 Apr 29 14:10 cpu
drwxr-xr-x 4 root root 0 Apr 29 14:10 dax
drwxr-xr-x 4 root root 0 Apr 29 14:10 edac
drwxr-xr-x 4 root root 0 Apr 29 14:10 eisa
drwxr-xr-x 4 root root 0 Apr 29 14:10 event_source
drwxr-xr-x 4 root root 0 Apr 29 14:10 gpio
drwxr-xr-x 4 root root 0 Apr 29 14:10 hdaudio
drwxr-xr-x 4 root root 0 Apr 29 14:10 hid
drwxr-xr-x 4 root root 0 Apr 29 14:10 i2c
drwxr-xr-x 4 root root 0 Apr 29 14:10 isa
drwxr-xr-x 4 root root 0 Apr 29 14:10 machinecheck
drwxr-xr-x 4 root root 0 Apr 29 14:10 mdio_bus
drwxr-xr-x 4 root root 0 Apr 29 14:10 media
drwxr-xr-x 4 root root 0 Apr 29 14:10 mei
drwxr-xr-x 4 root root 0 Apr 29 14:10 memory
drwxr-xr-x 4 root root 0 Apr 29 14:10 memory_tiering
drwxr-xr-x 4 root root 0 Apr 29 14:10 mipi-dsi
drwxr-xr-x 4 root root 0 Apr 29 14:10 mmc
drwxr-xr-x 4 root root 0 Apr 29 14:10 nd
drwxr-xr-x 4 root root 0 Apr 29 14:10 node
drwxr-xr-x 4 root root 0 Apr 29 14:10 nvmem
drwxr-xr-x 4 root root 0 Apr 29 14:10 parport
drwxr-xr-x 5 root root 0 Apr 29 14:10 pci
drwxr-xr-x 4 root root 0 Apr 29 14:10 pci-epf
drwxr-xr-x 4 root root 0 Apr 29 14:10 pci_express
drwxr-xr-x 4 root root 0 Apr 29 14:10 platform
drwxr-xr-x 4 root root 0 Apr 29 14:10 pnp
drwxr-xr-x 4 root root 0 Apr 29 14:10 rapidio
drwxr-xr-x 4 root root 0 Apr 29 14:10 scsi
drwxr-xr-x 4 root root 0 Apr 29 14:10 sdio
drwxr-xr-x 4 root root 0 Apr 29 14:10 serial
drwxr-xr-x 4 root root 0 Apr 29 14:10 serial-base
drwxr-xr-x 4 root root 0 Apr 29 14:10 serio
drwxr-xr-x 4 root root 0 Apr 29 14:10 snd_seq
drwxr-xr-x 4 root root 0 Apr 29 14:10 soc
drwxr-xr-x 4 root root 0 Apr 29 14:10 soundwire
drwxr-xr-x 4 root root 0 Apr 29 14:10 spi
drwxr-xr-x 4 root root 0 Apr 29 14:10 ssb
drwxr-xr-x 4 root root 0 Apr 29 14:10 typec
drwxr-xr-x 4 root root 0 Apr 29 14:10 usb
drwxr-xr-x 4 root root 0 Apr 29 14:10 virtio
drwxr-xr-x 4 root root 0 Apr 29 14:10 vme
drwxr-xr-x 4 root root 0 Apr 29 14:10 wmi
drwxr-xr-x 4 root root 0 Apr 29 14:10 workqueue
drwxr-xr-x 4 root root 0 Apr 29 14:10 xen
drwxr-xr-x 4 root root 0 Apr 29 14:10 xen-backend

Code:
casey@Ubuntu:~$ neofetch

            .-/+oossssoo+/-.               casey@Ubuntu
        `:+ssssssssssssssssss+:`           ------------
      -+ssssssssssssssssssyyssss+-         OS: Ubuntu 23.10 x86_64
    .ossssssssssssssssssdMMMNysssso.       Kernel: 6.5.0-27-generic
   /ssssssssssshdmmNNmmyNMMMMhssssss/      Uptime: 4 mins
  +ssssssssshmydMMMMMMMNddddyssssssss+     Packages: 1701 (dpkg), 42 (snap)
 /sssssssshNMMMyhhyyyyhmNMMMNhssssssss/    Shell: bash 5.2.15
.ssssssssdMMMNhsssssssssshNMMMdssssssss.   Resolution: 3840x2160
+sssshhhyNMMNyssssssssssssyNMMMysssssss+   DE: GNOME 45.2
ossyNMMMNyMMhsssssssssssssshmmmhssssssso   WM: Mutter
ossyNMMMNyMMhsssssssssssssshmmmhssssssso   WM Theme: Adwaita
+sssshhhyNMMNyssssssssssssyNMMMysssssss+   Theme: Yaru [GTK2/3]
.ssssssssdMMMNhsssssssssshNMMMdssssssss.   Icons: Yaru [GTK2/3]
 /sssssssshNMMMyhhyyyyhdNMMMNhssssssss/    Terminal: gnome-terminal
  +sssssssssdmydMMMMMMMMddddyssssssss+     CPU: 12th Gen Intel i7-12700K (20) @ 4.900GHz
   /ssssssssssshdmNNNNmyNMMMMhssssss/      GPU: AMD ATI Radeon RX 6800/6800 XT / 6900 XT
    .ossssssssssssssssssdMMMNysssso.       Memory: 3788MiB / 31791MiB
      -+sssssssssssssssssyyyssss+-
        `:+ssssssssssssssssss+:`                                 
            .-/+oossssoo+/-.

This might indicate a hardware problem. Now I'll boot macOS and test it there.
 
And here is macOS Sonoma, which detects the ASRock Thunderbolt 4 AIC, but no devices connect. I now believe that the card is defective.

I'll try flashing @Elias64Fr's firmware to it and see what happens.

Screenshot 2024-04-29 at 2.25.42 PM.png
 
Last edited:
To: Anyone with ASRock Thunderbolt 4 add-in-card

Please post a close-up photo of the Thunderbolt controller chip as shown in my photo. The text on the chip is smeared, which leads me to wonder if this card was previously used, refurbished, or otherwise defective.

IMG_3111_resize.jpg
 
And here is macOS Sonoma, which detects the ASRock Thunderbolt 4 AIC, but no devices connect. I now believe that the card is defective.

I'll try flashing @Elias64Fr's firmware to it and see what happens.

View attachment 581995
Hi @CaseySJ
Note that I have exact similar Ioreg with not patched firmware. Note also that class-code is different and same as thunderbolt 3 (0x88000).

On thunderbolt 4, we have controller detect as something different device.

You could try on PCH port (RPxx). Some motherboad specify some thunderbolt compatible port on their user manual. @caley13 have his board on PCH port.

Iam not at home, I will take a photo soon.
 
Back
Top