Contribute
Register

iMac Pro X99 - Live the Future now with macOS 10.14 Mojave [Successful Build/Extended Guide]

Status
Not open for further replies.
Did you change Method name _L69 to _L70?

Same errors as with _L70 and the USB-C stick is not accessible (visible) after boot, although the TB USB3.1 driver is loaded under PCI (same with _L69). In the last version I replaced my DSB2 implementation with yours except the entire part after the device (XHC5) definition ...

Seems not to work in my case...

Previous Combo version before implementing your latest modifications did not show any issues in properly implementing USB-C devices on boot.

Screenshot 2018-07-26 at 14.16.12.png
 
Last edited:
Same errors as with _L70 and the USB-C stick is not accessible (visible) after boot, although the TB USB3.1 driver is loaded under PCI (same with _L69).

Previous Combo version before implementing your latest modifications did not show any issues in properly implementing USB-C devices on boot.

View attachment 343137
Hi KGP
Try this SSDT Check api errors or not
If USB-C not work well add Previous entry to DSB2
 

Attachments

  • SSDT-X299-TB3-iMacPro-Combo-ASUS-23-07-2018.aml
    14.9 KB · Views: 165
Hi KGP
Try this SSDT Check api errors or not
If USB-C not work well add Previous entry to DSB2

IMG_1140.jpg


I will be off for a couple of hours.. I need a swim... 34 deg C ambient air here in Berlin... :crazy:;):lol:

Back late afternoon :thumbup:
 
Hi KGP
Try this SSDT Check api errors or not
If USB-C not work well add Previous entry to DSB2

Previous entry to DSB2 was that one which apparently was working and properly initialising my USB-C stick ..

Code:
         Device (DSB2)
            {
                Name (_ADR, 0x00020000)  // _ADR: Address
                OperationRegion (PXCS, PCI_Config, Zero, 0xE0)
                Field (PXCS, AnyAcc, NoLock, Preserve)
                {
                    VDID,   32,
                    Offset (0x54),
                        ,   6,
                    HPCE,   1,
                    Offset (0x5A),
                    ABPX,   1,
                        ,   2,
                    PDCX,   1,
                        ,   2,
                    PDSX,   1,
                    Offset (0x5B),
                    Offset (0x60),
                    Offset (0x62),
                    PMEX,   1,
                    Offset (0xDC),
                        ,   31,
                    PMCS,   1
                }

                OperationRegion (PPA4, PCI_Config, Zero, 0x0100)
                Field (PPA4, ByteAcc, NoLock, Preserve)
                {
                    Offset (0xAB),
                    Offset (0xB0),
                    Offset (0xB2),
                    PMES,   1,
                    PMEP,   1
                }

                Method (PMEH, 1, NotSerialized)
                {
                    If (And (HPEV (), SSTS ()))
                    {
                        If (ABPS (Zero))
                        {
                            ABPS (One)
                            Sleep (0xC8)
                        }
                    }

                    Return (0xFF)
                }

                Method (HPEH, 1, NotSerialized)
                {
                    If (LNot (HPCP ()))
                    {
                        Return (0xFF)
                    }

                    Store (0xFE, IO80)
                    Sleep (0x64)
                    Store (Zero, CCIE)
                    If (And (HPEV (), SSTS ()))
                    {
                        Store (0xFD, IO80)
                        Sleep (0x0A)
                        Store (PPXH (Zero), Local0)
                        Return (Local0)
                    }
                    Else
                    {
                        Return (0xFF)
                    }

                    Store (0xFC, IO80)
                    Sleep (0x0A)
                }

                Method (DEVS, 0, NotSerialized)
                {
                    If (LEqual (VDID, Ones))
                    {
                        Return (Zero)
                    }
                    Else
                    {
                        Return (0x0F)
                    }
                }

                Method (HPME, 0, Serialized)
                {
                    If (PMEX)
                    {
                        Store (0xC8, Local0)
                        While (Local0)
                        {
                            Store (One, PMEX)
                            If (PMEX)
                            {
                                Decrement (Local0)
                            }
                            Else
                            {
                                Store (Zero, Local0)
                            }
                        }

                        Store (One, PMCS)
                    }
                }

                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM ())
                    {
                        Return (AG16 ())
                    }

                    Return (PG16 ())
                }

It collides now with all other changes , which you recently introduced... No way to fall back to the former DSB2 implementation...

Only way to make USB-C work is to fall back to the previous TB-SSDT version (attached below)..

Edit:

Although, USB-C also works with SSDT-X299-TB3-iMacPro-Combo-ASUS-23-07-2018.aml as long there is no TB device connected....

Maybe the USB-C problem is related with the persistent ACPI errors?
 

Attachments

  • SSDT-X299-TB3-iMacPro-Combo-ASUS.aml.zip
    2.9 KB · Views: 102
Last edited:
I am having issues to get the installer running since I get the displaypolicyd: Service exited with abnormal code 1. Surprisingly, after making the necessary changes to config and adding TSCAdjustReset and VegaGraphicsFixUp, I can boot into High Sierra. I didn't mess around with the aml files since the devices work without issues and it's not that.
 
@nmano,

got USB-C working again also with SSDT-X299-TB3-iMacPro-Combo-ASUS-23-07-2018.aml..

Problem: no USB-C hot plug with THB_C removed.

Note the following: SSDT-9.aml of iMacPro dump assigns "PCI-HotplugCapable" to DSB2. Our TB-SSDT doesn't.

SSDT-9.png


iMacPro-IOREG-DSB2-hotplug.png


Thus, I introduced "PCI-HotplugCapable" in SSDT-X299-TB3-iMacPro-Combo-ASUS-23-07-2018.aml under DSB2..

TB-SSDT.png


But it seems not to be applied...

MySystem.png


Any solution?

Cheers,

KGP
 

Attachments

  • SSDT-X299-TB3-iMacPro-Combo-ASUS-23-07-2018.aml.zip
    3.7 KB · Views: 103
