Jump to content

ACPI: sleep states S4 S5


takeawaydave
 Share

16 posts in this topic

Recommended Posts

Trying to fix sleep from what I can tell most of what I need is getting loaded:

 

mira:~ david$ kextstat | grep LPC

   65    0 0xffffff7f81c56000 0x3000     0x3000     com.apple.driver.AppleLPC (1.7.0) <56 11 5 4 3>

mira:~ david$ kextstat | grep HPET

   29    0 0xffffff7f81d04000 0x3000     0x3000     com.apple.driver.AppleHPET (1.8) <10 7 5 4 3>

mira:~ david$ kextstat | grep RTC

   27    0 0xffffff7f81bc1000 0x7000     0x7000     com.apple.driver.AppleRTC (2.0) <10 5 4 3 1>

 

Regarding sleep I am not seeing the S3 state when running:

 

mira:~ david$ sudo dmesg | grep ACPI

AppleACPICPU: ProcessorId=1 LocalApicId=0 Enabled

AppleACPICPU: ProcessorId=2 LocalApicId=2 Enabled

AppleACPICPU: ProcessorId=3 LocalApicId=4 Enabled

AppleACPICPU: ProcessorId=4 LocalApicId=16 Enabled

AppleACPICPU: ProcessorId=5 LocalApicId=18 Enabled

AppleACPICPU: ProcessorId=6 LocalApicId=20 Enabled

AppleACPICPU: ProcessorId=7 LocalApicId=32 Enabled

AppleACPICPU: ProcessorId=8 LocalApicId=34 Enabled

AppleACPICPU: ProcessorId=9 LocalApicId=36 Enabled

AppleACPICPU: ProcessorId=10 LocalApicId=48 Enabled

AppleACPICPU: ProcessorId=11 LocalApicId=50 Enabled

AppleACPICPU: ProcessorId=12 LocalApicId=52 Enabled

AppleACPICPU: ProcessorId=13 LocalApicId=1 Enabled

AppleACPICPU: ProcessorId=14 LocalApicId=3 Enabled

AppleACPICPU: ProcessorId=15 LocalApicId=5 Enabled

AppleACPICPU: ProcessorId=16 LocalApicId=17 Enabled

AppleACPICPU: ProcessorId=17 LocalApicId=19 Enabled

AppleACPICPU: ProcessorId=18 LocalApicId=21 Enabled

AppleACPICPU: ProcessorId=19 LocalApicId=33 Enabled

AppleACPICPU: ProcessorId=20 LocalApicId=35 Enabled

AppleACPICPU: ProcessorId=21 LocalApicId=37 Enabled

AppleACPICPU: ProcessorId=22 LocalApicId=49 Enabled

AppleACPICPU: ProcessorId=23 LocalApicId=51 Enabled

AppleACPICPU: ProcessorId=24 LocalApicId=53 Enabled

ACPI: sleep states S4 S5

Got boot device = IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/SATA@1F,2/AppleAHCI/CHN1@1/IOAHCIDevice@0/AppleAHCIDiskDriver/IOAHCIBlockStorageDevice/IOBlockStorageDriver/Samsung SSD 840 PRO Series Media/IOGUIDPartitionScheme/Raid Partition 5@2/AppleRAIDMember/AppleRAIDStripeSet/Macintosh HD@0

 

So far fixed USB and LPC and SBUS in DSDT. Any ideas on how to proceed ?

 

 

ioreg_DSDTv1.01c.zip

DSDTv1.01c.aml.zip

Link to comment
Share on other sites

Some further information - just to tempt those who are keen to help - hint, hint you know who you are ;)

 

When I click sleep the display goes blank however the machine does not sleep - fans keep going at least.

 

The following gets displayed in the console window:

 

