Jump to content

iASL & Intel ACPI Tools x64 20140424

Sign in to follow this  

1 Screenshot

About This File

Intel ACPI tools. NEW version 20140424 compiled by me from original sources. Use iasl compiler with your DSDTSE or another editor. To update your DSDTSE, simply right click on DSDTSE -> Show contents, drag'n'drop iasl into -> Contents -> Resources. Another editors have mostly the same way. Or another way by Terminal: drag iasl on Terminal window (bash), (press Return (Enter) to see all keys) -> write some keys, drag Aml/Dsl file to compile/decompile. This way you can more deeply configure/clean your DSDT during compile (especially with -w3 key), find more warnings and junk code, empty / uninitialized methods. Have a nice day compilings! Amen.

Дл? ру??ких: Intel ACPI тулзы вер?ии 20140424 ?компилированы мною из оригинальных ?ырцов. Дл? и?пользовани? ? ДСДТ редактором. Ин?талим ?юда: Открываем правой кнопкой по "любимому" редактору -- показать ?одержимое пакета -- Contents -- Resources -- перета?киваем драг-н-дропом на ?ту папку файл iasl, на замену ?оглашаем??. Имеем ?вежий компайлер.

The new version 20140627 here: http://www.hackintoshosx.com/files/file/4117-iasl-intel-acpi-tools-x64/


What's New in Version 20140424

Released

  • 24 April 2014. Summary of changes for version 20140424:
  • 1) ACPICA kernel-resident subsystem:
  • Implemented support to skip/ignore NULL address entries in the RSDT/XSDT. Some of these tables are known to contain a trailing NULL entry. Lv Zheng.
  • Removed an extraneous error message for the case where there are a large number of system GPEs (> 124). This was the "32-bit FADT register is too long to convert to GAS struct" message, which is irrelevant for GPEs since the GPEx_BLK_LEN fields of the FADT are always used instead of the (limited capacity) GAS bit length. Also, several changes to ensure proper support for GPE numbers > 255, where some "GPE number" fields were 8-bits internally.
  • Implemented and deployed additional configuration support for the public ACPICA external interfaces. Entire classes of interfaces can now be easily modified or configured out, replaced by stubbed inline functions by default. Lv Zheng.
  • Moved all public ACPICA runtime configuration globals to the public ACPICA external interface file for convenience. Also, removed some obsolete/unused globals. See the file acpixf.h. Lv Zheng.
  • Documentation: Added a new section to the ACPICA reference describing the maximum number of GPEs that can be supported by the FADT-defined GPEs in block zero and one. About 1200 total. See section 4.4.1 of the ACPICA reference.
  • Example Code and Data Size: These are the sizes for the OS-independent acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug version of the code includes the debug output trace mechanism and has a much larger code and data size.
  • Current Release:
  • Non-Debug Version: 96.8K Code, 27.2K Data, 124.0K Total
  • Debug Version: 189.5K Code, 79.7K Data, 269.2K Total
  • Previous Release:
  • Non-Debug Version: 97.0K Code, 27.2K Data, 124.2K Total
  • Debug Version: 189.7K Code, 79.5K Data, 269.2K Total
  • 2) iASL Compiler/Disassembler and Tools:
  • iASL and disassembler: Add full support for the LPIT table (Low Power Idle Table). Includes support in the disassembler, data table compiler, and template generator.
  • AcpiDump utility:
  • 1) Add option to force the use of the RSDT (over the XSDT).
  • 2) Improve validation of the RSDP signature (use 8 chars instead of 4).
  • iASL: Add check for predefined packages that are too large. For predefined names that contain subpackages, check if each subpackage is too large. (Check for too small already exists.)
  • Debugger: Updated the GPE command (which simulates a GPE by executing the GPE code paths in ACPICA). The GPE device is now optional, and defaults to the GPE 0/1 FADT-defined blocks.
  • Unix application OSL: Update line-editing support. Add additional error checking and take care not to reset terminal attributes on exit if they were never set. This should help guarantee that the terminal is always left in the previous state on program exit.



User Feedback

Recommended Comments

The new iasl (since 0325 version) messed up decompiled dsl files, it adds UnknownObj to unknown Externel ref:

External (_SB_.IAOE.IBT1, UnknownObj)

This is the output of old iasl (<=0214)

External (_SB_.IAOE.IBT1)

It messed up all old dsdt patches. Can you config iasl to ignore UnknownObj?

Share this comment


Link to comment
Share on other sites

pokenguyen, if you encountered these erreors, you need to decompile your original (or patched) DSDTs using SSDTs

