Jump to content

ThunderBolt Drivers


406 posts in this topic

Recommended Posts

Thank you for trying! However this is a good start!
If with Asus pci thunderbolt card it works, there is probably a method even for gigabytes.

I still hope...

Link to comment
Share on other sites

Well, different motherboard (ASRock X299 Professional Gaming XE) and no better luck

Everything appears as it should be, except of course that it doesn't work as it should. That is all USB-C devices must be plugged in before the system boots, and same for the TB3  (or TB2 via TB3->TB2 adapter).

PCI-Thunderbolt is inserted on UPSB device, and on DSB0 you see PCIHotPlugCapable.

All attached TB devices are showing in the PCI list with a location of Thunderbolt@XXX as it should

So it's no better (or no worse) than the Designare.

Only advantage of the Designare, is that the ASRock has USB 3.1 gen 2 on the back panel (2 ports), while the designare only has those via the Intel thunderbolt chipset, which doesn't support hotplug for some reason.

5aaee7d956d53_ScreenShot2018-03-18at11_09_00pm.thumb.png.9d67bd6641b6a6fff48b85f1b289ea0f.png

5aaee7e29a2f8_ScreenShot2018-03-18at11_09_26pm.thumb.png.8a2d1f6a32524593afe815d52135b18a.png

 

SSDT:

DefinitionBlock ("", "SSDT", 1, "Matthe", "Thunder", 0x00000000)
{
    External (_SB_.PC03.BR3A, DeviceObj)    // (from opcode)
    External (_SB_.PC03.BR3A.PEGP, DeviceObj)    // (from opcode)
    External (_SB_.PC03.BR3A.SL09, DeviceObj)    // (from opcode)
    External (_SB_.PC03.BR3A.UPSB, DeviceObj)    // (from opcode)
    External (PEGP, DeviceObj)    // (from opcode)
    External (SL09, DeviceObj)    // (from opcode)
    External (UPSB, DeviceObj)    // (from opcode)

    Scope (\_SB.PC03.BR3A)
    {
        Scope (SL09)
        {
            Name (_STA, Zero)  // _STA: Status
        }

        Scope (PEGP)
        {
            Name (_STA, Zero)  // _STA: Status
        }

        Device (UPSB)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                If (LNot (Arg2))
                {
                    Return (Buffer (One)
                    {
                         0x03                                           
                    })
                }

                Return (Package (0x02)
                {
                    "PCI-Thunderbolt", 
                    One
                })
            }

            Name (_RMV, One)  // _RMV: Removal Status
            Device (DSB0)
            {
                Name (_ADR, Zero)  // _ADR: Address
                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                {
                    If (LNot (Arg2))
                    {
                        Return (Buffer (One)
                        {
                             0x03                                           
                        })
                    }

                    Return (Package (0x02)
                    {
                        "PCIHotplugCapable", 
                        One
                    })
                }

                Device (NHI0)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                    {
                        If (LNot (Arg2))
                        {
                            Return (Buffer (One)
                            {
                                 0x03                                           
                            })
                        }

                        Return (Package (0x02)
                        {
                            "power-save", 
                            Zero
                        })
                    }
                }
            }

            Device (DSB1)
            {
                Name (_ADR, 0x00010000)  // _ADR: Address
            }

            Device (DSB2)
            {
                Name (_ADR, 0x00020000)  // _ADR: Address
            }

            Device (DSB3)
            {
                Name (_ADR, 0x00030000)  // _ADR: Address
            }

            Device (DSB4)
            {
                Name (_ADR, 0x00040000)  // _ADR: Address
            }
        }
    }
}

 

Edited by jya
Link to comment
Share on other sites

There should be... it should be something really small since the Thunderbolt Card used in the Designare is the Thunderbolt solution which is used in the new iMac Pro.
Here is my theory about it.
On the imac pro, the JSL6540 is directly connected to a CPU Pcie lane.
On the Designare it is connected via the PCH.
On the ASRock professional gaming, it's connected behind a PCIe bridge and share the lanes with the M.2 first slot.
With the Asus, it has full access to the CPU Pcie lanes.

The ASRock TB3 card uses the same chipset as the Designare.
Now, someone on the tonyx64 site reported that hotplug worked as long as you booted first with any TB card in. That would invalidate my theory. However,
that's not my experience hotplug just never works.

Hopefully something obvious we just missed.

Sent from my SM-G950F using Tapatalk

Link to comment
Share on other sites

@Matthew82 I noticed something that maybe could help us.

Your SSDT partly works with me, I explain:
Without your SSDT the UAD App to manage my devices crashes if I turn off one (the last in the chain).
With your SSDT, if I connect to port 1 of my PCI card and turn off one of the connected devices (the last one in the chain), the UAD application does not crash and continues to show me the devices that remained turned on.
If I connect to port 2 instead, and I do the same, the app crashes.

You say your SSDT works on Asus pci Thunderbolt cards. The Asus ThunderboltEX card has a single Thunderbolt 3 port, while other manufacturers such as Gigabyte and ASRock have two. And if the problem is this?

Now your SSDT is in the system.
Here's what IOReg shows when I'm connected to Thunderbolt port 1:

5aafc1ae35bec_Port1.thumb.png.4ee070af5f5e8d194034d059a196745e.png

Lele’s iMac Thunderbolt port 1.zip

 

This however, when I use the Thunderbolt port 2:

5aafc234937c1_Port2.thumb.png.e3cb756e0241d3df0eab358fad93dc4f.png

Lele’s iMac Thunderbolt port 2.zip

 

Is it possible to concentrate the SSDT so that it loads only one Thunderbolt Port?

  • Like 2
Link to comment
Share on other sites

For some reasons the combination of the SSDT with the Config.plist file crashes my computer when I turn off or turn on a Thunderbolt device.
This does not happen if I enable the 4G Decoding, but with the 4G Decoding enabled sometimes the system does not start and I see a "stop" symbol. It happened to me several times in the previous days.

Here are the files

ACPI & IOReg.zip

Link to comment
Share on other sites

4 minutes ago, lelet said:

For some reasons the combination of the SSDT with the Config.plist file crashes my computer when I turn off or turn on a Thunderbolt device.
This does not happen if I enable the 4G Decoding, but with the 4G Decoding enabled sometimes the system does not start and I see a "stop" symbol. It happened to me several times in the previous days.

Here are the files

ACPI & IOReg.zip

Add your original config.plist. Without my modification. 

Link to comment
Share on other sites

 Share

×
×
  • Create New...