All of lore.kernel.org
 help / color / mirror / Atom feed
* Thunderbolt: One missing DisplayPort?
@ 2022-05-20 10:22 Stefan Hoffmeister
  2022-05-24 10:55 ` Heikki Krogerus
  0 siblings, 1 reply; 19+ messages in thread
From: Stefan Hoffmeister @ 2022-05-20 10:22 UTC (permalink / raw)
  To: linux-usb

I am trying to diagnose a problem where I get video output on
Thunderbolt on one DisplayPort, but no output on the second
DisplayPort.

I would love to turn on all the (kernel-level) logging output that
there is, but do not know how to do that.

Basically, on a Dell Inspiron 16 Plus (7610) laptop with Thunderbolt
4, I am running Fedora Linux 36 with kernel 5.17+.

Connecting that laptop to a Thunderbolt docking station (Intel
Thunderbolt 3 chip inside),
with two screens attached via DisplayPort, I get only one screen up and running.

I'd like to discover more about this apparent error mode, because
attaching a different TB3
setup works fine. I am looking for some means to enable logging or to
get debugging insight.

Generally speaking, I suspect that this specific Dell laptop
(configuration) has some challenges
in the BIOS, and with Thunderbolt in general, but am totally blind to
what is going on.

This system offers potential for fun, this being a hybrid PRIME
configuration, with an Intel iGPU passing through to an Nvidia dGPU
which seems to be the only wired-up way to get DisplayPort output.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Thunderbolt: One missing DisplayPort?
  2022-05-20 10:22 Thunderbolt: One missing DisplayPort? Stefan Hoffmeister
@ 2022-05-24 10:55 ` Heikki Krogerus
  2022-05-24 11:04   ` Mika Westerberg
  0 siblings, 1 reply; 19+ messages in thread
From: Heikki Krogerus @ 2022-05-24 10:55 UTC (permalink / raw)
  To: Stefan Hoffmeister; +Cc: linux-usb, Mika Westerberg

+Mika

On Fri, May 20, 2022 at 12:22:50PM +0200, Stefan Hoffmeister wrote:
> I am trying to diagnose a problem where I get video output on
> Thunderbolt on one DisplayPort, but no output on the second
> DisplayPort.
> 
> I would love to turn on all the (kernel-level) logging output that
> there is, but do not know how to do that.
> 
> Basically, on a Dell Inspiron 16 Plus (7610) laptop with Thunderbolt
> 4, I am running Fedora Linux 36 with kernel 5.17+.
> 
> Connecting that laptop to a Thunderbolt docking station (Intel
> Thunderbolt 3 chip inside),
> with two screens attached via DisplayPort, I get only one screen up and running.
> 
> I'd like to discover more about this apparent error mode, because
> attaching a different TB3
> setup works fine. I am looking for some means to enable logging or to
> get debugging insight.
> 
> Generally speaking, I suspect that this specific Dell laptop
> (configuration) has some challenges
> in the BIOS, and with Thunderbolt in general, but am totally blind to
> what is going on.
> 
> This system offers potential for fun, this being a hybrid PRIME
> configuration, with an Intel iGPU passing through to an Nvidia dGPU
> which seems to be the only wired-up way to get DisplayPort output.

-- 
heikki

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Thunderbolt: One missing DisplayPort?
  2022-05-24 10:55 ` Heikki Krogerus
@ 2022-05-24 11:04   ` Mika Westerberg
  2022-05-27  6:24     ` Stefan Hoffmeister
  0 siblings, 1 reply; 19+ messages in thread
From: Mika Westerberg @ 2022-05-24 11:04 UTC (permalink / raw)
  To: Heikki Krogerus; +Cc: Stefan Hoffmeister, linux-usb

Hi,

On Tue, May 24, 2022 at 01:55:23PM +0300, Heikki Krogerus wrote:
> +Mika
> 
> On Fri, May 20, 2022 at 12:22:50PM +0200, Stefan Hoffmeister wrote:
> > I am trying to diagnose a problem where I get video output on
> > Thunderbolt on one DisplayPort, but no output on the second
> > DisplayPort.
> > 
> > I would love to turn on all the (kernel-level) logging output that
> > there is, but do not know how to do that.
> > 
> > Basically, on a Dell Inspiron 16 Plus (7610) laptop with Thunderbolt
> > 4, I am running Fedora Linux 36 with kernel 5.17+.
> > 
> > Connecting that laptop to a Thunderbolt docking station (Intel
> > Thunderbolt 3 chip inside),
> > with two screens attached via DisplayPort, I get only one screen up and running.
> > 
> > I'd like to discover more about this apparent error mode, because
> > attaching a different TB3
> > setup works fine. I am looking for some means to enable logging or to
> > get debugging insight.
> > 
> > Generally speaking, I suspect that this specific Dell laptop
> > (configuration) has some challenges
> > in the BIOS, and with Thunderbolt in general, but am totally blind to
> > what is going on.
> > 
> > This system offers potential for fun, this being a hybrid PRIME
> > configuration, with an Intel iGPU passing through to an Nvidia dGPU
> > which seems to be the only wired-up way to get DisplayPort output.

In that system all the tunneling is done by the firmware so there is
really not much you can debug on the kernel side. You can add
"thunderbolt.dyndbg" in the command line to get more verbose logging but
I doubt it reveals anything useful.

How do you connect the monitors to the dock and what dock it is?

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Thunderbolt: One missing DisplayPort?
  2022-05-24 11:04   ` Mika Westerberg
@ 2022-05-27  6:24     ` Stefan Hoffmeister
  2022-05-27  9:10       ` Mika Westerberg
  0 siblings, 1 reply; 19+ messages in thread
From: Stefan Hoffmeister @ 2022-05-27  6:24 UTC (permalink / raw)
  To: Mika Westerberg; +Cc: Heikki Krogerus, linux-usb

Hi,

On Tue, May 24, 2022 at 1:04 PM Mika Westerberg
<mika.westerberg@linux.intel.com> wrote:
>
> Hi,
>
> On Tue, May 24, 2022 at 01:55:23PM +0300, Heikki Krogerus wrote:
> > +Mika
> >
> > On Fri, May 20, 2022 at 12:22:50PM +0200, Stefan Hoffmeister wrote:
> > > I am trying to diagnose a problem where I get video output on
> > > Thunderbolt on one DisplayPort, but no output on the second
> > > DisplayPort.
> > >
> > > I would love to turn on all the (kernel-level) logging output that
> > > there is, but do not know how to do that.
> > >
> > > Basically, on a Dell Inspiron 16 Plus (7610) laptop with Thunderbolt
> > > 4, I am running Fedora Linux 36 with kernel 5.17+.
> > >
> > > Connecting that laptop to a Thunderbolt docking station (Intel
> > > Thunderbolt 3 chip inside),
> > > with two screens attached via DisplayPort, I get only one screen up and running.
> > >
> > > I'd like to discover more about this apparent error mode, because
> > > attaching a different TB3
> > > setup works fine. I am looking for some means to enable logging or to
> > > get debugging insight.
> > >
> > > Generally speaking, I suspect that this specific Dell laptop
> > > (configuration) has some challenges
> > > in the BIOS, and with Thunderbolt in general, but am totally blind to
> > > what is going on.
> > >
> > > This system offers potential for fun, this being a hybrid PRIME
> > > configuration, with an Intel iGPU passing through to an Nvidia dGPU
> > > which seems to be the only wired-up way to get DisplayPort output.
>
> In that system all the tunneling is done by the firmware so there is
> really not much you can debug on the kernel side. You can add
> "thunderbolt.dyndbg" in the command line to get more verbose logging but
> I doubt it reveals anything useful.
>
> How do you connect the monitors to the dock and what dock it is?

The dock is an i-tec Thunderbolt3/USB-C Dual DisplayPort 4K Docking
Station + Power Delivery 85W
(https://i-tec.pro/en/produkt/tb3cdualdpdockpd-2/). This dock exposes
two DisplayPort outs, to which I have connected one 2.5K screen and
one 4K screen "natively", for running at 60 Hz. According to lspci
from the "broken" Dell 7610 (BIOS version 1.7.0) the dock looks like
this:

[stefan@fedora ~]$ lspci -vt
-[0000:00]-+-00.0  Intel Corporation 11th Gen Core Processor Host
Bridge/DRAM Registers
          +-01.0-[01]--+-00.0  NVIDIA Corporation GA106M [GeForce RTX
3060 Mobile / Max-Q]
          |            \-00.1  NVIDIA Corporation Device 228e
          +-02.0  Intel Corporation TigerLake-H GT1 [UHD Graphics]
          +-04.0  Intel Corporation TigerLake-LP Dynamic Tuning
Processor Participant
          +-06.0-[02]----00.0  KIOXIA Corporation Device 0001
          +-07.0-[03-3a]----00.0-[04-05]----02.0-[05]----00.0  Intel
Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge DD 2018]
          +-08.0  Intel Corporation GNA Scoring Accelerator module
...

For reference, when I attach a Dell XPS 9360 (also on Fedora 36),
which works perfectly (both screens at expected resolution and refresh
rate), I get this output

[stefan@xps13 ~]# lspci -vt
-[0000:00]-+-00.0  Intel Corporation Xeon E3-1200 v6/7th Gen Core
Processor Host Bridge/DRAM Registers
          +-02.0  Intel Corporation HD Graphics 620
          +-04.0  Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen
Core Processor Thermal Subsystem
          +-14.0  Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller
          +-14.2  Intel Corporation Sunrise Point-LP Thermal subsystem
          +-15.0  Intel Corporation Sunrise Point-LP Serial IO I2C
Controller #0
          +-15.1  Intel Corporation Sunrise Point-LP Serial IO I2C
Controller #1
          +-16.0  Intel Corporation Sunrise Point-LP CSME HECI #1
          +-1c.0-[01-39]----00.0-[02-39]--+-00.0-[03]----00.0  Intel
Corporation DSL6340 Thunderbolt 3 NHI [Alpine Ridge 2C 2015]
          |
+-01.0-[04-38]----00.0-[05-38]----02.0-[06]----00.0  Intel Corporation
JHL7540 Thunderbolt 3 USB Controller [Titan Ridge DD 2018]
          |                               \-02.0-[39]--
          +-1c.4-[3a]----00.0  Intel Corporation Wi-Fi 6 AX200
 ...

On the broken Dell 7610 (BIOS version 1.7.0), everything else on the
dock works fine - the NIC, USB ports (forwarding to the next hub,
too), power delivery.

Even any single one of the screens alone works fine, in isolation and
solitude, on any of the dock DisplayPort outs (turning dock on/off in
between). Only with both screens attached, only the "first" screen
seems to be detected (and "first" really seems to translate to the
physical DisplayPort out next to the power input socket on the dock).

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Thunderbolt: One missing DisplayPort?
  2022-05-27  6:24     ` Stefan Hoffmeister
