Date: Thu, 2 Oct 2025 15:29:16 -0700 From: Mark Millard <marklmi@yahoo.com> To: Alexander Ziaee <ziaee@runbox.com> Cc: ziaee <ziaee@freebsd.org>, dev-commits-src-main <dev-commits-src-main@freebsd.org>, obiwac <obiwac@freebsd.org> Subject: Re: git: 2f7a796b590e - main - thunderbolt.4: Initial manual for HW Relnotes Message-ID: <CFAD118E-A5B2-47B2-BD42-955C9DE27FFC@yahoo.com> In-Reply-To: <8C91D367-E9E5-4750-AA81-8C673000778E@yahoo.com> References: <E1v4N3j-0004oU-CX@rmmprod06.runbox> <8C91D367-E9E5-4750-AA81-8C673000778E@yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Oct 2, 2025, at 12:22, Mark Millard <marklmi@yahoo.com> wrote: > On Oct 2, 2025, at 10:25, Alexander Ziaee <ziaee@runbox.com> wrote: >=20 >> On 2025-10-02 12:47 -04:00 EDT, "Mark Millard" <marklmi@yahoo.com> = wrote: >>> Alexander Ziaee <ziaee_at_FreeBSD.org> wrote on >>> Date: Thu, 02 Oct 2025 15:14:07 UTC : >>>=20 >>>> The branch main has been updated by ziaee: >>>>=20 >>>> URL: = https://cgit.FreeBSD.org/src/commit/?id=3D2f7a796b590e67c5d123f2b00b3aaf7b= a7a32a13 >>>>=20 >>>> commit 2f7a796b590e67c5d123f2b00b3aaf7ba7a32a13 >>>> Author: Alexander Ziaee <ziaee@FreeBSD.org> >>>> AuthorDate: 2025-10-02 12:05:25 +0000 >>>> Commit: Alexander Ziaee <ziaee@FreeBSD.org> >>>> CommitDate: 2025-10-02 15:12:48 +0000 >>>>=20 >>>> thunderbolt.4: Initial manual for HW Relnotes >>>>=20 >>>> This manual contains nothing and is only suitable for the HW = Relnotes, >>>> but lets get it in so we have something and then can iterate on it. >>>>=20 >>>> MFC after: 3 minutes >>>> Fixes: 2ed9833791f2 (thunderbolt: Import USB4 code) >>>> Discussed with: obiwac >>>> Differential Revision: https://reviews.freebsd.org/D52847 >>>> --- >>>> share/man/man4/Makefile | 1 + >>>> share/man/man4/thunderbolt.4 | 22 ++++++++++++++++++++++ >>>> 2 files changed, 23 insertions(+) >>>>=20 >>>> diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile >>>> index f5d7a0e081fc..6e076722c786 100644 >>>> --- a/share/man/man4/Makefile >>>> +++ b/share/man/man4/Makefile >>>> @@ -589,6 +589,7 @@ MAN=3D aac.4 \ >>>> tdfx.4 \ >>>> termios.4 \ >>>> textdump.4 \ >>>> + thunderbolt.4 \ >>>> ti.4 \ >>>> timecounters.4 \ >>>> tmpfs.4 \ >>>> diff --git a/share/man/man4/thunderbolt.4 = b/share/man/man4/thunderbolt.4 >>>> new file mode 100644 >>>> index 000000000000..3477c11fb60d >>>> --- /dev/null >>>> +++ b/share/man/man4/thunderbolt.4 >>>> @@ -0,0 +1,22 @@ >>>> +.\" >>>> +.\" Copyright (c) 2025 Alexander Ziaee >>>> +.\" >>>> +.\" SPDX-License-Identifier: BSD-2-Clause >>>> +.\" >>>> +.Dd October 2, 2025 >>>> +.Dt THUNDERBOLT 4 >>>> +.Os >>>> +.Sh NAME >>>> +.Nm thunderbolt >>>> +.Nd USB4 controller driver >>>> +.Sh SYNOPSIS >>>> +.Cd device thunderbolt >>>> +.Sh HARDWARE >>>> +The >>>> +.Nm >>>> +driver supports USB4 controllers. >>>=20 >>> As I understand things, being fairly explicit related the >>> following is likely required (not a proposed wording or >>> presentation): >>>=20 >>> Quoting USB4 V2: "A USB4 Host or USB4 Peripheral Device can >>> optionally support interoperability with Thunderbolt 3 >>> (TBT3) products." >>>=20 >>> Quoting USB4 V1: "A USB4 host or USB4 peripheral device can >>> optionally support interoperability with Thunderbolt 3 >>> (TBT3) products." >>>=20 >>> In both, this is tied to Chapter 13, "Interoperability with >>> Thunderbolt(tm) 3 systems". As I understand FreeBSD is not >>> trying to meet the criteria in that chapter, for example. >>>=20 >>> USB4 does not require a certification process, as I >>> remember. Thunderbolt 4 and 5 do, as I remember. >>>=20 >>> As I remember, a distinction between USB4 and Thunderbolt 4 >>> and 5 was that Thunderbolt 4 and 5 require (nearly?) all >>> optional items from the matching USB4 version to be >>> implemented (so: not optional if Thunderbolt 4 or 5 is >>> claimed/certified). Also, it seems unlikely that FreeBSD >>> would go through a Thunderbolt 4 or 5 certification process. >>>=20 >>> Overall this seems to mean not meeting the Thunderbolt 4 >>> and/or 5 criteria fully and not supporting Thunderbolt 3 >>> --but just meeting the criteria for one or both of: >>>=20 >>> ) USB4 V1 without "TBT3" support >>> ) USB4 V2 without "TBT3" support >>>=20 >>> That would be a subset of the Thunderbolt 4 or 5 criteria >>> in a way that excludes Thunderbolt 3. >>>=20 >>> Referencing Thunderbolt without someplace being fairly >>> explicit about those types of relationships could easily >>> leave a misimpression (even if I've gotten some of the >>> status wrong above). >>>=20 >>> My guess here is that enough is known about the intent >>> in this area to be able to have material about this type >>> of thing in place at any time. >>=20 >> My impression is that actually nothing works yet, but we now have a = driver called thunderbolt which is made to support these controllers. = The driver is in, allegedly, and so it's existence needs to be mentioned = in the canonical places where we mention our drivers because people are = looking for them for assorted reasons. >=20 > I've actually booted a Dell Precision 5490 via external > USB4 media, but only when it was downstream of a Thunderbolt > 3 hub. All 4 USB ports are USB4 on this 5490. And that was > some time ago: early 2025-Feb with 1500031 of main 15. It > saw the USB4 media as nda0 at nvme0 . >=20 > This only works as much as it does because the UEFI/ACPI > involved supports enough to make some things possible > such that FreeBSD does not need to be as involved. >=20 > As I remember, I set up and did some live-plugging/unlugging > experiments any they lead to panics. The configuration had > to be as it was at boot time. If I remember right this > looked like Thunderbolt 3 mishandling (no surprise). >=20 > Directly connected, the transition from the kernel to > the world/root mount for the USB4 media fails instead. >=20 > I've not yet tried updating the USB4 media with a more > recent FreeBSD main 16 to see what happens now. I updated the USB4 boot media to be based on: # uname -apKU FreeBSD USB4sys 16.0-CURRENT FreeBSD 16.0-CURRENT = main-n280801-213170eb956f GENERIC-NODEBUG amd64 amd64 1600001 1600001 (It is from official pkgbase distribution use, a copy of another boot media with some parameters replaced afterwards.) I tried it and the system booted --via the USB4 media being "da0": # gpart show -p =3D> 34 500118125 nda0 GPT (238G) 34 2014 - free - (1.0M) 2048 1925120 nda0p1 efi (940M) 1927168 25165824 nda0p2 ms-reserved (12G) 27092992 473024512 nda0p3 linux-data (226G) 500117504 655 - free - (328K) =3D> 40 3907029088 da0 GPT (1.8T) 40 409600 da0p1 efi (200M) 409640 3638558720 da0p2 freebsd-ufs (1.7T) 3638968360 251658240 da0p3 freebsd-swap (120G) 3890626600 16402528 - free - (7.8G) No external hub involved. (As before, the external USB Ethernet plugged into one of the USB4 ports works too.) (The internal nvme showing up as nda0 has a ubuntu installation on it, as distributed by Dell.) I've only done basic boot testing and minimal use after that. Some basic testing of plugging and unplugging Thunderbolt 3 media did not lead to any crashes. This was both via a USB4 port and via the Thunderbolt 3 hub. An example for a USB4 port produced: pci12: <PCI bus> on pcib8 pcib17: <PCI-PCI bridge> at device 0.0 on pci12 pcib17: failed to allocate initial I/O port window: 0-0xfff pcib17: failed to allocate initial memory window: 0-0xfffff pcib17: failed to allocate initial prefetch window: 0-0xfffff pci13: <PCI bus> on pcib17 pcib18: <PCI-PCI bridge> at device 1.0 on pci13 pcib18: failed to allocate initial I/O port window: 0-0xfff pcib18: failed to allocate initial memory window: 0-0xfffff pcib18: failed to allocate initial prefetch window: 0-0xfffff pci14: <PCI bus> on pcib18 pcib19: <PCI-PCI bridge> at device 2.0 on pci13 pcib19: failed to allocate initial I/O port window: 0-0xfff pcib19: failed to allocate initial memory window: 0-0xfffff pcib19: failed to allocate initial prefetch window: 0-0xfffff pci15: <PCI bus> on pcib19 xhci2: <Intel Titan Ridge Thunderbolt 3 USB controller> mem = 0x73e00000-0x73e0ffff at device 0.0 on pci15 xhci2: 32 bytes context size, 64-bit DMA xhci2: xECP capabilities = <PROTO,VEND(c0),LEGACY,VEND(c6),VEND(c7),VEND(c2),DEBUG,VEND(c3),VEND(c4),= VEND(c5),VEND(c8),VEND(c9),PROTO,VEND(ca)> usbus2 on xhci2 usbus2: 5.0Gbps Super Speed USB v3.0 pcib20: <PCI-PCI bridge> at device 4.0 on pci13 pcib20: failed to allocate initial I/O port window: 0-0xfff pcib20: failed to allocate initial memory window: 0-0xfffff pcib20: failed to allocate initial prefetch window: 0-0xfffff ugen2.1: <Intel XHCI root HUB> at usbus2 uhub6 on usbus2 uhub6: <Intel XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus2 uhub6: 4 ports with 4 removable, self powered pcib20: detached uhub6: detached ugen2.1: <Intel XHCI root HUB> at usbus2 (disconnected) unknown: at usbus2, port 1, addr 1 (disconnected) usbus2: detached xhci2: Controller reset timeout. xhci2: detached pci15: detached pcib19: detached pci14: detached pcib18: detached pci13: detached pcib17: detached pci12: detached FYI: CPU: Intel(R) Core(TM) Ultra 7 165H (3072.00-MHz K8-class CPU) Origin=3D"GenuineIntel" Id=3D0xa06a4 Family=3D0x6 Model=3D0xaa = Stepping=3D4 . . . WARNING: L3 data cache covers more APIC IDs than a package (6 > 3) FreeBSD/SMP: Multiprocessor System Detected: 22 CPUs FreeBSD/SMP: Non-uniform topology # dmesg -a | grep "no driver attached" pci0: <multimedia> at device 5.0 (no driver attached) pci1: <network> at device 0.0 (no driver attached) pci0: <unknown> at device 11.0 (no driver attached) pci0: <serial bus, USB> at device 13.2 (no driver attached) pci0: <serial bus, USB> at device 13.3 (no driver attached) pci0: <simple comms, UART> at device 18.0 (no driver attached) pci0: <memory, RAM> at device 20.2 (no driver attached) pci0: <serial bus> at device 21.0 (no driver attached) pci0: <serial bus> at device 21.3 (no driver attached) pci0: <simple comms> at device 22.0 (no driver attached) pci4: <unknown> at device 0.0 (no driver attached) pci0: <serial bus> at device 31.5 (no driver attached) >> Patches to the doc are extremely welcome! >=20 > I'd need a lot more certainty about interpreting the > more informal references that are around vs. the > terminology in the USB4 specifications (or other > such). >=20 > I've been more trying to point out subject areas than > knowing for sure the details that I used for > illustration. >=20 >> Best, >> Alex >>=20 >>>> +.Sh HISTORY >>>> +The >>>> +.Nm >>>> +driver appeared in >>>> +.Fx 15.0 . >>>>=20 >>>=20 >>> =3D=3D=3D >>> Mark Millard >>> marklmi at yahoo.com =3D=3D=3D Mark Millard marklmi at yahoo.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CFAD118E-A5B2-47B2-BD42-955C9DE27FFC>