Jump to content

DSDT disass+compile: newest iASLme / IASL :, Juli 11th 2012


mitch_de
 Share

265 posts in this topic

Recommended Posts

NEXT challange please :wallbash:

Hi mitch_de.

With all many thanks, and appreciation... CHEERIOS!

[As I was online, I was notified about ur post :( ]

 

A job well done! You guys are simply marvellous!

And, I liked your quote:

NEXT challange please :blowup:

Ha Ha Ha!

Hope so this continues, even when Apple will be Screwing with 10.7!

Regards,

Freaky Chokra :angel:

Link to comment
Share on other sites

Hello All, Mitch_de

 

I am facing following problem running iASL Me:

 

dyld: unknown required load command 0x80000022

 

Has anybody solved it? I am running vanilla kernel on core2duo E8400. Maybe error is connected with osx version, currently I am on 10.5.8.

 

regards,

tan

Link to comment
Share on other sites

YEP, that can be the problem (compiled for 10.6+)

Have you tried the 32 Bit version too and get same dyld error (i think yes, because your Intel C2D shoudnt have any problems with the 64 Bit IASL version).

I will take a look and recompile soon (a dew days) .

Any comments of users with IASL 2010 and OS X 10.5.x which can use it (no dyld error) are welcome !

Link to comment
Share on other sites

The latest iasl gives me compile errors, while the one back in March works fine (i forget what versions, but this is what it does with Windows binaries, and aparantly mac copies).

 

I need to use an older copy on Snow Leopard, but I always get bad executable CPU code?

Link to comment
Share on other sites

The latest iasl gives me compile errors, while the one back in March works fine (i forget what versions, but this is what it does with Windows binaries, and aparantly mac copies).

What kind of errors ? Some "new" errors belongs to real bugs in dsdt source older versions not "see".

If you get this error type :

/Users/ami/Desktop/dsdt.dsl 833: 0xFFF00000, // Length

Error 4117 - Length is larger than Min/Max window

you can fix that buggy dsdt source with solution on page 4.

 

.

Link to comment
Share on other sites

i have this error on the ew 32bit 4-28-2010 iAslme

 

DSDT.dsl 818: 0xFFF00000, // Length

Error 4117 - Length is larger than Min/Max window ^

 

DSDT.dsl 5077: Name (_AL0, Package (One)

Error 4080 - Invalid object type for reserved name ^ (found VAR_PACKAGE, requires Package)

 

i dont have this problem on the older Nov 2009 iAslme.. is there any way to fix my dsdt? can't seem to find the answer on page4 as suggested by mitch or i will just keep using the old version?

 

TIA.

Link to comment
Share on other sites

i have this error on the ew 32bit 4-28-2010 iAslme

 

i dont have this problem on the older Nov 2009 iAslme.. is there any way to fix my dsdt? can't seem to find the answer on page4 as suggested by mitch or i will just keep using the old version?

 

TIA.

 

You may / must edit the dsdt.dsl to fix the first error (length).

You didnt need newest IASL, you can do that fix and recompile also with older IASL version .

If you dont fix that you will get always that error with all IASL versions in the future, because IASL will find that wrong dsdt part also in the future, if you dont fix ist.

 

SOLUTION: (is also on page 4)

I looked at that code in my dsdl

DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,

0x00000000, // Granularity

0x00100000, // Range Minimum

0xFEBFFFFF, // Range Maximum

0x00000000, // Translation Offset

0xFFF00000, // Length

,, _Y00, AddressRangeMemory, TypeStatic)

 

compared to other similar DwordMem code in area around... i can see indeed an wrong lenght here !!!

 

Here no min/max/length error !

 

DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,

0x00000000, // Granularity

0x000C0000, // Range Minimum

0x000DFFFF, // Range Maximum

0x00000000, // Translation Offset

0x00020000, // Length

,, , AddressRangeMemory, TypeStatic)

 

For my looking(+ thinking ) the diff of Range Max / Range Min added 1 (must) give the Length which new iasl checks .

 

0x000DFFFF, // Range Maximum

- 0x000C0000, // Range Minimum

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

0x1FFFF

+ 1 = 0x00020000, // Length

 

In case of my error :

0xFEBFFFFF, // Range Maximum

- 0x00100000, // Range Minimum

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

0xFEAFFFFF

+1 = 0xFEB00000 insted of (error message) 0xFFF00000, // Length

 

