Hands On with the Gigabyte Maple Ridge Thunderbolt 4 Card
I’ve been exploring Thunderbolt quite a bit lately. As a follow up to my post about using Thunderbolt in a NAS, I recently bought a Gigabyte Maple Ridge Thunderbolt 4 add on card. I’ve captured a few thoughts, observations and pics here.
Gigabyte GC-Maple Ridge
Observations
Physical Characteristics
The first thing I noticed about this card is that it’s nearly identical to it’s cousin, the Thunderbolt 3 Titan Ridge Card:
The actual form factor is identical, including the etching on the PCI brackets. Under the aluminum shroud, however, lay obvious differences. Most relevant among them is the Intel Thunderbolt™ JHL8540 Controller IC:
Additionally, the addition of a 100 Watt power delivery controller (I think):
I did not need to short the pins on the TB_HEADER that I did in my previous post for the Titan Ridge card. I simply inserted the card into the server and booted it up. I haven’t made any BIOS changes either. I wanted to visually inspect the pinouts before shorting the pins, hence why I took pictures and removed the cover plate (shroud).
I’m going to install the connector with the pins shorted (ground tied?) to see if anything changes with regards to capability or recognized features.
Operating System Support (Linux)
In Linux (Centos 7) the device was recognized as seen by the output from lspci
:
1 | 02:00.0 PCI bridge: Intel Corporation Thunderbolt 4 Bridge [Maple Ridge 4C 2020] (rev 02) |
Since this card is Thunderbolt 4, it uses the thunderbolt and xhci_hcd kernel modules for the USB4 Host Controller.
04:00.0 USB controller: Intel Corporation Thunderbolt 4 NHI [Maple Ridge 4C 2020] (prog-if 40 [USB4 Host Interface])
06:00.0 USB controller: Intel Corporation Thunderbolt 4 USB Controller [Maple Ridge 4C 2020] (prog-if 30 [XHCI])
I’ll explore that further and document it eventually.
Here’s another pci tree view (lspci -tv
):
1 | \-[0000:00]-+-00.0 Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DMI2 |
Verbose output (lspci -vvv
) can be viewed here.
Here is the system device tree:
1 | [user@nas-04:/sys/bus/thunderbolt] $ tree |
I grabbed a dump of the nvm firmware at /sys/bus/thunderbolt/devices/0-0/nvm_active0
using dd
. I parsed it through various tools (od
, strings
, binwalk
) but didn’t see anything notable. I also looked at it visually with mc
just for grins.
Here’s some other miscellaneous output:
1 | root@nas-04:/sys/bus/thunderbolt/devices/0-0 # cat nvm_version |
I expect that since Centos 7 with Linux Kernel latest (at the time of this writing: 5.13.4-1.el7.elrepo.x86_64
) discovered the device, it should work in most Linux distributions with a newer linux kernel and fresh userspace tools.
Benchmarks
Networking Capability
I still only see about 16.8 Gigabit/sec when using the Thunderbolt4 network interface:
1 | root@nas-04:~ # iperf3 -c 10.10.10.2 |
I do see twice the number of lanes as compared to the Thunderbolt 3 card (I think):
1 | root@nas-04:/sys/bus/thunderbolt/devices/0-3 # cat rx_lanes |
The PCIe limitation of 4 lanes is likely the reason for this.
Direct Attached Storage
Unfortunately, I don’t have a benchmark for this yet. If you’re interested in Thunderbolt 3, you can see some insane benchmarks using RAID-0 over here. I’ve connected the one of the same aVolution Thunderbolt 3 disks to the controller using an active Thunderbolt 4 cable, but it doesn’t enumerate. I haven’t explored it beyond just seeing the outcome of plug-n-play. No dmesg output, nada. I’ll follow up on this and post an update later.
Additional Pictures
Hands On with the Gigabyte Maple Ridge Thunderbolt 4 Card
https://chrisbergeron.com/2021/08/23/Hands-On-with-the-Gigabyte-Maple-Ridge-Thunderbolt-4-Card/