Jump to content

DSDT Patcher


fassl
 Share

752 posts in this topic

Recommended Posts

I just got my power button to show logout box when pressed:

        Device (PWRB)
       {
           Name (_HID, EisaId ("PNP0C0C"))
       }

I just changed _HID to _CID. ;)

 

i don't have the same result, now when i press the power button, the system go to sleep :D

Link to comment
Share on other sites

But where are the changes, on the AppleHDA kext or in the dsdt.aml file?

 

Sorry I dont get it :D

 

you have to replace all AZAL entries by HDEF,

 

add

DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))

 

at the end of the fonction Device (HDEF) , between

 

.....Local0)

 

and

 

Return (Local0)

}

 

}

 

and add :

 

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

 

right after Method (_WAK, 1, Serialized)

 

see the good [how to] from BuildSmart :)

Link to comment
Share on other sites

But where are the changes, on the AppleHDA kext or in the dsdt.aml file?

 

Sorry I dont get it ;)

Changes are in DSDT.aml and in Kexts.

1. Run DSDT Patcher, this will generate a Debug folder with dsdt_fixed.txt file and dsdt.aml

2. Delete the dsdt,aml file, and apply changes to dsdt_fixed.txt, and recompilie with iasl.

CHANGES TO DO IN dsdt_fixed.txt:

a. AZAL for HDEF

b. HDEF Device CODE with PinConfigurations (Roisoft code in my case)

 

3.Modify plist of HDAcontroller.kext and HDAPlatformDriver in sock AppleHDAudio.kext plugins.

 

Thats all.

 

In my case, I'm using Chameleon for HD with PCIEFIv9 boot, so the plist modifications i did it in only plist LegacyHDAController.kext and LegacyHDAPlatformDriver.kext (http://forum.insanelymac.com/index.php?showtopic=129058) in my Extra/Extensions folder.

I'm using the Original Vanilla AppleHDA.kext without any modification, and NO HDAenabler, NO ALCinject, NO modified AppleHDA and No EFI strings.

Espero te sirva.

Link to comment
Share on other sites

IMO you all are wrong!, including BuildSmart

You cant get the right/correct verb/pin configuration w/o hdaenabler! Linux dumps and/or Vista regs are diff then what Apple use.

Once you finish and you have a working kext and correct pinconfig in ioreg u can ditch hdaenabler, and add that data in DSDT. but this is just for hdaenabler!

You still need to use a hacked kext or plist only one or an injector to overwrite default data in hdacontroller and hdaplatformdriver plists for your codec.

I explained very clear in my guide: http://forum.insanelymac.com/index.php?sho...127819&st=0

Link to comment
Share on other sites

THe King,

 

Thanks. I'll go back and look at your guide. I see where if I mod HDAPlatformDriver in AppleHDA.kext I see the results in System Preferences. I also see that there is some interplay between HDAController and the DSDT in how things show up in System Profiler. For example if I uncheck the PreservePinConfigurations the I can cause some changes in System Profiler - but with or without it checked System Profiler is not perfectly accurate and does not exactly match System Preferences. In all cases I get errors at startup that I detailed earlier.

 

Thanks,

SMF

Link to comment
Share on other sites

I was wondering, when 10.5.6 update will be out, we will definitely need to have DSDT.aml in the root to boot-up the system?

Is there a DSDT patcher that will automate this task in order to use it on OSx86 DVDs as part of the installation process?

Link to comment
Share on other sites

Serious issue for me.

After following an advice to choose option 1 xp when patching dsdt.

 

My CMOS got messed up, and after reseting everything in BIOS I still get the message:

 

Diskette Drive 1 seek failure. which is a sata drive, after that it says drive not available,

and press F1 to continue, and i can load OSX but it is very slow.

 

I re-run the patcher, and chose option 0 Darwin, but problem persists.

Access to my other OSes has also been affected (very slow too)

 

By the way, initially when I patched for the first time with Darwin option, it worked like a charm, just that usb kb/mouse not working when resumed from sleep, so choosing xp opinon was to see if it will fix it, but it messed up seek access to drives instead.

I use a Pentium 4 Prescott with HTT, SSE3 and HPET... (Dell 8300) and a combo Chameleon 1.0.12 (from Aitkos) + Netkas pc_efi v9

 

Any help appreciated...

Link to comment
Share on other sites

