Date: Thu, 30 Jan 2025 07:38:34 -0800 From: Mark Millard <marklmi@yahoo.com> To: Mohammad Noureldin <mohammad@thelightbird.com> Cc: freebsd-hackers <freebsd-hackers@freebsd.org> Subject: Re: Thunderbolt3/USB4 targeting: should the wiki materials be more explicit about Thunderbolt 3 vs. Thunderbolt 4 distinctions? Message-ID: <52406D6A-80C9-467C-A0EF-4C28C7D0E1BB@yahoo.com> In-Reply-To: <CAAQ96Dzz5oiu209yWFk=91oXKtbgvJeiDQPVhQ7jCvDpY%2BqFew@mail.gmail.com> References: <79E3193E-BCB6-4774-B1E5-5130AEDD4624.ref@yahoo.com> <79E3193E-BCB6-4774-B1E5-5130AEDD4624@yahoo.com> <CAAQ96Dzz5oiu209yWFk=91oXKtbgvJeiDQPVhQ7jCvDpY%2BqFew@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Jan 30, 2025, at 05:17, Mohammad Noureldin = <mohammad@thelightbird.com> wrote: > Hey Mark! Hello. > How are you doing ? I'm doing okay. You? > Very glad to see you interested in USB4 and it's related technologies, = and I do notice that you are, just like myself, also generally = interested in USB based on some encounters on mailing lists and Discord. >=20 > To help make this discussion thread be more productive and to make = sure it goes in the right direction, allow me to ask a couple of = questions before I respond with any answers or opinions: > - Which wiki materials you are referring to ? https://wiki.freebsd.org/MohammadNoureldin/FreeBSDUSB4TBT3Support has QUOTE General Scope and Plan of ActionsScope =E2=80=A2 The very main and ultimate goal is to fully support USB4 = 1.0 and 2.0 and later any newer versions/revisions to be published in = the future=20 =E2=80=A2 If in the end a driver can be produced that does support = both TBT3 and USB4, that would be great=20 =E2=80=A2 Whatever we will not (fully or at all) support for TBT3 = has to be clearly written down, possibly in man pages, to manage the = expectations of FreeBSD end users=20 Initial Phase =E2=80=A2 Run and test Initial commit for USB4/Thunderbolt3 on HW = List =E2=80=A2 List found issues and add it to Technical Roadmap Build and Finish Up Phase =E2=80=A2 Execute Technical Roadmap Technical RoadmapNote =E2=80=A2 General advice as per Scott Long (scottl@):=20 =E2=80=A2 I'd totally stay away from spending time on supporting = Falcon Ridge, Alpine Ridge, and Titan Ridge controllers. They're old, = they're extremely difficult to work with, and they're not worth the = headache. In fact, just ignore all TBT3 controllers, and remove the = Internal Connection Manager code. The ICM module isn't code that I'm all = that proud of anyways =3D-). Focus on writing an HCM, supporting PCIe = and DP tunneling, and integrating IOMMU protections into both the NHI = driver and the PCIe tunnel drivers. =E2=80=A2 USB4 - README =E2=80=A2 Test the (mostly) completed work =E2=80=A2 Debug/Trace framework=20 =E2=80=A2 NHI controller driver=20 =E2=80=A2 PCIe bridge driver=20 =E2=80=A2 WMI driver=20 =E2=80=A2 Integrated Connection Manager handshake and = authentication handling=20 =E2=80=A2 Router and Config Space layer handling (in progress, = almost complete)=20 =E2=80=A2 Finish up tbtconfig (userland tool)=20 =E2=80=A2 Finish up man pages (tbtconfig and nhi_wmi)=20 =E2=80=A2 Add or finish up Host Connection Manager (HCM)=20 =E2=80=A2 Remove Internal/Integrated Connection Manager (ICM) = support (NOTE: To be evaluated for final decision)=20 =E2=80=A2 Add Cross/Inter Domain login (IDSP - Inter Domain Service = Protocol - Inter-Domain Specification) handler=20 =E2=80=A2 Rework USB3 stack in order to work with USB4 (USB3 tunnel = support)=20 =E2=80=A2 Add USB-PD driver=20 =E2=80=A2 Add GPUs and Display Crossbars integration=20 =E2=80=A2 DP tunnelling (USB4)=20 =E2=80=A2 DP-Alt mode (USB-PD)=20 =E2=80=A2 Add PCIe tunnelling=20 =E2=80=A2 Review and possibly finish up Thunderbolt security model = implementation=20 =E2=80=A2 Add DMAR/IOMMU protections NHI driver integrations=20 =E2=80=A2 Add DMAR/IOMMU protections PCIe tunnelling driver = integrations (PCIe tunnelling control support)=20 =E2=80=A2 Add support for resetting and firmware flashing on the NHI = via out-of-band control=20 =E2=80=A2 Add support for ThunderboltIP END QUOTE However, from such materials I can not tell the intent for the likes of what I listed in the original Email. > - Would you please share the resources based on which you extracted = this information ? This will allow me, and hopefully others, to review = them and see if we all come to the same conclusions or insights Listing of differences between Thunderbolt 3 and 4 (4 is a generalization compared to 3): = https://www.intel.com/content/www/us/en/architecture-and-technology/thunde= rbolt/thunderbolt-3-vs-4.html However, nothing directly presents the view of getting Thunderbolt3 functionality from USB4/Thunderbolt4 capable hardware, as is now = becoming fairly common for some categories of machines. I happen to have access to a = https://www.owc.com/solutions/thunderbolt-hub that supports forming a star instead of just a daisy-chain: more than 2 thunderbolt ports. I could not tell from the existing FreeBSD materials about the plans if it was hoped that the hub would be useful vs. not. = That is an example issue. I also referenced: = https://www.cablematters.com/Blog/Thunderbolt/usb4-vs-thunderbolt-3?srslti= d=3DAfmBOopHWeXCGYCXo3F8pG63Oztk-cQFCZtjr_bsZljM2vtMWSU1gNAG = https://www.macworld.com/article/675887/thunderbolt-4-vs-thunderbolt-3-vs-= usb-4.html That last has more notes about PCs and Thunderbolt 3 vs. 4. Mac's tend to have fewer differences via having systematically implemented more optional aspects for Thunderbolt 3. (Mac centric information sources tend to indicate fewer potential differences unless they also happen to discuss PCs explicitly, as that last does to some extent.) I hope that helps. > Looking forward to your reply >=20 > On Mon, Jan 20, 2025 at 5:58=E2=80=AFAM Mark Millard = <marklmi@yahoo.com> wrote: > Here is my quick attempt at noting distinctions and some possible > handling points. It is possible that protocols make some of this > more automatic/clear than I presume. (I would not know.) >=20 >=20 > Overall: Is it a goal to have a Thunderbolt 4 capable PC be able to > operate as a Thunderbolt 3 PC when booted by FreeBSD? That would be > different then just allowing FreeBSD to reject such a PC or to end > up without even Thunderbolt 3 support for such a PC. >=20 > I'm not claiming that "converting a Thunderbolt 4 capable PC into > a Thunderbolt 3 PC instead" should be avoided: It should be explicitly > documented if targeted and, if not targeted, the alternative should > instead be explicitly documented. It might be too early to say yet for > some of the example issues. (I view this more issue by issue > contributions to the overall status than just the final overall = status. > Different issues might go different directions.) >=20 >=20 > Ports per accessory: >=20 > Thunderbolt 3: Allow configuring up to 2 ports (so: daisy chain only = by accessories) > Thunderbolt 4: Allow configuring up to 4 ports (so: star is possible) >=20 > So: No support for star (3 or 4 ports used)? > Possibly: Only support devices with 1 or 2 ports? > But: What about 2 used of 3 or 4 present? > Note: Mixes with hot plugging! >=20 > So: Lack of SW support could turn a PC capable of Thunderbolt 4 > into a Thunderbolt 3 PC? >=20 >=20 > Minimum PCIe bandwidth (minimums): >=20 > Thunderbolt 3: Must support 16 Gbps or more > Thunderbolt 4: Must support 32 Gbps or more >=20 > Not so sure that this aspect makes a difference. >=20 >=20 > Monitors (minimums): >=20 > Thunderbolt 3: No 8K monitor support but 1 5K monitor optionally = supported > Thunderbolt 4: Allow configuring for 2 4K monitors or 1 8K monitor > Note: Some Thunderbolt 3 implementations can support 2 4K monitors > Note: USB4 apparently does not specify a minimum nK-ish figure. > Note: Looks like frequency for Dual Full HD is another difference >=20 > So: Do not support 8K monitors? (What of 2 4K monitors?) >=20 > So: Do not support the higher Dual Full HD frequency? >=20 > So: Lack of SW support could turn a PC capable of Thunderbolt 4 > into a Thunderbolt 3 PC? >=20 >=20 > Power (minimum for most ports): >=20 > Thunderbolt 3: At least 15W > Thunderbolt 4: At least 15W > Note: USB4: At least 7.5W >=20 > Not so sure that this aspect makes a difference. >=20 >=20 > At least Power port for PC charging for thin and light notebooks that > require < 100W to charge: >=20 > Thunderbolt 3: No requirement > Thunderbolt 4: At least one such port on the notebook >=20 > So: Lack of SW support could turn such a notebook capable of = Thunderbolt 4 > into a Thunderbolt 3 notebook? >=20 >=20 > Wake from Sleep Mode: >=20 > Thunderbolt 3: Optionally keyboard/mouse input to wake a sleeping = computer > Thunderbolt 4: Required keyboard/mouse input to wake a sleeping = computer >=20 > So: Do not support keyboard and mouse input waking a sleeping = computer? > (Lack of SW support could turn a PC capable of Thunderbolt 4 into > a Thunderbolt 3 PC?) >=20 >=20 > Compatibility: >=20 > Thunderbolt 3: Need not be compatible with some Thunderbolt 4 specific = requirements > Thunderbolt 4: Required to be compatible with Thunderbolt 3 = devices/requirements >=20 > So: Various examples of SW potentially turning a Thunderbolt 4 capable = PC > into a Thunderbolt 3 PC >=20 >=20 > Security: >=20 > Thunderbolt 3: Allows optional VT-D based DMA or equivalent > Thunderbolt 4: Required to support VT-D based DMA or equivalent >=20 > So: Is there to be support for uses "VT-D based DMA or equivalent"? > Or: Is this an example of SW converting a Thunderbolt 4 capable PC > into a Thunderbolt 3 PC instead? >=20 > USB4 Specification Status: >=20 > Thunderbolt 3: Compatible > Thunderbolt 4: Compliant > (I've seen references to such a distinction but do not well understand = the > specifics.) >=20 =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?52406D6A-80C9-467C-A0EF-4C28C7D0E1BB>