Enclosure & Hardware Discussions
List of Intel Titan Ridge Thunderbolt 3 Devices
 

List of Intel Titan Ridge Thunderbolt 3 Devices  

 of  7
  RSS

karatekid430
(@karatekid430)
Estimable Member
Joined: 2 years ago
 

Hello community,

I will kick things off with the first confirmed device with Titan Ridge controllers: the HP Thunderbolt Dock G2 with JHL7440 chipset (8086:15ef/15f0).

The datasheet details functionality with both Thunderbolt and USB-C Alt-Mode hosts - which can only mean the JHL7440.
http://www8.hp.com/h20195/v2/GetPDF.aspx/4AA7-1989ENW.pdf

As you people discover the new products, please kindly post them here with links, and evidence / proof of it being Titan Ridge.

They should start to come out at the same time as the Intel Z390 chipset, which has the Titan Ridge built in. The Linux 4.17 kernel has become stable, and brings Titan Ridge driver support, so Intel are set and ready... to get trolled by the AMD Z490 chipset.

Cheers!

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
joevt
(@joevt)
Prominent Member
Joined: 2 years ago
 

The information in the data sheet for the HP Thunderbolt Dock G2 is confusing. How is more than two displays supported in Thunderbolt mode without MST? How does USB-C mode support more than one display without MST? Are the 5 ports independent or are some linked? Here are the slightly different specs in non-pdf format
https://support.hp.com/us-en/document/c05913756

Mac mini (2018), Mac Pro (Early 2008), MacBook Pro (Retina, 15-inch, Mid 2015), GA-Z170X-Gaming 7, Sapphire Pulse Radeon RX 580 8GB GDDR5, Sonnet Echo Express III-D, Trebleet Thunderbolt 3 to NVMe M.2 case


ReplyQuote
ha1o2surfer
(@se12897)
Trusted Member
Joined: 2 years ago
 

MST DP and TB3 live on the same cable at the same time so I don't see that being an issue?

I use a TB3 > TB2 adapter after a couple of TB2 devices using a MST hub and it works fine with 3 monitors 3 ways down the chain. That's why TB3 is split up so MST can be active even when thunderbolt mode is activated.

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
joevt
(@joevt)
Prominent Member
Joined: 2 years ago
 

True, MST works over Thunderbolt. You could probably connect two MST hubs (the total number of displays allowed will be limited by bandwidth and graphics driver). What we need to know is the bandwidth limits so we can understand the display counts and resolution limits better. The Alpine Ridge Thunderbolt controller JHL6540 has two paths for DiplayPort output. Two DisplayPorts can come from the Thunderbolt port, or one from the Thunderbolt port and one from a DisplayPort output.

I don't know what the JHL7440 adds compared to the JHL6540 besides allowing DisplayPort 1.4 instead of just DisplayPort 1.2, and USB-C + DisplayPort alt mode input (to a Thunderbolt port?).

The HP Thunderbolt Dock G2 has 5 display outputs: Thunderbolt, USB-C alt mode, DisplayPort 1, DisplayPort 2, VGA. We don't know which of those are connected to the same MST hub, and what each MST hub (more than one?) is connected to on the Thunderbolt 3 controller. The DisplayPorts might be one MST hub, as they show no configuration for those two ports with two displays at 4K from DP 1.2 Thunderbolt host. They show 4K x 2 for DP 1.3 Thunderbolt host. Couldn't they show 2K x 2 for DP 1.2 host?

They don't have any configuration examples for the VGA port. Maybe the VGA port uses a switch therefore can't be used with some of the ports.

The specs I linked don't show Operating Systems. The pdf document you linked shows macOS support, but macOS doesn't support MST, so the number of displays should be limited to two for Thunderbolt mode and one for USB-C mode. We need to know how the ports are connected to know which can be used simultaneously. Maybe Apple will add MST support for better Titan Ridge compatibility when they finish the new Mac Pro?

Another thing: what ports are usable in USB-C mode? Ethernet? It appears that in USB-C mode, the dock allows only two lanes of DisplayPort so the USB 3.0 ports can operate at USB 3.0 speeds. So why would the Thunderbolt port be limited to USB 2.0 speeds in USB-C mode?

Here's a link to the dock with Audio Module added:  http://h20195.www2.hp.com/v2/getpdf.aspx/4AA7-2993ENW.pdf

Mac mini (2018), Mac Pro (Early 2008), MacBook Pro (Retina, 15-inch, Mid 2015), GA-Z170X-Gaming 7, Sapphire Pulse Radeon RX 580 8GB GDDR5, Sonnet Echo Express III-D, Trebleet Thunderbolt 3 to NVMe M.2 case


ReplyQuote
karatekid430
(@karatekid430)
Estimable Member
Joined: 2 years ago
 

@joevt Thunderbolt does nothing except transport from A to B. Whereas a USB controller appears with all the devices behind it, and converts from PCIe to USB ports, Thunderbolt is simply a means of delivering other standards. Those are PCIe and DisplayPort. DisplayPort was chosen because of its routable nature. Thunderbolt can carry 2x DP streams (8 lanes). A normal DP cable is 4 lanes of DisplayPort protocol. So Thunderbolt can deliver to two monitors without using the MST features (although technically MST is part of how DP is transcribed onto the Thunderbolt cable). That is assuming there are two DP streams to the host Thunderbolt controller from the GPU. Some manufacturers only provide one. The vendors of the Thunderbolt 3 -> Dual DP adapters will have disclaimers about this.
But that aside, because Thunderbolt just carries the signal from A to B (can be thought of as PCIe 3.0 x4 cable and 2x DisplayPort cables jammed together with power delivery), the end device can just hook a MST hub chip to the DisplayPort output of the Thunderbolt controller. Just as you can connect MST hubs straight to your GPU with plain DisplayPort.
For plain USB-C alt-mode DP to drive two displays, there must be a MST hub - although it could already be built into Titan Ridge (who knows?), alleviating the need for a separate chip. It is likely, because otherwise you can have the JHL7440 chip hooked up to 2x 3840x2160p 60Hz monitors, via two DP outputs on the dock, and then when it is plugged into USB-C (non-Thunderbolt), one monitor would fail to work at all. That would need some crazy muxxing going on, adding to the complexity and discouraging OEMs from using the technology.