Update:

 

Version 1.0.1e

-added OSI emulation by mackerintel

-added Mute fix by mackerintel

thx for this :jester:

 

 

fassl,

 

Thanks for the patcher and the source code. I tried using 1.0.1e on my extracted DSDT module, and I found that it produced some errors. I have an Asus P5Q3 motherboard and the current 0502 bios. The errors included:

 

1. When patching the RTC section, a right-parenthesis was removed from the code, after the closing brace, after removing the line: IRQNoFlags () {8}

 

2. Only 2 of the 4 "ALIAS " statements were removed. Numbers 1 and 3 were skipped.

 

3. There were many formatting characters embedded in the text for the HPET section which were misinterpreted by the text editor that I used to view the file. This might be an artifact of the transfer from Apple to Windows.

 

I used your source and the debug files to puzzle out what I thought you intended. I have attached those files for your amusement.

 

Cheers, Cap

0502asus_debug_files.zip

Link to comment
Share on other sites

Hi!

 

I test latest DSDT Patcher and get this:

 

..............
Supports ACPI Specification Revision 3.0a

./dsdt_fixed.txt  2862:						 Method (_BCQ, 0, Serialized)
Warning  1098 -					  Unknown reserved name ^  (_BCQ)

./dsdt_fixed.txt 10089:						 If (LEqual (C2C7 (0x00), 0x01))
Warning  1092 -	Called method may not always return a value ^ 

./dsdt_fixed.txt 10113:						 If (LEqual (C2C7 (0x01), 0x01))
Warning  1092 -	Called method may not always return a value ^ 

./dsdt_fixed.txt 10997:			 Method (C2C7, 1, NotSerialized)
Warning  1087 -								^ Not all control paths return a value (C2C7)

ASL Input:  ./dsdt_fixed.txt - 14157 lines, 517378 bytes, 6617 keywords
AML Output: ././dsdt.aml - 63063 bytes, 1125 named objects, 5492 executable opcodes

Compilation complete. 0 Errors, 4 Warnings, 0 Remarks, 2246 Optimizations

..............

Compiled but i put the root /DSDT.aml nothing changed. My Intel CoreDuo T2600 work only cpus=1 kernel parameter :(

Please anyone help me to fix these warnings???

Thank You!

My Debug folder in DSDT Patcher: [attachment=39035:Debug.zip]

Debug.zip

Link to comment
Share on other sites

Also look up this thread: Chameleon with DSDT override function

 

@All complaining about hotter CPU's with AppleIntelCPUPowerManagement: Guys there is no need to have this kext loaded all the time, if you get hotter CPU, just remove that kext and everything is ok. Why I added this to patcher is just for security reasons on update, since i still see many people without an Disabler.kext and they just blindly update and then complain about a kernel panic during the update process. So this is just to be more secure on updating.

 

Update:

 

Version 1.0.1e

-added OSI emulation by mackerintel

-added Mute fix by mackerintel

thx for this ;)

DSDT_Patcher1.0.1e.zip

 

Most things needed to be fixed for Darwin the patcher fixes now. There may be still issues in your DSDT but since one DSDT looks very different than another this is needed to be done manually. So i think its time to release the source (yeah i know the code looks ugly but it does its job)

DSDT_Patcher_Source.zip

 

---------------

VAIO Users: pls try this patcher, i saw some Variable issues in LCD Device of VAIO DSDT, the patcher fixes this issues, maybe that will solve Internal LCD Diplay issue with QE/CI enabled. Maybe also more work is needed but actually i think we can solve your Problems in DSDT. Somebody correct me if i'm wrong. So please come here and test, thank you. I also invite more people to mess around with DSDT and come here with their findings :)

 

Update: I made some different DSDT's but haven't yet found how to get QE/CI working on the internal display, seems more things needs to be done... Look up this thread by vaag, he got it working on his DELL, maybe you can find solution. http://forum.insanelymac.com/index.php?sho...=135184&hl=

---------------

Also, if the compiling goes wrong, it doesnt always mean the patching went wrong, some manufactorers just ship crappy DSDT's in the BIOS. You can force to compile it even if there are errors: /PATH/TO/DSDT\ Pachter -f

 

-------Original Post-----------

 

Hey there, i thought it might be better to start a new Thread for this. As you may already heard you will have Problems with the upcoming (10.5.6) Apple Update if your DSDT is messed up, and it is for sure :P.

 

