Contribute
Register

Thunderbolt 4, modified firmware, Full Thunderbolt Bus tree

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.
Hi @Elias64Fr,

On Designare Z390 this card was installed in RP21 (PCH-lane slot), but Linux encountered the same problem where /sys/bus/thunderbolt directory did not materialize. I then moved it to Asus Z690 (CPU-lane slot), where Linux encountered the same problem.

I’ll try a couple more experiments before giving up. Fortunately the card was not expensive.

But more importantly, because we found a very good solution for Thunderbolt Local Node on Asus 500, 600, and 700 series boards, I am very happy!
 
Last edited:
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.

View attachment 581942
View attachment 581943
I forgot to reply yesterday — got distracted by my ASRock experimentation.

Some questions:
  • Is this card installed in Z690 ProArt?
  • If so, is on-board Thunderbolt enabled or disabled?
I would suggest disabling on-board Thunderbolt and doing a cold boot.
 
Hi @Elias64Fr,

On Designare Z390 this card was installed in RP17 (PCH-lane slot), but Linux encountered the same problem where /sys/bus/thunderbolt directory did not materialize. I then moved it to Asus Z690 (CPU-lane slot), where Linux encountered the same problem.

I’ll try a couple more experiments before giving up. Fortunately the card was not expensive.

But more importantly, because we found a very good solution for Thunderbolt Local Node on Asus 500, 600, and 700 series boards, I am very happy!
Try on PCH slot disabling Fast Boot on BIOS. Run the commands as root user

You can check if thunderbolt.ko kernel module is loaded with:
lsmod | grep thunderbolt
and try to force loading:
modprobe thunderbolt
 
I forgot to reply yesterday — got distracted by my ASRock experimentation.

Some questions:
  • Is this card installed in Z690 ProArt?
  • If so, is on-board Thunderbolt enabled or disabled?
I would suggest disabling on-board Thunderbolt and doing a cold boot.
The results I shared were with the on-board Thunderbolt disabled. Also, I did perform cold boots multiple times with the same result unfortunately.
 
Try on PCH slot disabling Fast Boot on BIOS. Run the commands as root user

You can check if thunderbolt.ko kernel module is loaded with:
lsmod | grep thunderbolt
and try to force loading:
modprobe thunderbolt
Loading the Thunderbolt kernel module is not actually the issue. There is a problem with ASRock Thunderbolt 4 add-in-card. In the example below, I've installed the ASRock AIC into RP21 (PCH-lane slot) in my Gigabyte Z390 Designare, and also enabled on-board Titan Ridge.

Running NixOS, we get:

Bash:
nixos@nixos:~]$ lspci -vnnt
-[0000:00]-+-00.0  Intel Corporation 8th/9th Gen Core 8-core Desktop Processor Host Bridge/DRAM Registers [Coffee Lake S] [8086:3e30]
           +-01.0-[01-03]----00.0-[02-03]----00.0-[03]--+-00.0  Advanced Micro Devices, Inc. [AMD/ATI] Navi 23 [Radeon RX 6650 XT / 6700S / 6800S] [1002:73ef]
           |                                            \-00.1  Advanced Micro Devices, Inc. [AMD/ATI] Navi 21/23 HDMI/DP Audio Controller [1002:ab28]
           +-01.1-[04]----00.0  Aquantia Corp. AQC113C NBase-T/IEEE 802.3bz Ethernet Controller [AQtion] [1d6a:14c0]
           +-02.0  Intel Corporation CoffeeLake-S GT2 [UHD Graphics 630] [8086:3e98]
           +-12.0  Intel Corporation Cannon Lake PCH Thermal Controller [8086:a379]
           +-14.0  Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller [8086:a36d]
           +-14.2  Intel Corporation Cannon Lake PCH Shared SRAM [8086:a36f]
           +-14.3  Intel Corporation Cannon Lake PCH CNVi WiFi [8086:a370]
           +-16.0  Intel Corporation Cannon Lake PCH HECI Controller [8086:a360]
           +-17.0  Intel Corporation Cannon Lake PCH SATA AHCI Controller [8086:a352]
           +-1b.0-[05]----00.0  Kingston Technology Company, Inc. Device [2646:5017]
           +-1b.4-[06-0b]----00.0-[07-0b]--+-00.0-[08]----00.0  Intel Corporation Thunderbolt 4 NHI [Maple Ridge 4C 2020] [8086:1137]
           |                               +-01.0-[09]--
           |                               +-02.0-[0a]--
           |                               \-03.0-[0b]--
           +-1c.0-[0c]--
           +-1c.1-[0d]----00.0  Intel Corporation I211 Gigabit Network Connection [8086:1539]
           +-1c.3-[0e]----00.0  Broadcom Inc. and subsidiaries BCM4360 802.11ac Wireless Network Adapter [14e4:43a0]
           +-1c.4-[0f-79]----00.0-[10-79]--+-00.0-[11]----00.0  Intel Corporation JHL7540 Thunderbolt 3 NHI [Titan Ridge 4C 2018] [8086:15eb]
           |                               +-01.0-[12-44]--
           |                               +-02.0-[45]----00.0  Intel Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge 4C 2018] [8086:15ec]
           |                               \-04.0-[46-79]--
           +-1d.0-[7a]----00.0  Phison Electronics Corporation E12 NVMe Controller [1987:5012]
           +-1f.0  Intel Corporation Z390 Chipset LPC/eSPI Controller [8086:a305]
           +-1f.3  Intel Corporation Cannon Lake PCH cAVS [8086:a348]
           +-1f.4  Intel Corporation Cannon Lake PCH SMBus Controller [8086:a323]
           +-1f.5  Intel Corporation Cannon Lake PCH SPI Controller [8086:a324]
           \-1f.6  Intel Corporation Ethernet Connection (7) I219-V [8086:15bc]

We can see that Titan Ridge is properly initialized. We can see both NHI and USB Controller. But with Maple Ridge we have only NHI. If we examine /sys/bus/thunderbolt/devices we only get 0-0 which is Titan Ridge. This shows that:
  • Thunderbolt kernel module is loaded
  • Titan Ridge is detected and initialized
  • Maple Ridge is NOT initialilzed
Bash:
[nixos@nixos:~]$ lsmod | grep thunderbolt
intel_wmi_thunderbolt    20480  0
thunderbolt           376832  0
wmi                    36864  5 video,intel_wmi_thunderbolt,gigabyte_wmi,wmi_bmof,mxm_wmi

[nixos@nixos:~]$ ls /sys/bus/thunderbolt/devices
0-0  domain0

NixOS version information:
Bash:
[nixos@nixos:~]$ uname -a
Linux nixos 6.1.82 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar 15 18:27:50 UTC 2024 x86_64 GNU/Linux
 
Back
Top