Contribute
Register

[solved] high sierra,the laptop restart after shutdown

Status
Not open for further replies.
Joined
Jun 29, 2015
Messages
24
Motherboard
Laptop > Need make and model names > See Forum Rules!
CPU
i7-7700HQ/HM175
Graphics
GTX 1070
Mac
  1. iMac
  2. MacBook Pro
Mobile Phone
  1. Android
  2. iOS
The OS version is 10.13.4,laptop is MSI ge63vr-7rf 004cn,i7-7700hq,gtx1070.
My computer cant shutdown,when I shutdown the computer,it's restart again.
I will upload my config.plist of clover later.
Thanks.
 
The OS version is 10.13.4,laptop is MSI ge63vr-7rf 004cn,i7-7700hq,gtx1070.
My computer cant shutdown,when I shutdown the computer,it's restart again.
I will upload my config.plist of clover later.
Thanks.

"Problem Reporting" files are incomplete.
Read FAQ, "Problem Reporting" again. Carefully. Attach all requested files/output.
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
Use the gen_debug.sh tool mentioned in the FAQ, that way it is less likely you'll omit something.
 
I had tried to fix all the problems that I know related to "the laptop restart after shutdown", i.e. ACPI patch, USB UIAC, USBX, _PTS, but my X230 still encounters the above mentioned problem. Kindly help!
 

Attachments

  • debug_12788.zip
    2.4 MB · Views: 83
I had tried to fix all the problems that I know related to "the laptop restart after shutdown", i.e. ACPI patch, USB UIAC, USBX, _PTS, but my X230 still encounters the above mentioned problem. Kindly help!

Might be XHC.PMEE issue.
There is a patch for it in my laptop patch repo.
 
Code:
    Method(_PTS, 1)
   
    {
        ZPTS(Arg0)
        If (5 == Arg0)
        {
            // fix "auto start after shutdown if a USB Device is Plugged In"
            \_SB.PCI0.XHC.PMEE = 0
        }
    }
Hi Rehabman,

Unfortunately, problem still persisted!

Since I got bluetooth problem, I had eliminated this problem before I post again.

I did apply XHC.PMEE patch, but not sure if I had applied correctly or not. Please refer to the above extracted code from SSDT-BATTD3.aml.
 

Attachments

  • debug_4525.zip
    2.5 MB · Views: 80
Might be XHC.PMEE issue.
There is a patch for it in my laptop patch repo.
If you are referring to ptswak.dsl, i did try. But problem still persisted.
 
If you are referring to ptswak.dsl, i did try. But problem still persisted.

You might try PMEE fix with EH01/EH02.
 
Hi Rehabman,

Thanks for your suggestion!

I tried applying PMEE fix for both EH01 and EH02, but still no luck. However, I checked from the web and found a solution by using 1 bit of register from PCI_Config.

Since this is not a common method for Hackintosh, but it works. I would appreciate if you can explain the logic to me, then we can apply the same fix for such special situation.

Code:
// Overriding _PTS

DefinitionBlock("", "SSDT", 2, "X230", "_PTS", 0)
{
        External(_SB.PCI0.XHC, DeviceObj)
    External (_SB_.PCI0.LPC.EC.HCMU, FieldUnitObj)    // (from opcode)
    External (\DGPU._ON, MethodObj)    // 0 Arguments (from opcode)
    External (ZPTS, MethodObj)    // 1 Arguments (from opcode)
        
 
    // In DSDT, native _PTS is renamed to ZPTS
    // As a result, calls to this method land here.
 
    Scope (_SB.PCI0.XHC)
    {
        OperationRegion (XWPM, PCI_Config, Zero, 0x0100)
        Field (XWPM, AnyAcc, NoLock, Preserve)
        {
            Offset (0x75),
            PMZZ,   1
        }

    }

    Method (\_PTS, 1, NotSerialized)  // _PTS: Prepare To Sleep
    {
        If (CondRefOf (\DGPU._ON))
        {
            \DGPU._ON ()
        }

        If (LNotEqual(Arg0,5))
        {
            ZPTS (Arg0)
        }

        If (CondRefOf (\_SB.PCI0.LPC.EC.HCMU))
        {
            \_SB.PCI0.LPC.EC.HCMU = One
        }

        If ((0x05 == Arg0))
        {
            \_SB.PCI0.XHC.PMZZ = Zero
        }
    }
 
}
 

Attachments

  • debug_3479.zip
    2.1 MB · Views: 85
Last edited:
Hi Rehabman,

Thanks for your suggestion!

I tried applying PMEE fix for both EH01 and EH02, but still no luck. However, I checked from the web and found a solution by using 1 bit of register from PCI_Config.

Since this is not a common method for Hackintosh, but it works. I would appreciate if you can explain the logic to me, then we can apply the same fix for such special situation.

Code:
// Overriding _PTS

DefinitionBlock("", "SSDT", 2, "X230", "_PTS", 0)
{
        External(_SB.PCI0.XHC, DeviceObj)
    External (_SB_.PCI0.LPC.EC.HCMU, FieldUnitObj)    // (from opcode)
    External (\DGPU._ON, MethodObj)    // 0 Arguments (from opcode)
    External (ZPTS, MethodObj)    // 1 Arguments (from opcode)
       
 
    // In DSDT, native _PTS is renamed to ZPTS
    // As a result, calls to this method land here.
 
    Scope (_SB.PCI0.XHC)
    {
        OperationRegion (XWPM, PCI_Config, Zero, 0x0100)
        Field (XWPM, AnyAcc, NoLock, Preserve)
        {
            Offset (0x75),
            PMZZ,   1
        }

    }

    Method (\_PTS, 1, NotSerialized)  // _PTS: Prepare To Sleep
    {
        If (CondRefOf (\DGPU._ON))
        {
            \DGPU._ON ()
        }

        If (LNotEqual(Arg0,5))
        {
            ZPTS (Arg0)
        }

        If (CondRefOf (\_SB.PCI0.LPC.EC.HCMU))
        {
            \_SB.PCI0.LPC.EC.HCMU = One
        }

        If ((0x05 == Arg0))
        {
            \_SB.PCI0.XHC.PMZZ = Zero
        }
    }
 
}

PMZZ you have created is at the same offset as PMEE.
No need to add PMZZ, as you can just set PMEE, which you will probably find already in your DSDT.

Note PMEE from my NUC6i7KYK DSDT:
Code:
        Device (XHC)
        {
            OperationRegion (XPRT, PCI_Config, Zero, 0x0100)
...
            Field (XPRT, ByteAcc, NoLock, Preserve)
            {
...
                Offset (0x75), 
                PMEE,   1,
 
PMZZ you have created is at the same offset as PMEE.
No need to add PMZZ, as you can just set PMEE, which you will probably find already in your DSDT.

Note PMEE from my NUC6i7KYK DSDT:
Code:
        Device (XHC)
        {
            OperationRegion (XPRT, PCI_Config, Zero, 0x0100)
...
            Field (XPRT, ByteAcc, NoLock, Preserve)
            {
...
                Offset (0x75),
                PMEE,   1,
I cannot find it on my DSDT. It may be because my bios have bug or pmee is gone after modding my bios.
 
Status
Not open for further replies.
Back
Top