Good thing is, mackerintel added DSDT override function to Chameleon: http://forum.insanelymac.com/index.php?showtopic=132757

 

What does that mean? Well you can put a modified compiled DSDT in the Root of your Booting partition, and it will try to attach this, very good for people who are afraid of flashing their BIOS. :)

 

I made a little Tool that will patch your DSDT and will (well should) let you allow to use the upcoming (10.5.6) AppleRTC.kext and AppleIntelCPUPowerManagement.kext (no disabler needed anymore) which will otherwise panic.

Pls report back if it works or not, and what is working and what not, so this tool can grow.

Readme is included in the Zip file.

 

greetz

 

P.S. I will release the source when its done

And i like to thank all Chameleon/OSX Developers, especially zef, kabyl, modbin for helping all the time, keep up the good work!

---------Old Versions-----------

Version 1.0.1d

-fixed another search Routine issue

-added -newHPET arg, for people still suffering "Package 0 didn't get a HPET" after patching. so you guys drag the Patcher in the Terminal and write -newHPET

-Patcher uses now a bash script for obtaining the DSDT since GetDSDT didn't worked for some people.

-contains _T_ Variable issues fix which caused non-compiling by mackerintel

-contains "Method local variable is not initialized (Local0)" fix

-contains CPU Aliases fix

-contains RTC fix for upcoming AppleRTC.kext

-contains HPET fix for AppleIntelCPUPowerManagement.kext

DSDT_Patcher1.0.1d.zip

 

Version 1.0.1c2

-Patcher uses now a bash script for obtaining the DSDT since GetDSDT didn't worked for some people.

-fixed CPU Aliases patching (all what pointed to the removed Alias has to be patched as well)

-added _T_ Variable issues fix which caused non-compiling by mackerintel

-contains "Method local variable is not initialized (Local0)" fix

-contains CPU Aliases fix

-contains RTC fix for upcoming AppleRTC.kext

-contains HPET fix for AppleIntelCPUPowerManagement.kext

DSDT_Patcher1.0.1c2.zip Fixed DSDT.X issue

DSDT_Patcher1.0.1c.zip

 

Version 1.0.1b

-fixed a patching routine issue which caused non-compiling dsdt

-added "Method local variable is not initialized (Local0)" fix

-contains CPU Aliases fix

-contains RTC fix for upcoming AppleRTC.kext

-contains HPET fix for AppleIntelCPUPowerManagement.kext

DSDT_Patcher1.0.1b.zip

 

Version 1.0.1a

-fixed CPU Aliases fix

-contains RTC fix for upcoming AppleRTC.kext

-contains HPET fix for AppleIntelCPUPowerManagement.kext

DSDT_Patcher1.0.1a.zip

 

Version 1.0.1

-added CPU Aliases fix

-added some device name fix

-contains RTC fix for upcoming AppleRTC.kext

-conatins HPET fix for AppleIntelCPUPowerManagement.kext

DSDT_Patcher1.0.1.zip

 

 

hello i m vaio user and interrested by your work so i highlight this post to you about the

vaio problem if you can do or solve something

 

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

Link to comment
Share on other sites

Hy! I have a problem i have used the dsdt patcher to get the dsdt.aml file i put the the file into root folder.

The good think is i can use 2 cores of my cpu :) but the bad thing i can.t use all my 4 cores because when i try to boot with cpus=4 the computer reboots. ;)

Please help me!

 

I have asrock 4core1600twins motherboard and intel q9300 cpu.

Link to comment
Share on other sites

Hi!

 

I test latest DSDT Patcher and get this:

 

