Note: Dump ACPI Tables & Decompiling

Download DumpACPI source code, you need VC2005 and later for compiling the source, or directly to use pre-build execute files.

run the program will show the below on display & dump a DSDT.aml file into work directory.  Can use Intel ASL compiler(iasl.exe /d DSDT.AML)/Microsoft ASL compiler (asl /u DSDT.AML) to decompiler the binary file.

Find the Root System Description Table at 0xF67C0
CheckSum: 0x0
OEM ID: LENOVO
Revision: 0x2
RSDT Address: 0xBF6D18C8
Length of the Table: 36(0x24)
XSDT Address: 0xBF6D191C
Extended Checksum 0x7B
-==================================================-
Table: RSDT, at 0xBF6D18C8
Length of the Table: 84
Revision: 0x1
Checksum: 0x97
OEMID: LENOVO
OEM Table ID: TP-7B
OEM Revision: 0x2180
Creator ID:  LTP
Creator Revision 0x0
Entry count : 12
-==================================================-
Table: XSDT, at 0xBF6D191C
Length of the Table: 132
Revision: 0x1
Checksum: 0x2F
OEMID: LENOVO
OEM Table ID: TP-7B
OEM Revision: 0x2180
Creator ID:  LTP
Creator Revision 0x0
Entry count : 12
-==================================================-
Table: FACP, at 0xBF6D1A00
Length of the Table: 244
Revision: 0x3
Checksum: 0x1B
OEMID: LENOVO
OEM Table ID: TP-7B
OEM Revision: 0x2180
Creator ID: LNVO
Creator Revision 0x1
Firmware Ctrl(FACS): 0xBF6F4000
DSDT: 0xBF6D1D90
Peferred_PM_Profile:Mobile(2)
SCI_INT: 9(0x9)
SMI_CMD: 178(0xB2)
ACPI_ENABLE: 0xF0
ACPI_DISABLE: 0xF1
S4BIOS_REQ: 0x0
PSTAT_CNT: 0xF3
PM1a_EVT_BLK: 0x1000
PM1b_EVT_BLK: 0x0
PM1a_CNT_BLK: 0x1004
PM1b_CNT_BLK: 0x0
PM2_CNT_BLK: 0x1020
PM_TMR_BLK: 0x1008
GPE0_BLK: 0x1028
GPE1_BLK: 0x0
PM1_EVT_LEN: 0x4
PM1_CNT_LEN: 0x2
PM2_CNT_LEN: 0x1
PM_TMR_LEN: 0x4
GPE0_BLK_LEN: 0x8
GPE1_BLK_LEN: 0x0
GPE1_BASE: 0x0
CST_CNT: 0xF4
P_LVL2_LAT: 0x1
P_LVL3_LAT: 0x55
FLUSH_SIZE: 0x0
FLUSH_STRIDE: 0x0
Duty Offset: 0x1
Duty Width: 0x3
Day Alarm: 13
Month Alarm: 0
Century: 0x32
IA Boot Architecture: 0x12
Flags: 0xC2AD
RESET Reg:
Address Space: I/O(1)
BitWidth: 0x8,
BitOffset: 0x0,
AccessSize: 0x0,
Address:0xCF9
Reset Val: 0x6
X_Firmware_CTRL(FACS): 0xBF6F4000
X_DSDT: 0xBF6D1D90
X_PM1a_EVT_BLK:
Address Space: I/O(1)
BitWidth: 0x20,
BitOffset: 0x0,
AccessSize: 0x0,
Address:0x1000
X_PM1b_EVT_BLK:
Address Space: Memory(0)
BitWidth: 0x0,
BitOffset: 0x0,
AccessSize: 0x0,
Address:0x0
X_PM1a_CNT_BLK:
Address Space: I/O(1)
BitWidth: 0x10,
BitOffset: 0x0,
AccessSize: 0x0,
Address:0x1004
X_PM1b_CNT_BLK:
Address Space: Memory(0)
BitWidth: 0x0,
BitOffset: 0x0,
AccessSize: 0x0,
Address:0x0
X_PM2_CNT_BLK:
Address Space: I/O(1)
BitWidth: 0x8,
BitOffset: 0x0,
AccessSize: 0x0,
Address:0x1020
X_PM_TMR_BLK:
Address Space: I/O(1)
BitWidth: 0x20,
BitOffset: 0x0,
AccessSize: 0x0,
Address:0x1008
X_GPE0_BLK:
Address Space: I/O(1)
BitWidth: 0x20,
BitOffset: 0x0,
AccessSize: 0x0,
Address:0x1028
X_GPE1_BLK:
Address Space: I/O(1)
BitWidth: 0x20,
BitOffset: 0x0,
AccessSize: 0x0,
Address:0x102C
-==================================================-
Table: DSDT, at 0xBF6D1D90
Length of the Table: 53177
Revision: 0x1
Checksum: 0x68
OEMID: LENOVO
OEM Table ID: TP-7B
OEM Revision: 0x2180
Creator ID: MSFT
Creator Revision 0x100000E
-==================================================-
Table: SSDT, at 0xBF6D1BB4
Length of the Table: 476
Revision: 0x1
Checksum: 0x20
OEMID: LENOVO
OEM Table ID: TP-7B
OEM Revision: 0x2180
Creator ID: MSFT
Creator Revision 0x100000E
-==================================================-
Table: ECDT, at 0xBF6DED49
Length of the Table: 82
Revision: 0x1
Checksum: 0xEC
OEMID: LENOVO
OEM Table ID: TP-7B
OEM Revision: 0x2180
Creator ID: LNVO
Creator Revision 0x1
-==================================================-
Table: TCPA, at 0xBF6DED9B
Length of the Table: 50
Revision: 0x2
Checksum: 0x40
OEMID: LENOVO
OEM Table ID: TP-7B
OEM Revision: 0x2180
Creator ID: LNVO
Creator Revision 0x1
-==================================================-
Table: APIC, at 0xBF6DEDCD
Length of the Table: 104
Revision: 0x1
Checksum: 0x3
OEMID: LENOVO
OEM Table ID: TP-7B
OEM Revision: 0x2180
Creator ID: LNVO
Creator Revision 0x1
-==================================================-
Table: MCFG, at 0xBF6DEE35
Length of the Table: 60
Revision: 0x1
Checksum: 0x19
OEMID: LENOVO
OEM Table ID: TP-7B
OEM Revision: 0x2180
Creator ID: LNVO
Creator Revision 0x1
-==================================================-
Table: HPET, at 0xBF6DEE71
Length of the Table: 56
Revision: 0x1
Checksum: 0x41
OEMID: LENOVO
OEM Table ID: TP-7B
OEM Revision: 0x2180
Creator ID: LNVO
Creator Revision 0x1
-==================================================-
Table: BOOT, at 0xBF6DEFD8
Length of the Table: 40
Revision: 0x1
Checksum: 0x3F
OEMID: LENOVO
OEM Table ID: TP-7B
OEM Revision: 0x2180
Creator ID:  LTP
Creator Revision 0x1
-==================================================-
Table: SSDT, at 0xBF6F2645
Length of the Table: 607
Revision: 0x1
Checksum: 0x59
OEMID: LENOVO
OEM Table ID: TP-7B
OEM Revision: 0x2180
Creator ID: INTL
Creator Revision 0x20050513
-==================================================-
Table: SSDT, at 0xBF6F28A4
Length of the Table: 166
Revision: 0x1
Checksum: 0xFF
OEMID: LENOVO
OEM Table ID: TP-7B
OEM Revision: 0x2180
Creator ID: INTL
Creator Revision 0x20050513
-==================================================-
Table: SSDT, at 0xBF6F294A
Length of the Table: 1271
Revision: 0x1
Checksum: 0xA
OEMID: LENOVO
OEM Table ID: TP-7B
OEM Revision: 0x2180
Creator ID: INTL
Creator Revision 0x20050513
-==================================================-
Table: SSDT, at 0xBF6F2E41
Length of the Table: 472
Revision: 0x1
Checksum: 0xA0
OEMID: LENOVO
OEM Table ID: TP-7B
OEM Revision: 0x2180
Creator ID: INTL
Creator Revision 0x20050513