@ 2022-05-27  9:10       ` Mika Westerberg
  2022-05-28 14:29         ` Stefan Hoffmeister
  2022-05-29 19:51         ` Stefan Hoffmeister
  0 siblings, 2 replies; 19+ messages in thread
From: Mika Westerberg @ 2022-05-27  9:10 UTC (permalink / raw)
  To: Stefan Hoffmeister; +Cc: Heikki Krogerus, linux-usb

Hi,

On Fri, May 27, 2022 at 08:24:31AM +0200, Stefan Hoffmeister wrote:
> Hi,
> 
> On Tue, May 24, 2022 at 1:04 PM Mika Westerberg
> <mika.westerberg@linux.intel.com> wrote:
> >
> > Hi,
> >
> > On Tue, May 24, 2022 at 01:55:23PM +0300, Heikki Krogerus wrote:
> > > +Mika
> > >
> > > On Fri, May 20, 2022 at 12:22:50PM +0200, Stefan Hoffmeister wrote:
> > > > I am trying to diagnose a problem where I get video output on
> > > > Thunderbolt on one DisplayPort, but no output on the second
> > > > DisplayPort.
> > > >
> > > > I would love to turn on all the (kernel-level) logging output that
> > > > there is, but do not know how to do that.
> > > >
> > > > Basically, on a Dell Inspiron 16 Plus (7610) laptop with Thunderbolt
> > > > 4, I am running Fedora Linux 36 with kernel 5.17+.
> > > >
> > > > Connecting that laptop to a Thunderbolt docking station (Intel
> > > > Thunderbolt 3 chip inside),
> > > > with two screens attached via DisplayPort, I get only one screen up and running.
> > > >
> > > > I'd like to discover more about this apparent error mode, because
> > > > attaching a different TB3
> > > > setup works fine. I am looking for some means to enable logging or to
> > > > get debugging insight.
> > > >
> > > > Generally speaking, I suspect that this specific Dell laptop
> > > > (configuration) has some challenges
> > > > in the BIOS, and with Thunderbolt in general, but am totally blind to
> > > > what is going on.
> > > >
> > > > This system offers potential for fun, this being a hybrid PRIME
> > > > configuration, with an Intel iGPU passing through to an Nvidia dGPU
> > > > which seems to be the only wired-up way to get DisplayPort output.
> >
> > In that system all the tunneling is done by the firmware so there is
> > really not much you can debug on the kernel side. You can add
> > "thunderbolt.dyndbg" in the command line to get more verbose logging but
> > I doubt it reveals anything useful.
> >
> > How do you connect the monitors to the dock and what dock it is?
> 
> The dock is an i-tec Thunderbolt3/USB-C Dual DisplayPort 4K Docking
> Station + Power Delivery 85W
> (https://i-tec.pro/en/produkt/tb3cdualdpdockpd-2/). This dock exposes
> two DisplayPort outs, to which I have connected one 2.5K screen and
> one 4K screen "natively", for running at 60 Hz. According to lspci
> from the "broken" Dell 7610 (BIOS version 1.7.0) the dock looks like
> this:
> 
> [stefan@fedora ~]$ lspci -vt
> -[0000:00]-+-00.0  Intel Corporation 11th Gen Core Processor Host
> Bridge/DRAM Registers
>           +-01.0-[01]--+-00.0  NVIDIA Corporation GA106M [GeForce RTX
> 3060 Mobile / Max-Q]
>           |            \-00.1  NVIDIA Corporation Device 228e
>           +-02.0  Intel Corporation TigerLake-H GT1 [UHD Graphics]
>           +-04.0  Intel Corporation TigerLake-LP Dynamic Tuning
> Processor Participant
>           +-06.0-[02]----00.0  KIOXIA Corporation Device 0001
>           +-07.0-[03-3a]----00.0-[04-05]----02.0-[05]----00.0  Intel
> Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge DD 2018]
>           +-08.0  Intel Corporation GNA Scoring Accelerator module
> ...
> 
> For reference, when I attach a Dell XPS 9360 (also on Fedora 36),
> which works perfectly (both screens at expected resolution and refresh
> rate), I get this output
> 
> [stefan@xps13 ~]# lspci -vt
> -[0000:00]-+-00.0  Intel Corporation Xeon E3-1200 v6/7th Gen Core
> Processor Host Bridge/DRAM Registers
>           +-02.0  Intel Corporation HD Graphics 620
>           +-04.0  Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen
> Core Processor Thermal Subsystem
>           +-14.0  Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller
>           +-14.2  Intel Corporation Sunrise Point-LP Thermal subsystem
>           +-15.0  Intel Corporation Sunrise Point-LP Serial IO I2C
> Controller #0
>           +-15.1  Intel Corporation Sunrise Point-LP Serial IO I2C
> Controller #1
>           +-16.0  Intel Corporation Sunrise Point-LP CSME HECI #1
>           +-1c.0-[01-39]----00.0-[02-39]--+-00.0-[03]----00.0  Intel
> Corporation DSL6340 Thunderbolt 3 NHI [Alpine Ridge 2C 2015]
>           |
> +-01.0-[04-38]----00.0-[05-38]----02.0-[06]----00.0  Intel Corporation
> JHL7540 Thunderbolt 3 USB Controller [Titan Ridge DD 2018]
>           |                               \-02.0-[39]--
>           +-1c.4-[3a]----00.0  Intel Corporation Wi-Fi 6 AX200
>  ...
> 
> On the broken Dell 7610 (BIOS version 1.7.0), everything else on the
> dock works fine - the NIC, USB ports (forwarding to the next hub,
> too), power delivery.
> 
> Even any single one of the screens alone works fine, in isolation and
> solitude, on any of the dock DisplayPort outs (turning dock on/off in
> between). Only with both screens attached, only the "first" screen
> seems to be detected (and "first" really seems to translate to the
> physical DisplayPort out next to the power input socket on the dock).

OK, I think this is not a Thunderbolt issue but rather related to
graphics so I would try to ask from the graphics folks if they have any
ideas what might be the issue or how to debug further. There is not much
the Linux Thunderbolt driver does here because it is the firmware that
creates these tunnels, and I think it works here as expected.

Probably dri-devel@lists.freedesktop.org is a good mailing list to ask
graphics related help.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Thunderbolt: One missing DisplayPort?
  2022-05-27  9:10       ` Mika Westerberg
@ 2022-05-28 14:29         ` Stefan Hoffmeister
  2022-05-29 19:51         ` Stefan Hoffmeister
  1 sibling, 0 replies; 19+ messages in thread
From: Stefan Hoffmeister @ 2022-05-28 14:29 UTC (permalink / raw)
  To: Mika Westerberg; +Cc: Heikki Krogerus, linux-usb

Hi,

On Fri, May 27, 2022 at 11:10 AM Mika Westerberg
<mika.westerberg@linux.intel.com> wrote:
>
> Hi,
>
> On Fri, May 27, 2022 at 08:24:31AM +0200, Stefan Hoffmeister wrote:
> > Hi,
> >
> > On Tue, May 24, 2022 at 1:04 PM Mika Westerberg
> > <mika.westerberg@linux.intel.com> wrote:
> > >
> > > Hi,
> > >
> > > On Tue, May 24, 2022 at 01:55:23PM +0300, Heikki Krogerus wrote:
> > > > +Mika
> > > >
> > > > On Fri, May 20, 2022 at 12:22:50PM +0200, Stefan Hoffmeister wrote:
> > > > > I am trying to diagnose a problem where I get video output on
> > > > > Thunderbolt on one DisplayPort, but no output on the second
> > > > > DisplayPort.
> > > > >
> > > > > I would love to turn on all the (kernel-level) logging output that
> > > > > there is, but do not know how to do that.
> > > > >
> > > > > Basically, on a Dell Inspiron 16 Plus (7610) laptop with Thunderbolt
> > > > > 4, I am running Fedora Linux 36 with kernel 5.17+.
> > > > >
> > > > > Connecting that laptop to a Thunderbolt docking station (Intel
> > > > > Thunderbolt 3 chip inside),
> > > > > with two screens attached via DisplayPort, I get only one screen up and running.
> > > > >
> > > > > I'd like to discover more about this apparent error mode, because
> > > > > attaching a different TB3
> > > > > setup works fine. I am looking for some means to enable logging or to
> > > > > get debugging insight.
> > > > >
> > > > > Generally speaking, I suspect that this specific Dell laptop
> > > > > (configuration) has some challenges
> > > > > in the BIOS, and with Thunderbolt in general, but am totally blind to
> > > > > what is going on.
> > > > >
> > > > > This system offers potential for fun, this being a hybrid PRIME
> > > > > configuration, with an Intel iGPU passing through to an Nvidia dGPU
> > > > > which seems to be the only wired-up way to get DisplayPort output.
> > >
> > > In that system all the tunneling is done by the firmware so there is
> > > really not much you can debug on the kernel side. You can add
> > > "thunderbolt.dyndbg" in the command line to get more verbose logging but
> > > I doubt it reveals anything useful.
> > >
> > > How do you connect the monitors to the dock and what dock it is?
> >
> > The dock is an i-tec Thunderbolt3/USB-C Dual DisplayPort 4K Docking
> > Station + Power Delivery 85W
> > (https://i-tec.pro/en/produkt/tb3cdualdpdockpd-2/). This dock exposes
> > two DisplayPort outs, to which I have connected one 2.5K screen and
> > one 4K screen "natively", for running at 60 Hz. According to lspci
> > from the "broken" Dell 7610 (BIOS version 1.7.0) the dock looks like
> > this:
> >
> > [stefan@fedora ~]$ lspci -vt
> > -[0000:00]-+-00.0  Intel Corporation 11th Gen Core Processor Host
> > Bridge/DRAM Registers
> >           +-01.0-[01]--+-00.0  NVIDIA Corporation GA106M [GeForce RTX
> > 3060 Mobile / Max-Q]
> >           |            \-00.1  NVIDIA Corporation Device 228e
> >           +-02.0  Intel Corporation TigerLake-H GT1 [UHD Graphics]
> >           +-04.0  Intel Corporation TigerLake-LP Dynamic Tuning
> > Processor Participant
> >           +-06.0-[02]----00.0  KIOXIA Corporation Device 0001
> >           +-07.0-[03-3a]----00.0-[04-05]----02.0-[05]----00.0  Intel
> > Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge DD 2018]
> >           +-08.0  Intel Corporation GNA Scoring Accelerator module
> > ...
> >
> > For reference, when I attach a Dell XPS 9360 (also on Fedora 36),
> > which works perfectly (both screens at expected resolution and refresh
> > rate), I get this output
> >
> > [stefan@xps13 ~]# lspci -vt
> > -[0000:00]-+-00.0  Intel Corporation Xeon E3-1200 v6/7th Gen Core
> > Processor Host Bridge/DRAM Registers
> >           +-02.0  Intel Corporation HD Graphics 620
> >           +-04.0  Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen
> > Core Processor Thermal Subsystem
> >           +-14.0  Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller
> >           +-14.2  Intel Corporation Sunrise Point-LP Thermal subsystem
> >           +-15.0  Intel Corporation Sunrise Point-LP Serial IO I2C
> > Controller #0
> >           +-15.1  Intel Corporation Sunrise Point-LP Serial IO I2C
> > Controller #1
> >           +-16.0  Intel Corporation Sunrise Point-LP CSME HECI #1
> >           +-1c.0-[01-39]----00.0-[02-39]--+-00.0-[03]----00.0  Intel
> > Corporation DSL6340 Thunderbolt 3 NHI [Alpine Ridge 2C 2015]
> >           |
> > +-01.0-[04-38]----00.0-[05-38]----02.0-[06]----00.0  Intel Corporation
> > JHL7540 Thunderbolt 3 USB Controller [Titan Ridge DD 2018]
> >           |                               \-02.0-[39]--
> >           +-1c.4-[3a]----00.0  Intel Corporation Wi-Fi 6 AX200
> >  ...
> >
> > On the broken Dell 7610 (BIOS version 1.7.0), everything else on the
> > dock works fine - the NIC, USB ports (forwarding to the next hub,
> > too), power delivery.
> >
> > Even any single one of the screens alone works fine, in isolation and
> > solitude, on any of the dock DisplayPort outs (turning dock on/off in
> > between). Only with both screens attached, only the "first" screen
> > seems to be detected (and "first" really seems to translate to the
> > physical DisplayPort out next to the power input socket on the dock).
>
> OK, I think this is not a Thunderbolt issue but rather related to
> graphics so I would try to ask from the graphics folks if they have any
> ideas what might be the issue or how to debug further. There is not much
> the Linux Thunderbolt driver does here because it is the firmware that
> creates these tunnels, and I think it works here as expected.

I see the very same undesirable / defective behaviour across operating
systems; what I see on the Linux side ("only one DisplayPort") is also
exactly the same behaviour I see on a dual-booted Windows 11 Pro. So,
in a way, that would rule out the (Linux) Thunderbolt _driver_.

With the firmware (AKA "the Dell BIOS"?) creating tunnels, are there
failure modes where that firmware might be setting up those tunnels
"partially" wrong? After all, one DisplayPort works... Are there any
magic words I can use, like ACPI? Routing? Anything beyond "tunnel"?
My knowledge about these low-level things basically does not exist,
sorry.

FWIW, the dock NVM version is at "50", the working Dell at 26.1 and
the broken Dell at 26 - would that be the firmware you are referring
to?

> Probably dri-devel@lists.freedesktop.org is a good mailing list to ask
> graphics related help.

Many thanks for the pointer! This will be rough because my notebook
has an Nvidia GPU, the OSS nouveau driver barely doesn't die on that
relatively new chip (GA106), and, of course, DisplayPort out is
physically wired to the Nvidia hardware...

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Thunderbolt: One missing DisplayPort?
  2022-05-27  9:10       ` Mika Westerberg
  2022-05-28 14:29         ` Stefan Hoffmeister
@ 2022-05-29 19:51         ` Stefan Hoffmeister
  2022-05-30  8:33           ` Tomasz Moń
  1 sibling, 1 reply; 19+ messages in thread
From: Stefan Hoffmeister @ 2022-05-29 19:51 UTC (permalink / raw)
  To: Mika Westerberg; +Cc: Heikki Krogerus, linux-usb

Hello again :)

