Contribute
Register

[SUCCESS] Gigabyte Designare Z390 (Thunderbolt 3) + i7-9700K + AMD RX 580

...
Running it under Mojave, I have the following:

sha256sum -b DESIGNARE-Z390-NVM33-Elias64Fr.bin
02427ca11e3ea155db5bbfac6ecc0b76d467f05678436b8b6b375bf35acdd222 *DESIGNARE-Z390-NVM33-Elias64Fr.bin
...
That checksum is correct.

02427ca11e3ea155db5bbfac6ecc0b76d467f05678436b8b6b375bf35acdd222
 
Thank your for getting back! Here are the answers to your questions:
  • The system enters sleep. Upon key press or mouse move it does a partial wake (fans spin up, lights turn on, but monitor(s) remain black)
  • This does happen under Windows as well (after I send the PC in hibernation)
  • No, I have not tried a CMOS Reset
  • Unfortunately, I no longer have the old 19" monitor
  • The old monitor (Dell 1909W) had a DVI-D connector. I used a DVI-to-HDMI cable, that was plugged in the video card.
  • The new monitor is Philips 278E1A 27". It's exactly the same make/model as my other one, that I used from day one. I'm plugging it in the same HDMI port that was used for the old monitor. And I'm using the original HDMI cable that came with the monitor. It is certified.

  • I tried the scenario, without removing it, and then after removing it. The outcome was the same - Monitors do not light up. And yes, I did replace the original USB SSDT (SSDT-UIAC-DESIGNARE-Z390-V7.aml)
Please try the following:
  • First, connect only the new Philips monitor to HDMI (disconnect the older one).
    • Does it sleep and wake properly?
  • Now connect only the old Philips monitor (disconnect the new one).
    • Does it sleep and wake properly?
  • Now connect old monitor to HDMI and new monitor to DisplayPort.
    • Does the system sleep and wake properly?
Use only the video ports on your RX 580.

P.S. How do you like the Philips 4K monitor? Is there a fair bit of backlight bleed on black or dark screens? Are the speaker loud enough?
 
Last edited:
Hello, sorry the update isn't ready for today, but im giving you a little screenshot. This will be the final version of HackinDROM... :)

@casey & Co: the buffer 0x7b have exact 123 bytes, but other (0x17, 02d, etc) buffers always have 1 byte less. Is this ok?
 
@casey & Co: the buffer 0x7b have exact 123 bytes, but other (0x17, 02d, etc) buffers always have 1 byte less. Is this ok?
Good observation. It is correct, however. When we specify strings in quotes, we add one extra byte to the buffer because strings are terminated with a hidden 0x00 (or NULL). But when we enumerate the bytes one by one, then we are responsible for specifying the final 0x00 if needed.
 
Please try the slightly modified SSDT attached. IOReg shows that the previous SSDT was not loaded because it's referring to a non-existent PXSX device. On PEG2 we have instead PEGP. The attached version makes this change.
@CaseySJ
You are a hero! It is finding my MacBook when I boot with my backup Clover boot. When booting with OpenCore it does still keeps on showing 20Gb/s and does nothing but well, then I switch back to clover.
I don't understand why but well... it works under clover, now I can try and hope that my Orion Studio will work someday.
Weird that now the Thunderbolt is showing up well Orion III is not shown anymore in the System Profiler (not that it worked but it was at least found)

Update:
Put back my old kext, I think one of the newer versions is doing something strange.... however... my Orion Studio III is being showed in the Thunderbold with name and everything and PCI part (more cryptic) of the system profiler, only Antelope's launcher does not recognized it.
(Still only via Clover not working for me on OpenCore).
I am still hoping someday the Orion Studio will work too on Thunderbolt
 

Attachments

  • Schermafbeelding 2020-08-25 om 16.41.19.png
    Schermafbeelding 2020-08-25 om 16.41.19.png
    325.6 KB · Views: 54
  • Schermafbeelding 2020-08-25 om 16.42.23.png
    Schermafbeelding 2020-08-25 om 16.42.23.png
    212.5 KB · Views: 46
  • Schermafbeelding 2020-08-25 om 16.42.32.png
    Schermafbeelding 2020-08-25 om 16.42.32.png
    155 KB · Views: 57
  • Schermafbeelding 2020-08-25 om 16.41.51.png
    Schermafbeelding 2020-08-25 om 16.41.51.png
    76.2 KB · Views: 65