18/02/14 16:44:27.931 WindowServer[112]: CGError post_notification(const CGSNotificationType, void *const, const size_t, const bool, const CGSRealTimeDelta, const int, const CGSConnectionID *const, const pid_t): Timed out 1.000 second wait for reply from "com.apple.qtkitserver" for synchronous notification type 102 (kCGSDisplayWillSleep) (CID 0x12b1b, PID 408)
18/02/14 16:44:27.931 WindowServer[112]: device_generate_desktop_screenshot: authw 0x0(0), shield 0x7fcb9d530160(2001)
18/02/14 16:44:27.980 WindowServer[112]: device_generate_lock_screen_screenshot: authw 0x0(0), shield 0x7fcb9d530160(2001)
18/02/14 16:44:37.411 WindowServer[112]: _CGXHWCaptureWindowList: No capable active display found.
18/02/14 16:45:37.535 LKDCHelper[420]: Starting (uid=501)
18/02/14 16:46:48.218 WindowServer[112]: CGXDisplayDidWakeNotification [3822344846006]: posting kCGSDisplayDidWake
18/02/14 16:46:48.218 WindowServer[112]: handle_will_sleep_auth_and_shield_windows: Deferring.
18/02/14 16:46:52.525 netbiosd[270]: name servers down?

 

Link to comment
Share on other sites

Hello there,

which bootloader are you using? Chameleon or Clover? It might be important as Clover sometimes messes something up with sleep. If you are using Clover please check if issue persists with chameleon. If you are using chameleon it might be also worth to try clover. It works both ways. One bootloader works better on one system the other on another one.

 

Cheers

Link to comment
Share on other sites

Hello there,

which bootloader are you using? Chameleon or Clover? It might be important as Clover sometimes messes something up with sleep. If you are using Clover please check if issue persists with chameleon. If you are using chameleon it might be also worth to try clover. It works both ways. One bootloader works better on one system the other on another one.

 

Cheers

 

 

Hello - I tried both but still got the same situation....

 

I tend to think this BIOS is not making state s3 since its a server board ..... or is this just unheard of ? 

Link to comment
Share on other sites

  • 1 month later...

I think I am in the same boat now. I just bought Supermicro X8DTL-i and have problem with restart, shutdown and sleep problem with clover boot loader, not tried with chameleon. Now I know chameleon doesn't work with this board. As you mentioned already, this motherboard supports only s4,s5 states. There is no S3 option in bios. One of my colleague is using Supermicro X8DAH + and he has no problem with sleep, shutdown and restart with chameleon but shutdown and restart problem with clover. That board supports S3 states.

 

Do you have restart and shutdown problem? My computer can be shutdowned but when I  turn on computer again computer wouldn't boot with large beeps. Restart too. I don't know why...

 

I will try Chameleon boot loader..

Link to comment
Share on other sites

Your DSDT is missing something like this:

    If (SS3)
    {
        Name (_S3, Package (0x04)
        {
            0x05, 
            Zero, 
            Zero, 
            Zero
        })
    }

Add the above snippet and see if S3 shows up in /var/log/system.log

Link to comment
Share on other sites

Ok. In that case just use this:

Name (_S3, Package (0x04)
{
    0x05, 
    Zero, 
    Zero, 
    Zero
})

Thus without the if clause. If this works then delete Method GPRW and Name PRWP

The next thing would be to change all Methods (_PRW) from:

Method (_PRW, 0, NotSerialized)
{
    Return (GPRW (0x09, 0x04))
}

into this:

Name (_PRW, Package (0x02)
 {
    0x09, 
    0x03
})

Here you change the 0x04 into 0x03 as lowest sleep state.

Link to comment
Share on other sites

@Pike R. Alpha