Use in Terminal:?

iasl -e /SSDT*.aml -d /DSDT.aml

Share this comment


Link to comment
Share on other sites

Moorre, I always use that command to decompile dsdt,ssdt in my guide, but some exception, like this:

http://forum.osxlatitude.com/index.php?/topic/6371-guide-dell-inspiron-3x37-5x37-7x37-clover-installation/page-6#entry38281

?

After decompile using iasl -da *.aml, I still get errors about?

External (_SB_.PCI0.PEG0)

I write a dsdt patch for it:

into definitionblock code_regex External\s+\(_SB_\.PCI0\.PEG0\) remove_matched;

But since iasl 0325, the decompiled dsdt.dsl will get this instead

External (_SB_.PCI0.PEG0, UnknownObj)

And my dsdt patch which works before now becomes useless.

Share this comment


Link to comment
Share on other sites

pokenguyen,

?

?

?

Can you config iasl to ignore UnknownObj?

No, I can't. I'm compiling only the ACPICA from sources without changing sourcecode.

?

You are wrong with the use of -da key. You need to add all of the SSDTs with -e key to define properly Unknown names, methods and objects. The -da key will only decompile all of your *.aml files without Embedding each other.

I took an archive from?http://forum.osxlatitude.com/index.php?/topic/6371-guide-dell-inspiron-3x37-5x37-7x37-clover-installation/page-6#entry38281?and tried to decompile that DSDT.aml including all SSDTs with -e key. Here you are an output:

And here some Unknown objects mixed with known:

SteveMAC:~ steve$ iasl -e /Users/steve/Desktop/ratoine/Origin/SSDT*.aml -d /Users/steve/Desktop/ratoine/Origin/DSDT.aml Intel ACPI Component ArchitectureASL Optimizing Compiler version 20140424-64 [Apr 24 2014]Copyright (c) 2000 - 2014 Intel CorporationLoading Acpi table from file /Users/steve/Desktop/ratoine/Origin/DSDT.aml - Length 00055669 (00D975)ACPI: DSDT 0x0000000000000000 00D975 (v02 DELL   HSW-LPT  00000000 INTL 20120711)Acpi table [DSDT] successfully installed and loadedLoading Acpi table from file /Users/steve/Desktop/ratoine/Origin/SSDT-8.aml - Length 00004169 (001049)ACPI: SSDT 0x0000000000000000 001049 (v01 NvORef NvUltTbl 00001000 INTL 20120711)Acpi table [SSDT] successfully installed and loadedPass 1 parse of [SSDT]Pass 2 parse of [SSDT]Loading Acpi table from file /Users/steve/Desktop/ratoine/Origin/SSDT-7.aml - Length 00013591 (003517)ACPI: SSDT 0x0000000000000000 003517 (v01 DELL   SaSsdt   00003000 INTL 20120711)Acpi table [SSDT] successfully installed and loadedPass 1 parse of [SSDT]Pass 2 parse of [SSDT]Loading Acpi table from file /Users/steve/Desktop/ratoine/Origin/SSDT-6x.aml - Length 00000281 (000119)ACPI: SSDT 0x0000000000000000 000119 (v01 PmRef  ApCst    00003000 INTL 20120711)Acpi table [SSDT] successfully installed and loadedPass 1 parse of [SSDT]Pass 2 parse of [SSDT]Loading Acpi table from file /Users/steve/Desktop/ratoine/Origin/SSDT-5x.aml - Length 00000979 (0003D3)ACPI: SSDT 0x0000000000000000 0003D3 (v01 PmRef  Cpu0Cst  00003001 INTL 20120711)Acpi table [SSDT] successfully installed and loadedPass 1 parse of [SSDT]Pass 2 parse of [SSDT]Loading Acpi table from file /Users/steve/Desktop/ratoine/Origin/SSDT-4x.aml - Length 00001450 (0005AA)ACPI: SSDT 0x0000000000000000 0005AA (v01 PmRef  ApIst    00003000 INTL 20120711)Acpi table [SSDT] successfully installed and loadedPass 1 parse of [SSDT]Pass 2 parse of [SSDT]Loading Acpi table from file /Users/steve/Desktop/ratoine/Origin/SSDT-3.aml - Length 00002776 (000AD8)ACPI: SSDT 0x0000000000000000 000AD8 (v01 DELL   CpuPm    00003000 INTL 20120711)Acpi table [SSDT] successfully installed and loadedPass 1 parse of [SSDT]Pass 2 parse of [SSDT]Loading Acpi table from file /Users/steve/Desktop/ratoine/Origin/SSDT-2.aml - Length 00001238 (0004D6)ACPI: SSDT 0x0000000000000000 0004D6 (v01 DELL   Cpu0Ist  00003000 INTL 20120711)Acpi table [SSDT] successfully installed and loadedPass 1 parse of [SSDT]Pass 2 parse of [SSDT]Loading Acpi table from file /Users/steve/Desktop/ratoine/Origin/SSDT-1.aml - Length 00008232 (002028)ACPI: SSDT 0x0000000000000000 002028 (v01 DELL   PtidDevc 00001000 INTL 20120711)Acpi table [SSDT] successfully installed and loadedPass 1 parse of [SSDT]Pass 2 parse of [SSDT]Loading Acpi table from file /Users/steve/Desktop/ratoine/Origin/SSDT-0.aml - Length 00000552 (000228)ACPI: SSDT 0x0000000000000000 000228 (v01 DELL   sensrhub 00000000 INTL 20120711)Acpi table [SSDT] successfully installed and loadedPass 1 parse of [SSDT]Pass 2 parse of [SSDT]Pass 1 parse of [DSDT]Pass 2 parse of [DSDT]Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)Parsing completedFound 14 external control methods, reparsing with new informationPass 1 parse of [DSDT]Pass 2 parse of [DSDT]Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)Parsing completedDisassembly completedASL Output:    /Users/steve/Desktop/ratoine/Origin/DSDT.dsl - 542016 bytesiASL Warning: There were 14 external control methods found duringdisassembly, but only 7 were resolved (7 unresolved). AdditionalACPI tables may be required to properly disassemble the code. Theresulting disassembler output file may not compile because thedisassembler did not know how many arguments to assign to theunresolved methods.If necessary, the -fe option can be used to specify a file containingcontrol method external declarations with the associated methodargument counts. Each line of the file must be of the form:    External (<method pathname>, MethodObj, <argument count>)Invocation:    iasl -fe refs.txt -d dsdt.aml
DefinitionBlock ("~/DSDT.aml", "DSDT", 2, "DELL  ", "HSW-LPT", 0x00000000){    /*     * iASL Warning: There were 14 external control methods found during     * disassembly, but only 7 were resolved (7 unresolved). Additional     * ACPI tables may be required to properly disassemble the code. This     * resulting disassembler output file may not compile because the     * disassembler did not know how many arguments to assign to the     * unresolved methods.     *     * If necessary, the -fe option can be used to specify a file containing     * control method external declarations with the associated method     * argument counts. Each line of the file must be of the form:     *     External (<method pathname>, MethodObj, <argument count>)     * Invocation:     *     iasl -fe refs.txt -d dsdt.aml     *     * The following methods were unresolved and many not compile properly     * because the disassembler had to guess at the number of arguments     * required for each:     */    External (_GPE.MMTB, MethodObj)    // Warning: Unresolved method, guessing 1 arguments    External (_SB_.PCI0.PAUD.PUAM, MethodObj)    // Warning: Unresolved method, guessing 0 arguments    External (_SB_.PCI0.PEG0.PEGP.EPON, MethodObj)    // Warning: Unresolved method, guessing 0 arguments    External (_SB_.PCI0.RP05.PEGP.EPON, MethodObj)    // Warning: Unresolved method, guessing 0 arguments    External (_SB_.PCI0.XHC_.DUAM, MethodObj)    // Warning: Unresolved method, guessing 0 arguments    External (PS0X, MethodObj)    // Warning: Unresolved method, guessing 0 arguments    External (PS3X, MethodObj)    // Warning: Unresolved method, guessing 0 arguments    External (_PR_.CFGD, FieldUnitObj)    External (_PR_.CPU0._PPC, IntObj)    External (_PR_.CPU0._PSS, PkgObj)    External (_SB_.IAOE.ECTM, UnknownObj)    External (_SB_.IAOE.FFSE, UnknownObj)    External (_SB_.IAOE.IBT1, UnknownObj)    External (_SB_.IAOE.ITMR, UnknownObj)    External (_SB_.IAOE.PTSL, UnknownObj)    External (_SB_.IAOE.RCTM, UnknownObj)    External (_SB_.IAOE.WKRS, UnknownObj)    External (_SB_.IFFS.FFSS, UnknownObj)    External (_SB_.PCCD, UnknownObj)    External (_SB_.PCCD.PENB, UnknownObj)    External (_SB_.PCI0.B0D3.ABAR, FieldUnitObj)    External (_SB_.PCI0.B0D3.BARA, IntObj)    External (_SB_.PCI0.GFX0.DD1F, UnknownObj)    External (_SB_.PCI0.GFX0.DD1F._BCM, MethodObj)    // 1 Arguments    External (_SB_.PCI0.GFX0.GLID, MethodObj)    // 1 Arguments    External (_SB_.PCI0.GFX0.GSCI, MethodObj)    // 0 Arguments    External (_SB_.PCI0.GFX0.GSSE, FieldUnitObj)    External (_SB_.PCI0.GFX0.IUEH, MethodObj)    // 1 Arguments    External (_SB_.PCI0.GFX0.STAT, FieldUnitObj)    External (_SB_.PCI0.GFX0.TCHE, FieldUnitObj)    External (_SB_.PCI0.PEG0, UnknownObj)    External (_SB_.PCI0.PEG0.HPME, MethodObj)    // 0 Arguments    External (_SB_.PCI0.PEG0.PEGP, UnknownObj)    External (_SB_.PCI0.PEG1, UnknownObj)    External (_SB_.PCI0.PEG1.HPME, MethodObj)    // 0 Arguments    External (_SB_.PCI0.PEG2, UnknownObj)    External (_SB_.PCI0.PEG2.HPME, MethodObj)    // 0 Arguments    External (_SB_.PCI0.RP05.PEGP, UnknownObj)    External (D1F0, UnknownObj)    External (D1F1, UnknownObj)    External (D1F2, UnknownObj)    External (DIDX, FieldUnitObj)    External (GSMI, FieldUnitObj)    External (LIDS, FieldUnitObj)    External (MDBG, IntObj)    External (PDC0, IntObj)    External (PDC1, IntObj)    External (PDC2, IntObj)    External (PDC3, IntObj)    External (PDC4, IntObj)    External (PDC5, IntObj)    External (PDC6, IntObj)    External (PDC7, IntObj)    External (SGMD, FieldUnitObj)

It may happen because some names are absent in these SSDTs.

For example an output from native MBA5.2

Without -e key:

The same with -e key using all OEM SSDTs:

DefinitionBlock ("iASL291yto.aml", "DSDT", 1, "APPLE ", "MacBookA", 0x00050001){    /*     * iASL Warning: There were 5 external control methods found during     * disassembly, but additional ACPI tables to resolve these externals     * were not specified. This resulting disassembler output file may not     * compile because the disassembler did not know how many arguments     * to assign to these methods. To specify the tables needed to resolve     * external control method references, the -e option can be used to     * specify the filenames. Example iASL invocations:     *     iasl -e ssdt1.aml ssdt2.aml ssdt3.aml -d dsdt.aml     *     iasl -e dsdt.aml ssdt2.aml -d ssdt1.aml     *     iasl -e ssdt*.aml -d dsdt.aml     *     * In addition, the -fe option can be used to specify a file containing     * control method external declarations with the associated method     * argument counts. Each line of the file must be of the form:     *     External (<method pathname>, MethodObj, <argument count>)     * Invocation:     *     iasl -fe refs.txt -d dsdt.aml     *     * The following methods were unresolved and many not compile properly     * because the disassembler had to guess at the number of arguments     * required for each:     */    External (_SB_.PCI0.DTLK, MethodObj)    // Warning: Unresolved method, guessing 0 arguments    External (_SB_.PCI0.RMCR, MethodObj)    // Warning: Unresolved method, guessing 0 arguments    External (_SB_.PCI0.RMCW, MethodObj)    // Warning: Unresolved method, guessing 0 arguments    External (_SB_.PCI0.TGPE, MethodObj)    // Warning: Unresolved method, guessing 0 arguments    External (_SB_.PCI0.XHC1._INI, MethodObj)    // Warning: Unresolved method, guessing 1 arguments    External (_SB_.PCI0.DTBP, UnknownObj)    External (_SB_.PCI0.EHC1, UnknownObj)    External (_SB_.PCI0.EHC2, UnknownObj)    External (_SB_.PCI0.IGPU.CLID, UnknownObj)    External (_SB_.PCI0.XHC1.PAHC, UnknownObj)    External (_SB_.PCI0.XHC1.PASS, UnknownObj)    External (_SB_.PCI0.XHC1.PBHC, UnknownObj)    External (_SB_.PCI0.XHC1.PBSS, UnknownObj)    External (_SB_.PCI0.XHC1.PCHC, UnknownObj)    External (_SB_.PCI0.XHC1.PCSS, UnknownObj)    External (_SB_.PCI0.XHC1.PDHC, UnknownObj)    External (_SB_.PCI0.XHC1.PDSS, UnknownObj)    External (PDC0, UnknownObj)    External (PDC1, UnknownObj)    External (PDC2, UnknownObj)    External (PDC3, UnknownObj)    External (PDC4, UnknownObj)    External (PDC5, UnknownObj)    External (PDC6, UnknownObj)    External (PDC7, UnknownObj)
DefinitionBlock ("~/DSDT.aml", "DSDT", 1, "APPLE ", "MacBookA", 0x00050001){    External (_SB_.PCI0.DTBP, MethodObj)    // 0 Arguments    External (_SB_.PCI0.DTLK, MethodObj)    // 0 Arguments    External (_SB_.PCI0.EHC1, UnknownObj)    External (_SB_.PCI0.EHC2, UnknownObj)    External (_SB_.PCI0.IGPU.CLID, FieldUnitObj)    External (_SB_.PCI0.RMCR, MethodObj)    // 0 Arguments    External (_SB_.PCI0.RMCW, MethodObj)    // 0 Arguments    External (_SB_.PCI0.TGPE, MethodObj)    // 0 Arguments    External (_SB_.PCI0.XHC1._INI, MethodObj)    // 0 Arguments    External (_SB_.PCI0.XHC1.PAHC, FieldUnitObj)    External (_SB_.PCI0.XHC1.PASS, FieldUnitObj)    External (_SB_.PCI0.XHC1.PBHC, FieldUnitObj)    External (_SB_.PCI0.XHC1.PBSS, FieldUnitObj)    External (_SB_.PCI0.XHC1.PCHC, FieldUnitObj)    External (_SB_.PCI0.XHC1.PCSS, FieldUnitObj)    External (_SB_.PCI0.XHC1.PDHC, FieldUnitObj)    External (_SB_.PCI0.XHC1.PDSS, FieldUnitObj)    External (PDC0, IntObj)    External (PDC1, IntObj)    External (PDC2, IntObj)    External (PDC3, IntObj)    External (PDC4, IntObj)    External (PDC5, IntObj)    External (PDC6, IntObj)    External (PDC7, IntObj)

All of that with 20140424 iasl comiler.

And I think it won't define properly the Externals which are the Device objects. Maybe you have to name them manually to DeviceObj:

External (_SB_.PCI0.PEG0, UnknownObj) --> External (_SB_.PCI0.PEG0, DeviceObj)

Share this comment


Link to comment
Share on other sites

-da will auto embed all tables before decompiling dsdt/ssdt, they are completely different with -d. You can check with the above pack, the command

iasl -d SSDT8.aml

ssdt8.dsl: have lots of errors because of missing info.

iasl -e DSDT.aml, SSDT1.aml, SSDT2.aml, ... -d SSDT8.aml

ssd8.dsl: no error

iasl -da *.aml  (make sure you only have dsdt.aml and ssdt*.aml)

ssdt8.dsl: no error.

?

It's more convinient and faster, decompile all iasl at once, I always use it and have no problems. The result is always the same with -e -d

?

I will edit my patches to suit both old and new iasl before migrating to new one. Thank you for your good work!

Share this comment


Link to comment
Share on other sites

pokenguyen, sorry, but I've never exactly used -da key for decompiling all *.amls together.

Now I'm using only -e key with a package of SSDTs. It is because, when I decompile some DSDTs from the new platforms, iasl wrongly decompiles DSDT.aml with only -d ?key. More info here?https://applelife.ru/threads/optimizacija-dsdt-novejshij-kompiljator.31891/page-41#post-432420

What kind of output did you had, when you decompiled all together AMLs with -da key?

Share this comment


Link to comment
Share on other sites

The correct one is

iasl -da DSDT.aml SSDT*.aml

because other .aml can not be decompiled. The output is DSDT.dsl, SSDT1.dsl,... SSDT4.dsl, and they are exactly like the output of those:

iasl -e SSDT*.aml -d DSDT.amliasl -e DSDT.aml SSDT2.aml SSDT3.aml SSDT4.aml -d SSDT1.amliasl -e DSDT.aml SSDT1.aml SSDT3.aml SSDT4.aml -d SSDT2.amliasl -e DSDT.aml SSDT1.aml SSDT2.aml SSDT4.aml -d SSDT3.amliasl -e DSDT.aml SSDT1.aml SSDT2.aml SSDT3.aml -d SSDT4.aml

Share this comment


Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.