All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mika Westerberg <mika.westerberg@linux.intel.com>
To: David GUENAULT <david.guenault@gmail.com>
Cc: Andreas Noever <andreas.noever@gmail.com>,
	Mika Westerberg <westeri@kernel.org>,
	Yehezkel Bernat <YehezkelShB@gmail.com>,
	linux-usb@vger.kernel.org
Subject: Re: thunderbolt: PCIe tunnel creation fails for USB4 eGPU dock on Titan Ridge host
Date: Fri, 7 Aug 2026 12:18:05 +0200	[thread overview]
Message-ID: <20260807101805.GM235112@black.igk.intel.com> (raw)
In-Reply-To: <CAOFj14869aOGeoSfBVcS+-W3FUCq7CN3g+3cuGRJeZTD5Zjnng@mail.gmail.com>

Hi,

On Fri, Aug 07, 2026 at 11:55:24AM +0200, David GUENAULT wrote:
> On Fri, Aug 07, 2026 at 06:37 +0300, Mika Westerberg wrote:
> > That's because Titan Ridge is using firmware based connection manager so
> > it's not the TB driver that creates the tunnels.
> >
> > Can you drop all the non-distro kernel command line options, except
> > "thunderbolt.dyndbg=+p" and provide full dmesg?
> 
> Thanks -- you are right, and my original analysis was wrong on that point.
> I had been enabling dyndbg after boot, so I never saw the init messages and
> wrongly concluded from the port dumps that the software CM was in use.
> 
> Rebooted with a clean command line as requested. Kernel is vanilla mainline
> v7.1.5 (build from kernel.ubuntu.com/mainline, no distro patches):
> 
>   BOOT_IMAGE=/boot/vmlinuz-7.1.5-070105-generic root=UUID=... ro quiet splash
>   thunderbolt.dyndbg=+p vt.handoff=7
> 
> Everything except thunderbolt.dyndbg=+p is generated by Ubuntu's GRUB.
> I also disabled the udev rules I had been using (they forced
> power/control=on on the thunderbolt and 8086:15e7/15e8/15e9 PCI devices),
> so this boot is entirely stock.
> 
> The firmware CM is indeed in use:
> 
>   [    1.673598] thunderbolt 0000:03:00.0: total paths: 12
>   [    1.673598] thunderbolt 0000:03:00.0: IOMMU DMA protection is enabled
>   [    1.673945] thunderbolt 0000:03:00.0: control channel created
>   [    1.673949] thunderbolt 0000:03:00.0: using firmware connection manager
>   [    1.673950] thunderbolt 0000:03:00.0: NHI initialized, starting thunderbolt
> 
> The dock is found and the link comes up bonded at 40 Gb/s, then:
> 
>   [    6.012100] thunderbolt 0000:03:00.0: PCIe tunnel creation failed
> 
> If I read icm.c correctly, that message is emitted by icm_*_approve_switch()
> when the firmware replies with ICM_FLAGS_ERROR, so the Titan Ridge firmware
> is refusing the tunnel rather than the driver failing to build it. Is that
> the right reading? If so, is there anything on the host side that can be
> inspected or adjusted, or is this purely an NVM/firmware limitation?

This could be a limitation in FW but TB5 devices should be compatible with
TB3 connection manager. 

> One setting that is NOT a kernel command line option and may matter:
> BIOS "Thunderbolt Security Level" is set to "Unique ID" (SL1), which shows
> up as security=user in sysfs. This is deliberate: with "No Security"
> (security=none) the device is auto-authorized, approve_switch is never
> called, no tunnel is ever attempted and nothing at all is logged -- the
> device just silently appears authorized but unusable. Switching to SL1 is
> what makes the firmware actually be asked for the tunnel.

So with IOMMU enabled SL1 is redundant and it may actually end up stepping
a non validated path because these systems ship with IOMMU support so the
CM firmware is by default "none".

Can you put the BIOS settings back to the defaults and then repro but
instead of booting with the device connected do this:

1. Boot the system up, nothing connected.
2. Once up, plug in the TB5 dock.

Then take full dmesg (and also output of 'sudo lspci -vv') and send to me.
The dmesg you shared was badly line wrapped so if you can please attach the
them instead (you can send them directly to me or put them somewhere I can
download).

Note if security is none bolt does not try to authorize the PCIe tunnel as
it does not need to so this is expected.

  reply	other threads:[~2026-08-07 10:18 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-06 21:48 thunderbolt: PCIe tunnel creation fails for USB4 eGPU dock on Titan Ridge host David GUENAULT
2026-08-07  4:37 ` Mika Westerberg
2026-08-07  9:55   ` David GUENAULT
2026-08-07 10:18     ` Mika Westerberg [this message]
2026-08-07 11:01       ` David GUENAULT
2026-08-07 11:29         ` Mika Westerberg
2026-08-07 11:35           ` Mika Westerberg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260807101805.GM235112@black.igk.intel.com \
    --to=mika.westerberg@linux.intel.com \
    --cc=YehezkelShB@gmail.com \
    --cc=andreas.noever@gmail.com \
    --cc=david.guenault@gmail.com \
    --cc=linux-usb@vger.kernel.org \
    --cc=westeri@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.