Jump to content

393 posts in this topic

Recommended Posts

On 3/24/2019 at 6:31 PM, zipb said:

Your hotplug method doesn't work for me on my Gigabyte Z170X-UD5-TH. Unplugging/replugging a device kills everything hanging of my 2 (internal)TB/USB-c ports, TB & USB all disappears and a restart is needed.

Also, after sleep my TB device is gone. Basically, same behavior as no SSDT at all.

I just have posted an old post. In fact, I don´t know how to do it.

 

Share this post


Link to post
Share on other sites
Advertisement

Hey gang. First (ish) post/reply here. So hot swap works and with FakePCIID I get the Intel Drivers in IOreg but like everyone else here not in system report. I'm wondering if its at all possible to use an Inject file with FakePCIID to get the thunderbolt devices to show up under the Thunderbolt Controller tree. Anybody messed around with this?

 

Also attached is the SSDT I used for hot swap. I believe it was for a 299. Im using an Asus Prime z370a and EX3 TB3 card.

 

 

Screen Shot 2019-03-29 at 3.18.32 PM.png

Screen Shot 2019-03-29 at 3.18.56 PM.png

SSDT-TB3.aml

Share this post


Link to post
Share on other sites
Posted (edited)

Hi all, i am trying to get hotplug working with my thunderbolt Apline Ridge card plugged on a X299 mobo. i am using macOS High Sierra 10.13.6. I can't get this to work with any of the SSDTs provided here kindly by KGP or maleorderbride

Here is my SSDTs and Ioreg file (with thunderbolt 3 devices plugged in at startup).

Any help would be very much appreciated. Best regards

X299.ioreg

SSDT-DTPG.aml

SSDT-X299-TB3HP.aml

Edited by WHLBR

Share this post


Link to post
Share on other sites

Definitely, something is breaking the connection to at least one driver, etc when I power down my UAD Apollo. –I suppose that's a version of hotswap. Even now on Titan Ridge, nothing has changed except that I can use both TB ports.  I am skeptical that TB hotplug will ever be fixed, given the number of people that have been working on it. It'll drive you nuts. If KGP couldn't fix it, I doubt it'll ever be. Not being negative here, just practical so that I can work and not have this issue nagging my brain. If someone can truly solve it (as in YouTube proof) you win the insanelymac nobel prize in computer science.

Share this post


Link to post
Share on other sites

Hey guys, I have a X99-E WS board and Thunderbolt EX 3 card is in slot 2, no other slots are possible.

 

I get have an external Thunderbolt 1 case with a ssd inside and Apple TB3 to TB2 adapter. I can see the drive in clover and also in my OS mojave 10.14.5, but I cant see anything in Systemprofiler -> PCI.

 

I tried to use KGP X99 SSDT (SSDT-X99-TB3HP.aml) and change the PCI Path, but nothing is happen.

 

How can I fix it?

 

Here my IOREGand edited SSDT 

Bildschirmfoto 2019-07-05 um 18.20.42.png

SSDT-X99-TB3HP.aml

Share this post


Link to post
Share on other sites

I can’t make Apple Thunderbolt Display work with GC-Alpine Ridge, ASUS board and Apple TB3->TB2 adapter. I don’t need hotplug, etc. Display doesn’t turn on at all. Any ideas?

Share this post


Link to post
Share on other sites
On 7/7/2019 at 8:45 AM, Napka said:

I can’t make Apple Thunderbolt Display work with GC-Alpine Ridge, ASUS board and Apple TB3->TB2 adapter. I don’t need hotplug, etc. Display doesn’t turn on at all. Any ideas?

Do you connect the displaycable from Displayport on your GPU to mini Displayport on your TB3 card?

Share this post


Link to post
Share on other sites
Do you connect the displaycable from Displayport on your GPU to mini Displayport on your TB3 card?

I’ve tried both miniDP inputs and both TB3 ports.

Share this post


Link to post
Share on other sites
5 hours ago, LUMINEAU said:

hello the titan card Gigabyte works on macpro 2010 with mojave without windows 10 hand shake ?

Only for USB devices. Thunderbolt still requires Windows 10 to enumerate Thunderbolt devices.

Share this post


Link to post
Share on other sites
Posted (edited)