On Fri, May 27, 2022 at 11:10 AM Mika Westerberg
<mika.westerberg@linux.intel.com> wrote:
>
> Hi,
>
> On Fri, May 27, 2022 at 08:24:31AM +0200, Stefan Hoffmeister wrote:
> > Hi,
> >
> > On Tue, May 24, 2022 at 1:04 PM Mika Westerberg
> > <mika.westerberg@linux.intel.com> wrote:
> > >
> > > Hi,
> > >
> > > On Tue, May 24, 2022 at 01:55:23PM +0300, Heikki Krogerus wrote:
> > > > +Mika
> > > >
> > > > On Fri, May 20, 2022 at 12:22:50PM +0200, Stefan Hoffmeister wrote:
> > > > > I am trying to diagnose a problem where I get video output on
> > > > > Thunderbolt on one DisplayPort, but no output on the second
> > > > > DisplayPort.
> > > > >
> > > > > I would love to turn on all the (kernel-level) logging output that
> > > > > there is, but do not know how to do that.
> > > > >
> > > > > Basically, on a Dell Inspiron 16 Plus (7610) laptop with Thunderbolt
> > > > > 4, I am running Fedora Linux 36 with kernel 5.17+.
> > > > >
> > > > > Connecting that laptop to a Thunderbolt docking station (Intel
> > > > > Thunderbolt 3 chip inside),
> > > > > with two screens attached via DisplayPort, I get only one screen up and running.
> > > > >
> > > > > I'd like to discover more about this apparent error mode, because
> > > > > attaching a different TB3
> > > > > setup works fine. I am looking for some means to enable logging or to
> > > > > get debugging insight.
> > > > >
> > > > > Generally speaking, I suspect that this specific Dell laptop
> > > > > (configuration) has some challenges
> > > > > in the BIOS, and with Thunderbolt in general, but am totally blind to
> > > > > what is going on.
> > > > >
> > > > > This system offers potential for fun, this being a hybrid PRIME
> > > > > configuration, with an Intel iGPU passing through to an Nvidia dGPU
> > > > > which seems to be the only wired-up way to get DisplayPort output.
> > >
> > > In that system all the tunneling is done by the firmware so there is
> > > really not much you can debug on the kernel side. You can add
> > > "thunderbolt.dyndbg" in the command line to get more verbose logging but
> > > I doubt it reveals anything useful.
> > >
> > > How do you connect the monitors to the dock and what dock it is?
> >
> > The dock is an i-tec Thunderbolt3/USB-C Dual DisplayPort 4K Docking
> > Station + Power Delivery 85W
> > (https://i-tec.pro/en/produkt/tb3cdualdpdockpd-2/). This dock exposes
> > two DisplayPort outs, to which I have connected one 2.5K screen and
> > one 4K screen "natively", for running at 60 Hz. According to lspci
> > from the "broken" Dell 7610 (BIOS version 1.7.0) the dock looks like
> > this:
> >
> > [stefan@fedora ~]$ lspci -vt
> > -[0000:00]-+-00.0  Intel Corporation 11th Gen Core Processor Host
> > Bridge/DRAM Registers
> >           +-01.0-[01]--+-00.0  NVIDIA Corporation GA106M [GeForce RTX
> > 3060 Mobile / Max-Q]
> >           |            \-00.1  NVIDIA Corporation Device 228e
> >           +-02.0  Intel Corporation TigerLake-H GT1 [UHD Graphics]
> >           +-04.0  Intel Corporation TigerLake-LP Dynamic Tuning
> > Processor Participant
> >           +-06.0-[02]----00.0  KIOXIA Corporation Device 0001
> >           +-07.0-[03-3a]----00.0-[04-05]----02.0-[05]----00.0  Intel
> > Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge DD 2018]
> >           +-08.0  Intel Corporation GNA Scoring Accelerator module
> > ...
> >
> > For reference, when I attach a Dell XPS 9360 (also on Fedora 36),
> > which works perfectly (both screens at expected resolution and refresh
> > rate), I get this output
> >
> > [stefan@xps13 ~]# lspci -vt
> > -[0000:00]-+-00.0  Intel Corporation Xeon E3-1200 v6/7th Gen Core
> > Processor Host Bridge/DRAM Registers
> >           +-02.0  Intel Corporation HD Graphics 620
> >           +-04.0  Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen
> > Core Processor Thermal Subsystem
> >           +-14.0  Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller
> >           +-14.2  Intel Corporation Sunrise Point-LP Thermal subsystem
> >           +-15.0  Intel Corporation Sunrise Point-LP Serial IO I2C
> > Controller #0
> >           +-15.1  Intel Corporation Sunrise Point-LP Serial IO I2C
> > Controller #1
> >           +-16.0  Intel Corporation Sunrise Point-LP CSME HECI #1
> >           +-1c.0-[01-39]----00.0-[02-39]--+-00.0-[03]----00.0  Intel
> > Corporation DSL6340 Thunderbolt 3 NHI [Alpine Ridge 2C 2015]
> >           |
> > +-01.0-[04-38]----00.0-[05-38]----02.0-[06]----00.0  Intel Corporation
> > JHL7540 Thunderbolt 3 USB Controller [Titan Ridge DD 2018]
> >           |                               \-02.0-[39]--
> >           +-1c.4-[3a]----00.0  Intel Corporation Wi-Fi 6 AX200
> >  ...
> >
> > On the broken Dell 7610 (BIOS version 1.7.0), everything else on the
> > dock works fine - the NIC, USB ports (forwarding to the next hub,
> > too), power delivery.
> >
> > Even any single one of the screens alone works fine, in isolation and
> > solitude, on any of the dock DisplayPort outs (turning dock on/off in
> > between). Only with both screens attached, only the "first" screen
> > seems to be detected (and "first" really seems to translate to the
> > physical DisplayPort out next to the power input socket on the dock).
>
> OK, I think this is not a Thunderbolt issue but rather related to
> graphics

Based on updated information, I do believe even stronger that there is
a problem specifically with Thunderbolt _somewhere_ in the stack. I am
not saying that the Linux Thunderbolt driver is the root cause :)

I have managed to wedge the system into a state where it does not know
about Thunderbolt, and now, on what I presume to be USB-C only
("usb_typec_revision" == 1.2? Seems ... low?), both DisplayPort
outputs on the docking station are now active, and I do get meaningful
entries from the DRM subsystem (and hence X). I am half-way happy: I
want exactly that over Thunderbolt for the bandwidth ;)

This is the state I see with USB-C (I only have one port == port0):

$ cd /sys/class/typec/port0

$ find . -type f -name 'svid' | xargs -i sh -c 'echo {}; cat {}'
./port0.3/svid
413c
./port0.1/svid
ff01
./port0.2/svid
413c
./port0.0/svid
8087

Based on my reading of
https://www.quantumdata.com/assets/essentials_displayport_usb-c_dp_alt_mode_protocols_webinar.pdf
the value of ff01 for SVID is defined as: "DP_SID (DisplayPort
Standard Identifier) - 16-bit Identifier assigned by the USB-IF for
the DisplayPort alt mode (FF01h) specification (standard).";
https://composter.com.ua/documents/USB_Billboard_Revision.1.2.1.pdf
suggests that the 8087 part is the Intel VID and we are talking about
power-delivery. 413c is the Dell USB vendor ID. I have no idea what
any of that means, though, way out of my domain of knowledge.

I see no "partner" entries in that scenario.

Now, when I unwedge the system to enable Thunderbolt again, I see the
same behaviour - only one DisplayPort output can be seen (this is not
about the screens, I am looking at /sys/class/drm/. The thunderbolt
module output I have pasted at the end of this message.

Now, what irritates me is that on /sys/class/drm in the case of USB-C I get

    card0  card0-DP-1  card0-DP-2  card0-DP-3  card0-DP-4  card0-eDP-1
 card0-HDMI-A-1  card1  card1-DP-5  card1-DP-6 card1-DP-7

with card1-DP-7 being where the second port suddenly pops up, but for
no good reason? And card1-DP-5 is empty.

And with Thunderbolt

    card0  card0-DP-1  card0-DP-2  card0-DP-3  card0-DP-4  card0-eDP-1
 card0-HDMI-A-1  card1  card1-DP-5  card1-DP-6

"card1-DP-7" never is present, but then I have content in card1-DP-5,
but nothing ever in card1-DP-6.

I am just ... surprised, and don't know what observables / logging
should happen when I plug in a cable into the "second" DisplayPort
port.

BR
Stefan

$ grep thunderbolt dmesg.txt
[ 2393.181675] thunderbolt 0-1: device disconnected
[ 2393.484134] thunderbolt 0000:00:0d.2: ICM rtd3 veto=0x00000000
[ 2407.639236] thunderbolt 0000:00:0d.2: current switch config:
[ 2407.639245] thunderbolt 0000:00:0d.2:  Thunderbolt 3 Switch:
8086:15ef (Revision: 6, TB Version: 16)
[ 2407.639250] thunderbolt 0000:00:0d.2:   Max Port Number: 13
[ 2407.639253] thunderbolt 0000:00:0d.2:   Config:
[ 2407.639254] thunderbolt 0000:00:0d.2:    Upstream Port Number: 1
Depth: 1 Route String: 0x1 Enabled: 1, PlugEventsDelay: 10ms
[ 2407.639258] thunderbolt 0000:00:0d.2:    unknown1: 0x0 unknown4: 0x0
[ 2408.110732] thunderbolt 0000:00:0d.2: 1: reading drom (length: 0x66)
[ 2414.788163] thunderbolt 0000:00:0d.2: 1: DROM version: 1
[ 2414.803299] thunderbolt 0000:00:0d.2: 1: uid: 0x16b26bdc8584100
[ 2414.841453] thunderbolt 0000:00:0d.2:  Port 1: 8086:15ef (Revision:
6, TB Version: 1, Type: Port (0x1))
[ 2414.841467] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 19/19
[ 2414.841472] thunderbolt 0000:00:0d.2:   Max counters: 16
[ 2414.841475] thunderbolt 0000:00:0d.2:   NFC Credits: 0x7800046
[ 2414.841479] thunderbolt 0000:00:0d.2:   Credits (total/control): 120/2
[ 2414.879467] thunderbolt 0000:00:0d.2:  Port 2: 8086:15ef (Revision:
6, TB Version: 1, Type: Port (0x1))
[ 2414.879483] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 19/19
[ 2414.879488] thunderbolt 0000:00:0d.2:   Max counters: 16
[ 2414.879491] thunderbolt 0000:00:0d.2:   NFC Credits: 0x0
[ 2414.879494] thunderbolt 0000:00:0d.2:   Credits (total/control): 0/2
[ 2414.879499] thunderbolt 0000:00:0d.2: 1:3: disabled by eeprom
[ 2414.879503] thunderbolt 0000:00:0d.2: 1:4: disabled by eeprom
[ 2414.879506] thunderbolt 0000:00:0d.2: 1:5: disabled by eeprom
[ 2414.879508] thunderbolt 0000:00:0d.2: 1:6: disabled by eeprom
[ 2414.879511] thunderbolt 0000:00:0d.2: 1:7: disabled by eeprom
[ 2414.884685] thunderbolt 0000:00:0d.2:  Port 8: 8086:15ef (Revision:
6, TB Version: 1, Type: PCIe (0x100102))
[ 2414.884695] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 8/8
[ 2414.884700] thunderbolt 0000:00:0d.2:   Max counters: 2
[ 2414.884702] thunderbolt 0000:00:0d.2:   NFC Credits: 0x800000
[ 2414.884706] thunderbolt 0000:00:0d.2:   Credits (total/control): 8/0
[ 2414.889725] thunderbolt 0000:00:0d.2:  Port 9: 8086:15ef (Revision:
6, TB Version: 1, Type: PCIe (0x100101))
[ 2414.889736] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 8/8
[ 2414.889740] thunderbolt 0000:00:0d.2:   Max counters: 2
[ 2414.889743] thunderbolt 0000:00:0d.2:   NFC Credits: 0x800000
[ 2414.889746] thunderbolt 0000:00:0d.2:   Credits (total/control): 8/0
[ 2414.899756] thunderbolt 0000:00:0d.2:  Port 10: 8086:15ef
(Revision: 6, TB Version: 1, Type: DP/HDMI (0xe0102))
[ 2414.899764] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 9/9
[ 2414.899768] thunderbolt 0000:00:0d.2:   Max counters: 2
[ 2414.899771] thunderbolt 0000:00:0d.2:   NFC Credits: 0x800000
[ 2414.899774] thunderbolt 0000:00:0d.2:   Credits (total/control): 8/0
[ 2414.909862] thunderbolt 0000:00:0d.2:  Port 11: 8086:15ef
(Revision: 6, TB Version: 1, Type: DP/HDMI (0xe0102))
[ 2414.909865] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 9/9
[ 2414.909866] thunderbolt 0000:00:0d.2:   Max counters: 2
[ 2414.909867] thunderbolt 0000:00:0d.2:   NFC Credits: 0x800000
[ 2414.909868] thunderbolt 0000:00:0d.2:   Credits (total/control): 8/0
[ 2414.914998] thunderbolt 0000:00:0d.2:  Port 12: 8086:15ea
(Revision: 6, TB Version: 1, Type: Inactive (0x0))
[ 2414.915006] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 8/8
[ 2414.915009] thunderbolt 0000:00:0d.2:   Max counters: 2
[ 2414.915012] thunderbolt 0000:00:0d.2:   NFC Credits: 0x800000
[ 2414.915014] thunderbolt 0000:00:0d.2:   Credits (total/control): 8/0
[ 2414.920095] thunderbolt 0000:00:0d.2:  Port 13: 8086:15ea
(Revision: 6, TB Version: 1, Type: Inactive (0x0))
[ 2414.920103] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 8/8
[ 2414.920109] thunderbolt 0000:00:0d.2:   Max counters: 2
[ 2414.920112] thunderbolt 0000:00:0d.2:   NFC Credits: 0x800000
[ 2414.920114] thunderbolt 0000:00:0d.2:   Credits (total/control): 8/0
[ 2414.920130] thunderbolt 0-1: ACPI companion not found
[ 2414.920132] thunderbolt 0-1: No ACPI support
[ 2414.920175] thunderbolt 0-1: new device found, vendor=0x16b device=0x9010
[ 2414.920178] thunderbolt 0-1: i-tec TB3CDUALDPDOCKPD
[ 2414.940384] thunderbolt 0000:00:0d.2: ICM rtd3 veto=0x00000001

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Thunderbolt: One missing DisplayPort?
  2022-05-29 19:51         ` Stefan Hoffmeister
@ 2022-05-30  8:33           ` Tomasz Moń
  2022-05-30  9:54             ` Mika Westerberg
  2022-05-30 18:02             ` Stefan Hoffmeister
  0 siblings, 2 replies; 19+ messages in thread
From: Tomasz Moń @ 2022-05-30  8:33 UTC (permalink / raw)
  To: Stefan Hoffmeister, Mika Westerberg; +Cc: Heikki Krogerus, linux-usb

On Sun, 2022-05-29 at 21:51 +0200, Stefan Hoffmeister wrote:
> I have managed to wedge the system into a state where it does not
> know about Thunderbolt, and now, on what I presume to be USB-C only
> ("usb_typec_revision" == 1.2? Seems ... low?), both DisplayPort
> outputs on the docking station are now active, and I do get
> meaningful entries from the DRM subsystem (and hence X). I am half-
> way happy: I want exactly that over Thunderbolt for the bandwidth ;)

Could you please tell how did you wedge the system into a state where
it does not know about Thunderbolt?

