Jump to content

Asus P5E DSDT fixes


oldnapalm
 Share

300 posts in this topic

Recommended Posts

DSDT fixes for Asus P5E

 

New: DSDT Auto-Patcher ASUS P5E

 

 

Automated patches to be applied using this editor. This way you apply the patches in your original DSDT very easily, and avoid possible problems of using a pre-edited file.

 

ASUS_P5E_patches.zip

 

 

Audio: (needs AD1988bFix.kext)

 

Add device HDEF after USB6 under PCI0

            Device (HDEF)
           {
               Name (_ADR, 0x001B0000)
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x08)
                       {
                           "codec-id", 
                           Buffer (0x04)
                           {
                               0x9B, 0x82, 0x43, 0x10
                           }, 

                           "layout-id", 
                           Buffer (0x04)
                           {
                               0x0C, 0x00, 0x00, 0x00
                           }, 

                           "device-type", 
                           Buffer (0x17)
                           {
                               "Analog Devices AD1988B"
                           }, 

                           "PinConfigurations", 
                           Buffer (0x24)
                           {
                               /* 0000 */    0x30, 0x40, 0x21, 0x01, 0x10, 0x40, 0x11, 0x01, 
                               /* 0008 */    0x40, 0x90, 0xA1, 0x01, 0x50, 0x30, 0x81, 0x01, 
                               /* 0010 */    0x60, 0x10, 0x01, 0x01, 0x20, 0x90, 0xA0, 0x90, 
                               /* 0018 */    0x80, 0xF1, 0x45, 0x01, 0x90, 0xF1, 0xC5, 0x01, 
                               /* 0020 */    0x70, 0x60, 0x01, 0x01
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

and remove IRQs from devices PIC and TMR.

						 IRQNoFlags ()
						 {2}
					 IRQNoFlags ()
						 {0}

IRQ from device RTC0 should have been removed by DSDT_Patcher (by fassl) and added to device HPET ("-newHPET" option).

 

 

SpeedStep: (AppleIntelCPUPowerManagement.kext works, no need for NullCPUPowerManagement.kext)

 

Add C-states from MacPro3,1 and set SMproductname as MacPro3,1 in /Extra/smbios.plist.

    Scope (_PR)
   {
       Processor (CPU1, 0x01, 0x00000810, 0x06)
       {
           ...
           Method (_CST, 0, NotSerialized)
           {
               If (LAnd (And (CFGD, 0x01000000), LNot (And (TYPE, 0x10
                   ))))
               {
                   Return (Package (0x02)
                   {
                       One, 
                       Package (0x04)
                       {
                           ResourceTemplate ()
                           {
                               Register (FFixedHW, 
                                   0x00,               // Bit Width
                                   0x00,               // Bit Offset
                                   0x0000000000000000, // Address
                                   ,)
                           }, 

                           One, 
                           0x9D, 
                           0x03E8
                       }
                   })
               }

               If (And (TYPE, 0x0300))
               {
                   If (And (CFGD, 0x20))
                   {
                       Return (Package (0x03)
                       {
                           0x02, 
                           Package (0x04)
                           {
                               ResourceTemplate ()
                               {
                                   Register (FFixedHW, 
                                       0x01,               // Bit Width
                                       0x02,               // Bit Offset
                                       0x0000000000000000, // Address
                                       ,)
                               }, 

                               One, 
                               One, 
                               0x03E8
                           }, 

                           Package (0x04)
                           {
                               ResourceTemplate ()
                               {
                                   Register (FFixedHW, 
                                       0x01,               // Bit Width
                                       0x02,               // Bit Offset
                                       0x0000000000000010, // Address
                                       ,)
                               }, 

                               0x02, 
                               One, 
                               0x01F4
                           }
                       })
                   }
               }

               If (And (CFGD, 0x20))
               {
                   Return (Package (0x03)
                   {
                       0x02, 
                       Package (0x04)
                       {
                           ResourceTemplate ()
                           {
                               Register (FFixedHW, 
                                   0x01,               // Bit Width
                                   0x02,               // Bit Offset
                                   0x0000000000000000, // Address
                                   ,)
                           }, 

                           One, 
                           One, 
                           0x03E8
                       }, 

                       Package (0x04)
                       {
                           ResourceTemplate ()
                           {
                               Register (SystemIO, 
                                   0x08,               // Bit Width
                                   0x00,               // Bit Offset
                                   0x000000000000000C, // Address
                                   ,)
                           }, 

                           0x02, 
                           One, 
                           0x01F4
                       }
                   })
               }

               Return (Package (0x02)
               {
                   One, 
                   Package (0x04)
                   {
                       ResourceTemplate ()
                       {
                           Register (FFixedHW, 
                               0x01,               // Bit Width
                               0x02,               // Bit Offset
                               0x0000000000000000, // Address
                               ,)
                       }, 

                       One, 
                       One, 
                       0x03E8
                   }
               })
           }
       }
   }

   Scope (_PR)
   {
       Processor (CPU2, 0x02, 0x00000810, 0x06)
       {
           ...
           Method (_CST, 0, NotSerialized)
           {
               Return (^^CPU1._CST ())
           }
       }
   }

   Scope (_PR)
   {
       Processor (CPU3, 0x03, 0x00000810, 0x06)
       {
           ...
           Method (_CST, 0, NotSerialized)
           {
               Return (^^CPU1._CST ())
           }
       }
   }

   Scope (_PR)
   {
       Processor (CPU4, 0x04, 0x00000810, 0x06)
       {
           ...
           Method (_CST, 0, NotSerialized)
           {
               Return (^^CPU1._CST ())
           }
       }
   }

 

Sleep:

 

Change ID of USB devices to fake ICH10-R.

            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)
           {
               Name (_ADR, 0x001D0002)
               ...
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x36, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

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

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

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

 

AHCI SATA: (silver icons for internal HDs instead of orange ones)

 

Change ID of SATA device to fake ESB2 AHCI.

            Device (SATA)
           {
               Name (_ADR, 0x001F0002)
               ...
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x81, 0x26, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

 

Some fixes use method DTGP, add it to the main block, can be just after the first "{" or just before the last "}".

    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)
               }
           }
       }

 