!!! There seems to be good news for REAL Thunderbolt live HotPlug/HotSwap functionallity while your Hackintosh is running !!!

 

I found a solution with just 7 rows of code within any of your Thunderbolt-SSDTs (you are just using right now to make it work) to make HotPlug/HotSwap work for any Thunderbolt/USB-C device possible w/o the need for shutdown/restart of the machine.

Right now i still test it with some german guys to make sure, it runs on any motherboard (not just ASRock Z3x0 like mine). If all tests confirmed it working succesfully, i promise, i will provide you with a detailed

instruction on how to make it work.

 

And SORRY, it's still a solution for HotPlug/HotSwap with Thunderbolt, it's NOT a solution to make Thunderbolt-tree visible under Systeminformation/Thunderbolt

 

So far you will find attached an IORegistryExplorer file of my System connected with CalDigit ThunderboltStation 2 connected to CalDigit ThunderboltStation 3 on Port #1 of GC Titan Ridge PCIe Card and a LaCie Tb2-SSD connected to Port #2

I just swapped the Devices on Port #1 to Port #2 and vice versa while runnning my machine - not turning off/on before swapping. You will notice this in the IOReg file by the red parts within Thunderbolt Part at PCI0-PEG2. RED lines mean

in which position the TB-device was connected before HotSwapping it to the new position, black lines mean where it sits right now.

 

Just a little notice: TB-SSDs/TB-HDDs need to be unmounted before hotswapping - otherwise you will get error message of not correctly unmounted device  ;-)

IOReg_allTB3-Devices_I_have.zip

Edited by Mork vom Ork
information change

Share this post


Link to post
Share on other sites

Want real Thunderbolt HotPlug/HotSwap on the fly while your Hackintosh is running? Well, than this might be your solution:

 

I have tested a lot of so promising Thunderbolt HotPlug SSDTs out there and none of them provide a working solution for me, so i decided to spend some time on a working solution for real Thunderbolt HotPlug/HotSwap,

where you can change your Thunderbolt devices on the fly w/o restarting your Hackintosh every time you connect/change a device. Also this tutorial will work for motherboards with onboard Thunderbolt as well as for motherboards with Thunderbold Header connector.

 

Ok, lets start how to make it work:

as in many other threads the first thing you have to know is where your Thunderbolt hardware belongs in your ACPI path. To find out where it belongs, just open "IORegistryExlorer" while bootet normaly into macOS. Than search for some entrys like this:

 

Sample of ASRock Z270 Super Carrier:

Z270_TB_default.jpg.48b81e09a672832c7accde871cb1d364.jpg

 

Sample of ASRock Z370 Professional Gaming i7:

Z370_TB_default.thumb.jpg.83df8017fdaab1af669dcf6406c4315c.jpg

 

 

Just for explanation: ASRock Z270 Super Carrier used builtin/onboard Thunderbolt 3, while ASRock Z370 Professional Gaming i7 uses Thunderbolt Header and a GC Gigabyte Titan Ridge PCIe card for Thunderbolt 3.

As you can see for the Z270 the ACPI path looks like RP01/PXSX, while ACPI path for Z370 looks like PEG2/PEGP. Rememeber these entrys for later modification when it comes to edit the Thunderbolt SSDT file.

 

Second: lets set the right BIOS settings for working Thunderbolt HotPlug/HotSwitch

Lets take a look at the default BIOS settings for the given two sample motherboards  ASRock Z270/370. The following screenshots shows their default settings for Thunderbolt when you install their latest BIOS revisions:

 

standard BIOS settings ASRock Z270 Super Carrier:

Z270_TB_default.thumb.jpg.4bbe5769fa598d5008340193620a2aba.jpg

 

 

standard BIOS settings ASRock Z370 Professional Gaming i7:

Z370_TB_default.thumb.jpg.d6258026ed2724cd3f05ff52f2cbf20b.jpg

 

These are all settings for Thunderbolt given by default from ASRock on their Motherboards. But there are even more settings for Thunderbolt within their BIOS files, which need to be "unlocked"* first. After doing so, there might be a lot of more settings, like this:

 

ASRock Z270 Super Carrier all settings unlocked:

Z270_TB_modified_1.thumb.jpg.106f4245a64a5fc4f09e4d8b6270de6f.jpg - Z270_TB_modified_2.thumb.jpg.e3101d909efcf79dba09600dd03df6ec.jpg

 