I don't understand the confusion - is this to do with Titan Ridge in particular, or are you confused at Thunderbolt in general?

About the Thunderbolt port being limited to USB 2.0, it is basically saying in stupid people language that the port cannot have Thunderbolt functionality. So people don't think they can add Thunderbolt devices after the dock, with their USB-C computer. Not that I have read it that closely. Theoretically it could have USB 3.0 (as in, the Thunderbolt 3 port acting as plain USB-C, with or without DP alt-mode). But perhaps it was easier just to avoid it. Also the USB-C cable has D+ and D- wires (honestly a massive waste, IMO), so perhaps it is feeding them right through.

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


itsage liked
ReplyQuote
karatekid430
(@karatekid430)
Estimable Member
Joined: 2 years ago
 
Posted by: ha1o2surfer

MST DP and TB3 live on the same cable at the same time so I don't see that being an issue?

I use a TB3 > TB2 adapter after a couple of TB2 devices using a MST hub and it works fine with 3 monitors 3 ways down the chain. That's why TB3 is split up so MST can be active even when thunderbolt mode is activated.

Please explain what you mean. From what it sounds like, what you are claiming to have done is impossible (TB3->TB2 adapters do not support DP alt-mode; only DP through Thunderbolt protocol). Like please map out the device chain, adapters, MST hub and monitors. Thanks.

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
joevt
(@joevt)
Prominent Member
Joined: 2 years ago
 
Posted by: karatekid430

I don't understand the confusion - is this to do with Titan Ridge in particular, or are you confused at Thunderbolt in general?

No confusion. I don't think anything you said disagrees with what I said. My questions relate to implementation details that are not described explicitly or explained by the HP Thunderbolt Dock G2.

Posted by: karatekid430

About the Thunderbolt port being limited to USB 2.0, it is basically saying in stupid people language that the port cannot have Thunderbolt functionality. So people don't think they can add Thunderbolt devices after the dock, with their USB-C computer.

Agreed.

Posted by: karatekid430

Theoretically it could have USB 3.0 (as in, the Thunderbolt 3 port acting as plain USB-C, with or without DP alt-mode). But perhaps it was easier just to avoid it.

I would think all the logic to support a USB 3.1 gen 2 connection would be inside the Thunderbolt controller for that port. Thunderbolt is a complicated thing and this simplification seems out of place. Maybe another implementation detail we're not seeing.

Posted by: karatekid430

Also the USB-C cable has D+ and D- wires (honestly a massive waste, IMO), so perhaps it is feeding them right through.

Not a waste in the LG UltraFine 4K which uses all 4 super speed lanes for DisplayPort 1.2, and those high speed D+/D- wires for USB 2.0 ports.

Posted by: karatekid430

Please explain what you mean. From what it sounds like, what you are claiming to have done is impossible (TB3->TB2 adapters do not support DP alt-mode; only DP through Thunderbolt protocol). Like please map out the device chain, adapters, MST hub and monitors.

I think ha1o2surfer's statement is missing some punctuation and needs some slight rewording, like this:
I use a TB3 > TB2 adapter. After a couple of TB2 devices, a MST hub is used and it works fine with 3 monitors 3 ways down the chain.

The TB3->TB2 adapter passes a Thunderbolt encapsulated DisplayPort stream that a Thunderbolt controller in a Thunderbolt device later in the chain can convert to DisplayPort. The MST hub must be connected to a Thunderbolt controller's DisplayPort output.

So the device chain must be like this: Thunderbolt 3 computer -> Thunderbolt 3 to Thunderbolt 2 adapter -> first Thunderbolt 2 device -> ... -> last Thunderbolt 2 device -> MST hub ->>> three displays. This can support 2560 x 1440 + 2560 x 1440 + 1920 x 1200 all at 60 Hz using just one DisplayPort connection. Thunderbolt can support two DisplayPort connections, but maybe his motherboard only has one DisplayPort connection to the Thunderbolt controller (like in my Gigabyte Z170X-Gaming 7).

Mac mini (2018), Mac Pro (Early 2008), MacBook Pro (Retina, 15-inch, Mid 2015), GA-Z170X-Gaming 7, Sapphire Pulse Radeon RX 580 8GB GDDR5, Sonnet Echo Express III-D, Trebleet Thunderbolt 3 to NVMe M.2 case


ReplyQuote
joevt
(@joevt)
Prominent Member
Joined: 2 years ago
 

Here's an eGPU using Titan Ridge:

[Unboxing] Blackmagic eGPU Radeon Pro 580 Thunderbolt 3 Enclosure

Mac mini (2018), Mac Pro (Early 2008), MacBook Pro (Retina, 15-inch, Mid 2015), GA-Z170X-Gaming 7, Sapphire Pulse Radeon RX 580 8GB GDDR5, Sonnet Echo Express III-D, Trebleet Thunderbolt 3 to NVMe M.2 case


ReplyQuote
karatekid430
(@karatekid430)
Estimable Member
Joined: 2 years ago
 
Posted by: joevt

Here's an eGPU using Titan Ridge:

[Unboxing] Blackmagic eGPU Radeon Pro 580 Thunderbolt 3 Enclosure

Nice. It appears to have daisy chaining, which is usually prohibited with eGPUs by Intel.

On the down side, the GPU appears to be integrated and not replaceable. Plus, it has HDMI instead of DisplayPort. Also 87W PD is sad. Again, they should have gone all the way to 100W.