Patched dsdt.aml with all fixes (BIOS 1201):

 

2 GB RAM dsdt.aml.zip

4 GB RAM dsdt.aml.zip

If you have different RAM size you may have to edit OperationRegion values for RAMW, BIOS and STBL, check your original DSDT. Thanks to Stuntman for the info.

 

 

Diff from file patched by DSDT_Patcher:

 

dsdt.diff.zip

 

Needed kexts:

 

AD1988bFix.kext by XyZ - AD1988bFix.kext.zip

For 10.6.8 - need edited AppleHDA

 

fakesmc.kext by Netkas - http://netkas.org/?cat=15

 

LegacyAppleYukon2.kext by cVaD - LegacyAppleYukon2.kext.zip

OpenHaltRestart.kext** by Psystar - OpenHaltRestart.kext.zip

OSXRestart.kext*** by Master Chief - http://www.insanelymac.com/forum/index.php?showtopic=199048

 

PlatformUUID.kext* by Superhai - PlatformUUID.kext.zip

* not needed if using Chameleon 2.0 RC4 or later.

** not needed if using this fix.

*** not needed if using Chameleon 2.0 RC5 or later.

 

 

Untested kexts:

 

JMicronATA.kext - JMicronATA.kext.zip

 

Settings to check in BIOS setup:

 

Main - SATA Configuration - Configure SATA as - AHCI

Advanced - CPU Configuration - C1E Support - Enabled

Advanced - CPU Configuration - Execute Disable Bit - Enabled

Advanced - CPU Configuration - Intel® SpeedStep™ Tech. - Enabled

Power - ACPI 2.0 Support - Enabled

Power - ACPI APIC Support - Enabled

Power - APM Configuration - ACPI Wake From USB Device - Enabled

 

 

References:

 

Audio - http://www.infinitemac.com/f57/how-to-snow.../post30994.html

SpeedStep - http://www.insanelymac.com/forum/index.php?showtopic=181631

Sleep and SATA - http://www.insanelymac.com/forum/index.php?showtopic=168014

  • Like 1
Link to comment
Share on other sites

but would you be able to give a step by step guide? I am kind of new of this hackintosh world...

You mean step by step guide to install SL, or to apply the DSDT fixes? For SL installation there are many guides, it's a generic procedure. If you talk about the DSDT patches, I will make a diff from the file created by DSDT_Patcher, so it will be easier to visualize where things were added, but if you have the same mobo you can use my file.

 

Wow! Thank you! Do you know how to implement my Nvidia 8800GTS 512 Mb to dsdt.aml?

You are welcome. I don't use DSDT to enable nVidia drivers, just to fix issues related to the mobo. For nVidia I use Chameleon's GraphicsEnabler option, it works pretty well.

Link to comment
Share on other sites

Which BIOS version are you using?

 

I updated my BIOS to version 1201 and patched DSDT again, if you use the latest BIOS my file should work for you now (attached to the first post).

 

I am using 1201 but even the new one just causes the system to hang on the Apple Splash Logo

Link to comment
Share on other sites

Did you set SATA as AHCI in BIOS setup?

 

Boot in verbose mode (-v) to see where it hangs.

 

 

Yes it is set to AHCI, and all the HFS+ Kexts etc load

 

Can you please give me a detailed description of what you did?

 