ASRock Z370 Professional Gaming i7 all settings unlocked:

Z370_TB_modified_1.thumb.jpg.c7e2408840ff972b27a7c89da2124ba9.jpg - Z370_TB_modified_2.thumb.jpg.b50662c246755a607b85cacb16a125d3.jpg

 

To make HotPlug/HotSwap working for your motherboard, just look for similar settings in your BIOS for Thunderbolt and set them as shown in the above screens. Sorry, i could only provide screenshots from ASRock machines, cause i do not have any other manufacturer.

The most importent settings you need are "Thunderbolt (TM) Force Power" (which not all boards will have) and "GPIO3 Force Pwr" (which i recognized allmost every manufacturer will have in their BIOS settings for Thunderbolt). Just set these two settings to "ENABLED". <--- otherwise HotPlug/HotSwap will not work as expected.

Also important is to switch a setting called "AIC Location" from "NB PCIE D01F0" to "NB PCIE D01F2". Notice: on Z270 Super Carrier i had to set this setting from NB PCIE D01F0 to NB PCIE D01F2 while on the Z370 Professional Gaming i7 it was set to NB PCIE D01F02 by default. If all settings set as described, save your settings and restart your Hackintosh.

 

Third: prepare an SSDT for Thunderbolt to use with your Hackintosh. Place the SSDT file in the following location:

 

EFI/CLOVER/ACPI/patched

 

Attached to this tutorial you will find a sample SSDT (SSDT-10-TbtOnPch.aml), which we use to modify for our needs. Lets take a look at its code:

Spoiler

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20161210-64(RM)
 * Copyright (c) 2000 - 2016 Intel Corporation
 * 
 * Disassembling to non-symbolic legacy ASL operators
 *
 * Disassembly of iASLI5x7qz.aml, Sun Sep  1 21:42:58 2019
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x000002C8 (712)
 *     Revision         0x02
 *     Checksum         0x40
 *     OEM ID           "APPLE "
 *     OEM Table ID     "TbtOnPCH"
 *     OEM Revision     0x00001000 (4096)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20161210 (538317328)
 */
DefinitionBlock ("", "SSDT", 2, "APPLE ", "TbtOnPCH", 0x00001000)
{
    External (_SB_.PCI0.RP01, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.RP01.PXSX, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.XHC_, DeviceObj)    // (from opcode)
    External (DTGP, MethodObj)    // 5 Arguments (from opcode)
    External (PXSX, DeviceObj)    // (from opcode)

    Scope (_SB.PCI0.RP01)
    {
        Scope (PXSX)
        {
            Name (_STA, Zero)  // _STA: Status
            Method (NTFY, 2, NotSerialized)
            {
                If (LEqual (Arg0, 0x02))
                {
                    Notify (\_SB.PCI0.RP01.UPSB.DSB0.NHI0, 0x02)
                }
            }
        }

        Device (UPSB)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Return (0x0F)
            }

            Device (DSB0)
            {
                Name (_ADR, Zero)  // _ADR: Address
                Method (_STA, 0, NotSerialized)  // _STA: Status
                {
                    Return (0x0F)
                }

                Device (NHI0)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    Name (_STR, Unicode ("Thunderbolt"))  // _STR: Description String
                    Method (_STA, 0, NotSerialized)  // _STA: Status
                    {
                        Return (0x0F)
                    }

                    Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                    {
                        If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))
                        {
                            Store (Package (0x0B)
                                {
                                    "AAPL,slot-name", 
                                    Buffer (0x09)
                                    {
                                        "Built In"
                                    }, 

                                    "device_type", 
                                    Buffer (0x19)
                                    {
                                        "Thunderbolt 3 Controller"
                                    }, 

                                    "model", 
                                    Buffer (0x1E)
                                    {
                                        "GC Titan Ridge TB3 Controller"
                                    }, 

                                    "name", 
                                    Buffer (0x0F)
                                    {
                                        "UPSB-DSB0-NHI0"
                                    }, 

                                    "power-save", 
                                    One, 
                                    Buffer (One)
                                    {
                                         0x00                                           
                                    }
                                }, Local0)
                            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                            Return (Local0)
                        }

                        Return (Zero)
                    }
                }

                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                {
                    If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))
                    {
                        Store (Package (0x06)
                            {
                                "model", 
                                Buffer (0x0A)
                                {
                                    "UPSB-DSB0"
                                }, 

                                "name", 
                                Buffer (0x0A)
                                {
                                    "UPSB-DSB0"
                                }, 

                                "PCIHotplugCapable", 
                                One
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }

                    Return (Zero)
                }
            }

            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))
                {
                    Store (Package (0x06)
                        {
                            "model", 
                            Buffer (0x0A)
                            {
                                "UPSB"
                            }, 

                            "name", 
                            Buffer (0x0A)
                            {
                                "UPSB"
                            }, 

                            "PCI-Thunderbolt", 
                            One
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }

                Return (Zero)
            }
        }
    }
}

 

 

