我在 MacBook Pro 2017 上安装了 Ubuntu 20.04,它有 4 个雷电 3 端口。我还将外部 Thunderbolt 坞站连接到 4 个端口之一。以下是
lspci -tv
输出的雷电相关部分:
+-1c.4-[03-78]----00.0-[04-78]--+-00.0-[05]----00.0 Intel Corporation JHL6540 Thunderbolt 3 NHI (C step) [Alpine Ridge 4C 2016]
| +-01.0-[07-3f]--
| +-02.0-[06]----00.0 Intel Corporation JHL6540 Thunderbolt 3 USB Controller (C step) [Alpine Ridge 4C 2016]
| \-04.0-[40-78]--
+-1d.0-[79-ee]----00.0-[7a-ee]--+-00.0-[7b]----00.0 Intel Corporation JHL6540 Thunderbolt 3 NHI (C step) [Alpine Ridge 4C 2016]
| +-01.0-[7d-b5]--
| +-02.0-[7c]----00.0 Intel Corporation JHL6540 Thunderbolt 3 USB Controller (C step) [Alpine Ridge 4C 2016]
| \-04.0-[b6-ee]----00.0-[b7-ee]--+-01.0-[b8-d2]--
| +-02.0-[d3]----00.0 Intel Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge DD 2018]
| \-04.0-[d4-ee]--
所以我猜测
JHL7540
代表扩展坞上的控制器,四个JHL6540
代表MBP内置的控制器。
但是我不太明白
NHI (C step)
,以及NIH
和USB Controller
之间的区别,如上所示。
Apple 的文档将 NHI(Native Host Interface)描述为 DMA 引擎的集合,因此可以将其视为主机访问 Thunderbolt 总线的一种方式。
关于 USB 控制器,这正是 Thunderbolt 支持本机 USB 设备的方式,因为 Thunderbolt 不隧道 USB 流量,每个 Thunderbolt 控制器都必须有一个关联的 USB 主机控制器接口 (xHCI),并且每当插入 USB 设备时,该设备实际上正在与该 USB 控制器通信,而主机通过 PCIe 与该控制器通信,这是一种 Thunderbolt 可以隧道的流量。