..............<BR>Supports ACPI Specification Revision 3.0a<BR><BR>./dsdt_fixed.txt  2862:						 Method (_BCQ, 0, Serialized)<BR>Warning  1098 -					  Unknown reserved name ^  (_BCQ)<BR><BR>./dsdt_fixed.txt 10089:						 If (LEqual (C2C7 (0x00), 0x01))<BR>Warning  1092 -	Called method may not always return a value ^ <BR><BR>./dsdt_fixed.txt 10113:						 If (LEqual (C2C7 (0x01), 0x01))<BR>Warning  1092 -	Called method may not always return a value ^ <BR><BR>./dsdt_fixed.txt 10997:			 Method (C2C7, 1, NotSerialized)<BR>Warning  1087 -								^ Not all control paths return a value (C2C7)<BR><BR>ASL Input:  ./dsdt_fixed.txt - 14157 lines, 517378 bytes, 6617 keywords<BR>AML Output: ././dsdt.aml - 63063 bytes, 1125 named objects, 5492 executable opcodes<BR><BR>Compilation complete. 0 Errors, 4 Warnings, 0 Remarks, 2246 Optimizations<BR><BR>..............<BR><BR>Compiled but i put the root /DSDT.aml nothing changed. My Intel CoreDuo T2600 work only cpus=1 kernel parameter :(<BR><BR>Please anyone help me to fix these warnings???<BR><BR>Thank You!<BR><BR>My Debug folder in DSDT Patcher: [attachment=39035:Debug.zip]

 

RobertoStudios,

 

Ignore these warnings.

Although not perfect, your dsdt will compile and when applied, it will fix the Power Management kext panic.

 

To get 2 cores working with this HP computer requires rewriting the DSDT to switch off the P-States SW_ANY and SW_ALL to HW_ALL or other.

 

Refer to the following link and download the iso to debug DSDT problems:

 

http://linuxfirmwarekit.org/index.php

 

I'm currently looking at this, but i need an example of a DSDT from an Intel Based HP Laptop with both cores working, so that I can compare and rewrite us a DSDT to fix this issue.

 

I have a HP530 with a T2400 Dual Core Processor, It randomly crashes at boot time when using dual cores.

 

 

Can anyone post their DSDT file from an intel based HP laptop with both cores working??

 

Cheers,

 

AB

Link to comment
Share on other sites

Hi Everybody, here is the code for DSDT to correct showns HDA In/Out for ALC889a on GA-EP35-DS3P, in System Profiler.

 

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

		    Method (_DSM, 4, NotSerialized)	
			  {				
				Store (Package (0x08)
					{
						"codec-id",
						Buffer (0x04)
						{
							0x85, 0x08, 0xec, 0x10
						},

						"layout-id",
						Buffer (0x04)
						{

							0x0C, 0x00, 0x00, 0x00
						},

						"device-type",
						Buffer (0x011)
						{
							"ALC885"
						},

						"PinConfigurations",
						Buffer (0x28)
						{
							 /* 0000 */   0x10, 0x40, 0x01, 0x01, 0x64, 0x10, 0x01, 0x01, 
							 /* 0008 */   0x71, 0x60, 0x01, 0x01, 0x82, 0x20, 0x01, 0x01,
							 /* 0010 */   0x30, 0x90, 0xA1, 0x01, 0x20, 0x90, 0xA1, 0x02,
							 /* 0018 */   0x40, 0x30, 0x81, 0x01, 0x50, 0x40, 0x21, 0x02,
							 /* 0020 */   0xF0, 0x71, 0x44, 0x01, 0x90, 0x71, 0x45, 0x11
						}

					}, Local0)
				DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))	
				Return (Local0)		
			}	

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

 

That´s not mean everytihing is working.

Headphones OUT and Line Out Rear Stereo(Green) are working, I can not get working the other 3 Analog lines Out Central/Lfe, Surround and Sides.

Line In and Mics Not tested yet.

 

This is the Codec Verb for HDAController

<21471c10 21471d40 21471e01 21471f01 21571c64 21571d10 21571e01 21571f01 21671c71 21671d60 21671e01 21671f01 
21771c82 21771d20 21771e01 21771f01 21871c30 21871d90 21871da1 21871f01 21971c20 21971d90 21971ea1 21971f02 
21a71c40 21a71d30 21a71e81 21a71f01 21b71c50 21b71d40 21b71e21 21b71f02 21e71cf0 21e71d71 21e71e44 21e71f01 
21171c90 21171d71 21171e45 21171f11>

 

I Began working with Linux Dump Codec(Mandriva 2009 Live CD), then I correct with information from Reltek ALC889a Technical Datasheet and then i've updated with the results for DSDT PinConfigurations.

Add Text file with Codecs Verbs Evolution for ALC889A - GA EP35-dS3P

CODEC_Verbs_ALC889A.rtf

post-260583-1227653417_thumb.png

post-260583-1227653426_thumb.png

post-260583-1227653439_thumb.png

Link to comment
Share on other sites

 Share

×
×
  • Create New...