Opened 8 years ago
Last modified 11 months ago
#12889 new enhancement
Thunderbolt 3 support
Reported by: | kallisti5 | Owned by: | nobody |
---|---|---|---|
Priority: | low | Milestone: | Unscheduled |
Component: | Drivers | Version: | R1/Development |
Keywords: | thunderbolt TB3 | Cc: | |
Blocked By: | Blocking: | #18538 | |
Platform: | All |
Description
Thunderbolt 3 is beginning to appear in consumer PC hardware and enables a single wire extension of the system's PCIe bus. Once the thunderbolt connection is established, the attached PCIe bus can be handled like any other PCIe bus.
Some newer Thunderbolt 3 docking stations exist that present several PCIe devices over the TB3 link.
Linux has a pretty simple implementation containing a minimal amount of code: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/thunderbolt
Attachments (1)
Change History (7)
by , 8 years ago
Attachment: | acpi-dellxps13.tar.gz added |
---|
comment:1 by , 8 years ago
I thought acpi might of been how TB devices were discovered, however from the Linux driver, a Thunderbolt Host Device identification seems purely based on the presence of a special PCI class :-| Definitely something created by the sadistic Intel hw engineers.
static struct pci_device_id nhi_ids[] = { /* * We have to specify class, the TB bridges use the same device and * vendor (sub)id. */ { .class = PCI_CLASS_SYSTEM_OTHER << 8, .class_mask = ~0, .vendor = PCI_VENDOR_ID_INTEL, .device = 0x1547, .subvendor = 0x2222, .subdevice = 0x1111, }, { .class = PCI_CLASS_SYSTEM_OTHER << 8, .class_mask = ~0, .vendor = PCI_VENDOR_ID_INTEL, .device = 0x156c, .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, }, { 0,} };
More info: http://www.tomshardware.com/reviews/thunderbolt-performance-z77a-gd80,3205-4.html
comment:2 by , 4 years ago
One driver for FreeBSD are on the gay.
https://papers.freebsd.org/2020/bsdcan/long-thunderbolt_on_freebsd/
comment:3 by , 16 months ago
Small note on this one.
Plugging in a Thunderbolt 3 eGPU consistently results in the following in syslog on my Framework 11th Gen Intel laptop...
KERN: ACPI Debug: "=====QUERY_04=====" KERN: ACPI Debug: "=====QUERY_08====="
Unplugging the TB3 eGPU shows:
KERN: ACPI Debug: "=====QUERY_05=====" KERN: ACPI Debug: "=====QUERY_08====="
One of these might be an ACPI "Docking Event"?
https://uefi.org/specs/ACPI/6.5/04_ACPI_Hardware_Specification.html#generic-hardware-registers
I can't actually find in our source code what is generating that log message however :-|
comment:4 by , 16 months ago
That would most likely be ACPICA code I think, although I don't think debug logging was enabled.
See our print functions here: https://github.com/haiku/haiku/blob/967ab75d8e83c152b4004720f8bb4cef1a8488e9/src/add-ons/kernel/bus_managers/acpi/ACPICAHaiku.cpp#L368
comment:6 by , 11 months ago
Blocking: | 18538 added |
---|
ACPI Dump , Dell XPS 13