> Now, when I unwedge the system to enable Thunderbolt again

I am curious about the wedge/unwedge procedure.

Best Regards,
Tomasz Moń


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Thunderbolt: One missing DisplayPort?
  2022-05-30  8:33           ` Tomasz Moń
@ 2022-05-30  9:54             ` Mika Westerberg
  2022-05-30 18:57               ` Stefan Hoffmeister
  2022-06-02 19:34               ` Tomasz Moń
  2022-05-30 18:02             ` Stefan Hoffmeister
  1 sibling, 2 replies; 19+ messages in thread
From: Mika Westerberg @ 2022-05-30  9:54 UTC (permalink / raw)
  To: Tomasz Moń; +Cc: Stefan Hoffmeister, Heikki Krogerus, linux-usb

On Mon, May 30, 2022 at 10:33:06AM +0200, Tomasz Moń wrote:
> On Sun, 2022-05-29 at 21:51 +0200, Stefan Hoffmeister wrote:
> > I have managed to wedge the system into a state where it does not
> > know about Thunderbolt, and now, on what I presume to be USB-C only
> > ("usb_typec_revision" == 1.2? Seems ... low?), both DisplayPort
> > outputs on the docking station are now active, and I do get
> > meaningful entries from the DRM subsystem (and hence X). I am half-
> > way happy: I want exactly that over Thunderbolt for the bandwidth ;)
> 
> Could you please tell how did you wedge the system into a state where
> it does not know about Thunderbolt?
> 
> > Now, when I unwedge the system to enable Thunderbolt again
> 
> I am curious about the wedge/unwedge procedure.

Probably just connecting the dock using non-Thunderbolt Type-C cable.
That will enter USB (+DP altmode) or so instead of Thunderbolt altmode.

@Stefan,

Can you paste contents of
/sys/kernel/debug/thunderbolt/0-0/port5/regs and port6/regs here?
Once you have conneted the dock with Thunderbolt cable. That should show
if the both DP IN adapters are connected and hence if both DP tunnels
are up. I'm guessing they are but better to check.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Thunderbolt: One missing DisplayPort?
  2022-05-30  8:33           ` Tomasz Moń
  2022-05-30  9:54             ` Mika Westerberg
@ 2022-05-30 18:02             ` Stefan Hoffmeister
  1 sibling, 0 replies; 19+ messages in thread
From: Stefan Hoffmeister @ 2022-05-30 18:02 UTC (permalink / raw)
  To: Tomasz Moń; +Cc: Mika Westerberg, Heikki Krogerus, linux-usb

On Mon, May 30, 2022 at 10:33 AM Tomasz Moń <desowin@gmail.com> wrote:
>
> On Sun, 2022-05-29 at 21:51 +0200, Stefan Hoffmeister wrote:
> > I have managed to wedge the system into a state where it does not
> > know about Thunderbolt, and now, on what I presume to be USB-C only

> Could you please tell how did you wedge the system into a state where
> it does not know about Thunderbolt?

I was thinking of going the "find a bad-enough good cable" route as
mentioned by Mika, but then I discovered that I possess only
* a Thunderbolt cable
* a 100W power delivery cable (which to my surprise still does what
appears to be USB 2.0)
and that it was the weekend.

Incidentally I had been poking at the "Dell Client Configuration
Toolkit" (hardly advertised) previously - which, at least in its
RedHat 8 incarnation, will destroy anything related to openssl (in
particular sudoers) through ldconfig on Fedora 36 in a native
installation, with much fun ensuing given a disabled root account. But
I digress.

The "Dell Client Configuration Toolkit" gives you command-line access
to the BIOS on modern (2018+) Dell boxes; this exposes a BIOS
configuration option (not visible / recognizable in the BIOS UI) to
set "ThunderboltPorts" to "Disabled". Setting that to "Enabled" didn't
make the laptop explode, so "Disabled" apparently reconfigured /
forced the onboard TB4 Intel controller to forget everything about
Thunderbolt, ending up with plain USB-C at revision 1.2 (pretty old).

Net observable effect: "only the first screen works on Thunderbolt" we go to
* Windows 11 can do "2.5K@60 Hz + 4K @ 30 Hz", and
* Linux can do a slightly _flakey_"2.5K + 4K @ 60 Hz".

I like a stable 60 Hz screen refresh rate (enabled by native
Thunderbolt bandwidth)

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Thunderbolt: One missing DisplayPort?
  2022-05-30  9:54             ` Mika Westerberg
@ 2022-05-30 18:57               ` Stefan Hoffmeister
  2022-05-31  9:36                 ` Mika Westerberg
  2022-06-02 19:34               ` Tomasz Moń
  1 sibling, 1 reply; 19+ messages in thread
From: Stefan Hoffmeister @ 2022-05-30 18:57 UTC (permalink / raw)
  To: Mika Westerberg; +Cc: Tomasz Moń, Heikki Krogerus, linux-usb

Many thanks for your continued support ...

On Mon, May 30, 2022 at 11:54 AM Mika Westerberg
<mika.westerberg@linux.intel.com> wrote:
>
> > On Sun, 2022-05-29 at 21:51 +0200, Stefan Hoffmeister wrote:
> > > I have managed to wedge the system into a state where it does not
> > > know about Thunderbolt, and now, on what I presume to be USB-C only
> > > ("usb_typec_revision" == 1.2? Seems ... low?), both DisplayPort
> > > outputs on the docking station are now active, and I do get
> > > meaningful entries from the DRM subsystem (and hence X). I am half-
> > > way happy: I want exactly that over Thunderbolt for the bandwidth ;)

> Can you paste contents of
> /sys/kernel/debug/thunderbolt/0-0/port5/regs and port6/regs here?
> Once you have conneted the dock with Thunderbolt cable. That should show
> if the both DP IN adapters are connected and hence if both DP tunnels
> are up. I'm guessing they are but better to check.

Steps, for a hopefully consistent and reproducible experience:
* disconnect dock from power
* add both (2.5K + 4K) screens to the dock (DisplayPort), 2.5K next to
power inlet, 4K further to the middle
* add power to dock
* plug Thunderbolt connector into notebook
* warm reboot notebook
* boot to Wayland (and log in) - X shouldn't be any different

$dmesg | grep HDMI

[    5.128604] thunderbolt 0000:00:0d.2:  Port 5: 8086:9a1f (Revision:
5, TB Version: 1, Type: DP/HDMI (0xe0101))
[    5.133597] thunderbolt 0000:00:0d.2:  Port 6: 8086:9a1f (Revision:
5, TB Version: 1, Type: DP/HDMI (0xe0101))
[   12.459885] thunderbolt 0000:00:0d.2:  Port 10: 8086:15ef
(Revision: 6, TB Version: 1, Type: DP/HDMI (0xe0102))
[   12.469951] thunderbolt 0000:00:0d.2:  Port 11: 8086:15ef
(Revision: 6, TB Version: 1, Type: DP/HDMI (0xe0102))

"8096:9a1f" is the laptop's TB4 NHI; "8086:15ef" is the JHL7540 of the
Thunderbolt dock

Below I have dropped the data as of "logged into Wayland" (which is
way beyond the timestamps above).

In that state, the 2.5K screen is running at 60 Hz (on port 10?) and
the 4K screen is literally lifeless / dark. Just by looking at the
"regs" data, port 10 has more data than port 11.

FWIW, when I say "Wayland", this is just disclosure. I believe that X
is the same, I am just trying to diagnose some different scenario on
Wayland. I am also flipping between the "native" HDMI port of the
notebook and Thunderbolt / DisplayPort for those reasons, so I am
treading a delicate path to have the right things plugged into the
right port for repro. Caveat emptor?

