Contribute
Register

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

Status
Not open for further replies.
Hi KGP
do you know how to fix DualShock 4 controller connect to Mac via bluetooth?
 
IF DSB0,DSB1,DSB2,DSB3,DSB4
You have to use same data from BRXX or RPXX

@nmano,

how to combine the two DSM Methods in a way that they do not interfere with each other? They are attributed to the same device, but one can implement a DSM method only once per device... This problems occurs with the TB-SSDT considering method RPXX..

Code:
                Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
                {
                    If (LNot (Arg2))
                    {
                        Return (Buffer (One)
                        {
                             0x03                                         
                        })
                    }

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

Code:
               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                                         
                    })
               }
 
Last edited:
@nmano,

I now also completed the other TB-SSDT with the BRXX method (attached below)...

I still have one UnknownObject IO80 in the Definition Block...

With the RPXX method I have unknownObjects LMSL and LNSL in the definition block and I still have the additional problem stated in post #32...

However, for both methods no further ACPI errors during boot.

TB hot plug on both TB ports with THB_C removed..

Screenshot 2018-07-31 at 16.09.05.png


Still no TB-USB hot plug with THB_C removed, although I have been able to asign PCIHotplugCapable to DSB2

Screenshot 2018-07-31 at 16.12.25.png


Cheers,

KGP
 

Attachments

  • SSDT-X299-TB3-iMacPro-Combo-ASUS-31-07-2018-b.aml.zip
    3.3 KB · Views: 58
Last edited:
Hi KGP
do you know how to fix DualShock 4 controller connect to Mac via bluetooth?

unfortunately not my friend..
 
@nmano,

I now also completed the other TB-SSDT with the BRXX method (attached below)...

I still have one UnknownObject IO80 in the Definition Block...

With the RPXX method I have unknownObjects LMSL and LNSL in the definition block and I still have the additional problem stated in post #32...

However, for both methods no further ACPI errors during boot.

TB hot plug on both TB ports with THB_C removed..

View attachment 343913

Still no TB-USB hot plug with THB_C removed, although I have been able to asign PCIHotplugCapable to DSB2

View attachment 343914

Cheers,

KGP
Under
Method (OSHP, 0, NotSerialized)
#Remove this line
Store (SSTS, SSTS)

I don't know why not
assign Hot plug Capable to DSB2
try
"PCIHotplugCapable",
One
 
Under
Method (OSHP, 0, NotSerialized)
#Remove this line
Store (SSTS, SSTS)

I don't know why not
assign Hot plug Capable to DSB2
try
"PCIHotplugCapable",
One

Done (see attachment)..

Problem:

1.) with the THB_C connected, both NHI0 and USB PCI Drivers are permanently loaded. USB hot plug works flawless.. However no TB hot plug.

2.) with the THB_C unplugged, only NHI0 PCI Driver permanently loaded. TB hot plug works flawless.. However, USB PCI Driver only loaded with USB device connected at boot. No USB hot plug..

The situation is totally weird.. The optimal solution would be to get TB hot plug working without the removal of THB_C

Our entire additional BRXX or RPXX notification implementation does not improve or change anything... Same behaviour as simple injector SSDT without BRXX or RPXX notification implementations..
 

Attachments

  • SSDT-X299-TB3-iMacPro-Combo-ASUS-31-07-2018-b.aml.zip
    3.5 KB · Views: 80
Urgent request..

@nmano, or anybody else...

how to properly implement a double precision variable within an AML?

The result should be the following device property:

Screen Shot 2018-08-01 at 19.27.06.png
 
Urgent request..

@nmano, or anybody else...

how to properly implement a double precision variable within an AML?

The result should be the following device property:

View attachment 344037
Data10000046

TRY this
"IOPCITunnelControllerID",
Buffer ()
{
0x10, 0x00, 0x00, 0x46
},
 
Data10000046

TRY this
"IOPCITunnelControllerID",
Buffer ()
{
0x10, 0x00, 0x00, 0x46
},

unfortunately, that's not the same...

While 0x10000491is a "number", your approach results in a "data" array... any other possibility?

The other question would be how to implement a boolean constant?

Screen Shot 2018-08-02 at 09.22.48.png
 
Unfortunately PB4 crashed my system...

Clover is stuck at "End RandomSeed" and it shows a line of +.

I read that this problem is related to memory allocation, and I tried installing the OSxAptioFix(1/2/3)Drv.efi drivers, but this doesn't solve my problem.

Does anyone know how to fix this problem?

Thanks in advance
 
Status
Not open for further replies.
Back
Top