Jump to content

DSDT editor and patcher


oldnapalm
 Share

999 posts in this topic

Recommended Posts

Can you upload the DSDT fix for these:

 

- Sleep / Shutdown Fix.

- Native PowerManagement correctly loaded

- (this manual - Splash Screen)

- USB/EHCI Speed Fixes.

- USB 1.1 and 2.0 seen as internal with sleep capability

- CMOS reset fix.

- HDEF Audio

- Renamed devices to mac specific ones

- Native SMBus loading

- Full AHCI hotplug capability

Most patches are hardware specific. For now we have tested in some ASUS and Gigabyte motherboards.

 

Some are included with the editor and posted in this topic, others are available in the forum, but not in the automated format. If you can test and provide the original and modified DSDTs, we can help making the automated patches.

Link to comment
Share on other sites

Apply these fix to ecs_g41t-m_v2:

 

AHCI_SATA_orange_icon

AZAL to HDEF

DTGP

HDEF

HPET

IRQs

LPC

RTC

Shutdown

 

then run the AML -> Compile

17-Errors, 7-Warnings, 70-Optimizations

step1.jpg

 

line 4644 to 4984, change BUFFER to Package

 

then run the AML -> Compile

3-Errors, 7-Warnings, 238-Optimizations

step2.jpg

 

How do i fix the rest?

post-293560-1279314012_thumb.jpg

post-293560-1279314022_thumb.jpg

Link to comment
Share on other sites

I'm able to fix your DSDT...
Thank you for your help and explanation, mate! ;)

DSDT patching seems promising great opportunities, I wish I was more skilled at this. I'm going to develop in XCode for some time, and therefore to use Mac OS a lot, so probably it's a good chance for me to extend my knowledge :D

have a great weekend!

Link to comment
Share on other sites

Apply these fix to ecs_g41t-m_v2:

 

AHCI_SATA_orange_icon

AZAL to HDEF

DTGP

HDEF

HPET_IRQs

IRQs

LPC

RTC

Shutdown

14_states__P001_4

 

then run the AML -> Compile

2-Errors, 0-Warnings, 239-Optimizations

step3.jpg

post-293560-1279330789_thumb.jpg

test5.zip

Link to comment
Share on other sites

I think it's an issue with the Windows iASL, under Mac OS it compiles fine

ASL Input:  test5.dsl - 6729 lines, 235406 bytes, 2957 keywords
AML Output: dsdt.aml - 25307 bytes, 852 named objects, 2105 executable opcodes

Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 239 Optimizations

Link to comment
Share on other sites

Windows 7 ULTIMATE x64

 

 

Intel ACPI Component Architecture

ASL Optimizing Compiler version 20100528 [May 28 2010]

Copyright © 2000 - 2010 Intel Corporation

Supports ACPI Specification Revision 4.0a

 

Usage: iasl [Options] [Files]

Link to comment
Share on other sites

then run the AML -> Compile

2-Errors, 0-Warnings, 239-Optimizations

step3.jpg

This is easy to fix. Correct the "Length" value with this formula using calculator set to programming mode (HEX):-

Length = Range Maximum - Range Minimum + 1

Newer IASL (ver 4.0a) detect this error.

Link to comment
Share on other sites

Can any one create a general patch file for:

 

1. Renaming the pc devices to the one mac uses?

 

in doing so, we can have one fix for all motherboards!

the fix will be beast off the devices

 

all we have to do is write a fix for each motherboard to have the same devices name, the use the general fixes.

 

so all-in-all we will have:

a) a patch for each motherboard (that rename the devices to mac devices)

:) a patch for each cpu

c) general patch

Link to comment
Share on other sites

I posted a link in your topic

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

 

It would be like the "AZAL to HDEF" patch

into device label PIC set_label begin IPIC end

or

into device name_adr 0x001D0000 set_label begin UHC1 end

for some you will also have to replace references to the renamed device

into_all all code_regex \.USB0 replaceall_matched begin .UHC1 end

Link to comment
Share on other sites

Hi,

 

Great program. I decided to try it and just go for a straight decompile/recompile to see if there are any errors in the origional DSDT file and there is. Can someone have a look at my dsdt and let me know how to fix it. I don't need any mods done to it just want it so I can start to learn how to edit it.

 

Many thanks, MadMungo.

 

dsdt.zip

Link to comment
Share on other sites

Gentlemen,

 

I need some help from your expertise, i try to patch my ALC883 on borad audio with the provide insert text file, but i get a couple errors, please see the attach screen shot plus my dsdt which was extracted from my system. Thank you in advance.

dsdt.zip

post-402809-1279490565_thumb.png