Thanks Pike R. Alpha.  Name (_S3, package (0x04)) is working. I can see S3 in system.log file.     System.log file shows "Apr 13 22:37:35 localhost kernel[0]: ACPI: sleep states S3 S4 S5". Now I am working on your next instruction. But I am a little confusing to delete Method GPRW and Name PRWP. Do I need to delete all GPRW and PRWP, right? and I need to change all the Method (_PRW, 0, NotSerialized) to Name (_PRW, Package (0x02)!I understand I need to change deepest sleep state  S4 to S3.

 

I will let you know what i have.

Link to comment
Share on other sites

@Pike R. Alpha

I applied your method to  dsdt.aml which you mentioned above, delete GPRW and PRWP, and change Method (PRW to Name (_PRW.  Guses what! half succeed? With Clover boot-loader booting was fine and all the information was correct. So I tried sleep button. Computer entered sleep mode , I mean all fans was shut down like normal sleep mode, about one second and then woke up right away. All the fans started spinning again and no monitor outputs...  Hibernatemode was 3.  I need to shut down computer. No time to look at the system.log

 

Maybe motherboard doesn't support S3 states?

dsdt of super micro X8DTL-i is almost same  with X8DTL-6's dsdt.

Link to comment
Share on other sites

That is a good start, but don't expect things like sleep/wake/shutdown to work without putting a lot of effort (read time) into it.

 

Now. You said that your computer beeps on startup, after shutdown, and in that case you may need to patch AppleRTC.kext (use forum search). Let me know if that solves the beeping. If not then change this line in method _PTS:

If (LEqual (Arg0, 0x05))

into:

If (LEqual (Arg0, 0x15))

This will tell you if this particular piece of code is to blame for the shutdown problem. If that doesn't work then you can try to replace method _PTS with this:

Method (_PTS, 1, NotSerialized)
{
    If (Arg0)
    {
        Store (One, \_SB.PCI0.LPCB.PS1S)
        Store (One, \_SB.PCI0.LPCB.PS1E)
        If (LAnd (LGreater (Arg0, 0x03), LLess (Arg0, 0x06)))
        {
            Store (Arg0, \_SB.PCI0.LPCB.PSMI)
        }
    }
}

Basically eliminating all the calls to other methods in method _PTS. Let me know how things progress, and good luck!

Link to comment
Share on other sites

@Pike R. Alpha

Thanks for your concern. I tried your advices today. The progress is followed.

 

First, AppleRTC patch is already done with Clover boot-loader rtc patch. I don't think I need it. The problem with restart and shutdown is that computer can't boot up with this beep sound. The manual said that that beep sound results in memory error, which described No memory detected in the system. 6 memory banks is filled with 24 GB 12800 Ecc/Reg memory. Those are recognised by BIOS correctly. I have no idea. I will try this with Chameleon boot-loader later.

 

Second, I changed 0x05 to 0x15 and rest of code in _PTS was untouched. I tried sleep. All fans of system, which are CPUS, chassis fans, even power supply fan, was off and power led was also off. I couldn't wake up system using usb mouse and keyboards. It looked like hibernated mode, I think.  The only way to wake up the system was push the power button. All fans was on and on board LAN Power LED was still off but no signals from Graphic cards so that I couldn't see any thing from monitor. 

 

Third, replace all the code of _PTS with your code. Boot was O.K. and sleep was exactly the same as Second one, change 0x05 to 0x15. All the power and fans were gone and to wake up the system I need to use power button. And still no output from graphic card. 

 

A little progress, I think. One more thing. menu buttons of finder and safari was gone after changing sleep state S4 to S3.

Link to comment
Share on other sites

Ok. I think that this is all you need for _PTS:

Method (_PTS, 1, NotSerialized)
{
    If (LEqual (Arg0, 0x05)) {} // Shutdown
    Else // Everything else
    {
        Store (One, \_SB.PCI0.LPCB.PS1S)
        Store (One, \_SB.PCI0.LPCB.PS1E)
        Store (Arg0, ASSB)
    }
}

Then you should start working on method _WAK because that is causing you trouble. Start with something like this:

    Method (_WAK, 1, NotSerialized)
    {
        Notify (\_SB.PCI0.EHCI, Zero)
        Notify (\_SB.PCI0.UHCI, Zero)
        Return (Package (0x02)
        {
            Zero, 
            Zero
        })
    }

Remember this: There is no turn key solution to sleep/wake/shutdown problems. It will require a lot of work!

Link to comment
Share on other sites

@Pike R. Alpha

Thanks for your advice.  _PTS method you mentioned above is working as before. I still need to finish work on _WAK. I am reading _PTS and _WAK parts on ACPI specification 5.0 again. It has been long time so that I need to recall everything. You have been helped me the key point I should work on. Thanks again. I will keep post the progress here or your blog. I know where it is. Hopely I can do that.

Link to comment
Share on other sites

  • 11 months later...
Guest calabash

After a long time searching and trying out some stuff i can not find a solution.

 

when the system awakes after sleep no USB ports are recognized, also after reboot. i have to make a full shutdown to get USB ports working.

console output shows kernel[0]: ACPI: sleep states S3 S4 S5

 
@Pike R. Alpha can you please take a look a my DSDT.
 

DSDT.aml.zip

ioreg.zip

Link to comment
Share on other sites

 Share

×
×
  • Create New...