2010년 7월 11일 일요일

Fix DSDT: sleep, shutdown, SATA, No restart

Hi all, I want to share this tip is really great! it eliminates the need to:

- SleepEnabler.kext -> runs the day I await your return to EDIT this because I changed my mobo jumpers S3 also in
- IOAHCIBlockStorageInjector.kext -> enables the internal hard drive (orange icon)
- OSXRestart.kext -> runs the shutdown after a wake-


They are kept because I did not solve the problem of Restart (yet!) It is that the shutdown is functional:
- EvoReboot.kext,
- OpenHaltRestart.kext,


While these tips will work for P5Q series and P5K series, matoss used for these six is a P5Q SE2.

# 1
So we start with the shutdown fix:

In "Device (SBRG)" insert between "Name (_ADR, 0x001F0000)" and "Device (IELK)" the written part below:

Device (SBRG)
(
    Name (_ADR, 0x001F0000)
           OperationRegion (LPC0, PCI_Config, 0xA0, 0x54) / * start
           Field (LPC0, AnyAcc, nolock, Preserve)
           (
                     ,   10,  
                XPME,   1,  
                         Offset (0x04)  
                AG3E,   1,  
                         Offset (0x50)  
                CABIN,   32 
            ) / * End
 
    Device (IELK)


Then look Method "(_PTS, 1, NotSerialized)" and made the same:

Method (_PTS, 1, NotSerialized)
    ( 
               If (LEqual (arg0, 0x05)) / * Debut
               (
                    Store (One, \ _SB.PCI0.SBRG.AG3E)
               )
               Else
               (                                                                
            Store (arg0, DBG8)
            PTS (arg0)
            Store (Zero, Index (WAKP, Zero))
            Store (Zero, Index (WAKP, One))
            If (Land (LEqual (arg0, 0x04), LEqual (OSFL (), 0x02)))
            ( 
                Sleep (0x0BB8)
            ) 
 
            Store (ASSB, WSSB)
            Store (AOTB, WOTB)
            Store (AAXB, WAXB)
            Store (arg0, ASSB)
            Store (OSFL (), AOTB)
            Store (Zero, AAXB)
            ) / * End
    )


This is the shutdown is functional!



# 2
Then the fix for the day:

Replace this:

Return (WAKP)
    ) 
 
    OperationRegion (IORK, SystemIO, 0xB3, One)
    Field (IORK, ByteAcc, nolock, Preserve)
    ( 
        IOWK,   8 
    ) 


by this:

 Return (WAKP)
    ) 
 
Return (Package (0x02)
    ( 
        Zero  
        Zero
    ))
    OperationRegion (IORK, SystemIO, 0xB3, One)
    Field (IORK, ByteAcc, nolock, Preserve)
    ( 
        IOWK,   8 
    )


This is done for the day!

# 3
Let us fix SATA (recognized as after 631xESB/632xESB SATA AHCI Controller) but does not interfere in any way the functioning of the beast!

This is the method:
In the search for DSDT "Device" SATA  and after "Name (_ADR, 0x001F0002) said:

Name (_ADR, 0x001F0002) Method (_DSM, 4, NotSerialized)                    
                ( 
                    Store (Package (0x08)
                        ( 
                            "AAPL, slot-name",  
                            Buffer (0x09)
                            ( 
                                "Built in" 
                            ) 
 
                            "Model",  
                            Buffer (0x1B)
                            ( 
                                "ICH10 SATA / AHCI Controller" -> Name of the controller (your choice cis aesthetic, n 'not forget to change the buffer!
                            ) 
 
                            "Device-id",  
                            Buffer (0x04)
                            ( 
                                0x81, 0x26, 0x00, 0x00 -> Device-id ESB2 to spend IOAHCIBlockStorageInjection.kext
                            ) 
 
                            Built-in ",  
                            Buffer (One)
                            ( 
                                0x00
                            ) 
                        ) LOCAL0)
                    DTGP (arg0, Arg1, Arg2, Arg3, RefOf (LOCAL0))
                    Return (LOCAL0)                                            
                )


Well that's good old IOAHCIBlockStorageInjection.kext finished!



# 4
Time to switch to USB internally and solves the day (sleep):

First IORegistryExplorer open and search for "USB"
There should be a list with usb0 USB1 USB2 EUSB USBE ...
Click on a USB input (eg usb0 @ 1D) and in the column property search "compatible" like "pcixxxx, xxxx", "pci8086, 3A34" is the second PCI interests us! and so on ...



All USB have a specific number approaching (3A34, 3A35 ...)
Now we have entered this snippet at the end before the last ")" of each device (xUSBx) with two parts of figure reversed complicated?!Explanation:


 Method (_DSM, 4, NotSerialized)
                ( 
                    Store (Package (0x02)
                        ( 
                            "Device-id",  
                            Buffer (0x04)
                            ( 
                                0x34, 0x3A, 0x00, 0x00
                            ) 
                        ) LOCAL0)
                    DTGP (arg0, Arg1, Arg2, Arg3, RefOf (LOCAL0))
                    Return (LOCAL0)
                )


We should get this:

Device (usb0)
            ( 
                Name (_ADR, 0x001D0000)
[........]
                Method (_DSM, 4, NotSerialized)
                ( 
                    Store (Package (0x02)
                        ( 
                            "Device-id",  
                            Buffer (0x04)
                            ( 
                                0x34, 0x3A, 0x00, 0x00
                            ) 
                        ) LOCAL0)
                    DTGP (arg0, Arg1, Arg2, Arg3, RefOf (LOCAL0))
                    Return (LOCAL0)
                ) 
            ) 
 
            Device (USB1)
            ( 
                Name (_ADR, 0x001D0001)
[........]
 
                Method (_DSM, 4, NotSerialized)
                ( 
                    Store (Package (0x02)
                        ( 
                            "Device-id",  
                            Buffer (0x04)
                            ( 
                                0x35, 0x3A, 0x00, 0x00
                            ) 
                        ) LOCAL0)
                    DTGP (arg0, Arg1, Arg2, Arg3, RefOf (LOCAL0))
                    Return (LOCAL0)
                ) 
            ) 
 
            Device (USB2)
[.............]
            (


That is to see if everything is operational and IORegistryExplorer after typing "USB" look into every USB (0,1,2, E. ..) AppleUSBEHCI property and there should be "Errata" value should not be 0x00 ( not recognized) but for me EUSB / USB: 0x4800 and USB12456: 0x20e800.



Edit: Stay preferably on SMBIOS macPro3, he would have a problem with MacPro4, 1 (well for me and some person on the net!

EDIT: For the restart with the option Chameleon RC5 RestartFix = Yes works

댓글 3개:

  1. I would like to exchange links with your site x86osx.textcube.com

    Is this possible?

    답글삭제
  2. @DmitriLis - 2010/08/05 09:36
    yup, welcome! except ad.

    답글삭제
  3. I am thrilled you took the time and said that post?!

    답글삭제