Remeber your ACPI values from part one of this tutorial? These values are now needed to make this SSDT work for your personal machine. You might notice that the sample SSDT file is from my ASRock Z270 Super Carrier, cause the used ACPI values are RP01/PXSX within our sample.

So all you need to do, is to change the values RP01/PXSX used in this sample SSDT to your values. If you open the sample SSDT within "MaciASL" you will get linenumbers, so i tell you, for which line you have to edit the given values:

 

Line 23: External (_SB_.PCI0.RP01, DeviceObj)

Line 24: External (_SB_.PCI0.RP01.PXSX, DeviceObj)

Line 27: External (PXSX, DeviceObj)    // (from opcode)

Line 29: Scope (_SB.PCI0.RP01)

Line 31: Scope (PXSX)

Line 38: Notify (\_SB.PCI0.RP01.UPSB.DSB0.NHI0, 0x02)

 

After you change these values to the values you found for your ACPI path, just save the so modified SSDT to the above given path, restart your Hackintosh and enjoy full working, on the fly HotPlug/HotSwap for all your Thunderbolt devices (also working for USB-C devices connected to your Thunderbolt ports).

 

Feedback on how it works for you is welcome. I might help as long as i can.

 

Regards,

Mork vom Ork

 

* = unlocking settings within BIOS files isn't an easy job and needs a tool so called "AMIBCP". Also from my personal test i know, it only works for ASRock BIOS files. Tested with BIOS files from ASUS, GIGBYTE and MSI makes the app crash while saving a so modified BIOS file.

Also i know, that other manufacturers than ASRock like ASUS and GIGABYTE provide a lot more settings for Thunderbolt as standard settings, which are already unlocked for the enduser. I just noticed this so far on ASRock BIOS files.

SSDT-10-TbtOnPch.aml.zip

Edited by Mork vom Ork

Share this post


Link to post
Share on other sites

F22i_tb.zip

 

For Gigabyte "GA-Z170X-UD5 TH" with CFG_Lock and unlocked of all Thunderbolt settings. Please flash the mod with fpt.efi

 

The HotPlug don't worked by me, but the bios is 100% ok.

Share this post


Link to post
Share on other sites

@Mork vom Ork what's the onboard TB3 controller on the Z270? Alpine Ridge? 

 

I have a Titan Ridge installed in my ASUS X299 rig, but it causes problems at boot unless CSM is enabled (which in turn causes other problems). I have a spare Alpine Ridge card that doesn't have the same problems, but never worked properly in terms of hot plug/sleep - I wonder if your SSDT changes would help?

Edited by Tony Arnold
Minor correction

Share this post


Link to post
Share on other sites
On 9/10/2019 at 1:41 PM, Tony Arnold said:

@Mork vom Ork what's the onboard TB3 controller on the Z270? Alpine Ridge? 

 

I have a Titan Ridge installed in my ASUS X299 rig, but it causes problems at boot unless CSM is enabled (which in turn causes other problems). I have a spare Alpine Ridge card that doesn't have the same problems, but never worked properly in terms of hot plug/sleep - I wonder if your SSDT changes would help?

 

Which BIOS version are you using on your Asus X299 motherboard?

Share this post


Link to post
Share on other sites

I'm using BIOS 2002. I actually managed to fix the CSM issue at boot by flashing a "fixed" BIOS onto my Sapphire Nitro+ Vega 64 (provided by @DSM2 - search for his website - I'm not sure what the rules are about posting links to other forums here).

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×