Link to comment
Share on other sites

@MadMungo: can you extract and save using the editor, please? There are lots of "," missing and misplaced, I don't understand why.

 

@mohamed_kairy2002: looks like the problem is the "If" inside a device (2711 and 5189), remove it and the file compiles with no errors. I really don't know why, maybe someone more experient with iASL can help us.

 

@macusers: apply the DTGP patch, and in lines 248 and 252, you can remove the line, or replace

Store (Local0, Local0)

by

Store ("Local0", Local0)

Link to comment
Share on other sites

@mohamed_kairy2002: looks like the problem is the "If" inside a device (2711 and 5189), remove it and the file compiles with no errors. I really don't know why, maybe someone more experient with iASL can help us.

http://www.mediafire.com/?54dia6qd1ft79zy

itried to do it again i have the orginal one dsdt.aml get it from ubuntu 10.04 and decompiled it to dsdt.dsl

i removed (if)

in lines 2711 and 5189

but the same problem

Link to comment
Share on other sites

Thanks, I will give that a try.

You might want to try change this:-

Store (Local0, Local0)

to

Store (Local0, Local0, Local0)

This form will store result of operator back to Local0, probable intention of the statement.

Link to comment
Share on other sites

@MadMungo: can you extract and save using the editor, please? There are lots of "," missing and misplaced, I don't understand why.

 

Ok here is the dsdt for my board, ASUS Croshair 4 Formula AM3, extracted using the editor. Still looks like it is not right for some reason.

 

dsdt.zip

 

Any other sugestions on how else to grab the dsdt file apart from under windows? as the dsdt file generated using the latest iasl.exe (20100706) is the same.

 

dsdt_Win7.zip

Link to comment
Share on other sites

Guys, oldnapalm, please let us know when and if you update the DSDT editor in the first page so we can also try it out. If you enhance the fixes in some package, please also make that announcement, too. Cheers!

Link to comment
Share on other sites

@MadMungo: your problem looks the same as mohamed_kairy2002

dsdt.dsl.zip

 

@kizwan: do you know about the "syntax error, unexpected PARSEOP_IF" when there's an "if" inside a device? Thanks for your help.

 

@MacKonsti: the editor wasn't updated yet, but I added a link to some patches Maldon tested on some Gigabyte boards.

Link to comment
Share on other sites

@kizwan: do you know about the "syntax error, unexpected PARSEOP_IF" when there's an "if" inside a device? Thanks for your help.

Not much I'm afraid. It looks correct but IASL doesn't agree. If I'm not mistaken, this is the exact error message produced by IASL v4.0. While IASL v4.0a will produced "parse error" error message. What I know is IF statement should only exist in control method function like this:-

		Device (PCI0)
	 {
		 Name (_HID, EisaId ("PNP0A08"))
		 Name (_CID, EisaId ("PNP0A03"))
		 Name (_ADR, Zero)
		 Method (^BN00, 0, NotSerialized)
		 {
			 Return (Zero)
		 }
		 Method (_BBN, 0, NotSerialized)
		 {
			 Return (BN00 ())
		 }
		 Name (_UID, Zero)
		 Method (_PRT, 0, NotSerialized)
		 {
			 If (PICM)
			 {
				 Return (AR00)
			 }
			 Return (PR00)
		 }

If it is not inside any control method function, it will failed to compiled with "syntax error, unexpected PARSEOP_IF" or "syntax error, unexpected PARSEOP_ELSE" error.

 

I found a couple of DSDT which will produced the same error. This is one example:-

			Device (RP05)
		{
			Name (_ADR, 0x001C0004)
			OperationRegion (PXCS, PCI_Config, 0x40, 0xC0)
			Field (PXCS, AnyAcc, NoLock, WriteAsZeros)
			{
						Offset (0x10), 
				APL0,   1, 
				APL1,   1, 
						Offset (0x12), 
					,   13, 
				LASX,   1, 
						Offset (0x1A), 
				ABPX,   1, 
					,   2, 
				PDCX,   1, 
					,   2, 
				PDSX,   1, 
						Offset (0x1B), 
				LSCX,   1, 
						Offset (0x20), 
						Offset (0x22), 
				PSPX,   1, 
						Offset (0x98), 
					,   30, 
				HPEX,   1, 
				PMEX,   1, 
					,   30, 
				HPSX,   1, 
				PMSX,   1
			}
			If (IGDS)
			{
				Device (PXSX)
				{
					Name (_ADR, Zero)

In this example, it control which device injection will be executed by DSDT based on certain conditions. Since it produced error while compiling, I think it is safe just to remove the IF statement. It should be okay. I don't have similar computer to test it.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...