I found the first laptop with Titan Ridge - Lenovo P52 with JHL7540 - assuming what this guy says is accurate. There are no signs of Thunderbolt in the dump, because the OP clearly has no clue and did not force_power to the Thunderbolt first.  https://ask.fedoraproject.org/en/question/122347/hardware-issues-with-fedora-28-on-lenovo-p52/

Seriously, can't they give the privilege of examining unreleased hardware to somebody knowledgeable? Like a BIOS engineer or somebody with low-level knowledge.

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
joevt
(@joevt)
Prominent Member
Joined: 2 years ago
 

Macbook Pro 2018 has Titan Ridge. Stupid Apple specs don't mention DisplayPort 1.4 (or even DisplayPort 1.2).
MacBook Pro 13" Touch Bar 2018 Teardown

Mac mini (2018), Mac Pro (Early 2008), MacBook Pro (Retina, 15-inch, Mid 2015), GA-Z170X-Gaming 7, Sapphire Pulse Radeon RX 580 8GB GDDR5, Sonnet Echo Express III-D, Trebleet Thunderbolt 3 to NVMe M.2 case


ReplyQuote
karatekid430
(@karatekid430)
Estimable Member
Joined: 2 years ago
 
Posted by: joevt

Macbook Pro 2018 has Titan Ridge. Stupid Apple specs don't mention DisplayPort 1.4 (or even DisplayPort 1.2).
MacBook Pro 13" Touch Bar 2018 Teardown

https://www.macrumors.com/2018/07/20/2018-macbook-pro-titan-ridge-displayport/

15" = DP1.4 (2x 5K displays), 8K unsupported.
13" = poops the bed with DP1.2, thanks Intel Iris.

I wonder what the first real computer to have Titan Ridge will be. Something with actual UEFI present.

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
joevt
(@joevt)
Prominent Member
Joined: 2 years ago
 
Posted by: karatekid430
Posted by: joevt

Macbook Pro 2018 has Titan Ridge. Stupid Apple specs don't mention DisplayPort 1.4 (or even DisplayPort 1.2).
MacBook Pro 13" Touch Bar 2018 Teardown

https://www.macrumors.com/2018/07/20/2018-macbook-pro-titan-ridge-displayport/

15" = DP1.4 (2x 5K displays), 8K unsupported.
13" = poops the bed with DP1.2, thanks Intel Iris.

I wonder what the first real computer to have Titan Ridge will be. Something with actual UEFI present.

Macs have UEFI. Just not all the stuff a PC has.

8K unsupported probably refers to SST with Display Stream Compression. They don't mention the dual cable DisplayPort 1.4 method used by the Dell UP3218K. That's for 60 Hz. You can do 30 Hz with one DisplayPort 1.4 cable.

Also, why can't the MacBook Pro 15" have four 5K displays, one per Thunderbolt 3 port? Is it the OS, Radeon, or Titan Ridge chips that can't do it?

Mac mini (2018), Mac Pro (Early 2008), MacBook Pro (Retina, 15-inch, Mid 2015), GA-Z170X-Gaming 7, Sapphire Pulse Radeon RX 580 8GB GDDR5, Sonnet Echo Express III-D, Trebleet Thunderbolt 3 to NVMe M.2 case


ReplyQuote
joevt
(@joevt)
Prominent Member
Joined: 2 years ago
 
Posted by: joevt

Also, why can't the MacBook Pro 15" have four 5K displays, one per Thunderbolt 3 port? Is it the OS, Radeon, or Titan Ridge chips that can't do it?

This document says Radeon Polaris 10 can only support one 5K single cable display, or three dual cable 5K displays.
Radeon’s next-generation Vega architecture
That's different than the two suggested in that macrumors.com post. Radeon 580 is Polaris 20 which is just a revamped Polaris 10. I don't know if anything changed except the process size. The wikipedia page says 2-6 5K displays. The only thing I can get out of that range is that the number is not one which contradicts the linked white paper.

Mac mini (2018), Mac Pro (Early 2008), MacBook Pro (Retina, 15-inch, Mid 2015), GA-Z170X-Gaming 7, Sapphire Pulse Radeon RX 580 8GB GDDR5, Sonnet Echo Express III-D, Trebleet Thunderbolt 3 to NVMe M.2 case


ReplyQuote
karatekid430
(@karatekid430)
Estimable Member
Joined: 2 years ago
 

@joevt Pretty sure MacBook has EFI, not UEFI - which is why it has to apply workarounds for Bootcamp.
It's good that Apple seems to be removing responsibility from BIOS - it is how everything should be going. But doing it against industry standards and using it as a tool to lock you down to OSX? Not okay. For some reason, nobody ever mentioned that Thunderbolt does not need authorising on Apple hardware - which means the IOMMU must be set up in EFI mode. Idk if I mentioned this before, but Mika Westerberg of Intel suggested that this will be coming to PCs; work is being done, or something to that effect.