HINT: Use OS X calculator to do the diff and + 1 for fixing lenght , switched into programmers mode ! YOu can even copy + paste values (hex) from dsdt to calc and results back to avoid typo´s !

 

 

For the second error perhaps you post the dsdt lines around (-5 / +5 lines) the error, so that soemone can look closer adn give hints.

But until you get hints, i would simple fix the first error (lenght) and recompile it with the older version, which didnt complain that second(perhaps also buggy dsdt like the first error).

Link to comment
Share on other sites

UPDATE SOON ALERT :P

I am ready to build new 28 Mai 2010 Version :wallbash:

 

"changes iASL Compiler/Disassembler:

iASL: Added compiler support for the _WDG and_WED Microsoft predefined

methods. These objects are defined by "Windows Instrumentation", and are not

part of the ACPI spec. ACPICA BZ 860."

 

EDIT: building, testing and uploading complete

Link to comment
Share on other sites

UPDATE SOON ALERT :)

I am ready to build new 28 Mai 2010 Version ;)

 

"changes iASL Compiler/Disassembler:

iASL: Added compiler support for the _WDG and_WED Microsoft predefined

methods. These objects are defined by "Windows Instrumentation", and are not

part of the ACPI spec. ACPICA BZ 860."

 

EDIT: building, testing and uploading complete

For the record: This update is not adding anything for OS X users!

Link to comment
Share on other sites

YEP, that can be the problem (compiled for 10.6+)

Have you tried the 32 Bit version too and get same dyld error (i think yes, because your Intel C2D shoudnt have any problems with the 64 Bit IASL version).

I will take a look and recompile soon (a dew days) .

Any comments of users with IASL 2010 and OS X 10.5.x which can use it (no dyld error) are welcome !

 

I get the same "dyld: unknown required load command 0x80000022" with your latest iASLMe_(64,32)Bit_28_05_2010 builds, when running it on 10.5.8 I'll try it on my MacBookPro 10.6.3 system ...

 