BR
Stefan
********** $ grep thunderbolt boot_thunderbolt.txt  ********************
[    4.497375] ACPI: bus type thunderbolt registered
[    4.497710] thunderbolt 0000:00:0d.2: total paths: 12
[    4.497998] thunderbolt 0000:00:0d.2: allocating TX ring 0 of size 10
[    4.498020] thunderbolt 0000:00:0d.2: allocating RX ring 0 of size 10
[    4.498035] thunderbolt 0000:00:0d.2: control channel created
[    4.498038] thunderbolt 0000:00:0d.2: using firmware connection manager
[    4.498039] thunderbolt 0000:00:0d.2: NHI initialized, starting thunderbolt
[    4.498041] thunderbolt 0000:00:0d.2: control channel starting...
[    4.498042] thunderbolt 0000:00:0d.2: starting TX ring 0
[    4.498046] thunderbolt 0000:00:0d.2: enabling interrupt at
register 0x38200 bit 0 (0x0 -> 0x1)
[    4.498049] thunderbolt 0000:00:0d.2: starting RX ring 0
[    4.498053] thunderbolt 0000:00:0d.2: enabling interrupt at
register 0x38200 bit 12 (0x1 -> 0x1001)
[    4.586628] thunderbolt 0000:00:0d.2: USB4 proxy operations supported
[    4.586632] thunderbolt 0000:00:0d.2: security level set to none
[    4.592985] thunderbolt 0000:00:0d.2: current switch config:
[    4.592990] thunderbolt 0000:00:0d.2:  USB4 Switch: 8087:9a1f
(Revision: 5, TB Version: 32)
[    4.592994] thunderbolt 0000:00:0d.2:   Max Port Number: 13
[    4.592995] thunderbolt 0000:00:0d.2:   Config:
[    4.592997] thunderbolt 0000:00:0d.2:    Upstream Port Number: 7
Depth: 0 Route String: 0x0 Enabled: 1, PlugEventsDelay: 10ms
[    4.593001] thunderbolt 0000:00:0d.2:    unknown1: 0x0 unknown4: 0x0
[    4.677387] thunderbolt 0000:00:0d.2: 0: uid: 0xcce0a46080879309
[    4.875540] thunderbolt 0000:00:0d.2:  Port 1: 8086:9a1f (Revision:
5, TB Version: 1, Type: Port (0x1))
[    4.875546] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 19/19
[    4.875547] thunderbolt 0000:00:0d.2:   Max counters: 16
[    4.875549] thunderbolt 0000:00:0d.2:   NFC Credits: 0x47800000
[    4.875550] thunderbolt 0000:00:0d.2:   Credits (total/control): 120/2
[    5.042614] thunderbolt 0000:00:0d.2:  Port 2: 8086:9a1f (Revision:
5, TB Version: 1, Type: Port (0x1))
[    5.042621] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 19/19
[    5.042622] thunderbolt 0000:00:0d.2:   Max counters: 16
[    5.042624] thunderbolt 0000:00:0d.2:   NFC Credits: 0x80000000
[    5.042625] thunderbolt 0000:00:0d.2:   Credits (total/control): 0/2
[    5.083002] thunderbolt 0000:00:0d.2:  Port 3: 8086:9a1f (Revision:
5, TB Version: 1, Type: Port (0x1))
[    5.083012] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 19/19
[    5.083014] thunderbolt 0000:00:0d.2:   Max counters: 16
[    5.083015] thunderbolt 0000:00:0d.2:   NFC Credits: 0x83c00000
[    5.083016] thunderbolt 0000:00:0d.2:   Credits (total/control): 60/2
[    5.123582] thunderbolt 0000:00:0d.2:  Port 4: 8086:9a1f (Revision:
5, TB Version: 1, Type: Port (0x1))
[    5.123594] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 19/19
[    5.123597] thunderbolt 0000:00:0d.2:   Max counters: 16
[    5.123601] thunderbolt 0000:00:0d.2:   NFC Credits: 0x83c00000
[    5.123603] thunderbolt 0000:00:0d.2:   Credits (total/control): 60/2
[    5.128604] thunderbolt 0000:00:0d.2:  Port 5: 8086:9a1f (Revision:
5, TB Version: 1, Type: DP/HDMI (0xe0101))
[    5.128617] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 9/9
[    5.128622] thunderbolt 0000:00:0d.2:   Max counters: 2
[    5.128625] thunderbolt 0000:00:0d.2:   NFC Credits: 0x4100000d
[    5.128627] thunderbolt 0000:00:0d.2:   Credits (total/control): 16/0
[    5.133597] thunderbolt 0000:00:0d.2:  Port 6: 8086:9a1f (Revision:
5, TB Version: 1, Type: DP/HDMI (0xe0101))
[    5.133605] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 9/9
[    5.133606] thunderbolt 0000:00:0d.2:   Max counters: 2
[    5.133607] thunderbolt 0000:00:0d.2:   NFC Credits: 0x100000d
[    5.133608] thunderbolt 0000:00:0d.2:   Credits (total/control): 16/0
[    5.146090] thunderbolt 0000:00:0d.2:  Port 7: 8086:9a1f (Revision:
5, TB Version: 1, Type: NHI (0x2))
[    5.146095] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 11/11
[    5.146096] thunderbolt 0000:00:0d.2:   Max counters: 16
[    5.146097] thunderbolt 0000:00:0d.2:   NFC Credits: 0x41800000
[    5.146098] thunderbolt 0000:00:0d.2:   Credits (total/control): 24/0
[    5.151093] thunderbolt 0000:00:0d.2:  Port 8: 8086:9a1f (Revision:
5, TB Version: 1, Type: PCIe (0x100101))
[    5.151104] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 8/8
[    5.151108] thunderbolt 0000:00:0d.2:   Max counters: 2
[    5.151110] thunderbolt 0000:00:0d.2:   NFC Credits: 0x40800000
[    5.151114] thunderbolt 0000:00:0d.2:   Credits (total/control): 8/0
[    5.156079] thunderbolt 0000:00:0d.2:  Port 9: 8086:9a1f (Revision:
5, TB Version: 1, Type: PCIe (0x100101))
[    5.156088] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 8/8
[    5.156091] thunderbolt 0000:00:0d.2:   Max counters: 2
[    5.156093] thunderbolt 0000:00:0d.2:   NFC Credits: 0x40800000
[    5.156096] thunderbolt 0000:00:0d.2:   Credits (total/control): 8/0
[    5.158692] thunderbolt 0000:00:0d.2:  Port 10: not implemented
[    5.161302] thunderbolt 0000:00:0d.2:  Port 11: not implemented
[    5.166290] thunderbolt 0000:00:0d.2:  Port 12: 8086:9a1f
(Revision: 5, TB Version: 1, Type: USB (0x200101))
[    5.166299] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 8/8
[    5.166302] thunderbolt 0000:00:0d.2:   Max counters: 2
[    5.166304] thunderbolt 0000:00:0d.2:   NFC Credits: 0x800000
[    5.166307] thunderbolt 0000:00:0d.2:   Credits (total/control): 8/0
[    5.171822] thunderbolt 0000:00:0d.2:  Port 13: 8086:9a1f
(Revision: 5, TB Version: 1, Type: USB (0x200101))
[    5.171825] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 8/8
[    5.171826] thunderbolt 0000:00:0d.2:   Max counters: 2
[    5.171826] thunderbolt 0000:00:0d.2:   NFC Credits: 0x800000
[    5.171827] thunderbolt 0000:00:0d.2:   Credits (total/control): 8/0
[    5.171828] thunderbolt 0000:00:0d.2: 0: linked ports 1 <-> 2
[    5.171829] thunderbolt 0000:00:0d.2: 0: linked ports 3 <-> 4
[    5.178167] thunderbolt 0000:00:0d.2: ICM rtd3 veto=0x00000000
[    5.182315] thunderbolt 0000:00:0d.2: current switch config:
[    5.182318] thunderbolt 0000:00:0d.2:  Thunderbolt 3 Switch:
8086:15ef (Revision: 6, TB Version: 16)
[    5.182321] thunderbolt 0000:00:0d.2:   Max Port Number: 13
[    5.182322] thunderbolt 0000:00:0d.2:   Config:
[    5.182323] thunderbolt 0000:00:0d.2:    Upstream Port Number: 1
Depth: 1 Route String: 0x1 Enabled: 1, PlugEventsDelay: 10ms
[    5.182325] thunderbolt 0000:00:0d.2:    unknown1: 0x0 unknown4: 0x0
[    5.687160] thunderbolt 0000:00:0d.2: 1: reading drom (length: 0x66)
[   12.349348] thunderbolt 0000:00:0d.2: 1: DROM version: 1
[   12.364493] thunderbolt 0000:00:0d.2: 1: uid: 0x16b26bdc8584100
[   12.402123] thunderbolt 0000:00:0d.2:  Port 1: 8086:15ef (Revision:
6, TB Version: 1, Type: Port (0x1))
[   12.402134] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 19/19
[   12.402138] thunderbolt 0000:00:0d.2:   Max counters: 16
[   12.402139] thunderbolt 0000:00:0d.2:   NFC Credits: 0x7800046
[   12.402142] thunderbolt 0000:00:0d.2:   Credits (total/control): 120/2
[   12.439798] thunderbolt 0000:00:0d.2:  Port 2: 8086:15ef (Revision:
6, TB Version: 1, Type: Port (0x1))
[   12.439809] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 19/19
[   12.439812] thunderbolt 0000:00:0d.2:   Max counters: 16
[   12.439814] thunderbolt 0000:00:0d.2:   NFC Credits: 0x0
[   12.439816] thunderbolt 0000:00:0d.2:   Credits (total/control): 0/2
[   12.439819] thunderbolt 0000:00:0d.2: 1:3: disabled by eeprom
[   12.439822] thunderbolt 0000:00:0d.2: 1:4: disabled by eeprom
[   12.439823] thunderbolt 0000:00:0d.2: 1:5: disabled by eeprom
[   12.439825] thunderbolt 0000:00:0d.2: 1:6: disabled by eeprom
[   12.439827] thunderbolt 0000:00:0d.2: 1:7: disabled by eeprom
[   12.444782] thunderbolt 0000:00:0d.2:  Port 8: 8086:15ef (Revision:
6, TB Version: 1, Type: PCIe (0x100102))
[   12.444791] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 8/8
[   12.444794] thunderbolt 0000:00:0d.2:   Max counters: 2
[   12.444795] thunderbolt 0000:00:0d.2:   NFC Credits: 0x800000
[   12.444797] thunderbolt 0000:00:0d.2:   Credits (total/control): 8/0
[   12.449813] thunderbolt 0000:00:0d.2:  Port 9: 8086:15ef (Revision:
6, TB Version: 1, Type: PCIe (0x100101))
[   12.449824] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 8/8
[   12.449827] thunderbolt 0000:00:0d.2:   Max counters: 2
[   12.449829] thunderbolt 0000:00:0d.2:   NFC Credits: 0x800000
[   12.449831] thunderbolt 0000:00:0d.2:   Credits (total/control): 8/0
[   12.459885] thunderbolt 0000:00:0d.2:  Port 10: 8086:15ef
(Revision: 6, TB Version: 1, Type: DP/HDMI (0xe0102))
[   12.459896] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 9/9
[   12.459899] thunderbolt 0000:00:0d.2:   Max counters: 2
[   12.459901] thunderbolt 0000:00:0d.2:   NFC Credits: 0x800000
[   12.459903] thunderbolt 0000:00:0d.2:   Credits (total/control): 8/0
[   12.469951] thunderbolt 0000:00:0d.2:  Port 11: 8086:15ef
(Revision: 6, TB Version: 1, Type: DP/HDMI (0xe0102))
[   12.469962] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 9/9
[   12.469965] thunderbolt 0000:00:0d.2:   Max counters: 2
[   12.469966] thunderbolt 0000:00:0d.2:   NFC Credits: 0x800000
[   12.469968] thunderbolt 0000:00:0d.2:   Credits (total/control): 8/0
[   12.475010] thunderbolt 0000:00:0d.2:  Port 12: 8086:15ea
(Revision: 6, TB Version: 1, Type: Inactive (0x0))
[   12.475021] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 8/8
[   12.475024] thunderbolt 0000:00:0d.2:   Max counters: 2
[   12.475025] thunderbolt 0000:00:0d.2:   NFC Credits: 0x800000
[   12.475027] thunderbolt 0000:00:0d.2:   Credits (total/control): 8/0
[   12.480040] thunderbolt 0000:00:0d.2:  Port 13: 8086:15ea
(Revision: 6, TB Version: 1, Type: Inactive (0x0))
[   12.480055] thunderbolt 0000:00:0d.2:   Max hop id (in/out): 8/8
[   12.480058] thunderbolt 0000:00:0d.2:   Max counters: 2
[   12.480059] thunderbolt 0000:00:0d.2:   NFC Credits: 0x800000
[   12.480061] thunderbolt 0000:00:0d.2:   Credits (total/control): 8/0
[   12.480147] thunderbolt 0-1: new device found, vendor=0x16b device=0x9010
[   12.480150] thunderbolt 0-1: i-tec TB3CDUALDPDOCKPD
[   12.500425] thunderbolt 0000:00:0d.2: ICM rtd3 veto=0x00000001
[   12.500434] thunderbolt 0000:00:0d.2: ICM rtd3 veto=0x00000000
[   12.500438] thunderbolt 0000:00:0d.2: ICM rtd3 veto=0x00000001

********** $ cat /sys/kernel/debug/thunderbolt/0-0/port5/regs
********************
# offset relative_offset cap_id vs_cap_id value
0x0000    0 0x00 0x00 0x9a1f8086
0x0001    1 0x00 0x00 0x05080239
0x0002    2 0x00 0x00 0x010e0101
0x0003    3 0x00 0x00 0x80500010
0x0004    4 0x00 0x00 0x4100000d
0x0005    5 0x00 0x00 0x00004809
0x0006    6 0x00 0x00 0x00000000
0x0007    7 0x00 0x00 0x00000000
0x0008    8 0x00 0x00 0x00000000
0x0039    0 0x04 0x00 0xc009048f
0x003a    1 0x04 0x00 0x00004008
0x003b    2 0x04 0x00 0x8d10214a
0x003c    3 0x04 0x00 0x3f290005
0x003d    4 0x04 0x00 0x80c0a334
0x003e    5 0x04 0x00 0x88c0a234
0x003f    6 0x04 0x00 0x00000204
0x0040    7 0x04 0x00 0x88c0a234
0x008f    0 0x05 0x00 0x40000500
0x0090    1 0x05 0x00 0x00000000
0x0091    2 0x05 0x00 0x00000000
0x0092    3 0x05 0x00 0x00000000
0x0093    4 0x05 0x00 0x00000000
0x0094    5 0x05 0x00 0x00000000
0x0095    6 0x05 0x00 0x00000000
0x0096    7 0x05 0x00 0x00000000
0x0097    8 0x05 0x00 0x00000000
0x0098    9 0x05 0x00 0x00000000
0x0099   10 0x05 0x00 0x00000000
0x009a   11 0x05 0x00 0x00000000
0x009b   12 0x05 0x00 0x00000000
0x009c   13 0x05 0x00 0x00000000
0x009d   14 0x05 0x00 0x00000000
0x009e   15 0x05 0x00 0x00000000
0x009f   16 0x05 0x00 0x00000000
0x00a0   17 0x05 0x00 0x00000000
0x00a1   18 0x05 0x00 0x00000000
0x00a2   19 0x05 0x00 0x00000000
0x00a3   20 0x05 0x00 0x00000000
0x00a4   21 0x05 0x00 0x00000000
0x00a5   22 0x05 0x00 0x00000000
0x00a6   23 0x05 0x00 0x00000000
0x00a7   24 0x05 0x00 0x00000000
0x00a8   25 0x05 0x00 0x00000000
0x00a9   26 0x05 0x00 0x00000000
0x00aa   27 0x05 0x00 0x00000000
0x00ab   28 0x05 0x00 0x00000000
0x00ac   29 0x05 0x00 0x00000000
0x00ad   30 0x05 0x00 0x00000000
0x00ae   31 0x05 0x00 0x00000000
0x00af   32 0x05 0x00 0x00000000
0x00b0   33 0x05 0x00 0x00000000
0x00b1   34 0x05 0x00 0x00000000
0x00b2   35 0x05 0x00 0x00000000
0x00b3   36 0x05 0x00 0x00000000
0x00b4   37 0x05 0x00 0x00000000
0x00b5   38 0x05 0x00 0x00000000
0x00b6   39 0x05 0x00 0x00000000
0x00b7   40 0x05 0x00 0x00000000
0x00b8   41 0x05 0x00 0x00000000
0x00b9   42 0x05 0x00 0x00000000
0x00ba   43 0x05 0x00 0x00000000
0x00bb   44 0x05 0x00 0x00000000
0x00bc   45 0x05 0x00 0x00000000
0x00bd   46 0x05 0x00 0x00000000
0x00be   47 0x05 0x00 0x00000000
0x00bf   48 0x05 0x00 0x00000000
0x00c0   49 0x05 0x00 0x00000000
0x00c1   50 0x05 0x00 0x00000000
0x00c2   51 0x05 0x00 0x00000000
0x00c3   52 0x05 0x00 0x00000000
0x00c4   53 0x05 0x00 0x00000000
0x00c5   54 0x05 0x00 0x00000000
0x00c6   55 0x05 0x00 0x00000000
0x00c7   56 0x05 0x00 0x00000000
0x00c8   57 0x05 0x00 0x00000000
0x00c9   58 0x05 0x00 0x00000000
0x00ca   59 0x05 0x00 0x00000000
0x00cb   60 0x05 0x00 0x00000000
0x00cc   61 0x05 0x00 0x00000000
0x00cd   62 0x05 0x00 0x00000000
0x00ce   63 0x05 0x00 0x00000000