Here's why everybody should agree with me:
1) Firmware can compromise the system - for example, ACPI has been compared with trojans by senior Linux developers - allowing bytecode to be executed in supervisor / kernel mode, with full privileges to whole system. I have read about proof of concept / demonstration SMM rootkits, scary. You wipe the OS and reinstall, and the firmware can inject the malware straight back into the OS, possibly even in the form of a kernel-mode driver, which can be undetectable, and have complete and utter control over the whole system.
2) Kills compatibility. If two motherboards have same chipset and CPU, why do they need two different, incompatible BIOS images? Images that are so different that they would brick each other if cross-flashed. At least if there must be a BIOS, it should be the same for all systems of the same generation and architecture. Firmware means updates have to be delivered for every model, through each vendor. Instead, if the stuff were transferred to the OS, then Spectre patches could be done wholly through the OS kernel - without messy BIOS updates, that most people will never do.
3) Cannot audit the BIOS code, closed source. Difficult to modify. Easy to brick. If there has to be BIOS, it should be a USB header on the motherboard with a tiny USB stick in there, so you can update the BIOS easily. The BIOS should really be a miniature Linux kernel with just enough code to detect boot devices, display a boot menu and load the selected OS. That way, it would be easy to customise the boot process if needed, and it would not be dependent on your exact make and model. There probably should be something in the TPM that verifies the USB stick first, so that people with physical access to your machine cannot compromise you.
4) All devices with firmware shouldn't have NVM (non-volatile memory). Things like the Thunderbolt 3 controller should store firmware in RAM, and forget it when powered down (OS flash the firmware when device initialised) - that way firmware-persistent rootkits cannot reside in devices, and also, it means the firmware updates will become delivered in or with the drivers - so always up to date.
5) Deal with lack of ACPI by putting ACPI functionality into device drivers. For example, ACPI handles backlight. The keyboard backlight should be standardised as a keyboard function (that way the OS could control the backlighting of external USB keyboards, also), and the screen backlight would be seen as part of the "Generic PNP Monitor" driver, perhaps implemented as a function in the DisplayPort specification. I have the Dell S2340T which can have backlight control from the PC - albeit only through the USB 3.0 cable which handles the touch screen functionality. It would be good system design to have these functions bundled in with the devices, and handled with device drivers in the OS, rather than firmware updates.
6) I admit I do not know what I am talking about as much with this point, but I still have a point: stateless design is usually more robust, and trashing firmware will help with that. Clearly, most devices must have states, but we can still cut down on statefulness where it is not absolutely necessary.
7) Most useful for people in this forum, it would allow you to set the PCI hotplug flags on any bus you want, and enable PCIe bifurcation support on any slot, without the manufacturer supporting it. If they are part of the standards, why are the options not exposed in most motherboards? There should be no resource allocation going on; that should be up to the OS. This way, no more dreaded "Code 12" not enough resources error for eGPU, ever, if the OS just allocated straight into 64-bit address space (and if IOMMU set up, this should be easy to do because it will make the allocation restraints such as alignment easier to fulfil, not to mention allowing non-contiguous physical addresses to appear contiguous).
8) It would make Thunderbolt 3 add-in cards universal, and able to work with any system, including AMD and ARMv8 - because with no firmware, then Intel would have to manage the controllers exclusively with the kernel-mode driver, which would be able to load on any system (and in the case of Linux, any architecture).

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
karatekid430
(@karatekid430)
Estimable Member
Joined: 2 years ago
 

Also, I noticed this a week or two ago, but forgot to add: http://www.allion.com/index.php?view=news&g=8&d=555

Intel Titan Ridge: Lenovo ThinkVision series monitors - P32u and X1 2nd Gen

So far, the list is:
HP G2 Dock - JHL7440
Blackmagic eGPU - JHL7?40
Apple Macbook Pro 2018 13" and 15" - dual JHL7540
Lenovo P52 Workstation Laptop - JHL7540
Lenovo P32u monitor - JHL7?40
Lenovo X1 2nd Gen monitor - JHL7?40

But manufacturers are being sluggish - I contacted Startech about whether they had the Thunderbolt 3 -> Dual DisplayPort adapter coming in Titan Ridge. They replied that they had nothing planned, but should in the future when it becomes more mainstream. They asked what need I even had for those resolutions. I was disgusted - if every brand had that attitude, then nothing would ever change in computing - as they would all be waiting for each other to go first. My first reason I told them was to be prepared - so at least when DP1.4 devices become more common, I am ready. Also, I don't wish to be buying stuff with 2-3 year old controllers - then it is already obsolete at the time of purchase.

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
joevt
(@joevt)
Prominent Member
Joined: 2 years ago
 
Posted by: karatekid430

@joevt Pretty sure MacBook has EFI, not UEFI - which is why it has to apply workarounds for Bootcamp.

Boot Camp doesn't do anything special. It has a partitioning component to make room for Windows. You can use any disk partitioner for that. It has driver installers. You can get drivers from elsewhere. It has some Apple specific stuff, like a Boot Camp Startup Disk control panel. There's probably a Windows EFI variable editor that can do that. It has a keyboard component for brightness, sound, DVD eject. You could download the Boot Camp drivers from Apple and install them individually.

The following is a list of EFI version for some Macs.
About EFI and SMC firmware updates for Intel-based Mac computers

I believe 1.1 is EFI and 2.1 is UEFI. You probably need to run an EFI Shell to be sure.
Unified Extensible Firmware Interface

Posted by: karatekid430

Here's why everybody should agree with me:

I don't disagree with most of that.

Mac mini (2018), Mac Pro (Early 2008), MacBook Pro (Retina, 15-inch, Mid 2015), GA-Z170X-Gaming 7, Sapphire Pulse Radeon RX 580 8GB GDDR5, Sonnet Echo Express III-D, Trebleet Thunderbolt 3 to NVMe M.2 case


ReplyQuote
goalque
(@goalque)
Noble Member Admin
Joined: 3 years ago
 

Apple's EFI implementation is marked as 1.10 but contains a bunch more interfaces on top of 1.10, straight from Intel's UEFI 2.x specification, and some proprietary interfaces. It's worth getting used to UEFI Shell.

automate-eGPU EFIapple_set_os.efi
--
2018 13" MacBook Pro + Radeon [email protected] + Win10 1809


ReplyQuote
joevt
(@joevt)
Prominent Member
Joined: 2 years ago
 
Posted by: goalque

Apple's EFI implementation is marked as 1.10 but contains a bunch more interfaces on top of 1.10, straight from Intel's UEFI 2.x specification, and some proprietary interfaces. It's worth getting used to UEFI Shell.

Right. Apple's EFI implementation is close enough to UEFI that you can use it to boot Windows from UEFI instead of BIOS. Older Macs like my 2008 PowerMac have to use a BIOS Compatibility Support Module in it's EFI to boot Windows from BIOS. When you select Windows from the macOS Startup Disk control panel, you can look at the nvram variables to see if it's using the BIOS CSM or EFI to boot Windows.

For Macs, you can get UEFI Shell from installing rEFInd which is based on the earlier rEFIt and adds a bunch of Linux booting stuff. Clover is also based on rEFIt and also includes a UEFI Shell, but Clover is mostly used to boot macOS on PC's (it adds lots of stuff to rEFIt including DSDT edits to help boot macOS). The pure EFI method of using eGPU on Mac is based on Clover.
[Sticky] Two new eGPU solutions on macOS 10.13.4: pure EFI and hybrid

Mac mini (2018), Mac Pro (Early 2008), MacBook Pro (Retina, 15-inch, Mid 2015), GA-Z170X-Gaming 7, Sapphire Pulse Radeon RX 580 8GB GDDR5, Sonnet Echo Express III-D, Trebleet Thunderbolt 3 to NVMe M.2 case


ReplyQuote
goalque
(@goalque)
Noble Member Admin
Joined: 3 years ago
 

Correct, all TB1/TB2 generation Macs should be close to UEFI specs but each Mac firmware is different. For example, 2011 Mac mini supports GOP (Graphics Output Protocol) but its firmware couldn't output text through the eGPU due to missing STO (Simple Text Output Protocol) if I recall correct. Also, each firmware contains logic regarding the selected operating system (Linux/Windows/macOS):

https://mjg59.dreamwidth.org/15948.html
https://mjg59.dreamwidth.org/29954.html

Yes, my EFI app is based on Clover. Hundreds of lines of code have been commented out as we are using real Macs. rEFIt's volume selection logic is refactored and simplified for Macs only. I once tested Windows Boot Camp as well and was able to chain load apple_set_os.efi successfully and modified DSDT (not yet supported). The large memory space is beneficial but doesn't solve Window's error code 12 with all Macs. Detailed discussion here:  https://egpu.io/forums/mac-setup/mac-pro-2013-with-sonnet-egfx-breakaway-under-bootcamp-error-12/

automate-eGPU EFIapple_set_os.efi
--
2018 13" MacBook Pro + Radeon [email protected] + Win10 1809


itsage liked
ReplyQuote
karatekid430
(@karatekid430)
Estimable Member
Joined: 2 years ago
 
Posted by: goalque

Correct, all TB1/TB2 generation Macs should be close to UEFI specs but each Mac firmware is different. For example, 2011 Mac mini supports GOP (Graphics Output Protocol) but its firmware couldn't output text through the eGPU due to missing STO (Simple Text Output Protocol) if I recall correct. Also, each firmware contains logic regarding the selected operating system (Linux/Windows/macOS):

https://mjg59.dreamwidth.org/15948.html
https://mjg59.dreamwidth.org/29954.html

Yes, my EFI app is based on Clover. Hundreds of lines of code have been commented out as we are using real Macs. rEFIt's volume selection logic is refactored and simplified for Macs only. I once tested Windows Boot Camp as well and was able to chain load apple_set_os.efi successfully and modified DSDT (not yet supported). The large memory space is beneficial but doesn't solve Window's error code 12 with all Macs. Detailed discussion here:  https://egpu.io/forums/mac-setup/mac-pro-2013-with-sonnet-egfx-breakaway-under-bootcamp-error-12/

You sound like you know a lot about this stuff. Are you a firmware engineer?

I am planning on taking courses for X86 architecture, UEFI and PCIe to learn enough to break this stuff apart.

Are you at a level such that you would understand this?  https://www.linuxboot.org/

The goals I want to achieve:
-Understand if there is anything for which there is a good reason why the OS kernel cannot manage it (why it has to be in firmware)
-Move as much stuff out of firmware as possible
-Cripple ME to bare minimum, completely wipe out SMM, AMT and ACPI (emulate bare minimum ACPI needed for Windows, hand over control of as much as possible with OSC, etc)
-Thunderbolt handling from SMM -> OS kernel, allow for the AIC to work on any slot, including CPU lanes
-Try and coerce target OS into allocating with IOMMU to avoid problems finding contiguous memory regions, and also for security.
-Although far fetched, if it is possible to make a universal firmware that works on almost all motherboards, then I would be interested

Clearly this is a vast amount to learn, but I am willing to pursue a career with low level architecture and design.

The LinuxBoot project looks promising, but it only loads at the DXE phase. This means there is still garbage that is motherboard-specific before it loads.
Also, I am not sure if kexec syscall preserves bus initialisation - I would hope it is possible to load the target kernel into RAM, completely reset all of the bus states, and hand over to the other OS with a perfectly clean slate - so that the target OS is free to allocate things in the best way for its needs - rather than it being dictated.

If you know about this stuff then I would love to talk about it more if that is okay with you. Cheers!

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
goalque
(@goalque)
Noble Member Admin
Joined: 3 years ago
 
Posted by: karatekid430

You sound like you know a lot about this stuff. Are you a firmware engineer?

I am planning on taking courses for X86 architecture, UEFI and PCIe to learn enough to break this stuff apart.

Are you at a level such that you would understand this?  https://www.linuxboot.org/

The goals I want to achieve:
-Understand if there is anything for which there is a good reason why the OS kernel cannot manage it (why it has to be in firmware)
-Move as much stuff out of firmware as possible
-Cripple ME to bare minimum, completely wipe out SMM, AMT and ACPI (emulate bare minimum ACPI needed for Windows, hand over control of as much as possible with OSC, etc)
-Thunderbolt handling from SMM -> OS kernel, allow for the AIC to work on any slot, including CPU lanes
-Try and coerce target OS into allocating with IOMMU to avoid problems finding contiguous memory regions, and also for security.
-Although far fetched, if it is possible to make a universal firmware that works on almost all motherboards, then I would be interested

Clearly this is a vast amount to learn, but I am willing to pursue a career with low level architecture and design.

The LinuxBoot project looks promising, but it only loads at the DXE phase. This means there is still garbage that is motherboard-specific before it loads.
Also, I am not sure if kexec syscall preserves bus initialisation - I would hope it is possible to load the target kernel into RAM, completely reset all of the bus states, and hand over to the other OS with a perfectly clean slate - so that the target OS is free to allocate things in the best way for its needs - rather than it being dictated.

If you know about this stuff then I would love to talk about it more if that is okay with you. Cheers!

I've been a regular software engineer for over a decade and have a MSc degree, my field of specialisation was information processing tech so wasn't a big leap to learn from Intel PDFs. I didn't know anything about GPUs or (U)EFI programming a couple of years ago.

Unfortunately Intel's Thunderbolt documents are under NDA, and I have no access to these.

IOMMU is explained in detail here:

https://www.duo.uio.no/bitstream/handle/10852/44802/larsbk-pcie-device-lending.pdf

"One thing that both the PC and the Macs had in common was that they reserved space for additional devices on the hotplug slot as well as all upstream bridges as described in 2.2.2. This is in contrast to what most firmwares do, and what the Thunderbolt systems did for all non-Thunderbolt bridges. In these other cases, only the exact amount necessary is allocated. The extra resources for the Thunderbolt bridges allows the kernel to find room for the new devices."

So it's all about fitting eGPU BARs within the bridge resource windows. I remember reading that macOS algorithm was more intelligent and that's why we can easily use multiple eGPUs.

Thunderbolt/PCI code is not part of the open source version of the XNU kernel. The best starting point is to look at Linux kernel patches:

https://patchwork.ozlabs.org/patch/409994/

Linux kernel developers have contacts to a software engineering manager at Intel (Thunderbolt developer platform software team).

EDIT: Oops... seems that these emails are confidential.

automate-eGPU EFIapple_set_os.efi
--
2018 13" MacBook Pro + Radeon [email protected] + Win10 1809


ReplyQuote
joevt
(@joevt)
Prominent Member
Joined: 2 years ago
 

I believe we have access to macOS's PCIe configuration algorithm. You can find all the Thunderbolt settings for a PC bios, including many hidden settings that describe the slot used for an add-in card, force power, etc.

Posted November 24, 2017
Posted February 16
Posted February 26

The Hopper disassembler has improved since the last time I looked at this. You can find Thunderbolt drivers source for Linux now on github.

I would like to see some command line utilities in macOS to do the same kind of stuff you can do in Linux.

Mac mini (2018), Mac Pro (Early 2008), MacBook Pro (Retina, 15-inch, Mid 2015), GA-Z170X-Gaming 7, Sapphire Pulse Radeon RX 580 8GB GDDR5, Sonnet Echo Express III-D, Trebleet Thunderbolt 3 to NVMe M.2 case


goalque liked
ReplyQuote
ha1o2surfer
(@se12897)
Trusted Member
Joined: 2 years ago
 

 

Posted by: karatekid430

Please explain what you mean. From what it sounds like, what you are claiming to have done is impossible (TB3->TB2 adapters do not support DP alt-mode; only DP through Thunderbolt protocol). Like please map out the device chain, adapters, MST hub and monitors.

I think ha1o2surfer's statement is missing some punctuation and needs some slight rewording, like this:
I use a TB3 > TB2 adapter. After a couple of TB2 devices, a MST hub is used and it works fine with 3 monitors 3 ways down the chain.

The TB3->TB2 adapter passes a Thunderbolt encapsulated DisplayPort stream that a Thunderbolt controller in a Thunderbolt device later in the chain can convert to DisplayPort. The MST hub must be connected to a Thunderbolt controller's DisplayPort output.

So the device chain must be like this: Thunderbolt 3 computer -> Thunderbolt 3 to Thunderbolt 2 adapter -> first Thunderbolt 2 device -> ... -> last Thunderbolt 2 device -> MST hub ->>> three displays. This can support 2560 x 1440 + 2560 x 1440 + 1920 x 1200 all at 60 Hz using just one DisplayPort connection. Thunderbolt can support two DisplayPort connections, but maybe his motherboard only has one DisplayPort connection to the Thunderbolt controller (like in my Gigabyte Z170X-Gaming 7).

Yes this is correct! I am missing that period at the end of the first sentence. I'm using my HP x360 laptop and since I assumed my USBc to mDP adapter supports MST I figured I'd try it over a TB connection as well so I can have 7 monitors total with one connection to my laptop (with a TB2 "eGPU" as the ending of the chain with an MST adapter in the "eGPU" passthrough TB port)

FYI, changed my display name.

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
joevt
(@joevt)
Prominent Member
Joined: 2 years ago
 
Posted by: SE12897

Yes this is correct! I am missing that period at the end of the first sentence. I'm using my HP x360 laptop and since I assumed my USBc to mDP adapter supports MST I figured I'd try it over a TB connection as well so I can have 7 monitors total with one connection to my laptop (with a TB2 "eGPU" as the ending of the chain with an MST adapter in the "eGPU" passthrough TB port)

Just remember that connecting displays to a Thunderbolt port (or a DisplayPort of a Thunderbolt controller of a Thunderbolt device) reduces H2D bandwidth to any eGPU in that Thunderbolt chain (unless it's a Blackmagic eGPU) because the laptop's GPU is using the bandwidth to send Thunderbolt DisplayPort signals to those displays. This causes a performance decrease in games.

Mac mini (2018), Mac Pro (Early 2008), MacBook Pro (Retina, 15-inch, Mid 2015), GA-Z170X-Gaming 7, Sapphire Pulse Radeon RX 580 8GB GDDR5, Sonnet Echo Express III-D, Trebleet Thunderbolt 3 to NVMe M.2 case


ReplyQuote
ha1o2surfer
(@se12897)
Trusted Member
Joined: 2 years ago
 

Yeah. I only use this setup to gain more displays not to game. But this setup results in 800ishMB/s in H2D transfers so you'd be right lol

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
wimpzilla
(@wimpzilla)
Honorable Member
Joined: 3 years ago
 

As always being bad at software, can't really give any useful opinion about.
Even if starting to learn assembly language and computer science helped a lot lately.

But from what i know and what the hardware say, there is already malicious code allowed to flow by tech manufacturer.
For example, Intel ME and the AMD secure enclave role is mainly to enforce DRM policies or any policy that companies want to impose at hardware level.
And from what i understood about, not much can be done at the code level, no code change, removal would solve the issue.

So there is absolutely no chance in future to see these practices of hidden code execution left aside, only a major worldwide security crisis would get rid of it.

Edit: I mean, no major crisis happened direly related to in the last 10 years, the time it needed to stop bothering about transistor count built into a die.
Would not have been so simple more than 10 years ago, to dope the die adding some more transistors to build something running it's own kernel outside the main Ring 0 protected OS kernel.

2012 13-inch Dell Latitude E6320 + R9 [email protected] (EXP GDC 8.4) + Win10
E=Mc²


ReplyQuote
karatekid430
(@karatekid430)
Estimable Member
Joined: 2 years ago
 
Posted by: wimpzilla

As always being bad at software, can't really give any useful opinion about.
Even if starting to learn assembly language and computer science helped a lot lately.

But from what i know and what the hardware say, there is already malicious code allowed to flow by tech manufacturer.
For example, Intel ME and the AMD secure enclave role is mainly to enforce DRM policies or any policy that companies want to impose at hardware level.
And from what i understood about, not much can be done at the code level, no code change, removal would solve the issue.

So there is absolutely no chance in future to see these practices of hidden code execution left aside, only a major worldwide security crisis would get rid of it.

Edit: I mean, no major crisis happened direly related to in the last 10 years, the time it needed to stop bothering about transistor count built into a die.
Would not have been so simple more than 10 years ago, to dope the die adding some more transistors to build something running it's own kernel outside the main Ring 0 protected OS kernel.

That almost made sense, but I failed to parse the sentence structure.

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
karatekid430
(@karatekid430)
Estimable Member
Joined: 2 years ago
 
Posted by: joevt

I believe we have access to macOS's PCIe configuration algorithm. You can find all the Thunderbolt settings for a PC bios, including many hidden settings that describe the slot used for an add-in card, force power, etc.

Posted November 24, 2017
Posted February 16
Posted February 26

The Hopper disassembler has improved since the last time I looked at this. You can find Thunderbolt drivers source for Linux now on github.

I would like to see some command line utilities in macOS to do the same kind of stuff you can do in Linux.

Any chance they can run that disassembler over tbt100x.sys in Windows and a couple of dozen instances of tbtsmm EFI module? Or is it somehow specific to Mac drivers?

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
joevt
(@joevt)
Prominent Member
Joined: 2 years ago
 
Posted by: karatekid430
Posted by: joevt

I believe we have access to macOS's PCIe configuration algorithm. You can find all the Thunderbolt settings for a PC bios, including many hidden settings that describe the slot used for an add-in card, force power, etc.

Posted November 24, 2017
Posted February 16
Posted February 26

The Hopper disassembler has improved since the last time I looked at this. You can find Thunderbolt drivers source for Linux now on github.

I would like to see some command line utilities in macOS to do the same kind of stuff you can do in Linux.

Any chance they can run that disassembler over tbt100x.sys in Windows and a couple of dozen instances of tbtsmm EFI module? Or is it somehow specific to Mac drivers?

It works on Windows files too. There are better (more expensive?) disassemblers for Windows anyway (IDA?). I think working with the EFI might be easier, because most of it is open source. Every EFI file has the same kind of entry. The EFI GUIDs are easy to find so you know what's referring to what. You don't have to worry about OS specific code. The EFI contains all the info on the BIOS settings so you can easily make data types for everything and use them in the disassembly to find the code that uses the settings you care about (I started working on a script to create those types from the EFI information). You may need to convert the TE type files to PE type before disassembling (I made a script for that). This kind of work takes a long time though.

Mac mini (2018), Mac Pro (Early 2008), MacBook Pro (Retina, 15-inch, Mid 2015), GA-Z170X-Gaming 7, Sapphire Pulse Radeon RX 580 8GB GDDR5, Sonnet Echo Express III-D, Trebleet Thunderbolt 3 to NVMe M.2 case


ReplyQuote
wimpzilla
(@wimpzilla)
Honorable Member
Joined: 3 years ago
 

@karatekid430 

It does not need to have a sense.

These are facts, facts do not need a sense.
You can work as you want on the software that run on the cpu, but still the cpu itself is a black box with security features one can't leverage. 

I apologies tho for my poor English.

2012 13-inch Dell Latitude E6320 + R9 [email protected] (EXP GDC 8.4) + Win10
E=Mc²


ReplyQuote
karatekid430
(@karatekid430)
Estimable Member
Joined: 2 years ago
 
Posted by: wimpzilla

@karatekid430 

It does not need to have a sense.

These are facts, facts do not need a sense.
You can work as you want on the software that run on the cpu, but still the cpu itself is a black box with security features one can't leverage. 

I apologies tho for my poor English.

Sorry, I assumed you had made a few edits of your draft before posting and forgot to tidy up. It happens to the best of us.

Nobody can fault you for not having perfect English. It is great that you are learning though.

In other business, has anybody seen any more Titan Ridge devices? Unlike some people, I don't mind when the conversation spontaneously goes off topic. Sometimes it can actually lead to great conversations. But I do remember why I created this thread and I still care about it.

The main thing I am waiting for is the Gigabyte GC-TITAN RIDGE AIC. That will allow Titan Ridge in any Thunderbolt ready computer. I was hoping it would make it easier to hack into AMD systems, but now the evidence suggests it will not help - as Alpine Ridge is also capable of OsNativePciEnumeration. But I still want to get my hands on it.

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
joevt
(@joevt)
Prominent Member
Joined: 2 years ago
 

There was a demo by Intel on youtube of a couple Titan Ridge curved displays (Samsung and Asus), but I don't think they exist yet and they didn't show a model number

Here's a dock from www.goodway.com.tw:
Thunderbolt™ 3 Titan Ridge PD Dock
I don't know who they are. Maybe they make or sell products that other name brands put their name on (like how most Thunderbolt 3 to Dual DisplayPort adapters look the same but have someone else's name on them). It seems to have only one Thunderbolt 3 port (I guess the other is used for a second DisplayPort). You can connect to it with Thunderbolt or USB-C (which they call MFDP Multi-Function Display Port - a term I've never seen before).

Mac mini (2018), Mac Pro (Early 2008), MacBook Pro (Retina, 15-inch, Mid 2015), GA-Z170X-Gaming 7, Sapphire Pulse Radeon RX 580 8GB GDDR5, Sonnet Echo Express III-D, Trebleet Thunderbolt 3 to NVMe M.2 case


itsage liked
ReplyQuote
karatekid430
(@karatekid430)
Estimable Member
Joined: 2 years ago
 

@joevt3 Nice discovery with the Goodway. It looks nice, but it pooped the bed with VGA port on a modern device. And if it does 85W PD, it should have gone all the way to 100W. I wish Apple had not stopped at 87W - it seems to be giving everybody an excuse or justification to be stingy. Their MacBooks support 100W chargers, so why shouldn't they make 100W chargers?

I had seen that demo with the Samsung displays, but did not think to add it - as you said, no specific information.

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
 chx
(@chx)
Estimable Member
Joined: 3 years ago
 
Posted by: karatekid430

They should start to come out at the same time as the Intel Z390 chipset, which has the Titan Ridge built in.

Nope, the Z390 has USB 3.1 Gen 2 support built in but not Titan Ridge. Not here https://img.purch.com/05-jpg/o/aHR0cDovL21lZGlhLmJlc3RvZm1pY3JvLmNvbS9BLzIvNzcxNDgyL29yaWdpbmFsLzA1LkpQRw==   the datasheet doesn't contain the word thunder much less thunderbolt. https://www.intel.com/content/dam/www/public/us/en/documents/datasheets/300-series-chipset-pch-datasheet-vol-1.pdf https://www.intel.com/content/dam/www/public/us/en/documents/datasheets/300-series-chipset-pch-datasheet-vol-2.pdf. No native TB3 still. 

As for that MFDP USB C, TI explains: "Pin assignments B, D, and F use two SuperSpeed pairs to carry DisplayPort data and the remaining two SuperSpeed pairs to carry USB3 data. These modes are referred to as Multi-Function DisplayPort (MFDP)" and, very importantly this is under "VESA Specification for the DisplayPort Alternate Mode" so that's where this comes from. I can't find the VESA specification itself but  https://www.vesa.org/wp-content/uploads/2016/10/USB-DevDays-DisplayPort-Alternate-Mode-2016-final4.pdf this summary on page 18 mentions " The above configuration uses two high-speed lanes each for DisplayPort and USB 3.1".

Lenovo ThinkPad 25 -- GALAX SNPR TB3 1060 -- Lenovo Graphics Dock -- Benq BL2411PT - - two PackedPixels - Dasung not-eReader backer


ReplyQuote
wimpzilla
(@wimpzilla)
Honorable Member
Joined: 3 years ago
 

@chx

I also did not found any other true detailed chipset diagram about the Z390 platform, even if the previous leaks shown that TBT would be included: See here
There is a slide tho regarding TBT in this deck.

The other thing i checked is the NUC line-up: See here
And not so long ago Techpowerup posted the news regarding the NUC with built in TBT controller, Bean Canyon: See here
So i can assume that there will not be TBT Titan Ridge built into the Z390 chipset.

Also worth to notice i missed this peculiarity, from Anandtech: See here

The JHL7440 however is much more interesting. It too is a dual-port controller, but it is designed specifically for peripherals and is intended to enable compatibility between TB3 peripherals and USB-C hosts. Today’s TB3 docks and displays only work with systems featuring Thunderbolt 3 ports, as there's no way for Alpine Ridge controllers to fall back to being USB-C sinks. By contrast, the JHL7440 controller can fall back for use as a USB-C sink, allowing it to offer "basic compatibility" with USB-C ports. This of course gets into matters such as USB-C's many alt modes – particularly DisplayPort Alt Mode – by at the end of the day the idea is that with Titan Ridge, TB3 peripherals can be connected to a USB-C host and retain most of their functionality. So think TB3 drive arrays that will still operate with less bandwidth, TB3 monitors that may slow down or lose non-display features, etc.

Edit: I checked about the NUC SOC, if i believe the article it still use an Alpine Ridge: See here

I did not find tho any pictures of pcb to visually check where the controller is.

2012 13-inch Dell Latitude E6320 + R9 [email protected] (EXP GDC 8.4) + Win10
E=Mc²


ReplyQuote
solocamper
(@solocamper)
Active Member
Joined: 1 year ago
 

I would appreciate if you could stop spreading misinformation.  The Z390 has intel chip with integrated graphics.  Intel's integrated graphics do not support DP 1.4, at least to my knowledge.  Which means no Titan Ridge support.   unless I am wrong, please correction me.

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
 of  7