Last edited:
@CaseySJ

hello,
CaseySJ can you look on my orginal rom file from ThunderboltEX3 rev 1.0. All roms for Ex3 not work well.

If i use nvm21 i can see connected thunerbolt cinema LCD (apple 27") but it dont work and ports from this display are not visible in osx.
I use SSDT:
Code:
DefinitionBlock ("iASLUKoS8T.aml", "SSDT", 2, "CASEY", "TBTALPIN", 0x00000000)
{
    External (DTGP, MethodObj)    // 4 Arguments
    External (GP, MethodObj)    // 0 Arguments
    External (RP05, MethodObj)    // 3 Arguments
    External (PCI0, MethodObj)    // 4 Arguments
    External (PXSX, DeviceObj)
    External (\_SB_.PCI0.RP05, DeviceObj)

    If (Zero)
    {
        \_SB.PCI0.RP05
        Alias (, ACPI Warning: Found bad character(s) in name, repaired: [****]
 (20100331/utmisc-898)
****)
        _SB
        PCI0 (RP05 (PXSX, Alias (, ACPI Warning: Found bad character(s) in name, repaired: [**DT]
 (20100331/utmisc-898)
**DT), ACPI Warning: Found bad character(s) in name, repaired: [GP**]
 (20100331/utmisc-898)
GP** ()), Scope (\_SB.PCI0.RP05)
            {
                Scope (PXSX)
                {
                    Name (_STA, Zero)
                }

                Method (_RMV, 0, NotSerialized)
                {
                    Return (Zero)
                }

                Device (UPSB)
                {
                    Name (_ADR, Zero)
                    OperationRegion (A1E0, PCI_Config, Zero, 0x40)
                    Field (A1E0, ByteAcc, NoLock, Preserve)
                    {
                        AVND,   32,
                        BMIE,   3,
                                Offset (0x18),
                        PRIB,   8,
                        SECB,   8,
                        SUBB,   8,
                                Offset (0x1E),
                            ,   13,
                        MABT,   1
                    }

                    Method (_PRW, 0, NotSerialized)
                    {
                        Return (Package (0x02)
                        {
                            0x69,
                            0x03
                        })
                    }

                    Method (_BBN, 0, NotSerialized)
                    {
                        Return (SECB)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }

                    Method (_RMV, 0, NotSerialized)
                    {
                        Return (Zero)
                    }

                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x06)
                            {
                                "AAPL,slot-name",
                                Buffer (0x07)
                                {
                                    "Slot-2"
                                },

                                "built-in",
                                Buffer (One)
                                {
                                    0x00
                                },

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

                    Device (DSB0)
                    {
                        Name (_ADR, Zero)
                        OperationRegion (A1E0, PCI_Config, Zero, 0x40)
                        Field (A1E0, ByteAcc, NoLock, Preserve)
                        {
                            AVND,   32,
                            BMIE,   3,
                                    Offset (0x18),
                            PRIB,   8,
                            SECB,   8,
                            SUBB,   8,
                                    Offset (0x1E),
                                ,   13,
                            MABT,   1
                        }

                        Method (_STA, 0, NotSerialized)
                        {
                            Return (0x0F)
                        }

                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (Zero)
                        }

                        Method (_PRW, 0, NotSerialized)
                        {
                            Return (Package (0x02)
                            {
                                0x69,
                                0x03
                            })
                        }

                        Method (_BBN, 0, NotSerialized)
                        {
                            Return (SECB)
                        }

                        Method (_DSM, 4, NotSerialized)
                        {
                            Store (Package (0x06)
                                {
                                    "AAPL,slot-name",
                                    Buffer (0x07)
                                    {
                                        "Slot-2"
                                    },

                                    "built-in",
                                    Buffer (One)
                                    {
                                        0x00
                                    },

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

                        Device (NHI0)
                        {
                            Name (_ADR, Zero)
                            Name (_STR, Unicode ("Thunderbolt"))
                            Method (_STA, 0, NotSerialized)
                            {
                                Return (0x0F)
                            }

                            Method (_PRW, 0, NotSerialized)
                            {
                                Return (Package (0x02)
                                {
                                    0x69,
                                    0x03
                                })
                            }

                            Method (_RMV, 0, NotSerialized)
                            {
                                Return (Zero)
                            }

                            Method (_DSM, 4, NotSerialized)
                            {
                                Store (Package (0x11)
                                    {
                                        "AAPL,slot-name",
                                        Buffer (0x07)
                                        {
                                            "Slot-2"
                                        },

                                        "name",
                                        Buffer (0x24)
                                        {
                                            "Alpine Ridge Thunderbolt Controller"
                                        },

                                        "model",
                                        Buffer (0x2D)
                                        {
                                            "Intel JHL6540 Alpine Ridge Thunderbolt 3 NHI"
                                        },

                                        "device_type",
                                        Buffer (0x17)
                                        {
                                            "Thunderbolt-Controller"
                                        },

                                        "ThunderboltDROM",
                                        Buffer (0x6B)
                                        {
                                            /* 0000 */    0xAE, 0x00, 0x75, 0x69, 0x82, 0x16, 0x25, 0x00,
                                            /* 0008 */    0x00, 0xFE, 0x5F, 0x94, 0xDC, 0x01, 0x5E, 0x00,
                                            /* 0010 */    0x01, 0x00, 0x0D, 0x00, 0x01, 0x00, 0x08, 0x81,
                                            /* 0018 */    0x80, 0x02, 0x80, 0x00, 0x00, 0x00, 0x08, 0x82,
                                            /* 0020 */    0x90, 0x01, 0x80, 0x00, 0x00, 0x00, 0x08, 0x83,
                                            /* 0028 */    0x80, 0x04, 0x80, 0x01, 0x00, 0x00, 0x08, 0x84,
                                            /* 0030 */    0x90, 0x03, 0x80, 0x01, 0x00, 0x00, 0x08, 0x85,
                                            /* 0038 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x86,
                                            /* 0040 */    0x20, 0x03, 0x87, 0x80, 0x02, 0xC8, 0x05, 0x89,
                                            /* 0048 */    0x50, 0x00, 0x00, 0x05, 0x8A, 0x50, 0x00, 0x00,
                                            /* 0050 */    0x02, 0xCB, 0x07, 0x01, 0x41, 0x73, 0x75, 0x73,
                                            /* 0058 */    0x00, 0x12, 0x02, 0x54, 0x68, 0x75, 0x6E, 0x64,
                                            /* 0060 */    0x65, 0x72, 0x62, 0x6F, 0x6C, 0x74, 0x45, 0x58,
                                            /* 0068 */    0x20, 0x33, 0x00
                                        },

                                        "ThunderboltConfig",
                                        Buffer (0x20)
                                        {
                                            /* 0000 */    0x00, 0x02, 0xFF, 0xFF, 0x0C, 0x00, 0x07, 0x01,
                                            /* 0008 */    0x01, 0x00, 0x0A, 0x00, 0x07, 0x01, 0x02, 0x00,
                                            /* 0010 */    0x0B, 0x00, 0x07, 0x01, 0x01, 0x00, 0x0D, 0x00,
                                            /* 0018 */    0x07, 0x01, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00
                                        },

                                        "linkDetails",
                                        Buffer (0x08)
                                        {
                                            /* 0000 */    0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
                                        },

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

                    Device (DSB1)
                    {
                        Name (_ADR, 0x00010000)
                        OperationRegion (A1E0, PCI_Config, Zero, 0x40)
                        Field (A1E0, ByteAcc, NoLock, Preserve)
                        {
                            AVND,   32,
                            BMIE,   3,
                                    Offset (0x18),
                            PRIB,   8,
                            SECB,   8,
                            SUBB,   8,
                                    Offset (0x1E),
                                ,   13,
                            MABT,   1
                        }

                        Method (_PRW, 0, NotSerialized)
                        {
                            Return (Package (0x02)
                            {
                                0x69,
                                0x03
                            })
                        }

                        Method (_BBN, 0, NotSerialized)
                        {
                            Return (SECB)
                        }

                        Method (_STA, 0, NotSerialized)
                        {
                            Return (0x0F)
                        }

                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (Zero)
                        }
                    }

                    Device (DSB2)
                    {
                        Name (_ADR, 0x00020000)
                        OperationRegion (A1E0, PCI_Config, Zero, 0x40)
                        Field (A1E0, ByteAcc, NoLock, Preserve)
                        {
                            AVND,   32,
                            BMIE,   3,
                                    Offset (0x18),
                            PRIB,   8,
                            SECB,   8,
                            SUBB,   8,
                                    Offset (0x1E),
                                ,   13,
                            MABT,   1
                        }

                        Method (_PRW, 0, NotSerialized)
                        {
                            Return (Package (0x02)
                            {
                                0x69,
                                0x03
                            })
                        }

                        Method (_BBN, 0, NotSerialized)
                        {
                            Return (SECB)
                        }

                        Method (_STA, 0, NotSerialized)
                        {
                            Return (0x0F)
                        }

                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (Zero)
                        }

                        Device (XHC3)
                        {
                            Name (_ADR, Zero)
                            Method (_STA, 0, NotSerialized)
                            {
                                Return (0x0F)
                            }

                            Method (_RMV, 0, NotSerialized)
                            {
                                Return (Zero)
                            }

                            Method (_DSM, 4, NotSerialized)
                            {
                                Store (Package (0x18)
                                    {
                                        "AAPL,slot-name",
                                        Buffer (0x07)
                                        {
                                            "Slot-2"
                                        },

                                        "built-in",
                                        Buffer (One)
                                        {
                                            0x00
                                        },

                                        "name",
                                        Buffer (0x20)
                                        {
                                            "Alpine Ridge USB 3.1 Controller"
                                        },

                                        "model",
                                        Buffer (0x23)
                                        {
                                            "Intel JHL6540 Alpine Ridge USB 3.1"
                                        },

                                        "device_type",
                                        Buffer (0x1F)
                                        {
                                            "USB eXtensible Host-Controller"
                                        },

                                        "AAPL,current-available",
                                        0x0834,
                                        "AAPL,current-extra",
                                        0x0A8C,
                                        "AAPL,current-in-sleep",
                                        0x0A8C,
                                        "AAPL,max-port-current-in-sleep",
                                        0x0834,
                                        "AAPL,device-internal",
                                        Zero,
                                        "AAPL,root-hub-depth",
                                        0x1A,
                                        "AAPL,XHC-clock-id",
                                        One
                                    }, Local0)
                                DTGP (Arg0, Arg1, Arg2, Arg3)
                                RefOf (Local0)
                                Return (Local0)
                            }

                            Method (_PRW, 0, NotSerialized)
                            {
                                Return (Package (0x02)
                                {
                                    0x69,
                                    0x03
                                })
                            }

                            Device (RHUB)
                            {
                                Name (_ADR, Zero)
                                Method (_RMV, 0, NotSerialized)
                                {
                                    Return (Zero)
                                }

                                Device (HS01)
                                {
                                    Name (_ADR, 0x02)
                                    Name (_UPC, Package (0x04)
                                    {
                                        0xFF,
                                        0x09,
                                        Zero,
                                        Zero
                                    })
                                    Name (_PLD, Package (0x01)
                                    {
                                        Buffer (0x14)
                                        {
                                            /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                            /* 0008 */    0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                            /* 0010 */    0x00, 0x00, 0x00, 0x00
                                        }
                                    })
                                }

                                Device (SSP1)
                                {
                                    Name (_ADR, 0x04)
                                    Name (_UPC, Package (0x04)
                                    {
                                        0xFF,
                                        0x09,
                                        Zero,
                                        Zero
                                    })
                                    Name (_PLD, Package (0x01)
                                    {
                                        Buffer (0x14)
                                        {
                                            /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                            /* 0008 */    0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                            /* 0010 */    0x00, 0x00, 0x00, 0x00
                                        }
                                    })
                                    Method (_DSM, 4, NotSerialized)
                                    {
                                        If (LEqual (Arg2, Zero))
                                        {
                                            Return (Buffer (One)
                                            {
                                                0x03
                                            })
                                        }

                                        Return (Package (0x04)
                                        {
                                            "UsbCPortNumber",
                                            0x02,
                                            "UsbPowerSource",
                                            0x02
                                        })
                                    }
                                }
                            }
                        }
                    }

                    Device (DSB4)
                    {
                        Name (_ADR, 0x00040000)
                        OperationRegion (A1E0, PCI_Config, Zero, 0x40)
                        Field (A1E0, ByteAcc, NoLock, Preserve)
                        {
                            AVND,   32,
                            BMIE,   3,
                                    Offset (0x18),
                            PRIB,   8,
                            SECB,   8,
                            SUBB,   8,
                                    Offset (0x1E),
                                ,   13,
                            MABT,   1
                        }

                        Method (_PRW, 0, NotSerialized)
                        {
                            Return (Package (0x02)
                            {
                                0x69,
                                0x03
                            })
                        }

                        Method (_BBN, 0, NotSerialized)
                        {
                            Return (SECB)
                        }

                        Method (_STA, 0, NotSerialized)
                        {
                            Return (0x0F)
                        }

                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (Zero)
                        }
                    }
                }
            })
    }
}
 

Attachments

  • asus 3.0 bios original thunderbolt.BIN.zip
    148.2 KB · Views: 43
Last edited:
The new version of HackinDROM is ready, but im publishing it as beta at http://hackindrom.zapto.org/beta.php, because there's some GUI bugs

This wasn't easiest update but its the Biggest for Sur!!
HackinDROM now have an online iASL tool!!
Which means now you can work on your SSDTs online. but not only...
HackiASL has a newer kernel of assembling/disassembling of your files than MaciASL.



FULL customization of your Thunderbolt DROM with automatic correct checksums.
Upload, automatically repair, customize and download yours SSDTs in ACPI Language Machine Binary (.aml) also in .dsl like before + Copy to clipboard.

HackinDROM's main tool, the SSDT Generator is integrated in HackiASL as Presets.
Database is created to host contributors SSDTs without my intervention in the code. Moderators will have the ability to accept, deny or put in Beta SSDTs uploaded by contributors.
Members area is now available (not in the beta version sorry) where you can save your SSDTs.

A little video demonstration is better than my bad English:


When you do some modifications in the SSDT be sure to click to Compile before downloading your file

Any change is possible directly in the ThunderboltDROM section.
Checksum and byte lengths are calculated automatically once you clicke to Compile.
Customiser window overwrite your TB Bus ID Vendor and Device names modifications.
If there's a "ThunderboltConfig" section in your SSDT it will be updated too when you change your TB Bus ID by clicking to compile.

Im waiting for your feedbacks
 
Last edited:
Sorry if this has been asked already, but in searching I did not find an answer. My Thunderbolt peripheral (Drobo 5D3) seems to have suddenly started disconnecting every few minutes. This did not happen before the 10.15.6 supplemental update.

Coincidence?

Just curious if anyone else is having issues. It's been working solidly for me for many months up until now.
 
Thank you so much, @CaseySJ. Programmed the ROM this morning using RPi method. Everything went, er, uneventful.
Didn't change the SSDT yet but see Thunderbolt device in System Information.

That checksum is correct.

02427ca11e3ea155db5bbfac6ecc0b76d467f05678436b8b6b375bf35acdd222
 
@CaseySJ
You are a hero! It is finding my MacBook when I boot with my backup Clover boot. When booting with OpenCore it does still keeps on showing 20Gb/s and does nothing but well, then I switch back to clover.
I don't understand why but well... it works under clover, now I can try and hope that my Orion Studio will work someday.
Weird that now the Thunderbolt is showing up well Orion III is not shown anymore in the System Profiler (not that it worked but it was at least found)

Update:
Put back my old kext, I think one of the newer versions is doing something strange.... however... my Orion Studio III is being showed in the Thunderbold with name and everything and PCI part (more cryptic) of the system profiler, only Antelope's launcher does not recognized it.
(Still only via Clover not working for me on OpenCore).
I am still hoping someday the Orion Studio will work too on Thunderbolt
Glad to hear it. Some follow-ups:
  • In OpenCore it is necessary not only to copy the SSDT into the OC/ACPI folder, but also to add it into config.plist. We can use OpenCore Configurator to add the file to the ACPI section.
  • Antelope Thunderbolt devices do not work under Mojave or Catalina on a Hackintosh, even with flashed firmware. Unfortunately this is the painful truth. We hope that Antelope's engineers can develop a solution...
 
Back
Top