Opened 8 years ago

Last modified 3 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)

acpi-dellxps13.tar.gz (165.5 KB ) - added by kallisti5 8 years ago.
ACPI Dump , Dell XPS 13

Download all attachments as: .zip

Change History (7)

by kallisti5, 8 years ago

Attachment: acpi-dellxps13.tar.gz added

ACPI Dump , Dell XPS 13

comment:1 by kallisti5, 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:3 by kallisti5, 9 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 tqh, 9 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:5 by tqh, 9 months ago

And I guess the message is probably from your ACPI firmware..

comment:6 by waddlesplash, 3 months ago

Blocking: 18538 added
Note: See TracTickets for help on using tickets.