Jump to content

{guide}DSDT mods/hacks


sirbow2
 Share

1 post in this topic

Recommended Posts

i was thinking of making a topic of just pure DSDT mods/ hacks. most DSDT topis are full of questions by of how do i fix these errors or something, not actual how to mod a DSDT ;) . it would be helpful because in my experience DSDT mods/help i buried in hundreds of post in multiple topics. if everyone could post some use full dsdt modding info here such as how to add native ethernet support or add pin configs, it would make modding a DSDT much easier for every user of this fourm. all the info for modding a DSDT would be in one place. i hope you see why i created this post.

 

i am not complaining or what some people would call flaming or whatever.

 

Orange HD fix:

 

Add these line to your sata device:

Method (_DSM, 4, NotSerialized)
{
Return (MCID (Arg2, 0x26818086))
}

 

So it looks like this

Device (SATA)
		{
			Name (_ADR, 0x001F0002)
			Method (_DSM, 4, NotSerialized)
			{
				Return (MCID (Arg2, 0x26818086))
			}

			Device (PRT0)
			{

 

 

HPET Fix:

HPET fix allows you to use native apple cpu management

Add this to your HPETY device in your DSDT:

   IRQNoFlags ()
   {0}
  IRQNoFlags ()
   {8}

It would look like this:

Device (HPET)
{
Name (_HID, EisaId ("PNP0103"))
Name (_CID, EisaId ("PNP0C01"))
Name (BUF0, ResourceTemplate ()
{
   IRQNoFlags ()
	  {0}
   IRQNoFlags ()
	  {8}
	Memory32Fixed (ReadOnly,
		0xFED00000,		 // Address Base
		0x00000400,		 // Address Length
		_Y0F)
})

 

Method DTGP:

method DTGP is required by some DSDT hacks, it is best to place it at the beginning of the DSDT

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

 

Error fixing:

 

If you get this error:

./dsdt_fixed.txt   222:	 Method (_WAK, 1, NotSerialized)
Warning  1080 -						^ Reserved method must return a value (_WAK)

add this, to the end of your _WAK method in your DSDT:

Return(Package(0x02){0x00, 0x00})

so it looks like this:

Method (_WAK, 1, NotSerialized)
{

	Notify (\_SB.PCI0.USB0, Zero)
	Notify (\_SB.PCI0.USB1, Zero)
	Notify (\_SB.PCI0.USB2, Zero)
	Notify (\_SB.PCI0.USB3, Zero)
	Notify (\_SB.PCI0.USB4, Zero)
	Notify (\_SB.PCI0.USB5, Zero)
	Return(Package(0x02){0x00, 0x00})  <------ Add here
}

 

 

Also here are two DSDT's that have been edited and slimmed to deliver the best performance for a "hack", they also contain annotations for the edits in the DSDT, the ep45 has the most annotations. the ep45 was mostly edited by MasterChief

 

feel free to post your own DSDT mods/hacks in a comment

Aargh_v4.0_dsdt.dsl.zip

dsdt_EP45_UD3P_Q6600.dsl.zip

  • Like 1
Link to comment
Share on other sites

 Share

×
×
  • Create New...