@nmano
can you explain me why you use in the TB-SSDT the DSDT ACPI implementation for RPXX in case of DSB2

Code:
DSDT-Code:
Method (_INI, 0, NotSerialized)  // _INI: Initialize
            {
                Store (LTR3, LTRZ)
                Store (PML3, LMSL)
                Store (PNL3, LNSL)
                Store (OBF3, OBFZ)
            }

            OperationRegion (PXCS, PCI_Config, Zero, 0x0480)
            Field (PXCS, AnyAcc, NoLock, Preserve)
            {
                VDID,   32,
                Offset (0x50),
                L0SE,   1,
                    ,   3,
                LDIS,   1,
                Offset (0x51),
                Offset (0x52),
                    ,   13,
                LASX,   1,
                Offset (0x5A),
                ABPX,   1,
                    ,   2,
                PDCX,   1,
                    ,   2,
                PDSX,   1,
                Offset (0x5B),
                Offset (0x60),
                Offset (0x62),
                PSPX,   1,
                Offset (0xA4),
                D3HT,   2,
                Offset (0xD8),
                    ,   30,
                HPEX,   1,
                PMEX,   1,
                Offset (0xE2),
                    ,   2,
                L23E,   1,
                L23R,   1,
                Offset (0x324),
                    ,   3,
                LEDM,   1,
                Offset (0x420),
                    ,   30,
                DPGE,   1
            }

            Field (PXCS, AnyAcc, NoLock, WriteAsZeros)
            {
                Offset (0xDC),
                    ,   30,
                HPSX,   1,
                PMSX,   1
            }

            Name (LTRV, Package (0x04)
            {
                Zero,
                Zero,
                Zero,
                Zero
            })
            Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
            {
                If (LEqual (Arg0, ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */))
                {
                    Switch (ToInteger (Arg2))
                    {
                        Case (Zero)
                        {
                            Name (OPTS, Buffer (0x02)
                            {
                                 0x00, 0x00                                    
                            })
                            CreateBitField (OPTS, Zero, FUN0)
                            CreateBitField (OPTS, 0x04, FUN4)
                            CreateBitField (OPTS, 0x06, FUN6)
                            CreateBitField (OPTS, 0x08, FUN8)
                            CreateBitField (OPTS, 0x09, FUN9)
                            If (LGreaterEqual (Arg1, 0x02))
                            {
                                Store (One, FUN0)
                                If (LTRE)
                                {
                                    Store (One, FUN6)
                                }

                                If (OBFF)
                                {
                                    Store (One, FUN4)
                                }

                                If (LEqual (ECR1, One))
                                {
                                    If (LGreaterEqual (Arg1, 0x03))
                                    {
                                        Store (One, FUN8)
                                        Store (One, FUN9)
                                    }
                                }
                            }

                            Return (OPTS)
                        }
                        Case (0x04)
                        {
                            If (LGreaterEqual (Arg1, 0x02))
                            {
                                If (OBFZ)
                                {
                                    Return (Buffer (0x10)
                                    {
                                        /* 0000 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                        /* 0008 */  0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
                                    })
                                }
                                Else
                                {
                                    Return (Buffer (0x10)
                                    {
                                        /* 0000 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                        /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                                    })
                                }
                            }
                        }
                        Case (0x06)
                        {
                            If (LGreaterEqual (Arg1, 0x02))
                            {
                                If (LTRZ)
                                {
                                    If (LOr (LEqual (LMSL, Zero), LEqual (LNSL, Zero)))
                                    {
                                        If (LEqual (PCHS, SPTH))
                                        {
                                            Store (0x0846, LMSL)
                                            Store (0x0846, LNSL)
                                        }
                                        ElseIf (LEqual (PCHS, SPTL))
                                        {
                                            Store (0x1003, LMSL)
                                            Store (0x1003, LNSL)
                                        }
                                    }

                                    Store (And (ShiftRight (LMSL, 0x0A), 0x07), Index (LTRV, Zero))
                                    Store (And (LMSL, 0x03FF), Index (LTRV, One))
                                    Store (And (ShiftRight (LNSL, 0x0A), 0x07), Index (LTRV, 0x02))
                                    Store (And (LNSL, 0x03FF), Index (LTRV, 0x03))
                                    Return (LTRV)
                                }
                                Else
                                {
                                    Return (Zero)
                                }
                            }
                        }
                        Case (0x08)
                        {
                            If (LEqual (ECR1, One))
                            {
                                If (LGreaterEqual (Arg1, 0x03))
                                {
                                    Return (One)
                                }
                            }
                        }
                        Case (0x09)
                        {
                            If (LEqual (ECR1, One))
                            {
                                If (LGreaterEqual (Arg1, 0x03))
                                {
                                    Return (Package (0x05)
                                    {
                                        0xC350,
                                        Ones,
                                        Ones,
                                        0xC350,
                                        Ones
                                    })
                                }
                            }
                        }

                    }
                }

                Return (Buffer (One)
                {
                     0x00                                          
                })
            }

            Device (PXSX)
            {
                Name (_ADR, Zero)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x35, 0x04))
                }
            }

            Method (HPME, 0, Serialized)
            {
                If (LAnd (LNotEqual (VDID, 0xFFFFFFFF), LEqual (PMSX, One)))
                {
                    Notify (PXSX, 0x02)
                    Store (One, PMSX)
                    Store (One, PSPX)
                }
            }

            Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
            {
                Return (GPRW (0x35, 0x04))
            }
        }


but the one of BRXX for USPB, DSB0, DSB1 and DSB4?

Code:
DSDT-Code:
OperationRegion (MCTL, SystemMemory, 0x60000188, 0x04)
                Field (MCTL, ByteAcc, NoLock, Preserve)
                {
                        ,   3,
                    HGPE,   1,
                        ,   7,
                        ,   8,
                        ,   8
                }

                Method (_INI, 0, NotSerialized)  // _INI: Initialize
                {
                    Store (One, HGPE)
                }

                Name (_HPP, Package (0x04)  // _HPP: Hot Plug Parameters
                {
                    0x08,
                    0x40,
                    One,
                    Zero
                })
                Name (SHPC, 0x40)
                Name (SPDS, 0x40)
                Name (MRLS, Zero)
                Name (CCOM, 0x10)
                Name (SPDC, 0x08)
                Name (MRLC, 0x04)
                Name (SPFD, 0x02)
                Name (SABP, One)
                Name (SPOF, 0x10)
                Name (SPON, 0x0F)
                Name (ALMK, 0x1C)
                Name (ALON, One)
                Name (ALBL, 0x02)
                Name (ALOF, 0x03)
                Name (PLMK, 0x13)
                Name (PLON, 0x04)
                Name (PLBL, 0x08)
                Name (PLOF, 0x0C)
                Name (HPEV, 0x0F)
                OperationRegion (PPA4, PCI_Config, Zero, 0x0100)
                Field (PPA4, ByteAcc, NoLock, Preserve)
                {
                    Offset (0xA0),
                        ,   4,
                    LDIS,   1,
                    Offset (0xA2),
                    Offset (0xA4),
                    ATBP,   1,
                        ,   1,
                    MRSP,   1,
                    ATIP,   1,
                    PWIP,   1,
                        ,   14,
                    PSNM,   13,
                    ABIE,   1,
                    PFIE,   1,
                    MSIE,   1,
                    PDIE,   1,
                    CCIE,   1,
                    HPIE,   1,
                    SCTL,   5,
                    Offset (0xAA),
                    SSTS,   7,
                    Offset (0xAB),
                    Offset (0xB0),
                    Offset (0xB2),
                    PMES,   1,
                    PMEP,   1,
                    Offset (0xB4)
                }

                Method (ATID, 0, NotSerialized)
                {
                    Return (And (SCTL, 0x03))
                }

                Method (PWID, 0, NotSerialized)
                {
                    Return (ShiftRight (And (SCTL, 0x0C), 0x02))
                }

                Method (PWCC, 0, NotSerialized)
                {
                    Return (ShiftRight (And (SCTL, 0x10), 0x04))
                }

                Method (ABPS, 1, NotSerialized)
                {
                    If (LEqual (Arg0, One))
                    {
                        Or (SSTS, One, SSTS)
                    }

                    Return (And (SSTS, One))
                }

                Method (PFDS, 1, NotSerialized)
                {
                    If (LEqual (Arg0, One))
                    {
                        Or (SSTS, 0x02, SSTS)
                    }

                    Return (ShiftRight (And (SSTS, 0x02), One))
                }

                Method (MSCS, 1, NotSerialized)
                {
                    If (LEqual (Arg0, One))
                    {
                        Or (SSTS, 0x04, SSTS)
                    }

                    Return (ShiftRight (And (SSTS, 0x04), 0x02))
                }

                Method (PDCS, 1, NotSerialized)
                {
                    If (LEqual (Arg0, One))
                    {
                        Or (SSTS, 0x08, SSTS)
                    }

                    Return (ShiftRight (And (SSTS, 0x08), 0x03))
                }

                Method (CMCS, 1, NotSerialized)
                {
                    If (LEqual (Arg0, One))
                    {
                        Or (SSTS, 0x10, SSTS)
                    }

                    Return (ShiftRight (And (SSTS, 0x10), 0x04))
                }

                Method (MSSC, 1, NotSerialized)
                {
                    If (LEqual (Arg0, One))
                    {
                        Or (SSTS, 0x20, SSTS)
                    }

                    Return (ShiftRight (And (SSTS, 0x20), 0x05))
                }

                Method (PRDS, 1, NotSerialized)
                {
                    If (LEqual (Arg0, One))
                    {
                        Or (SSTS, 0x40, SSTS)
                    }

                    Return (ShiftRight (And (SSTS, 0x40), 0x06))
                }

                Method (OSHP, 0, NotSerialized)
                {
                    Store (SSTS, SSTS)
                    Store (Zero, HGPE)
                }

                Method (HPCC, 1, NotSerialized)
                {
                    Store (SCTL, Local0)
                    Store (Zero, Local1)
                    If (LNotEqual (Arg0, Local0))
                    {
                        Store (Arg0, SCTL)
                        While (LAnd (LNot (CMCS (Zero)), LNotEqual (0x64, Local1)))
                        {
                            Store (0xFB, IO80)
                            Sleep (0x02)
                            Add (Local1, 0x02, Local1)
                        }

                        CMCS (One)
                    }
                }

                Method (ATCM, 1, NotSerialized)
                {
                    Store (SCTL, Local0)
                    And (Local0, ALMK, Local0)
                    If (LEqual (Arg0, One))
                    {
                        Or (Local0, ALON, Local0)
                    }

                    If (LEqual (Arg0, 0x02))
                    {
                        Or (Local0, ALBL, Local0)
                    }

                    If (LEqual (Arg0, 0x03))
                    {
                        Or (Local0, ALOF, Local0)
                    }

                    HPCC (Local0)
                }

                Method (PWCM, 1, NotSerialized)
                {
                    Store (SCTL, Local0)
                    And (Local0, PLMK, Local0)
                    If (LEqual (Arg0, One))
                    {
                        Or (Local0, PLON, Local0)
                    }

                    If (LEqual (Arg0, 0x02))
                    {
                        Or (Local0, PLBL, Local0)
                    }

                    If (LEqual (Arg0, 0x03))
                    {
                        Or (Local0, PLOF, Local0)
                    }

                    HPCC (Local0)
                }

                Method (PWSL, 1, NotSerialized)
                {
                    Store (SCTL, Local0)
                    If (Arg0)
                    {
                        And (Local0, SPON, Local0)
                    }
                    Else
                    {
                        Or (Local0, SPOF, Local0)
                    }

                    HPCC (Local0)
                }

                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
                {
                    Switch (And (Arg0, 0xFF))
                    {
                        Case (0x03)
                        {
                            Switch (ToInteger (Arg1))
                            {
                                Case (Package (0x04)
                                    {
                                        0x80,
                                        0x81,
                                        0x82,
                                        0x83
                                    }

)
                                {
                                    If (LNot (PWCC ()))
                                    {
                                        PWCM (One)
                                        Store (One, ABIE)
                                    }
                                }

                            }
                        }

                    }
                }

                Method (EJ0L, 0, NotSerialized)
                {
                    Store (0xFF, IO80)
                    Store (SCTL, Local0)
                    If (LNotEqual (ATID (), One))
                    {
                        And (Local0, ALMK, Local0)
                        Or (Local0, ALBL, Local0)
                    }

                    HPCC (Local0)
                    Store (SCTL, Local0)
                    Or (Local0, SPOF, Local0)
                    HPCC (Local0)
                    Store (SCTL, Local0)
                    Or (Local0, PLOF, Local0)
                    HPCC (Local0)
                    Store (SCTL, Local0)
                    Or (Local0, ALOF, Local0)
                    HPCC (Local0)
                }

                Method (PMEH, 1, NotSerialized)
                {
                    If (And (HPEV, SSTS))
                    {
                        If (ABPS (Zero))
                        {
                            Store (Arg0, IO80)
                            ABPS (One)
                            Sleep (0xC8)
                        }
                    }

                    Return (0xFF)
                }

                Method (HPEH, 1, NotSerialized)
                {
                    Store (0xFE, IO80)
                    Sleep (0x64)
                    Store (Zero, CCIE)
                    If (And (HPEV, SSTS))
                    {
                        Store (0xFD, IO80)
                        Sleep (0x0A)
                        Store (Arg0, IO80)
                        Sleep (0x0A)
                        Store (PPXH (), Local0)
                        Return (Local0)
                    }
                    Else
                    {
                        Return (0xFF)
                    }

                    Store (0xFC, IO80)
                    Sleep (0x0A)
                }

                Method (PPXH, 0, NotSerialized)
                {
                    Sleep (0xC8)
                    If (ABPS (Zero))
                    {
                        If (LNot (PRDS (Zero)))
                        {
                            Store (One, LDIS)
                            PWSL (Zero)
                            PWCM (0x03)
                            If (LEqual (MSSC (Zero), MRLS))
                            {
                                ATCM (0x02)
                            }
                            Else
                            {
                                ATCM (0x03)
                            }

                            Store (Zero, ABIE)
                            ABPS (One)
                            Sleep (0xC8)
                            Return (0xFF)
                        }

                        Store (Zero, ABIE)
                        ABPS (One)
                        Sleep (0xC8)
                        If (PWCC ())
                        {
                            PWCM (0x03)
                            ATCM (0x02)
                            Return (0xFF)
                        }
                        Else
                        {
                            PWCM (0x02)
                            Sleep (0x0258)
                            Store (0x0258, Local0)
                            ABPS (One)
                            Sleep (0xC8)
                            While (LNot (ABPS (Zero)))
                            {
                                Sleep (0xC8)
                                Add (Local0, 0xC8, Local0)
                                If (LEqual (0x1388, Local0))
                                {
                                    ABPS (One)
                                    Sleep (0xC8)
                                    Return (0x03)
                                }
                            }

                            PWCM (One)
                            ABPS (One)
                            Sleep (0xC8)
                            Store (One, ABIE)
                            Return (0xFF)
                        }
                    }

                    If (PFDS (Zero))
                    {
                        PFDS (One)
                        PWSL (Zero)
                        PWCM (0x03)
                        ATCM (One)
                        Store (One, LDIS)
                        Return (0x03)
                    }

                    If (MSCS (Zero))
                    {
                        MSCS (One)
                        If (LEqual (MSSC (Zero), MRLS))
                        {
                            If (PRDS (Zero))
                            {
                                ATCM (0x03)
                                PWCM (0x02)
                                Sleep (0x0258)
                                Store (0x0258, Local0)
                                ABPS (One)
                                While (LNot (ABPS (Zero)))
                                {
                                    Sleep (0xC8)
                                    Add (Local0, 0xC8, Local0)
                                    If (LEqual (0x1388, Local0))
                                    {
                                        Store (One, ABIE)
                                        ATCM (0x03)
                                        Store (Zero, LDIS)
                                        PWSL (One)
                                        Sleep (0x01F4)
                                        If (LNot (PFDS (Zero)))
                                        {
                                            PWCM (One)
                                            Store (Zero, Local1)
                                            Store (One, ABIE)
                                        }
                                        Else
                                        {
                                            PWSL (Zero)
                                            PWCM (0x03)
                                            ATCM (One)
                                            Store (One, LDIS)
                                            Store (0x03, Local1)
                                        }

                                        ABPS (One)
                                        Sleep (0xC8)
                                        Return (Local1)
                                    }
                                }

                                ABPS (One)
                                Sleep (0xC8)
                                PWSL (Zero)
                                PWCM (0x03)
                                ATCM (0x02)
                                Store (One, LDIS)
                                Return (0xFF)
                            }

                            PWSL (Zero)
                            PWCM (0x03)
                            ATCM (0x02)
                            Store (One, LDIS)
                            Return (0xFF)
                        }
                        Else
                        {
                            If (PRDS (Zero))
                            {
                                ATCM (0x02)
                                If (LNot (PWCC ()))
                                {
                                    PWSL (Zero)
                                    PWCM (0x03)
                                    Store (One, LDIS)
                                    Return (0x03)
                                }
                                Else
                                {
                                    Return (0xFF)
                                }
                            }

                            ATCM (0x03)
                            Return (0xFF)
                        }
                    }

                    If (PDCS (Zero))
                    {
                        PDCS (One)
                        If (LNot (PRDS (Zero)))
                        {
                            PWSL (Zero)
                            PWCM (0x03)
                            If (LEqual (MSSC (Zero), MRLS))
                            {
                                ATCM (0x02)
                            }
                            Else
                            {
                                ATCM (0x03)
                            }

                            Store (One, LDIS)
                            Return (0xFF)
                        }
                        Else
                        {
                            Store (Zero, LDIS)
                            PWSL (One)
                            Sleep (0x01F4)
                            If (LNot (PFDS (Zero)))
                            {
                                PWCM (One)
                                Store (Zero, Local1)
                                Store (One, ABIE)
                                ATCM (0x03)
                            }
                            Else
                            {
                                PWSL (Zero)
                                PWCM (0x03)
                                ATCM (One)
                                Store (One, LDIS)
                                Store (0x03, Local1)
                            }

                            ABPS (One)
                            Sleep (0xC8)
                            Return (Local1)
                        }
                    }

                    Return (0xFF)
                }

                Method (SNUM, 0, Serialized)
                {
                    Store (PSNM, Local0)
                    Return (Local0)
                }

                Method (_SUN, 0, NotSerialized)  // _SUN: Slot User Number
                {
                    Return (SNUM ())
                }

                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (Package (0x02)
                    {
                        0x69,
                        0x04
                    })
                }

                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        Return (AG12)
                    }

                    Return (PG12)
                }

While there are no ACPI errors during boot for DSB2, there are errors when initialising USPB, DSB0, DSB1 and DSB4 when using...

Code:
Method (_L69, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
    {
        If (LNotEqual (\_SB.PC01.BR1A.VDID (), Ones))
        {
            \_SB.PC01.BR1A.HPME ()
            Notify (\_SB.PC01.BR1A.UPSB, 0x02)
            Notify (\_SB.PC01.BR1A.UPSB.DSB0, 0x02)
            Notify (\_SB.PC01.BR1A.UPSB.DSB0.NHI0, 0x02)
            Notify (\_SB.PC01.BR1A.UPSB.DSB1, 0x02)
            Notify (\_SB.PC01.BR1A.UPSB.DSB2, 0x02)
            Notify (\_SB.PC01.BR1A.UPSB.DSB2.XHC5, 0x02)
            Notify (\_SB.PC01.BR1A.UPSB.DSB4, 0x02)
        }
    }
 
Nobody haven't given me a solution to this issue. I started over with a new EFI folder from EFI-X99-10.14-PB1-Release-iMacPro1,1-280618.zip. I followed the steps up to Step B1 to D6. I skipped the Bios patch since it's already installed and adding TSCSync.kext and VegaGraphicsFixUp.kext and edit the CPUID to work with Haswell-E. I have the same issue as shown in the screenshot with the AppleDisplayPolicyd.

However, this issue is not present when I boot into High Sierra. It boots successfully, but not the Mojave installer.

Edit: I reverted back to the 10.3.5 EFI folder and out of curiosity, I removed verbose mode and have the Mojave installer running. It just took a very long time to load the installer and it eventually went into the installer screen to finish the installation. The Vega 56 fix the installer screen issue as when I used the RX 580, it eventually led to a black screen.
 

Attachments

  • Screen Shot 7-30-18, 5.45 PM 2.png
    Screen Shot 7-30-18, 5.45 PM 2.png
    2.8 MB · Views: 204
  • Screen Shot 7-30-18, 5.45 PM.png
    Screen Shot 7-30-18, 5.45 PM.png
    2.7 MB · Views: 172
  • Screen Shot 7-30-18, 5.41 PM.png
    Screen Shot 7-30-18, 5.41 PM.png
    136.1 KB · Views: 265
  • Screen Shot 7-30-18, 5.36 PM.png
    Screen Shot 7-30-18, 5.36 PM.png
    142.5 KB · Views: 177
Last edited:
@nmano
can you explain me why you use in the TB-SSDT the DSDT ACPI implementation for RPXX in case of DSB2

Code:
DSDT-Code:
Method (_INI, 0, NotSerialized)  // _INI: Initialize
            {
                Store (LTR3, LTRZ)
                Store (PML3, LMSL)
                Store (PNL3, LNSL)
                Store (OBF3, OBFZ)
            }

            OperationRegion (PXCS, PCI_Config, Zero, 0x0480)
            Field (PXCS, AnyAcc, NoLock, Preserve)
            {
                VDID,   32,
                Offset (0x50),
                L0SE,   1,
                    ,   3,
                LDIS,   1,
                Offset (0x51),
                Offset (0x52),
                    ,   13,
                LASX,   1,
                Offset (0x5A),
                ABPX,   1,
                    ,   2,
                PDCX,   1,
                    ,   2,
                PDSX,   1,
                Offset (0x5B),
                Offset (0x60),
                Offset (0x62),
                PSPX,   1,
                Offset (0xA4),
                D3HT,   2,
                Offset (0xD8),
                    ,   30,
                HPEX,   1,
                PMEX,   1,
                Offset (0xE2),
                    ,   2,
                L23E,   1,
                L23R,   1,
                Offset (0x324),
                    ,   3,
                LEDM,   1,
                Offset (0x420),
                    ,   30,
                DPGE,   1
            }

            Field (PXCS, AnyAcc, NoLock, WriteAsZeros)
            {
                Offset (0xDC),
                    ,   30,
                HPSX,   1,
                PMSX,   1
            }

            Name (LTRV, Package (0x04)
            {
                Zero,
                Zero,
                Zero,
                Zero
            })
            Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
            {
                If (LEqual (Arg0, ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */))
                {
                    Switch (ToInteger (Arg2))
                    {
                        Case (Zero)
                        {
                            Name (OPTS, Buffer (0x02)
                            {
                                 0x00, 0x00                                   
                            })
                            CreateBitField (OPTS, Zero, FUN0)
                            CreateBitField (OPTS, 0x04, FUN4)
                            CreateBitField (OPTS, 0x06, FUN6)
                            CreateBitField (OPTS, 0x08, FUN8)
                            CreateBitField (OPTS, 0x09, FUN9)
                            If (LGreaterEqual (Arg1, 0x02))
                            {
                                Store (One, FUN0)
                                If (LTRE)
                                {
                                    Store (One, FUN6)
                                }

                                If (OBFF)
                                {
                                    Store (One, FUN4)
                                }

                                If (LEqual (ECR1, One))
                                {
                                    If (LGreaterEqual (Arg1, 0x03))
                                    {
                                        Store (One, FUN8)
                                        Store (One, FUN9)
                                    }
                                }
                            }

                            Return (OPTS)
                        }
                        Case (0x04)
                        {
                            If (LGreaterEqual (Arg1, 0x02))
                            {
                                If (OBFZ)
                                {
                                    Return (Buffer (0x10)
                                    {
                                        /* 0000 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                        /* 0008 */  0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
                                    })
                                }
                                Else
                                {
                                    Return (Buffer (0x10)
                                    {
                                        /* 0000 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                        /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                                    })
                                }
                            }
                        }
                        Case (0x06)
                        {
                            If (LGreaterEqual (Arg1, 0x02))
                            {
                                If (LTRZ)
                                {
                                    If (LOr (LEqual (LMSL, Zero), LEqual (LNSL, Zero)))
                                    {
                                        If (LEqual (PCHS, SPTH))
                                        {
                                            Store (0x0846, LMSL)
                                            Store (0x0846, LNSL)
                                        }
                                        ElseIf (LEqual (PCHS, SPTL))
                                        {
                                            Store (0x1003, LMSL)
                                            Store (0x1003, LNSL)
                                        }
                                    }

                                    Store (And (ShiftRight (LMSL, 0x0A), 0x07), Index (LTRV, Zero))
                                    Store (And (LMSL, 0x03FF), Index (LTRV, One))
                                    Store (And (ShiftRight (LNSL, 0x0A), 0x07), Index (LTRV, 0x02))
                                    Store (And (LNSL, 0x03FF), Index (LTRV, 0x03))
                                    Return (LTRV)
                                }
                                Else
                                {
                                    Return (Zero)
                                }
                            }
                        }
                        Case (0x08)
                        {
                            If (LEqual (ECR1, One))
                            {
                                If (LGreaterEqual (Arg1, 0x03))
                                {
                                    Return (One)
                                }
                            }
                        }
                        Case (0x09)
                        {
                            If (LEqual (ECR1, One))
                            {
                                If (LGreaterEqual (Arg1, 0x03))
                                {
                                    Return (Package (0x05)
                                    {
                                        0xC350,
                                        Ones,
                                        Ones,
                                        0xC350,
                                        Ones
                                    })
                                }
                            }
                        }

                    }
                }

                Return (Buffer (One)
                {
                     0x00                                         
                })
            }

            Device (PXSX)
            {
                Name (_ADR, Zero)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x35, 0x04))
                }
            }

            Method (HPME, 0, Serialized)
            {
                If (LAnd (LNotEqual (VDID, 0xFFFFFFFF), LEqual (PMSX, One)))
                {
                    Notify (PXSX, 0x02)
                    Store (One, PMSX)
                    Store (One, PSPX)
                }
            }

            Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
            {
                Return (GPRW (0x35, 0x04))
            }
        }


but the one of BRXX for USPB, DSB0, DSB1 and DSB4?

Code:
DSDT-Code:
OperationRegion (MCTL, SystemMemory, 0x60000188, 0x04)
                Field (MCTL, ByteAcc, NoLock, Preserve)
                {
                        ,   3,
                    HGPE,   1,
                        ,   7,
                        ,   8,
                        ,   8
                }

                Method (_INI, 0, NotSerialized)  // _INI: Initialize
                {
                    Store (One, HGPE)
                }

                Name (_HPP, Package (0x04)  // _HPP: Hot Plug Parameters
                {
                    0x08,
                    0x40,
                    One,
                    Zero
                })
                Name (SHPC, 0x40)
                Name (SPDS, 0x40)
                Name (MRLS, Zero)
                Name (CCOM, 0x10)
                Name (SPDC, 0x08)
                Name (MRLC, 0x04)
                Name (SPFD, 0x02)
                Name (SABP, One)
                Name (SPOF, 0x10)
                Name (SPON, 0x0F)
                Name (ALMK, 0x1C)
                Name (ALON, One)
                Name (ALBL, 0x02)
                Name (ALOF, 0x03)
                Name (PLMK, 0x13)
                Name (PLON, 0x04)
                Name (PLBL, 0x08)
                Name (PLOF, 0x0C)
                Name (HPEV, 0x0F)
                OperationRegion (PPA4, PCI_Config, Zero, 0x0100)
                Field (PPA4, ByteAcc, NoLock, Preserve)
                {
                    Offset (0xA0),
                        ,   4,
                    LDIS,   1,
                    Offset (0xA2),
                    Offset (0xA4),
                    ATBP,   1,
                        ,   1,
                    MRSP,   1,
                    ATIP,   1,
                    PWIP,   1,
                        ,   14,
                    PSNM,   13,
                    ABIE,   1,
                    PFIE,   1,
                    MSIE,   1,
                    PDIE,   1,
                    CCIE,   1,
                    HPIE,   1,
                    SCTL,   5,
                    Offset (0xAA),
                    SSTS,   7,
                    Offset (0xAB),
                    Offset (0xB0),
                    Offset (0xB2),
                    PMES,   1,
                    PMEP,   1,
                    Offset (0xB4)
                }

                Method (ATID, 0, NotSerialized)
                {
                    Return (And (SCTL, 0x03))
                }

                Method (PWID, 0, NotSerialized)
                {
                    Return (ShiftRight (And (SCTL, 0x0C), 0x02))
                }

                Method (PWCC, 0, NotSerialized)
                {
                    Return (ShiftRight (And (SCTL, 0x10), 0x04))
                }

                Method (ABPS, 1, NotSerialized)
                {
                    If (LEqual (Arg0, One))
                    {
                        Or (SSTS, One, SSTS)
                    }

                    Return (And (SSTS, One))
                }

                Method (PFDS, 1, NotSerialized)
                {
                    If (LEqual (Arg0, One))
                    {
                        Or (SSTS, 0x02, SSTS)
                    }

                    Return (ShiftRight (And (SSTS, 0x02), One))
                }

                Method (MSCS, 1, NotSerialized)
                {
                    If (LEqual (Arg0, One))
                    {
                        Or (SSTS, 0x04, SSTS)
                    }

                    Return (ShiftRight (And (SSTS, 0x04), 0x02))
                }

                Method (PDCS, 1, NotSerialized)
                {
                    If (LEqual (Arg0, One))
                    {
                        Or (SSTS, 0x08, SSTS)
                    }

                    Return (ShiftRight (And (SSTS, 0x08), 0x03))
                }

                Method (CMCS, 1, NotSerialized)
                {
                    If (LEqual (Arg0, One))
                    {
                        Or (SSTS, 0x10, SSTS)
                    }

                    Return (ShiftRight (And (SSTS, 0x10), 0x04))
                }

                Method (MSSC, 1, NotSerialized)
                {
                    If (LEqual (Arg0, One))
                    {
                        Or (SSTS, 0x20, SSTS)
                    }

                    Return (ShiftRight (And (SSTS, 0x20), 0x05))
                }

                Method (PRDS, 1, NotSerialized)
                {
                    If (LEqual (Arg0, One))
                    {
                        Or (SSTS, 0x40, SSTS)
                    }

                    Return (ShiftRight (And (SSTS, 0x40), 0x06))
                }

                Method (OSHP, 0, NotSerialized)
                {
                    Store (SSTS, SSTS)
                    Store (Zero, HGPE)
                }

                Method (HPCC, 1, NotSerialized)
                {
                    Store (SCTL, Local0)
                    Store (Zero, Local1)
                    If (LNotEqual (Arg0, Local0))
                    {
                        Store (Arg0, SCTL)
                        While (LAnd (LNot (CMCS (Zero)), LNotEqual (0x64, Local1)))
                        {
                            Store (0xFB, IO80)
                            Sleep (0x02)
                            Add (Local1, 0x02, Local1)
                        }

                        CMCS (One)
                    }
                }

                Method (ATCM, 1, NotSerialized)
                {
                    Store (SCTL, Local0)
                    And (Local0, ALMK, Local0)
                    If (LEqual (Arg0, One))
                    {
                        Or (Local0, ALON, Local0)
                    }

                    If (LEqual (Arg0, 0x02))
                    {
                        Or (Local0, ALBL, Local0)
                    }

                    If (LEqual (Arg0, 0x03))
                    {
                        Or (Local0, ALOF, Local0)
                    }

                    HPCC (Local0)
                }

                Method (PWCM, 1, NotSerialized)
                {
                    Store (SCTL, Local0)
                    And (Local0, PLMK, Local0)
                    If (LEqual (Arg0, One))
                    {
                        Or (Local0, PLON, Local0)
                    }

                    If (LEqual (Arg0, 0x02))
                    {
                        Or (Local0, PLBL, Local0)
                    }

                    If (LEqual (Arg0, 0x03))
                    {
                        Or (Local0, PLOF, Local0)
                    }

                    HPCC (Local0)
                }

                Method (PWSL, 1, NotSerialized)
                {
                    Store (SCTL, Local0)
                    If (Arg0)
                    {
                        And (Local0, SPON, Local0)
                    }
                    Else
                    {
                        Or (Local0, SPOF, Local0)
                    }

                    HPCC (Local0)
                }

                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
                {
                    Switch (And (Arg0, 0xFF))
                    {
                        Case (0x03)
                        {
                            Switch (ToInteger (Arg1))
                            {
                                Case (Package (0x04)
                                    {
                                        0x80,
                                        0x81,
                                        0x82,
                                        0x83
                                    }

)
                                {
                                    If (LNot (PWCC ()))
                                    {
                                        PWCM (One)
                                        Store (One, ABIE)
                                    }
                                }

                            }
                        }

                    }
                }

                Method (EJ0L, 0, NotSerialized)
                {
                    Store (0xFF, IO80)
                    Store (SCTL, Local0)
                    If (LNotEqual (ATID (), One))
                    {
                        And (Local0, ALMK, Local0)
                        Or (Local0, ALBL, Local0)
                    }

                    HPCC (Local0)
                    Store (SCTL, Local0)
                    Or (Local0, SPOF, Local0)
                    HPCC (Local0)
                    Store (SCTL, Local0)
                    Or (Local0, PLOF, Local0)
                    HPCC (Local0)
                    Store (SCTL, Local0)
                    Or (Local0, ALOF, Local0)
                    HPCC (Local0)
                }

                Method (PMEH, 1, NotSerialized)
                {
                    If (And (HPEV, SSTS))
                    {
                        If (ABPS (Zero))
                        {
                            Store (Arg0, IO80)
                            ABPS (One)
                            Sleep (0xC8)
                        }
                    }

                    Return (0xFF)
                }

                Method (HPEH, 1, NotSerialized)
                {
                    Store (0xFE, IO80)
                    Sleep (0x64)
                    Store (Zero, CCIE)
                    If (And (HPEV, SSTS))
                    {
                        Store (0xFD, IO80)
                        Sleep (0x0A)
                        Store (Arg0, IO80)
                        Sleep (0x0A)
                        Store (PPXH (), Local0)
                        Return (Local0)
                    }
                    Else
                    {
                        Return (0xFF)
                    }

                    Store (0xFC, IO80)
                    Sleep (0x0A)
                }

                Method (PPXH, 0, NotSerialized)
                {
                    Sleep (0xC8)
                    If (ABPS (Zero))
                    {
                        If (LNot (PRDS (Zero)))
                        {
                            Store (One, LDIS)
                            PWSL (Zero)
                            PWCM (0x03)
                            If (LEqual (MSSC (Zero), MRLS))
                            {
                                ATCM (0x02)
                            }
                            Else
                            {
                                ATCM (0x03)
                            }

                            Store (Zero, ABIE)
                            ABPS (One)
                            Sleep (0xC8)
                            Return (0xFF)
                        }

                        Store (Zero, ABIE)
                        ABPS (One)
                        Sleep (0xC8)
                        If (PWCC ())
                        {
                            PWCM (0x03)
                            ATCM (0x02)
                            Return (0xFF)
                        }
                        Else
                        {
                            PWCM (0x02)
                            Sleep (0x0258)
                            Store (0x0258, Local0)
                            ABPS (One)
                            Sleep (0xC8)
                            While (LNot (ABPS (Zero)))
                            {
                                Sleep (0xC8)
                                Add (Local0, 0xC8, Local0)
                                If (LEqual (0x1388, Local0))
                                {
                                    ABPS (One)
                                    Sleep (0xC8)
                                    Return (0x03)
                                }
                            }

                            PWCM (One)
                            ABPS (One)
                            Sleep (0xC8)
                            Store (One, ABIE)
                            Return (0xFF)
                        }
                    }

                    If (PFDS (Zero))
                    {
                        PFDS (One)
                        PWSL (Zero)
                        PWCM (0x03)
                        ATCM (One)
                        Store (One, LDIS)
                        Return (0x03)
                    }

                    If (MSCS (Zero))
                    {
                        MSCS (One)
                        If (LEqual (MSSC (Zero), MRLS))
                        {
                            If (PRDS (Zero))
                            {
                                ATCM (0x03)
                                PWCM (0x02)
                                Sleep (0x0258)
                                Store (0x0258, Local0)
                                ABPS (One)
                                While (LNot (ABPS (Zero)))
                                {
                                    Sleep (0xC8)
                                    Add (Local0, 0xC8, Local0)
                                    If (LEqual (0x1388, Local0))
                                    {
                                        Store (One, ABIE)
                                        ATCM (0x03)
                                        Store (Zero, LDIS)
                                        PWSL (One)
                                        Sleep (0x01F4)
                                        If (LNot (PFDS (Zero)))
                                        {
                                            PWCM (One)
                                            Store (Zero, Local1)
                                            Store (One, ABIE)
                                        }
                                        Else
                                        {
                                            PWSL (Zero)
                                            PWCM (0x03)
                                            ATCM (One)
                                            Store (One, LDIS)
                                            Store (0x03, Local1)
                                        }

                                        ABPS (One)
                                        Sleep (0xC8)
                                        Return (Local1)
                                    }
                                }

                                ABPS (One)
                                Sleep (0xC8)
                                PWSL (Zero)
                                PWCM (0x03)
                                ATCM (0x02)
                                Store (One, LDIS)
                                Return (0xFF)
                            }

                            PWSL (Zero)
                            PWCM (0x03)
                            ATCM (0x02)
                            Store (One, LDIS)
                            Return (0xFF)
                        }
                        Else
                        {
                            If (PRDS (Zero))
                            {
                                ATCM (0x02)
                                If (LNot (PWCC ()))
                                {
                                    PWSL (Zero)
                                    PWCM (0x03)
                                    Store (One, LDIS)
                                    Return (0x03)
                                }
                                Else
                                {
                                    Return (0xFF)
                                }
                            }

                            ATCM (0x03)
                            Return (0xFF)
                        }
                    }

                    If (PDCS (Zero))
                    {
                        PDCS (One)
                        If (LNot (PRDS (Zero)))
                        {
                            PWSL (Zero)
                            PWCM (0x03)
                            If (LEqual (MSSC (Zero), MRLS))
                            {
                                ATCM (0x02)
                            }
                            Else
                            {
                                ATCM (0x03)
                            }

                            Store (One, LDIS)
                            Return (0xFF)
                        }
                        Else
                        {
                            Store (Zero, LDIS)
                            PWSL (One)
                            Sleep (0x01F4)
                            If (LNot (PFDS (Zero)))
                            {
                                PWCM (One)
                                Store (Zero, Local1)
                                Store (One, ABIE)
                                ATCM (0x03)
                            }
                            Else
                            {
                                PWSL (Zero)
                                PWCM (0x03)
                                ATCM (One)
                                Store (One, LDIS)
                                Store (0x03, Local1)
                            }

                            ABPS (One)
                            Sleep (0xC8)
                            Return (Local1)
                        }
                    }

                    Return (0xFF)
                }

                Method (SNUM, 0, Serialized)
                {
                    Store (PSNM, Local0)
                    Return (Local0)
                }

                Method (_SUN, 0, NotSerialized)  // _SUN: Slot User Number
                {
                    Return (SNUM ())
                }

                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (Package (0x02)
                    {
                        0x69,
                        0x04
                    })
                }

                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        Return (AG12)
                    }

                    Return (PG12)
                }

While there are no ACPI errors during boot for DSB2, there are errors when initialising USPB, DSB0, DSB1 and DSB4 when using...

Code:
Method (_L69, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
    {
        If (LNotEqual (\_SB.PC01.BR1A.VDID (), Ones))
        {
            \_SB.PC01.BR1A.HPME ()
            Notify (\_SB.PC01.BR1A.UPSB, 0x02)
            Notify (\_SB.PC01.BR1A.UPSB.DSB0, 0x02)
            Notify (\_SB.PC01.BR1A.UPSB.DSB0.NHI0, 0x02)
            Notify (\_SB.PC01.BR1A.UPSB.DSB1, 0x02)
            Notify (\_SB.PC01.BR1A.UPSB.DSB2, 0x02)
            Notify (\_SB.PC01.BR1A.UPSB.DSB2.XHC5, 0x02)
            Notify (\_SB.PC01.BR1A.UPSB.DSB4, 0x02)
        }
    }
IF DSB0,DSB1,DSB2,DSB3,DSB4
You have to use same data from BRXX or RPXX
 
Status
Not open for further replies.
Back
Top