********** $ cat /sys/kernel/debug/thunderbolt/0-0/port6/regs
********************
# offset relative_offset cap_id vs_cap_id value
0x0000    0 0x00 0x00 0x9a1f8086
0x0001    1 0x00 0x00 0x05080239
0x0002    2 0x00 0x00 0x010e0101
0x0003    3 0x00 0x00 0x80600010
0x0004    4 0x00 0x00 0x0100000d
0x0005    5 0x00 0x00 0x00004809
0x0006    6 0x00 0x00 0x00000000
0x0007    7 0x00 0x00 0x00000000
0x0008    8 0x00 0x00 0x00000000
0x0039    0 0x04 0x00 0x0009048f
0x003a    1 0x04 0x00 0x00004008
0x003b    2 0x04 0x00 0x46102102
0x003c    3 0x04 0x00 0x00410005
0x003d    4 0x04 0x00 0x00c0a334
0x003e    5 0x04 0x00 0x00000000
0x003f    6 0x04 0x00 0x00000000
0x0040    7 0x04 0x00 0x00000000
0x008f    0 0x05 0x00 0x40000500
0x0090    1 0x05 0x00 0x00000000
0x0091    2 0x05 0x00 0x00000000
0x0092    3 0x05 0x00 0x00000000
0x0093    4 0x05 0x00 0x00000000
0x0094    5 0x05 0x00 0x00000000
0x0095    6 0x05 0x00 0x00000000
0x0096    7 0x05 0x00 0x00000000
0x0097    8 0x05 0x00 0x00000000
0x0098    9 0x05 0x00 0x00000000
0x0099   10 0x05 0x00 0x00000000
0x009a   11 0x05 0x00 0x00000000
0x009b   12 0x05 0x00 0x00000000
0x009c   13 0x05 0x00 0x00000000
0x009d   14 0x05 0x00 0x00000000
0x009e   15 0x05 0x00 0x00000000
0x009f   16 0x05 0x00 0x00000000
0x00a0   17 0x05 0x00 0x00000000
0x00a1   18 0x05 0x00 0x00000000
0x00a2   19 0x05 0x00 0x00000000
0x00a3   20 0x05 0x00 0x00000000
0x00a4   21 0x05 0x00 0x00000000
0x00a5   22 0x05 0x00 0x00000000
0x00a6   23 0x05 0x00 0x00000000
0x00a7   24 0x05 0x00 0x00000000
0x00a8   25 0x05 0x00 0x00000000
0x00a9   26 0x05 0x00 0x00000000
0x00aa   27 0x05 0x00 0x00000000
0x00ab   28 0x05 0x00 0x00000000
0x00ac   29 0x05 0x00 0x00000000
0x00ad   30 0x05 0x00 0x00000000
0x00ae   31 0x05 0x00 0x00000000
0x00af   32 0x05 0x00 0x00000000
0x00b0   33 0x05 0x00 0x00000000
0x00b1   34 0x05 0x00 0x00000000
0x00b2   35 0x05 0x00 0x00000000
0x00b3   36 0x05 0x00 0x00000000
0x00b4   37 0x05 0x00 0x00000000
0x00b5   38 0x05 0x00 0x00000000
0x00b6   39 0x05 0x00 0x00000000
0x00b7   40 0x05 0x00 0x00000000
0x00b8   41 0x05 0x00 0x00000000
0x00b9   42 0x05 0x00 0x00000000
0x00ba   43 0x05 0x00 0x00000000
0x00bb   44 0x05 0x00 0x00000000
0x00bc   45 0x05 0x00 0x00000000
0x00bd   46 0x05 0x00 0x00000000
0x00be   47 0x05 0x00 0x00000000
0x00bf   48 0x05 0x00 0x00000000
0x00c0   49 0x05 0x00 0x00000000
0x00c1   50 0x05 0x00 0x00000000
0x00c2   51 0x05 0x00 0x00000000
0x00c3   52 0x05 0x00 0x00000000
0x00c4   53 0x05 0x00 0x00000000
0x00c5   54 0x05 0x00 0x00000000
0x00c6   55 0x05 0x00 0x00000000
0x00c7   56 0x05 0x00 0x00000000
0x00c8   57 0x05 0x00 0x00000000
0x00c9   58 0x05 0x00 0x00000000
0x00ca   59 0x05 0x00 0x00000000
0x00cb   60 0x05 0x00 0x00000000
0x00cc   61 0x05 0x00 0x00000000
0x00cd   62 0x05 0x00 0x00000000
0x00ce   63 0x05 0x00 0x00000000

********** $ cat /sys/kernel/debug/thunderbolt/0-1/port10/regs
********************
# offset relative_offset cap_id vs_cap_id value
0x0000    0 0x00 0x00 0x15ef8086
0x0001    1 0x00 0x00 0x0608020a
0x0002    2 0x00 0x00 0x010e0102
0x0003    3 0x00 0x00 0x80a00008
0x0004    4 0x00 0x00 0x00800000
0x0005    5 0x00 0x00 0x00004809
0x0006    6 0x00 0x00 0x00000000
0x0007    7 0x00 0x00 0x00000000
0x0008    8 0x00 0x00 0x00000000
0x000a    0 0x03 0x00 0x00000339
0x000b    1 0x03 0x00 0x40110005
0x000c    2 0x03 0x00 0x00000000
0x000d    3 0x03 0x00 0x00000000
0x000e    4 0x03 0x00 0xffffffff
0x000f    5 0x03 0x00 0x00000000
0x0010    6 0x03 0x00 0x000009c4
0x0011    7 0x03 0x00 0x00c80002
0x0039    0 0x04 0x00 0xc009044f
0x003a    1 0x04 0x00 0x00004008
0x003b    2 0x04 0x00 0x000fff40
0x003c    3 0x04 0x00 0x3a290005
0x003d    4 0x04 0x00 0x00c0a234
0x003e    5 0x04 0x00 0x00c0a334
0x003f    6 0x04 0x00 0x04000204
0x0040    7 0x04 0x00 0x00c0a234
0x004f    0 0x05 0x01 0x40010500
0x0050    1 0x05 0x01 0x00000000
0x0051    2 0x05 0x01 0x0000d282
0x0052    3 0x05 0x01 0x00000000
0x0053    4 0x05 0x01 0x00000004
0x0054    5 0x05 0x01 0x00000000
0x0055    6 0x05 0x01 0x00000000
0x0056    7 0x05 0x01 0x00000000
0x0057    8 0x05 0x01 0x00000000
0x0058    9 0x05 0x01 0x00000000
0x0059   10 0x05 0x01 0x00000000
0x005a   11 0x05 0x01 0x00000000
0x005b   12 0x05 0x01 0x00000000
0x005c   13 0x05 0x01 0x00000000
0x005d   14 0x05 0x01 0x00000000
0x005e   15 0x05 0x01 0x00000000
0x005f   16 0x05 0x01 0x00000000
0x0060   17 0x05 0x01 0x00000000
0x0061   18 0x05 0x01 0x00000000
0x0062   19 0x05 0x01 0x00000000
0x0063   20 0x05 0x01 0x00000000
0x0064   21 0x05 0x01 0x00000000
0x0065   22 0x05 0x01 0x00000000
0x0066   23 0x05 0x01 0x00000000
0x0067   24 0x05 0x01 0x00000000
0x0068   25 0x05 0x01 0x00000000
0x0069   26 0x05 0x01 0x00000000
0x006a   27 0x05 0x01 0x00000000
0x006b   28 0x05 0x01 0x00000000
0x006c   29 0x05 0x01 0x00000000
0x006d   30 0x05 0x01 0x00000000
0x006e   31 0x05 0x01 0x00000000
0x006f   32 0x05 0x01 0x00000000
0x0070   33 0x05 0x01 0x00000000
0x0071   34 0x05 0x01 0x00000000
0x0072   35 0x05 0x01 0x00000000
0x0073   36 0x05 0x01 0x00000000
0x0074   37 0x05 0x01 0x00000000
0x0075   38 0x05 0x01 0x00000000
0x0076   39 0x05 0x01 0x00000000
0x0077   40 0x05 0x01 0x00000000
0x0078   41 0x05 0x01 0x00000000
0x0079   42 0x05 0x01 0x00000000
0x007a   43 0x05 0x01 0x00000000
0x007b   44 0x05 0x01 0x00000000
0x007c   45 0x05 0x01 0x00000000
0x007d   46 0x05 0x01 0x00000000
0x007e   47 0x05 0x01 0x00000000
0x007f   48 0x05 0x01 0x0000000a
0x0080   49 0x05 0x01 0x06410641
0x0081   50 0x05 0x01 0x00000000
0x0082   51 0x05 0x01 0x00000000
0x0083   52 0x05 0x01 0x00000000
0x0084   53 0x05 0x01 0x00000000
0x0085   54 0x05 0x01 0x00000000
0x0086   55 0x05 0x01 0x00000000
0x0087   56 0x05 0x01 0x00000000
0x0088   57 0x05 0x01 0x00000000
0x0089   58 0x05 0x01 0x00000000
0x008a   59 0x05 0x01 0x00000000
0x008b   60 0x05 0x01 0x00000000
0x008c   61 0x05 0x01 0x00000000
0x008d   62 0x05 0x01 0x00000000
0x008e   63 0x05 0x01 0x00000000

********** $ cat /sys/kernel/debug/thunderbolt/0-1/port11/regs
********************
# offset relative_offset cap_id vs_cap_id value
0x0000    0 0x00 0x00 0x15ef8086
0x0001    1 0x00 0x00 0x0608020a
0x0002    2 0x00 0x00 0x010e0102
0x0003    3 0x00 0x00 0x80b00008
0x0004    4 0x00 0x00 0x00800000
0x0005    5 0x00 0x00 0x00004809
0x0006    6 0x00 0x00 0x00000000
0x0007    7 0x00 0x00 0x00000000
0x0008    8 0x00 0x00 0x00000000
0x000a    0 0x03 0x00 0x00000339
0x000b    1 0x03 0x00 0x40110005
0x000c    2 0x03 0x00 0x00000000
0x000d    3 0x03 0x00 0x00000000
0x000e    4 0x03 0x00 0xffffffff
0x000f    5 0x03 0x00 0x00000000
0x0010    6 0x03 0x00 0x000009c4
0x0011    7 0x03 0x00 0x00c80002
0x0039    0 0x04 0x00 0x0009044f
0x003a    1 0x04 0x00 0x00004008
0x003b    2 0x04 0x00 0x000fff40
0x003c    3 0x04 0x00 0x00400005
0x003d    4 0x04 0x00 0x00c0a234
0x003e    5 0x04 0x00 0x00000000
0x003f    6 0x04 0x00 0x04000000
0x0040    7 0x04 0x00 0x00c0a234
0x004f    0 0x05 0x01 0x34010500
0x0050    1 0x05 0x01 0x34010500
0x0051    2 0x05 0x01 0x34010500
0x0052    3 0x05 0x01 0x34010500
0x0053    4 0x05 0x01 0x34010500
0x0054    5 0x05 0x01 0x34010500
0x0055    6 0x05 0x01 0x34010500
0x0056    7 0x05 0x01 0x34010500
0x0057    8 0x05 0x01 0x34010500
0x0058    9 0x05 0x01 0x34010500
0x0059   10 0x05 0x01 0x34010500
0x005a   11 0x05 0x01 0x34010500
0x005b   12 0x05 0x01 0x34010500
0x005c   13 0x05 0x01 0x34010500
0x005d   14 0x05 0x01 0x34010500
0x005e   15 0x05 0x01 0x34010500
0x005f   16 0x05 0x01 0x34010500
0x0060   17 0x05 0x01 0x34010500
0x0061   18 0x05 0x01 0x34010500
0x0062   19 0x05 0x01 0x34010500
0x0063   20 0x05 0x01 0x34010500
0x0064   21 0x05 0x01 0x34010500
0x0065   22 0x05 0x01 0x34010500
0x0066   23 0x05 0x01 0x34010500
0x0067   24 0x05 0x01 0x34010500
0x0068   25 0x05 0x01 0x34010500
0x0069   26 0x05 0x01 0x34010500
0x006a   27 0x05 0x01 0x34010500
0x006b   28 0x05 0x01 0x34010500
0x006c   29 0x05 0x01 0x34010500
0x006d   30 0x05 0x01 0x34010500
0x006e   31 0x05 0x01 0x34010500
0x006f   32 0x05 0x01 0x34010500
0x0070   33 0x05 0x01 0x34010500
0x0071   34 0x05 0x01 0x34010500
0x0072   35 0x05 0x01 0x34010500
0x0073   36 0x05 0x01 0x34010500
0x0074   37 0x05 0x01 0x34010500
0x0075   38 0x05 0x01 0x34010500
0x0076   39 0x05 0x01 0x34010500
0x0077   40 0x05 0x01 0x34010500
0x0078   41 0x05 0x01 0x34010500
0x0079   42 0x05 0x01 0x34010500
0x007a   43 0x05 0x01 0x34010500
0x007b   44 0x05 0x01 0x34010500
0x007c   45 0x05 0x01 0x34010500
0x007d   46 0x05 0x01 0x34010500
0x007e   47 0x05 0x01 0x34010500
0x007f   48 0x05 0x01 0x0000000a
0x0080   49 0x05 0x01 0x06410641
0x0081   50 0x05 0x01 0x00000000
0x0082   51 0x05 0x01 0x00000000

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Thunderbolt: One missing DisplayPort?
  2022-05-30 18:57               ` Stefan Hoffmeister
@ 2022-05-31  9:36                 ` Mika Westerberg
  2022-05-31 19:45                   ` Stefan Hoffmeister
  0 siblings, 1 reply; 19+ messages in thread
From: Mika Westerberg @ 2022-05-31  9:36 UTC (permalink / raw)
  To: Stefan Hoffmeister; +Cc: Tomasz Moń, Heikki Krogerus, linux-usb

Hi,

On Mon, May 30, 2022 at 08:57:34PM +0200, Stefan Hoffmeister wrote:
> ********** $ cat /sys/kernel/debug/thunderbolt/0-0/port5/regs
> ********************
> # offset relative_offset cap_id vs_cap_id value
> 0x0000    0 0x00 0x00 0x9a1f8086
> 0x0001    1 0x00 0x00 0x05080239
> 0x0002    2 0x00 0x00 0x010e0101
> 0x0003    3 0x00 0x00 0x80500010
> 0x0004    4 0x00 0x00 0x4100000d
> 0x0005    5 0x00 0x00 0x00004809
> 0x0006    6 0x00 0x00 0x00000000
> 0x0007    7 0x00 0x00 0x00000000
> 0x0008    8 0x00 0x00 0x00000000
> 0x0039    0 0x04 0x00 0xc009048f

The bits 31:30 tell that this tunnel is active.

> ********** $ cat /sys/kernel/debug/thunderbolt/0-0/port6/regs
> ********************
> # offset relative_offset cap_id vs_cap_id value
> 0x0000    0 0x00 0x00 0x9a1f8086
> 0x0001    1 0x00 0x00 0x05080239
> 0x0002    2 0x00 0x00 0x010e0101
> 0x0003    3 0x00 0x00 0x80600010
> 0x0004    4 0x00 0x00 0x0100000d
> 0x0005    5 0x00 0x00 0x00004809
> 0x0006    6 0x00 0x00 0x00000000
> 0x0007    7 0x00 0x00 0x00000000
> 0x0008    8 0x00 0x00 0x00000000
> 0x0039    0 0x04 0x00 0x0009048f

This one is not.

> ********** $ cat /sys/kernel/debug/thunderbolt/0-1/port11/regs
> ********************
> # offset relative_offset cap_id vs_cap_id value
> 0x0000    0 0x00 0x00 0x15ef8086
> 0x0001    1 0x00 0x00 0x0608020a
> 0x0002    2 0x00 0x00 0x010e0102
> 0x0003    3 0x00 0x00 0x80b00008
> 0x0004    4 0x00 0x00 0x00800000
> 0x0005    5 0x00 0x00 0x00004809
> 0x0006    6 0x00 0x00 0x00000000
> 0x0007    7 0x00 0x00 0x00000000
> 0x0008    8 0x00 0x00 0x00000000
> 0x000a    0 0x03 0x00 0x00000339
> 0x000b    1 0x03 0x00 0x40110005
> 0x000c    2 0x03 0x00 0x00000000
> 0x000d    3 0x03 0x00 0x00000000
> 0x000e    4 0x03 0x00 0xffffffff
> 0x000f    5 0x03 0x00 0x00000000
> 0x0010    6 0x03 0x00 0x000009c4
> 0x0011    7 0x03 0x00 0x00c80002
> 0x0039    0 0x04 0x00 0x0009044f
> 0x003a    1 0x04 0x00 0x00004008
> 0x003b    2 0x04 0x00 0x000fff40
> 0x003c    3 0x04 0x00 0x00400005
> 0x003d    4 0x04 0x00 0x00c0a234

This is the "local" capability and it tells that this one supports MST
(bit 15).

I wonder if this dock has the two DP outputs behind a MST "hub" or so?
I've seen such devices out there. This would explain why there is only
single DP tunnel active.

I don't remember if you already mentioned but have you tried to connect
the second monitor to the USB-C downstream ports on that dock? At least
for some docks this is where the second DP OUT adapter is routed.

If the second DP tunnel gets activated you should also see bits 31:30 of
the port6/regs to be set by the connection manager firmware.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Thunderbolt: One missing DisplayPort?
  2022-05-31  9:36                 ` Mika Westerberg
