View Single Post
 
Old 09-18-2010, 06:36 AM
msinfo_us msinfo_us is offline
Puma
 
Join Date: Jul 2010
Posts: 21
Few more details and updates to Airwalk776 message above. You should find all files needed attached here for fresh install/update to make your system run with native power management, turbo, sound and such.

All credit goes to OS X community and many developers who found these fixes in a first place. I only tested, modified as needed and applied them to my system.

With this method you can use C2RC5 or C2RC4 by AsereBLN (both are attached here with RC4 part of Multibeast). Both of them will give you the same results with RC5 setting memory and such dynamically, RC5 can generate your CStaes table automatically and RC4 is easier at least for me to control manually. Choose any one you like.

Like Airwalk said already update your BIOS (load defaults before and after update than enter your settings manually). BIOS update iso image is attached as well.

Install C2.

There is a copy of my dsdt in aml and dsl format attached. SSDT - 2 tables you are going to need are included as well.

Or generate your own SSDT tables (strongly recommend) in Windows or Linux and convert them to aml files.

I like to use DSDTSE when working with aml/dsl files (attached)

I use IORegExplore to check status, look for data and etc. (attached)

PS I know it is being said many time but I am going to say it again. Depending on your HW this might or might not work for you. I advice to generate your own DSDT and SSDT files and use this guide to make changes. I did try to keep my DSDT and SSDT files as generic as possible so.

If you decide to use my files attached at the very list you WILL have to change EFI string for GTX 260 Video board I have in com.apple.boot.plist.

To generate your own DSDT start without DSDT.aml (you'll need NullCPUPower.kext in e/e) and generate your DSDT using DSDT GUI or DSDTSE.

You will need to make the following DSDT changes:

Add DTGP method

Method (DTGP, 5, NotSerialized)
{
If (LEqual (Arg0, Buffer (0x10)
{
/* 0000 */ 0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
/* 0008 */ 0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
}))
{
If (LEqual (Arg1, One))
{
If (LEqual (Arg2, Zero))
{
Store (Buffer (One)
{
0x03
}, Arg4)
Return (One)
}

If (LEqual (Arg2, One))
{
Return (One)
}
}
}

Store (Buffer (One)
{
0x00
}, Arg4)
Return (Zero)
}

PIC, TMR, RTC - remove IRQNoFlags section. PIC and TMR to fix Audio stuttering.

Device (TMR)
{
Name (_HID, EisaId ("PNP0100"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0040, // Range Minimum
0x0040, // Range Maximum
0x01, // Alignment
0x04, // Length
)
})
}

Device (RTC)
{
Name (_HID, EisaId ("PNP0B00"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x04, // Alignment
0x02, // Length
)
})
}

Device (PIC)
{
Name (_HID, EisaId ("PNP0000"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0020, // Range Minimum
0x0020, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x00A0, // Range Minimum
0x00A0, // Range Maximum
0x01, // Alignment
0x02, // Length
)
})
}

Audio 889 fix - rename AZAL to Device HDEF and c/p

Device (HDEF)
{
Name (_ADR, 0x001B0000)
Method (_PRW, 0, NotSerialized)
{
Return (Package (0x02)
{
0x0D,
0x05
})
}

Method (_DSM, 4, NotSerialized)
{
Store (Package (0x0A)
{
"built-in",
Buffer (One)
{
0x00
},

"codec-id",
Buffer (0x04)
{
0x89, 0x08, 0xEC, 0x10
},

"layout-id",
/**** Is ResourceTemplate, but EndTag not at buffer end ****/ Buffer (0x04)
{
0x79, 0x03, 0x00, 0x00
},

"device-type",
Buffer (0x0F)
{
"Realtek ALC889"
},

"PinConfigurations",
Buffer (Zero) {}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}

Fix AppleLPC (needed for Apple CPU Power)
Please NOTE: AppleLPC.kext will give you the 'Automatic restart after power failure' option in power savings. This option needs to be checked for sleep!

PS While sleep is fully working I advice to check your temps if you decide to use it. This has nothing to do with our MAC and everything to do with our EVGA MB. You can read all about it on EVGA forum.

Device (LPCB)
{
Name (_ADR, 0x001F0000)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x18, 0x3A, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}

Fix AppleHPET (needed for Apple CPU Power)

Device (HPET)
{
Name (_HID, EisaId ("PNP0103"))
Name (ATT3, ResourceTemplate ()
{
IRQNoFlags ()
{0}
IRQNoFlags ()
{8}
Memory32Fixed (ReadWrite,
0xFED00000, // Address Base
0x00000400, // Address Length
)
})
Name (ATT4, ResourceTemplate ()
{
})
Method (_STA, 0, NotSerialized)
{
Return (0x0F)
}

Method (_CRS, 0, NotSerialized)
{
Return (ATT3)
}
}

To allow Power button to put computer to sleep

Device (PWRB)
{
Name (_CID, EisaId ("PNP0C0C")) //Activate Power Button
Method (_STA, 0, NotSerialized)
{
Return (0x0B)
}
}

Compile your dsdt.aml. Remove NullCpuPower, disabler, VoodooPower or anything else power management related if you had it before or just copy e/e and s/l/e files from my package, fix permitions/mkext (you can use attached kextutility) and restart.

To confirm speedstep is working properly, use ioreg to look at IOService:/AppleACPIPlatformExpert/CPU0@0/AppleACPICPU/ACPI_SMC_PlatformPlugin. You will see CState's CSTinfo and PState's PerformanceStateArray 10 States (0-9 for i920 more for i9x0) PState Table. CPUPLmit 0x0 and CSTInfo 0x1240105.
About P-State table and SSDT files. You can change the multiplier, volts, frequency, conditions when to change from one state to another in SSDT to any way you want (Ex: aggressive on performance or power savings) but this is an entire separate subject to discuss.

Run benchmark and enjoy higher performance and lower temps.

I also like the fact that I should be upgrade worry free with these changes and have only few extra kexts in my setup, FakeSMC being the only one needed to boot - almost 100% vanila but there is still an opportunity for improvement .
GL.



http://rapidshare.com/files/41972447..._i920_SZ2Z.zip
MD5: D8B8F6902A6B2CBAB4D61A79DA382C7B
Reply With Quote