Ok! I connected the eGPU. It seems to be recognised, and the at least the USB3 ports on it work. (I know I could get it to work, but it's not a priority since I use the eGPU elsewhere).
This is the new system profiler output:
I think that shows that a TB2 Mac (obviously, without a T2!) can connect to two Thunderbolt devices through the OWC hub.
Excellent.
The Blackmagic eGPU has a hub that has the layout I expect (both the USB 2.0 and USB 3.0 parts are from the same manufacturer and have a similar product ID that differs by one bit).
The Blackmagic's Thunderbolt controller is Titan Ridge and uses the same AppleUSBXHCITR driver as the OWC hub's Goshen Ridge.
AppleUSBXHCISPT is your iMac's USB 3.0 controller from the iMac's Intel chipset PCH - code name South Point. This is where the camera and bluetooth and etc. connects. I don't see a keyboard/mouse so I guess you're using wireless.
That generated a pretty large file, which I've attached.
I think you used a different command than the one I posted but this limited info is still interesting. If you don't want to dump properties then at list include the
-i
flag to show the class inheritance.
I rearranged the output of the Thunderbolt stuff:
Code:
iMac Thunderbolt controller
+-o AppleThunderboltHAL AppleThunderboltNHIType2
+-o IOThunderboltController
+-o IOThunderboltLocalNode
| +-o AppleThunderboltEDMSink
| +-o AppleThunderboltIPService
| +-o AppleThunderboltIPPort en2 IONetworkStack IONetworkStackUserClient
| +-o AppleThunderboltIPPort en3 IONetworkStack IONetworkStackUserClient
iMac Thunderbolt ports
iMac Thunderbolt ports:
+-o IOThunderboltPort@5 IOThunderboltSwitchType2
+-o IOThunderboltPort@1
+-o IOThunderboltPort@2
+-o IOThunderboltPort@3 OWC Thunderbolt Hub
+-o IOThunderboltPort@4
+-o IOThunderboltPort@6 AppleThunderboltPCIDownAdapter
+-o IOThunderboltPort@7 AppleThunderboltPCIDownAdapter
+-o IOThunderboltPort@8 AppleThunderboltPCIDownAdapter
+-o IOThunderboltPort@9 AppleThunderboltPCIDownAdapter
+-o IOThunderboltPort@A AppleThunderboltDPOutAdapterGFXPolicy1
+-o IOThunderboltPort@B AppleThunderboltDPInAdapterGFXPolicy1
+-o IOThunderboltPort@C AppleThunderboltDPInAdapterGFXPolicy1
OWC Thunderbolt Hub:
+-o IOThunderboltPort@1 IOThunderboltSwitchOS
+-o IOThunderboltPort@2
+-o IOThunderboltPort@3 OWC Envoy Express
+-o IOThunderboltPort@4
+-o IOThunderboltPort@5
+-o IOThunderboltPort@6
+-o IOThunderboltPort@7 Blackmagic eGPU
+-o IOThunderboltPort@8
+-o IOThunderboltPort@9 AppleThunderboltPCIUpAdapter
+-o IOThunderboltPort@A AppleThunderboltPCIDownAdapter
+-o IOThunderboltPort@B AppleThunderboltPCIDownAdapter
+-o IOThunderboltPort@C AppleThunderboltPCIDownAdapter
+-o IOThunderboltPort@D AppleThunderboltDPOutAdapterGFXPolicy1
+-o IOThunderboltPort@E AppleThunderboltDPOutAdapterGFXPolicy1
+-o IOThunderboltPort@F
+-o IOThunderboltPort@10
+-o IOThunderboltPort@11
+-o IOThunderboltPort@12
+-o IOThunderboltPort@13
OWC Envoy Express:
+-o IOThunderboltPort@1 IOThunderboltSwitchType3
+-o IOThunderboltIECSNub AppleHPMIECS AppleHPMDevice@0
+-o IOThunderboltPort@2
+-o IOThunderboltPort@4 AppleThunderboltPCIUpAdapter
Blackmagic eGPU:
+-o IOThunderboltPort@3 IOThunderboltSwitchType3
+-o IOThunderboltIECSNub AppleHPMIECS AppleHPMDevice@0 AppleHPMDevice@1
+-o IOThunderboltPort@1
+-o IOThunderboltPort@2
+-o IOThunderboltPort@4
+-o IOThunderboltPort@5 AppleThunderboltDPInAdapterGFXPolicy1
+-o IOThunderboltPort@6 AppleThunderboltDPInAdapterGFXPolicy1
+-o IOThunderboltPort@8 AppleThunderboltPCIUpAdapter
+-o IOThunderboltPort@9 AppleThunderboltPCIDownAdapter
IOThunderboltLocalNode is where the drivers that use Thunderbolt transfers to other Thunderbolt hosts goes (Target Display Mode, Target Disk Mode, Thunderbolt Networking).
AppleThunderboltEDMSink is the Target Display Mode driver (External Display Mode?). Sink means target. But your iMac is Retina and 2015 and therefore doesn't support Target Display Mode.
AppleThunderboltIPService is for Thunderbolt networking.
IOThunderboltSwitchType2 is for the Thunderbolt 2 controller ports. Type1 is for Thunderbolt 1. Type3 is for Thunderbolt 3. Type4 is for Ice Lake Macs. Type5 is M1 Macs.
The iMac Thunderbolt 2 controller only has one DisplayPort Out Adapter (AppleThunderboltDPOutAdapterGFXPolicy1). This is normal for Thunderbolt 2 and why a Thunderbolt 2 Dock can only connect one display. The Thunderbolt 2 controller has two DisplayPort In adapters (like every Thunderbolt controller has ever had - some PCs only connect one of them but Thunderbolt 4 puts a stop to that). So Thunderbolt 2 does support two displays from a single Thunderbolt 2 port, but you need a Thunderbolt 3 dock to connect two displays, or you need two Thunderbolt 2 docks. The iMac can have two displays connected to it - I guess that means there's a Thunderbolt controller bypass mux switch or something to get around the single DP Out issue.
I'm not sure why the iMac has four PCI Down Adapters. Maybe it means the Thunderbolt 2 controller has the option of separating the two lanes per port into four separate lanes. In Thunderbolt 1, the lanes could not be aggregated/combined/joined.
IOThunderboltSwitchOS is new to me. That's the OWC Thunderbolt hub. Not sure what OS means. It has more ports than previous Thunderbolt controller chips. I am disappointed that it only has two DP Out Adapters. But I guess that's normal for an Intel only Thunderbolt chain. Maybe a USB4 controller could have more than two. I don't think there's anything stopping a single Thunderbolt chain from having more than 2 displays. All you need to do is add more DP In Adapters. You can do that with your Blackmagic eGPU or the new Sonnet eGPU Breakaway Puck RX 5500 XT/5700. Then to add more DP Out Adapters, you just need to add more Thunderbolt hub/dock/devices. If you limit the displays to 1440p then you could connect four of them (they must connect at HBR link rate). If you limit the displays to 1080p, then you could connect six of them (they must connect at RBR link rate).
The hub has the expected single PCI Up Adapter and three PCI Down Adapters. It doesn't appear to have any USB Up and Down Adapters (expected one USB Up adapter and one USB Down Adapter) - which means Goshen Ridge doesn't have them and is not useful for USB4 hosts that don't support PCI tunnelling, or the USB Adapters are unused in the OWC Thunderbolt Hub. The M1 Macs do have USB Down Adapters to support USB4 hubs but the OWC Thunderbolt Hub is not a USB4 Hub. Maybe the OWC Thunderbolt Hub has different behaviour when connected to an M1 Mac? I don't think so - people have shown that USB devices connected to the OWC Thunderbolt Hub have better performance than when connected directly to the M1 Mac which means the USB controller of the M1 Mac is probably not being used so the USB Down Adapter is not being used.
The OWC Envoy Express doesn't have a downstream Thunderbolt port so it doesn't have a PCI Down Adapter or DisplayPort Out Adapter.
The Blackmagic eGPU does have a downstream Thunderbolt port so it has a PCI Down Adapter. The Blackmagic eGPU (and the new Sonnet eGPU Breakaway Puck RX 5500 XT/5700) are interesting because they are the only Thunderbolt peripherals to use the DisplayPort In Adapters. I wish someone would make a Thunderbolt device with DisplayPort In Adapters which can be used with normal upgradable eGPUs to connect Thunderbolt displays. If Intel won't allow it, then someone could do it with USB4.
On to the PCI stuff:
Code:
iMac:
+-o RP05@1C,4 IOPP (Root Port 5)
+-o UPSB@0 IOPP (Thunderbolt 2 Controller Falcon Ridge)
+-o DSB0@0 IOPP "iMac Thunderbolt NHI" (see HAL stuff above)
+-o DSB3@3 IOPP "OWC Thunderbolt Hub"
+-o DSB4@4 IOPP
+-o DSB5@5 IOPP
+-o DSB6@6 IOPP
OWC Thunderbolt Hub:
+-o UPS0@0 IOPP
+-o pci-bridge@0 IOPP pci8086,b27@0 AppleUSBXHCITR@00000000
| +-o AppleUSB20XHCIPort@00100000 USB2.0 Hub@00100000 AppleUSB20Hub@00100000
| | +-o AppleUSB20HubPort@00110000
| | +-o AppleUSB20HubPort@00120000
| | +-o AppleUSB20HubPort@00130000
| | +-o AppleUSB20HubPort@00140000
| | +-o AppleUSB20HubPort@00150000 Thunderbolt Hub@00150000
| | +-o AppleUSBHostCompositeDevice
| | +-o Billboard Interface@0 AppleUSBHostBillboardDevice
| | +-o Vendor Interface@1
| +-o AppleUSB20XHCIPort@00200000
| +-o AppleUSB30XHCIPort@00300000 USB3.0 Hub@00300000 AppleUSB30Hub@00300000
| | +-o AppleUSB30HubPort@00310000
| | +-o AppleUSB30HubPort@00320000
| | +-o AppleUSB30HubPort@00330000
| | +-o AppleUSB30HubPort@00340000
| +-o AppleUSB30XHCIPort@00400000
+-o pci-bridge@1 IOPP "OWC Envoy Express"
+-o pci-bridge@2 IOPP
+-o pci-bridge@3 IOPP "Blackmagic eGPU"
+-o pci-bridge@4 IOPP
OWC Envoy Express:
+-o pci-bridge@0 IOPP
+-o pci-bridge@1 IOPP
+-o pci1987,5012@0 IONVMeController IONVMeBlockStorageDevice@1 IOBlockStorageDriver "Sabrent Media"
Blackmagic eGPU:
+-o pci-bridge@0 IOPP
+-o pci-bridge@1 IOPP
| +-o display@0
| +-o pci1002,aaf0@0,1 AppleGFXHDAEGController@0,1 AppleGFXHDADriver@0,1,0
+-o pci-bridge@2 IOPP pci8086,15ec@0 AppleUSBXHCITR@01000000
| +-o AppleUSB20XHCIPort@01100000
| +-o AppleUSB20XHCIPort@01200000 Blackmagic eGPU USB2.1 Hub@01200000 AppleUSB20Hub@01200000
| | +-o AppleUSB20HubPort@01210000
| | +-o AppleUSB20HubPort@01220000
| | +-o AppleUSB20HubPort@01230000
| | +-o AppleUSB20HubPort@01240000
| +-o AppleUSB30XHCIPort@01300000
| +-o AppleUSB30XHCIPort@01400000 Blackmagic eGPU USB3.1 Hub@01400000 AppleUSB30Hub@01400000
| +-o AppleUSB30HubPort@01410000
| +-o AppleUSB30HubPort@01420000
| +-o AppleUSB30HubPort@01430000
| +-o AppleUSB30HubPort@01440000
+-o pci-bridge@4 IOPP
The Falcon Ridge Thunderbolt 2 controller has the NHI at device 0 and one of the two ports at device 3. The other 3 devices are the other ports. The total of four corresponds to the number of PCI Down Adapters that we saw for the Thunderbolt 2 controller.
The USB controller (bus) of the Goshen Ridge Thunderbolt 4 controller has the usual number of ports expected from a Thunderbolt 3 controller (from Alpine Ridge or from Titan Ridge in peripheral mode) - two USB 2.0 ports and two USB 3.1 gen 2 ports. I would have expected at least 3 of each type to match the number of downstream Thunderbolt ports (or 4 to account for the USB Type A port of the OWC Thunderbolt Hub) but instead, there's a USB hub to handle the four ports. There's a five port USB 2.0 hub connected to a USB 2.0 port and a four port USB 3.x hub connected to the corresponding USB 3.x port of the USB controller. The fifth (extra) port of the USB 2.0 hub has the billboard device. Do the second pair of USB ports of the USB controller get used at all? Does the included hub get connected to a USB Down Adapter when used in a USB4 environment?
Two of the downstream bridges connect to the Blackmagic eGPU and OWC Envoy Express. A Third downstream bridge is for the third downstream Thunderbolt port. The fourth downstream bridge is probably for a PCI device connected as x4. Other options are x2x2, x2x1x1, and x1x1x1x1 which require more downstream bridges.
The OWC Envoy Express uses device 1 downstream bridge for its x2 connected NVMe drive.
The Blackmagic eGPU uses device 1 downstream bridge for its x4 connected GPU (an RX 580). Device 2 is the usual Thunderbolt 3 downstream bridge for the USB controller (Goshen Ridge had the USB controller at device 0). The downstream PCI bridge at device 4 is for the downstream Thunderbolt port.