I have now got Snow Leopard installed on my drive with no Loaders or anything, it is a totally clean install of Leopard only.

 

I will do exactly what you say and it should work

 

Thanks

Link to comment
Share on other sites

Yes it is set to AHCI, and all the HFS+ Kexts etc load

 

Can you please give me a detailed description of what you did?

 

I have now got Snow Leopard installed on my drive with no Loaders or anything, it is a totally clean install of Leopard only.

 

I will do exactly what you say and it should work

 

Thanks

 

You just need to install the boot loader (Chameleon or PC_EFI) and FakeSMC

http://www.insanelymac.com/forum/index.php?showtopic=164809

 

(and legacy kexts for audio and LAN of course)

 

If you did that and it doesn't work, boot in verbose mode (-v) and check where it hangs.

Link to comment
Share on other sites

Yes, I think you can use the installer.

 

Kexts I use:

AD1988bFix.kext

fakesmc.kext

OSXRestart.kext

OpenHaltRestart.kext

PlatformUUID.kext

 

 

How about the AppleYukon2Injector?

 

Did you delete any KEXTs?

 

Did you just drag and drop the DSDT.aml to Root?

Link to comment
Share on other sites

About Yukon, I edited the Info.plist in the original kext (see references), but you can use the injector too.

 

Our mobo can run SL without any patches to DSDT, just some things don't work (fixes in this topic).

 

Check if ACPI 2.0 and APIC are enabled in BIOS setup.

 

Other option that should be enabled is C1E.

Link to comment
Share on other sites

About Yukon, I edited the Info.plist in the original kext (see references), but you can use the injector too.

 

Our mobo can run SL without any patches to DSDT, just some things don't work (fixes in this topic).

 

Check if ACPI 2.0 and APIC are enabled in BIOS setup.

 

Other option that should be enabled is C1E.

 

Everything works but no LAN, Lan is connected when given manual settings but no internet

Link to comment
Share on other sites

Everything works but no LAN, Lan is connected when given manual settings but no internet

 

I'm using an edited kext, as explained in references link, it works fine.

 

If you are using the injector, be sure to put it in /Extra/Extensions and include it in /Extra/Extensions.mkext

 

If it doesn't work, try to edit the Info.plist in the original kext, it's a 3 bytes change. Then touch the extensions folder so the cache is rebuilt (and remove the injector).

 

sudo touch /System/Library/Extensions

Link to comment
Share on other sites

I'm using an edited kext, as explained in references link, it works fine.

 

If you are using the injector, be sure to put it in /Extra/Extensions and include it in /Extra/Extensions.mkext

 

If it doesn't work, try to edit the Info.plist in the original kext, it's a 3 bytes change. Then touch the extensions folder so the cache is rebuilt (and remove the injector).

 

sudo touch /System/Library/Extensions

 

I am going to start again

 

I don't understand because I don't know why some Kexts go in extra and some don't

Link to comment
Share on other sites

I am going to start again

 

I don't understand because I don't know why some Kexts go in extra and some don't

 

Most legacy kexts work in /E/E.

Kexts with dependencies can also work in /E/E if you copy its dependencies to the same folder.

Some need mkext in /Extra to work.

 

I have all "extra" kexts in /E/E

AD1988bFix.kext

fakesmc.kext

JMicronATA.kext

OpenHaltRestart.kext

OSXRestart.kext

PlatformUUID.kext

VoodooMonitor.kext

 

The only changes in /S/L/E are edit in Yukon kext and remove AppleUpstreamUserClient.kext to avoid mouse lag using iTunes.

Link to comment
Share on other sites

Most legacy kexts work in /E/E.

Kexts with dependencies can also work in /E/E if you copy its dependencies to the same folder.

Some need mkext in /Extra to work.

 

I have all "extra" kexts in /E/E

AD1988bFix.kext

fakesmc.kext

JMicronATA.kext

OpenHaltRestart.kext

OSXRestart.kext

PlatformUUID.kext

VoodooMonitor.kext

 

The only changes in /S/L/E are edit in Yukon kext and remove AppleUpstreamUserClient.kext to avoid mouse lag using iTunes.

 

So after installation of Snow Leopard, I will use my SnowInstaller to boot into the HD

 

Then install the Chameleon installer to the HD

 

Drag and drop the above KEXTs to the E/E folder

 

Run KEXT utility to repair

 

How about the DSDT??

Link to comment
Share on other sites

And is everything else OK that I said?

 

I guess so. Can't be sure because you didn't answer if you are using MBR or GUID partition scheme.

I use MBR, put kexts in /Extra/Extensions and dsdt.aml in /Extra

I read that using GUID you have to install Chameleon, kexts and DSDT in the EFI partition (but I never installed this way).

Link to comment
Share on other sites

 Share

×
×
  • Create New...