@ 2022-05-31 19:45                   ` Stefan Hoffmeister
  2022-06-01 10:51                     ` Mika Westerberg
  0 siblings, 1 reply; 19+ messages in thread
From: Stefan Hoffmeister @ 2022-05-31 19:45 UTC (permalink / raw)
  To: Mika Westerberg; +Cc: Tomasz Moń, Heikki Krogerus, linux-usb

Hi, fascinating, so only one Thunderbolt tunnel is established by the
Thunderbolt connection manager firmware on the Dell Inspiron 7610,
despite two screens being connected via DisplayPort.

On Tue, May 31, 2022 at 11:38 AM Mika Westerberg
<mika.westerberg@linux.intel.com> wrote:
>
> > 0x0039    0 0x04 0x00 0xc009048f
> >
> The bits 31:30 tell that this tunnel is active.

> > 0x0039    0 0x04 0x00 0x0009048f
>
> This one is not.

I have a second notebook, a Dell XPS 9360 Kaby Lake generation, and
there the situation (everything else identical) is

[root@desktop-9c4gf7m ~]# dmesg | grep thunderbolt | grep HDMI
[    6.631731] thunderbolt 0000:03:00.0:  Port 9: 8086:1576 (Revision:
4, TB Version: 1, Type: DP/HDMI (0xe0101))
[    6.631989] thunderbolt 0000:03:00.0:  Port 10: 8086:1576
(Revision: 4, TB Version: 1, Type: DP/HDMI (0xe0101))
[    7.046273] thunderbolt 0000:03:00.0:  Port 10: 8086:15ef
(Revision: 6, TB Version: 1, Type: DP/HDMI (0xe0102))
[    7.046769] thunderbolt 0000:03:00.0:  Port 11: 8086:15ef
(Revision: 6, TB Version: 1, Type: DP/HDMI (0xe0102))

cat /sys/kernel/debug/thunderbolt/0-0/port9/regs | grep -E ^0x0039
0x0039    0 0x04 0x00 0xc009044f

cat /sys/kernel/debug/thunderbolt/0-0/port10/regs | grep -E ^0x0039
0x0039    0 0x04 0x00 0xc009044f

This would suggest that, on the XPS 9360, two Thunderbolt tunnels were
established (by the Thunderbolt connection manager firmware), which is
matched with both the 2.5K and the 4K screen working at 60 Hz.

>
> > ********** $ cat /sys/kernel/debug/thunderbolt/0-1/port11/regs
...
> > 0x003d    4 0x04 0x00 0x00c0a234
>
> This is the "local" capability and it tells that this one supports MST
> (bit 15).
>
> I wonder if this dock has the two DP outputs behind a MST "hub" or so?

The content of https://i-tec.pro/en/produkt/tb3cdualdpdockpd-2/
mentions "2x DisplayPort (1x DP++ support)" (where DP++ ==  Dual-mode
== DisplayPort++ - and "active vs passive" whatever that means). There
is no mention of MST anywhere, and my screens are each on their own
port.

For the dock registers, while connected to the XPS 9360, I get

[root@desktop-9c4gf7m ~]# cat
/sys/kernel/debug/thunderbolt/0-1/port10/regs | grep -E ^0x003d
0x003d    4 0x04 0x00 0x00c0a214
[root@desktop-9c4gf7m ~]# cat
/sys/kernel/debug/thunderbolt/0-1/port11/regs | grep -E ^0x003d
0x003d    4 0x04 0x00 0x00c0a214

which would imply MST in both cases?

> I don't remember if you already mentioned but have you tried to connect
> the second monitor to the USB-C downstream ports on that dock? At least
> for some docks this is where the second DP OUT adapter is routed.

I own a USB-C to DisplayPort adapter; trying to go 2.5K screen ->
DisplayPort adapter -> USB-C port on both of the USB-C ports of the
dock did not impress the screen one bit. The specs say "2x USB-C Gen 2
port (10 Gbps, for data only)", so I am not surprised.

> If the second DP tunnel gets activated you should also see bits 31:30 of
> the port6/regs to be set by the connection manager firmware.

That's what I do see for the XPS 9360, but not for the Dell Inspiron 7610.

On the (working) XPS 9360,

boltctl list
● i-tec TB3CDUALDPDOCKPD
  ├─ type:          peripheral
  ├─ name:          TB3CDUALDPDOCKPD
  ├─ vendor:        i-tec
  ├─ uuid:          c0030000-0080-840e-83dc-6b1282b06021
  ├─ generation:    Thunderbolt 3
  ├─ status:        authorized
  │  ├─ domain:     df010000-0062-6508-a2e8-71d78a74c118
  │  ├─ rx speed:   40 Gb/s = 2 lanes * 20 Gb/s
  │  ├─ tx speed:   40 Gb/s = 2 lanes * 20 Gb/s
  │  └─ authflags:  none
  ├─ authorized:    Di 31 Mai 2022 16:38:55
  ├─ connected:     Di 31 Mai 2022 16:38:51
  └─ stored:        Fr 20 Aug 2021 08:52:32
     ├─ policy:     auto
     └─ key:        no

On the (broken) Inspiron 7610,

● i-tec TB3CDUALDPDOCKPD
  ├─ type:          peripheral
  ├─ name:          TB3CDUALDPDOCKPD
  ├─ vendor:        i-tec
  ├─ uuid:          004158c8-bd26-6b01-ffff-ffffffffffff
  ├─ generation:    Thunderbolt 3
  ├─ status:        authorized
  │  ├─ domain:     606de333-0530-8780-ffff-ffffffffffff
  │  ├─ rx speed:   40 Gb/s = 2 lanes * 20 Gb/s
  │  ├─ tx speed:   40 Gb/s = 2 lanes * 20 Gb/s
  │  └─ authflags:  none
  ├─ authorized:    Tue 31 May 2022 05:49:01 PM UTC
  ├─ connected:     Tue 31 May 2022 05:49:01 PM UTC
  └─ stored:        Tue 10 May 2022 06:48:15 PM UTC
     ├─ policy:     iommu
     └─ key:        no

With respect to NVM versions (which, I think, would be the Thunderbolt
connection manager?), I get

* dock == 50.0 (cat /sys/bus/thunderbolt/devices/0-1/nvm_version)
* XPS 9360 == 26.1 (cat /sys/bus/thunderbolt/devices/0-0/nvm_version)
* Inspiron 7610 = ??? - I don't see nvm_version here?

What could be reasons that the second tunnel is not established on the
Dell? I read somewhere that Intel hands off the firmware to vendors
(Dell) who then customize it for their systems? Could the vendor have
made bad customizations / configurations of that package while
integrating it?

I would imagine that plugging in a DisplayPort cable makes the dock
(firmware) signal something to the notebook (TB firmware) and a
negotiation will take place. That negotiation fails, otherwise the
tunnel would be established, and remain established? Is there a means
to trace the negotiation?

FWIW, I have read the phrase "insufficent provision of GPU Interfaces
to the TB port" (sic, on Reddit), and a lengthy related post at
https://www.dell.com/community/XPS/Understanding-Thunderbolt-docks-GPU-bandwidth-and-GPU-interfaces/td-p/7678776
which I will not pretend to understand.

What I wonder about is whether the "GPU interfaces" situation would be
reliably discoverable by inspecting ... something ... anything?

Anyway, my impression, from a layering point of view, is that on the
stack (my imagination!)

* notebook hardware
* firmware (BIOS, Thunderbolt firmware / connection manager, ...)
* Linux thunderbolt driver
* Linux graphics drivers: drm / kms (i915 / nvidia / nouveau)

the graphics drivers are not involved when it comes to building /
maintaining the Thunderbolt(!) tunnel?

I am also reading "Thunderbolt Alternate Mode encapsulates DisplayPort
Alternate Mode". To my ears this sounds like "wrap the raw DisplayPort
Alternate Mode bitstream", just with more bandwidth. Pure "DisplayPort
Alternate Mode" I can force with success by way of disabling
Thunderbolt in the BIOS (at the expense of bandwidth -> bad refresh
rate). And "DisplayPort Alternate Mode" gives me _both_ screens,
apparently very much scraping along at the max protocol bandwidth,
with the 4K screen going black (out of sync?) every once in a while.

Sorry for my rambling, this is an area where I have no expertise.

Anyway, if those graphics drivers are involved for _Thunderbolt_,
please do tell me, and I'll venture over to dri-devel.

And given what I see above, is that still "Thunderbolt 4 Certified"
("Two 4K displays") in the case of the Dell Inspiron 7610?

BR and many thanks for your patience!
Stefan

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Thunderbolt: One missing DisplayPort?
  2022-05-31 19:45                   ` Stefan Hoffmeister
@ 2022-06-01 10:51                     ` Mika Westerberg
  0 siblings, 0 replies; 19+ messages in thread
From: Mika Westerberg @ 2022-06-01 10:51 UTC (permalink / raw)
  To: Stefan Hoffmeister; +Cc: Tomasz Moń, Heikki Krogerus, linux-usb

Hi,

On Tue, May 31, 2022 at 09:45:55PM +0200, Stefan Hoffmeister wrote:
> What could be reasons that the second tunnel is not established on the
> Dell? I read somewhere that Intel hands off the firmware to vendors
> (Dell) who then customize it for their systems? Could the vendor have
> made bad customizations / configurations of that package while
> integrating it?

Probably not a firmware issue.

> I would imagine that plugging in a DisplayPort cable makes the dock
> (firmware) signal something to the notebook (TB firmware) and a
> negotiation will take place. That negotiation fails, otherwise the
> tunnel would be established, and remain established? Is there a means
> to trace the negotiation?

It is all done in firmware but when you plug in DisplayPort cable to the
dock, it generates a hotplug event for that DP OUT adapter and this will
then be handled by the firmware connection manager by establishing a DP
tunnel (if it finds resources).

> FWIW, I have read the phrase "insufficent provision of GPU Interfaces
> to the TB port" (sic, on Reddit), and a lengthy related post at
> https://www.dell.com/community/XPS/Understanding-Thunderbolt-docks-GPU-bandwidth-and-GPU-interfaces/td-p/7678776
> which I will not pretend to understand.
> 
> What I wonder about is whether the "GPU interfaces" situation would be
> reliably discoverable by inspecting ... something ... anything?
> 
> Anyway, my impression, from a layering point of view, is that on the
> stack (my imagination!)
> 
> * notebook hardware
> * firmware (BIOS, Thunderbolt firmware / connection manager, ...)
> * Linux thunderbolt driver
> * Linux graphics drivers: drm / kms (i915 / nvidia / nouveau)
> 
> the graphics drivers are not involved when it comes to building /
> maintaining the Thunderbolt(!) tunnel?

Correct.

> I am also reading "Thunderbolt Alternate Mode encapsulates DisplayPort
> Alternate Mode". To my ears this sounds like "wrap the raw DisplayPort
> Alternate Mode bitstream", just with more bandwidth. Pure "DisplayPort
> Alternate Mode" I can force with success by way of disabling
> Thunderbolt in the BIOS (at the expense of bandwidth -> bad refresh
> rate). And "DisplayPort Alternate Mode" gives me _both_ screens,
> apparently very much scraping along at the max protocol bandwidth,
> with the 4K screen going black (out of sync?) every once in a while.
> 
> Sorry for my rambling, this is an area where I have no expertise.
> 
> Anyway, if those graphics drivers are involved for _Thunderbolt_,
> please do tell me, and I'll venture over to dri-devel.