update: use iasl 20090730 to decompiling dsdt.aml of Thinkpad X60 

C:\asl>iasl -d dsdt.aml

Intel ACPI Component Architecture
AML Disassembler version 20090730 [Jul 30 2009]
Copyright (C) 2000 – 2009 Intel Corporation
Supports ACPI Specification Revision 4.0

Loading Acpi table from file dsdt.aml
Acpi table [DSDT] successfully installed and loaded
Pass 1 parse of [DSDT]
Pass 2 parse of [DSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)
……………………………………………………………………..
……………………………………………………………………..
……………………………………………………………………..
……………………………………………………………………..
……………………………………………………………………..
……………………………………………………………………..
……………………………………………………………………..
……………………………………………………………………..
..
Parsing completed

Found 1 external control methods, reparsing with new information
Pass 1 parse of [DSDT]
Pass 2 parse of [DSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)
……………………………………………………………………..
……………………………………………………………………..
……………………………………………………………………..
……………………………………………………………………..
……………………………………………………………………..
……………………………………………………………………..
……………………………………………………………………..
……………………………………………………………………..
..
Parsing completed
Disassembly completed, written to “dsdt.dsl"

廣告

3 回應 to “Note: Dump ACPI Tables & Decompiling”

  1. […] 當做解說材料, 對應到 ICH7 (Intel ICH7 datasheet), Dump ACPI的方法可以參考之前的 Note: Dump ACPI Tables , iasl 我現在用的是 Intel 20090730 […]

  2. 利用 ACPIView tool 可以在 x86 上 dump ACPI tables
    不過只支援vista, win7
    有沒有 for win8 的ACPIView 或是 for ARM 類似 ACPIView 的工具呢 ?

    • Win8 的規定一定要 UEFI support, 但是我目前也不知道再OS下面要怎樣去存取UEFI protocol, 想到的可能作法有下列幾點
      1. 先埋後門, 有很多後門作法
      2. 透過 Win8 自己的 WinDbg + ACPI Check Build driver去debug/dump
      3. 透過 shell下執行 UEFI Application 去dump,
      4. 看看BIOS有沒有CSM Support for X86 有的話, 舊的程式應該能用 (ARM 就不可能)
      5. 透過 Driver 去 scan memory spaces 看看哪邊找的到RDST 跟 各種Table的 Header, 找的到就一樣可以dump
      6. 建議可以問問 BIOS原廠

      目前我已經被公司安排去弄WINCE, 沒碰BIOS這一塊了, 所以有些細節我也不是很清楚,
      雖然最近可能會寫一個UEFI application 來load CE 的Kernel image,

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: