x1c6-hackintosh icon indicating copy to clipboard operation
x1c6-hackintosh copied to clipboard

Questions about the Thunderbolt 3 bus display?

Open CrazyPegasus opened this issue 4 years ago • 9 comments

To make the Thunderbolt 3 bus display the Thunderbolt device information: Is it necessary to plug in the Thunderbolt device? If the device is not plugged in, the Thunderbolt 3 bus is empty and does not display. In addition, how does the domain-uuid of the Thunderbolt 3 bus come from?

CrazyPegasus avatar Nov 18 '20 01:11 CrazyPegasus

Hey,

no its not needed to have a device connected. It is shown as soon as the OSX-drivers are correctly loaded (which in turn needs the ACPI-devices, the ICM in the expected state and a matching DROM injected via DeviceProperties).

The UUID is basically random and should generally be unique per system as it is used in TB-based networking between machines which would not work if two, via thunderbolt connected, machines have the same UUID. ATM I ignore this fact basically to not make things even more complicated.

benbender avatar Nov 18 '20 09:11 benbender

The SSDT-4-RVP7Rtd3 of my T580 does not have _PS0: Power State 0 and _PS3: Power State 3 power switch states. Although my Thunderbolt 3 hot swap is normal, the egpu is also normal, just the Thunderbus bus. That is not displayed. I want it to be displayed now. So are _PS0 and _PS3 important? It depends on the _PS used in your Raiden ssdt.

CrazyPegasus avatar Nov 19 '20 01:11 CrazyPegasus

Uploading ThinkPad T580 origin.zip…

CrazyPegasus avatar Nov 19 '20 02:11 CrazyPegasus

The thing is that your devices are probably running as simple PCI-devices behind a PCIe-bridge. The connections are handled inside the ICM and not the OSX-driver. Have a look at the init()-method of DSB0 - thats where the ICM is resetted.

benbender avatar Nov 19 '20 03:11 benbender

You mean to put If (OSDW) { ICMD () } Else { ICMS () }Change to If (OSDW) { ICMS () } Else { ICMD () } in SSDT-DSB0

CrazyPegasus avatar Nov 19 '20 03:11 CrazyPegasus

That's where the ICM is handled, yes. Real work for OSX is done in ICMD(). But you need the whole, fitting setup (bios, acpi, icm-setup, drom-config) to make it load/work.

PS: Is the T580 like the T480 with only one TB-port and a JHL6240?

benbender avatar Nov 19 '20 11:11 benbender

Yes, P52s, T480s, T580, T480 are all JHL6240 ports

CrazyPegasus avatar Nov 19 '20 12:11 CrazyPegasus

Those would at least need a different DROM and I'm unsure if those machines, without an integrated TB-switch, are (fully) supported by apples drivers at all. It may be needed to have a look at the original ACPI-implementation on those first generation macbookair with only one port. My ACPI-patches are a relative straight port of the implementation of the macbookpro14,1-ACPI for TB-handling, which has two ports and an integrated switch.

benbender avatar Nov 19 '20 12:11 benbender

Hi. I'm looking at your Thunderbolt 3 implementation in macOS, and I was wondering if I could port it to my HP Elite X2 1012 G2 with one Thunderbolt 3 port, JHL6540. What I've tried:

  • Use OSY's ThunderboltReset: not working.
  • Use your bare code with modified device names: not working.
  • Use your debugging code to see what happens: Thunderbolt device is not turning on.
  • Look at BIOS for Thunderbolt 3 settings: only security level exists; None, User Authorization, and Full. I'm guessing more work needs to be done on the ACPI side and DROM. May I ask a series of questions?
  • What does integerated TB-switch mean?
  • Is ThunderboltUtil.sh how you mod DROM? But how do I use it?
  • I have about zero knowledge in reverse engineering. I can at least look up ACPI methods to see what it executes. Is this whole getting Thunderbolt 3 to work worth the try?

By the way, I think this needs to be inside _UPC.

whatnameisit avatar Nov 21 '21 00:11 whatnameisit