P.S. just to verify, as I'm new to all of this, I'm using the acpi_dsdt.bin (renamed to .aml) I extracted using Everest Ultimate Edition in WinXP. Is this the right way to start things off :(

 

For the record: This update is not adding anything for OS X users!

 

Did you mean "OS X 10.5.x" users? :(

Link to comment
Share on other sites

No, he meaned that the lastest changes only interesting for Windows Users.

 

Such "dyld: unknown required load command 0x80000022" errors come up if the OS X version didnt "fit".

Should run on 10.6.

Link to comment
Share on other sites

No, he meaned that the lastest changes only interesting for Windows Users.

 

Such "dyld: unknown required load command 0x80000022" errors come up if the OS X version didnt "fit".

Should run on 10.6.

 

Yes ran perfectly on my MacBookPro, thanks.

Link to comment
Share on other sites

Master Chief: Can you tell me the command line option for the make command to use the SDK 10.5 insted the standard ( i think its 10.6 on an 10.6 system) to get an build which runs 10.5+ ?

I future it would be better to build only one version anymore 32 Bit / 10.5+, so it runs on most systems.

Link to comment
Share on other sites

Hello,

 

Could you add an option in this tool when compiling from dsl to aml to put the resulting files in the same directory (as it is done when decompiling).

Maybe you could had a boolean property in the application Info.plist.

 

thanks

Link to comment
Share on other sites

Wreid , all parameters are zeros in that dsdt code part - so iasl complains right!

Is that from orig. BIOS extraction or already modded code ?

From useing the length formala - Range Max - Range Min + 1 = lenght - the length should be 1 : 0 - 0 +1 = 1 = 0x00000001 .

Try that first.

...

I dont think that that code with all zero parameter can make sense or has any real using.

The 0 lengths I'm seeing are typically showing up in a ResourceTemplate which is valid if it is populated before being used. It's a scenario I've been finding more in AMI BIOS boards than Award so far.

 

Example:

		 Scope (PCI0)
	   {
		   Name (CRS, ResourceTemplate ()
		   {
			   WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
				   0x0000,			 // Granularity
				   0x0000,			 // Range Minimum
				   0x00FF,			 // Range Maximum
				   0x0000,			 // Translation Offset
				   0x0100,			 // Length
				   ,, )
			   IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08, )
			   WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
				   0x0000,			 // Granularity
				   0x0000,			 // Range Minimum
				   0x0CF7,			 // Range Maximum
				   0x0000,			 // Translation Offset
				   0x0CF8,			 // Length
				   ,, , TypeStatic)
			   WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
				   0x0000,			 // Granularity
				   0x0D00,			 // Range Minimum
				   0xFFFF,			 // Range Maximum
				   0x0000,			 // Translation Offset
				   0xF300,			 // Length
				   ,, , TypeStatic)
			   DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
				   0x00000000,		 // Granularity
				   0x000A0000,		 // Range Minimum
				   0x000BFFFF,		 // Range Maximum
				   0x00000000,		 // Translation Offset
				   0x00020000,		 // ------------------------------- _Y1E Length
				   ,, , AddressRangeMemory, TypeStatic)
			   DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
				   0x00000000,		 // Granularity
				   0x000C0000,		 // Range Minimum
				   0x000DFFFF,		 // Range Maximum
				   0x00000000,		 // Translation Offset
				   0x00020000,		 // Length
				   ,, _Y1E, AddressRangeMemory, TypeStatic)
			   DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
				   0x00000000,		 // Granularity
				   0x00000000,		 // Range Minimum
				   0x00000000,		 // Range Maximum
				   0x00000000,		 // Translation Offset
				   0x00000000,		 // -------------------------------  _Y1F Length
				   ,, _Y1F, AddressRangeMemory, TypeStatic)
			   DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
				   0x00000000,		 // Granularity
				   0x00000000,		 // Range Minimum
				   0x00000000,		 // Range Maximum
				   0x00000000,		 // Translation Offset
				   0x00000000,		 // ------------------------------- _Y20 Length
				   ,, _Y20, AddressRangeMemory, TypeStatic)
		   })
		   CreateDWordField (CRS, \_SB.PCI0._Y1E._MIN, MIN5)
		   CreateDWordField (CRS, \_SB.PCI0._Y1E._MAX, MAX5)
		   CreateDWordField (CRS, \_SB.PCI0._Y1E._LEN, LEN5)
		   CreateDWordField (CRS, \_SB.PCI0._Y1F._MIN, MIN6)
		   CreateDWordField (CRS, \_SB.PCI0._Y1F._MAX, MAX6)
		   CreateDWordField (CRS, \_SB.PCI0._Y1F._LEN, LEN6)
		   CreateDWordField (CRS, \_SB.PCI0._Y20._MIN, MIN7)
		   CreateDWordField (CRS, \_SB.PCI0._Y20._MAX, MAX7)
		   CreateDWordField (CRS, \_SB.PCI0._Y20._LEN, LEN7)
		   Method (_CRS, 0, NotSerialized)
		   {

			 // If Local0 then we store a value in _Y1E Length, else we just use
			 // what is already in the resource template
			   Store (MG1L, Local0)
			   If (Local0)
			   {
				   Store (MG1B, MIN5)
				   Store (MG1L, LEN5) // <------------------------------- _Y1E Len
				   Add (MIN5, Decrement (Local0), MAX5)
			   }

			 // We outright store values for _Y1F and _Y20 
			   Store (MG2B, MIN6)
			   Store (MG2L, LEN6)	 // <------------------------------- _Y1F Len
			   Store (MG2L, Local0)
			   Add (MIN6, Decrement (Local0), MAX6)
			   Store (MG3B, MIN7)
			   Store (MG3L, LEN7)	 // <------------------------------- _Y20 Len
			   Store (MG3L, Local0)
			   Add (MIN7, Decrement (Local0), MAX7)
			   Return (CRS)
		   }
	   }

 

Setting the 0x00000000 length to 0x00000001 for _Y1F and _Y20 is harmless in this case since it is always overwritten later.

 

Probably more of an explanation than it deserves but there you are.

Link to comment
Share on other sites

after compiling the dsdt i get 3 errors:

 

/Users/haani/Desktop/dsdt.dsl  1192:					 0x00000000,		 // Length
Error	4122 -												   ^ Invalid combination of Length and Min/Max fixed flags