In case of firmware based connection manager, the Thunderbolt driver
does not do much. Pretty much just the PCIe tunnel authorization and
power management things (and P2P).

IIRC this non-working system had a discrete (NVIDIA?) GPU? It may be
that routing it to the DP IN adapters in the Thunderbolt host router
requires something we don't implement in Linux side yet.

> And given what I see above, is that still "Thunderbolt 4 Certified"
> ("Two 4K displays") in the case of the Dell Inspiron 7610?

This I don't know I would expect Dell testing this, at least with their
own dock.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Thunderbolt: One missing DisplayPort?
  2022-05-30  9:54             ` Mika Westerberg
  2022-05-30 18:57               ` Stefan Hoffmeister
@ 2022-06-02 19:34               ` Tomasz Moń
  2022-06-03  5:04                 ` Mika Westerberg
  2022-06-07 17:28                 ` Stefan Hoffmeister
  1 sibling, 2 replies; 19+ messages in thread
From: Tomasz Moń @ 2022-06-02 19:34 UTC (permalink / raw)
  To: Mika Westerberg; +Cc: Stefan Hoffmeister, Heikki Krogerus, linux-usb

On Mon, 2022-05-30 at 12:54 +0300, Mika Westerberg wrote:
> On Mon, May 30, 2022 at 10:33:06AM +0200, Tomasz Moń wrote:
> > On Sun, 2022-05-29 at 21:51 +0200, Stefan Hoffmeister wrote:
> > > I have managed to wedge the system into a state where it does not
> > > know about Thunderbolt, and now, on what I presume to be USB-C only
> > > ("usb_typec_revision" == 1.2? Seems ... low?), both DisplayPort
> > > outputs on the docking station are now active, and I do get
> > > meaningful entries from the DRM subsystem (and hence X). I am half-
> > > way happy: I want exactly that over Thunderbolt for the bandwidth ;)
> > 
> > Could you please tell how did you wedge the system into a state where
> > it does not know about Thunderbolt?
> > 
> > > Now, when I unwedge the system to enable Thunderbolt again
> > 
> > I am curious about the wedge/unwedge procedure.
> 
> Probably just connecting the dock using non-Thunderbolt Type-C cable.
> That will enter USB (+DP altmode) or so instead of Thunderbolt altmode.

How do I determine that the cable is non-Thunderbolt Type-C?

I have tried with two different brands 1m USB Type-C cables that are
not advertised as Thunderbolt. Both cables are electronically marked
and 5A capable. When the docking station is connected using these
cables, it operates in Thunderbolt mode.

If the device was operating in USB (+DP altmode), I assume that boltctl
would show that the docking station status as disconnected?

Can I read the cable EMCA details in Linux?

Best Regards,
Tomasz Moń

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Thunderbolt: One missing DisplayPort?
  2022-06-02 19:34               ` Tomasz Moń
@ 2022-06-03  5:04                 ` Mika Westerberg
  2022-06-08 14:27                   ` Tomasz Moń
  2022-06-07 17:28                 ` Stefan Hoffmeister
  1 sibling, 1 reply; 19+ messages in thread
From: Mika Westerberg @ 2022-06-03  5:04 UTC (permalink / raw)
  To: Tomasz Moń; +Cc: Stefan Hoffmeister, Heikki Krogerus, linux-usb

On Thu, Jun 02, 2022 at 09:34:27PM +0200, Tomasz Moń wrote:
> On Mon, 2022-05-30 at 12:54 +0300, Mika Westerberg wrote:
> > On Mon, May 30, 2022 at 10:33:06AM +0200, Tomasz Moń wrote:
> > > On Sun, 2022-05-29 at 21:51 +0200, Stefan Hoffmeister wrote:
> > > > I have managed to wedge the system into a state where it does not
> > > > know about Thunderbolt, and now, on what I presume to be USB-C only
> > > > ("usb_typec_revision" == 1.2? Seems ... low?), both DisplayPort
> > > > outputs on the docking station are now active, and I do get
> > > > meaningful entries from the DRM subsystem (and hence X). I am half-
> > > > way happy: I want exactly that over Thunderbolt for the bandwidth ;)
> > > 
> > > Could you please tell how did you wedge the system into a state where
> > > it does not know about Thunderbolt?
> > > 
> > > > Now, when I unwedge the system to enable Thunderbolt again
> > > 
> > > I am curious about the wedge/unwedge procedure.
> > 
> > Probably just connecting the dock using non-Thunderbolt Type-C cable.
> > That will enter USB (+DP altmode) or so instead of Thunderbolt altmode.
> 
> How do I determine that the cable is non-Thunderbolt Type-C?

It does not have that "lightning" logo on the connector.

> I have tried with two different brands 1m USB Type-C cables that are
> not advertised as Thunderbolt. Both cables are electronically marked
> and 5A capable. When the docking station is connected using these
> cables, it operates in Thunderbolt mode.

Oh, yeah it is possible actually that with a passive type-C cable that
it still enters TBT/USB4 mode (20G). I think.

> If the device was operating in USB (+DP altmode), I assume that boltctl
> would show that the docking station status as disconnected?

Correct.

> Can I read the cable EMCA details in Linux?

This I don't know.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Thunderbolt: One missing DisplayPort?
  2022-06-02 19:34               ` Tomasz Moń
  2022-06-03  5:04                 ` Mika Westerberg
@ 2022-06-07 17:28                 ` Stefan Hoffmeister
  1 sibling, 0 replies; 19+ messages in thread
From: Stefan Hoffmeister @ 2022-06-07 17:28 UTC (permalink / raw)
  To: Tomasz Moń; +Cc: Mika Westerberg, Heikki Krogerus, linux-usb

On Thu, Jun 2, 2022 at 9:34 PM Tomasz Moń <desowin@gmail.com> wrote:
>
> How do I determine that the cable is non-Thunderbolt Type-C?
>
> I have tried with two different brands 1m USB Type-C cables that are
> not advertised as Thunderbolt. Both cables are electronically marked
> and 5A capable. When the docking station is connected using these
> cables, it operates in Thunderbolt mode.

As far as I can tell, the physical wiring of a "full-featured USB-C
cable" and a "Thunderbolt cable" are exactly the same - see
https://en.wikipedia.org/wiki/USB-C#Alternate_Mode_partner_specifications

I could imagine that Thunderbolt cable might be produced / designed to
have better quality (better shielding, reduced tolerances, et al), but
apart from that ... ?
https://www.usb.org/sites/default/files/D2T2-2%20-%20USB4%20Cable%20and%20System.pdf
looks pretty, but I will not pretend to understand much of what is
written there.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Thunderbolt: One missing DisplayPort?
  2022-06-03  5:04                 ` Mika Westerberg
@ 2022-06-08 14:27                   ` Tomasz Moń
  2022-06-11 16:29                     ` Tomasz Moń
  0 siblings, 1 reply; 19+ messages in thread
From: Tomasz Moń @ 2022-06-08 14:27 UTC (permalink / raw)
  To: Mika Westerberg; +Cc: Stefan Hoffmeister, Heikki Krogerus, linux-usb

On Fri, 2022-06-03 at 08:04 +0300, Mika Westerberg wrote:
> On Thu, Jun 02, 2022 at 09:34:27PM +0200, Tomasz Moń wrote:
> > How do I determine that the cable is non-Thunderbolt Type-C?
> 
> It does not have that "lightning" logo on the connector.

I got two more (to a total of 4) cables without lightning logo and all
seem to enter Thunderbolt mode.

> > I have tried with two different brands 1m USB Type-C cables that are
> > not advertised as Thunderbolt. Both cables are electronically marked
> > and 5A capable. When the docking station is connected using these
> > cables, it operates in Thunderbolt mode.
> 
> Oh, yeah it is possible actually that with a passive type-C cable that
> it still enters TBT/USB4 mode (20G). I think.

Yes, with all the cables boltctl shows 20 Gb/s = 2 lanes * 10 Gb/s

With the 0.7m cable that came with dock (without e-Marker), boltctl
shows 40 Gb/s = 2 lanes * 20 Gb/s

> > If the device was operating in USB (+DP altmode), I assume that boltctl
> > would show that the docking station status as disconnected?
> 
> Correct.
> 
> > Can I read the cable EMCA details in Linux?
> 
> This I don't know.

My USB-C Power Meter shows basic EMCA details. I presume the
information is not complete (it only shows it on small display, I
didn't find option to export/dump EMCA).

Below is the EMCA for all 4 cables. None support Thunderbolt, but all,
even the 3m one, manage to enter Thunderbolt mode.


Type     Passive Cable
Vendor   CE-LINK (0x2095)
Specs    [ <10ns (~1m) ] [ 20V ] [ 5A ] [ USB3 10Gbps ]
VER      HW:0009 FW:0001 VDO:0 v:3
Vdo object hex
IdHeader 0x18002095
CertStat 0x00000974
Product  0x00050310
Cable    0x91082042
SVISD    0x00000000
TBT3/4   0x00000000


Type     Passive Cable
Vendor   Unknown (0x0000)
Specs    [ <10ns (~1m) ] [ 20V ] [ 5A ] [ USB3 10Gbps ]
VER      HW:0000 FW:0000 VDO:0 v:3
Vdo object hex
IdHeader 0x18000000
CertStat 0x00000000
Product  0x00000000
Cable    0x00082042
SVISD    0x00000000
TBT3/4   0x00000000


Type     Passive Cable
Vendor   VIA Labs (0x2109)
Specs    [ <20ns (~2m) ] [ 20V ] [ 5A ] [ USB3 10Gbps ]
VER      HW:0000 FW:0000 VDO:0 v:3
Vdo object hex
IdHeader 0x18002109
CertStat 0x00000000
Product  0x00000000
Cable    0x00004042
SVISD    0x00000000
TBT3/4   0x00000000


Type     Passive Cable
Vendor   Yichong (0x315c)
Specs    [ <30ns (~3m) ] [ 20V ] [ 5A ] [ USB3 10Gbps ]
VER      HW:0001 FW:0001 VDO:0 v:3
Vdo object hex
IdHeader 0x1800315c
CertStat 0x00004244
Product  0x00020002
Cable    0x11086042
SVISD    0x00000000
TBT3/4   0x00000000

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Thunderbolt: One missing DisplayPort?
  2022-06-08 14:27                   ` Tomasz Moń
@ 2022-06-11 16:29                     ` Tomasz Moń
  0 siblings, 0 replies; 19+ messages in thread
From: Tomasz Moń @ 2022-06-11 16:29 UTC (permalink / raw)
  To: Mika Westerberg; +Cc: Stefan Hoffmeister, Heikki Krogerus, linux-usb

On Wed, 2022-06-08 at 16:27 +0200, Tomasz Moń wrote:
> On Fri, 2022-06-03 at 08:04 +0300, Mika Westerberg wrote:
> > On Thu, Jun 02, 2022 at 09:34:27PM +0200, Tomasz Moń wrote:
> > > How do I determine that the cable is non-Thunderbolt Type-C?
> > 
> > It does not have that "lightning" logo on the connector.
> 
> I got two more (to a total of 4) cables without lightning logo and all
> seem to enter Thunderbolt mode.

I managed to get an active 3 meters long USB Type-C cable. It is both a
directional cable (meaning the host end has to be plugged into laptop
and sink into dock) and appear to have working display port only when
connected with correct plug orientation. That is, rotating USB-C plug
180 degrees switches between working DP altmode and non-working.

The active cable I have features retimer in the middle of the cable.
The retimer is definitely noticeable (it is bulky) and does get warm
when in use.

This cable indeed does inhibit Thunderbolt operation and dock status in
boltctl is disconnected.

The EMCA information for the active cable is below. Even though the
cable is 3 meters long it claims to be 2 meters.


Type     Active Cable
Vendor   Unknown (0x0bda)
Specs    [ <20ns (~2m) ] [ 20V ] [ 3A ] [ USB3 10Gbps ]
VER      HW:0001 FW:0002 VDO:0 v:2
Vdo object hex
IdHeader 0x24000bda
CertStat 0x00000000
Product  0x00000209
Cable    0x120851b2
SVISD    0x0bdaff01
TBT3/4   0x00000000

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2022-06-11 16:29 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-20 10:22 Thunderbolt: One missing DisplayPort? Stefan Hoffmeister
2022-05-24 10:55 ` Heikki Krogerus
2022-05-24 11:04   ` Mika Westerberg
2022-05-27  6:24     ` Stefan Hoffmeister
2022-05-27  9:10       ` Mika Westerberg
2022-05-28 14:29         ` Stefan Hoffmeister
2022-05-29 19:51         ` Stefan Hoffmeister
2022-05-30  8:33           ` Tomasz Moń
2022-05-30  9:54             ` Mika Westerberg
2022-05-30 18:57               ` Stefan Hoffmeister
2022-05-31  9:36                 ` Mika Westerberg
2022-05-31 19:45                   ` Stefan Hoffmeister
2022-06-01 10:51                     ` Mika Westerberg
2022-06-02 19:34               ` Tomasz Moń
2022-06-03  5:04                 ` Mika Westerberg
2022-06-08 14:27                   ` Tomasz Moń
2022-06-11 16:29                     ` Tomasz Moń
2022-06-07 17:28                 ` Stefan Hoffmeister
2022-05-30 18:02             ` Stefan Hoffmeister

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.