/Users/haani/Desktop/dsdt.dsl  2488:							 Return (Package (0x02)
Error	4080 -								Invalid object type for reserved name ^  (found PACKAGE, requires Integer)

/Users/haani/Desktop/dsdt.dsl  7327:				 DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Error	4064 -				   Object does not exist ^  (DTGP)

 

 

dsdt.dsl.txt

Link to comment
Share on other sites

after compiling the dsdt i get 3 errors:

 

			 0x00000000,		 // Length
Error	4122 -												   ^ Invalid combination of Length and Min/Max fixed flags

 

I actually got three of these "Error 4122 - invalid combination/MinMax" errors when I tried using iaslME instead of DSDTse the other day. This was the first time I've ever had an error when compiling a dsl file - usually just a couple of warnings. So I'd be interested in knowing if it is something easily fixed ....

Link to comment
Share on other sites

That lenght errors are real buggy dsdt. Its not an IASL problem. Older IASL didnt "seen" that bugs, newer does.

Try to fix it by setting the correct lenght (how to fix some posts / 1-2 sites back).

You must not fix that (by using older IASL versions) but you wont get any new IASL to compile if you dont fix that in the dsdt.

Link to comment
Share on other sites

Try to fix it by setting the correct lenght (how to fix some posts / 1-2 sites back).

 

I've replaced the old iasl with the latest, in DSDTse. So, I'll try to find the post/site??? that you are referring to - was it a recent post, is it a thread on this site?

 

Thanks for your response and help :mellow:

Link to comment
Share on other sites

That lenght errors are real buggy dsdt. Its not an IASL problem. Older IASL didnt "seen" that bugs, newer does.

Try to fix it by setting the correct lenght (how to fix some posts / 1-2 sites back).

You must not fix that (by using older IASL versions) but you wont get any new IASL to compile if you dont fix that in the dsdt.

I have the same PB with the new iasl :

                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                   0x00000000,         // Granularity
                   0x00000000,         // Range Minimum
                   0x00000000,         // Range Maximum
                   0x00000000,         // Translation Offset
                   0x00000000,         // Length
                   ,, _Y1B, AddressRangeMemory, TypeStatic)
               DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                   0x00000000,         // Granularity
                   0x00000000,         // Range Minimum
                   0x00000000,         // Range Maximum
                   0x00000000,         // Translation Offset
                   0x00000000,         // Length
                   ,, _Y1C, AddressRangeMemory, TypeStatic)
           })
           CreateDWordField (CRS, _Y1A._MIN, MIN5)
           CreateDWordField (CRS, _Y1A._MAX, MAX5)
           CreateDWordField (CRS, _Y1A._LEN, LEN5)
           CreateDWordField (CRS, _Y1B._MIN, MIN6)
           CreateDWordField (CRS, _Y1B._MAX, MAX6)
           CreateDWordField (CRS, _Y1B._LEN, LEN6)
           CreateDWordField (CRS, _Y1C._MIN, MIN7)
           CreateDWordField (CRS, _Y1C._MAX, MAX7)
           CreateDWordField (CRS, _Y1C._LEN, LEN7)

What should we put instead of

0x00000000, // Length

something like that

0x00000001, // Length

or something else

Barnum

Link to comment
Share on other sites

Alright, I understand the error resulting from a 'zero length' value, and since that seems to be a straight forward fix I've changed the Length value to 0x00000001. Now the only error left, is the following:

 

/Users/rupe/Desktop/To be installed/OSx86/dsdt.dsl   324:					 0x06BFFFFF,		 // Length
Error	4118 -							Length is not equal to fixed Min/Max window ^

 

Here is the section that caused it:

 

				DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
				0x00000000,		 // Granularity
				0xF8000000,		 // Range Minimum
				0xFEBFFFFF,		 // Range Maximum
				0x00000000,		 // Translation Offset
				0x06BFFFFF,		 // Length

 

Then since Length = Max - Min + 1, that would make Length = 0xFEBFFFFF - 0xF8000000 + 1, which would be 0x06C00000.

 

So the Length value above should actually be 0x06C00000, correct?

Link to comment
Share on other sites

Yep. Try that (max-Min +1 = new Lenght)

 

Going through my DSDT file now, comparing it to one that I had been generated with DSDTgui a year ago, and notice quite a few inconsistencies from the one I generated in WinXP using Everest Ultimate Utils :D

 

If anyone has the urge to go through it :D, here is the current DSDT I'm using, along with my SMBIOS and boot.plist

 

DSDTbootSMBIOS.zip

 

My system is a Gateway GT5040 Pentium D 820 system (see signature), which I put a PNY 9500GT 512MB into

Link to comment
Share on other sites

 Share

×
×
  • Create New...