最近根据【参考1】研究了一下通过 WinDBG 查看 ACPI Table 的方法,需要特别注意的是,必须按照顺序执行才能取得需要查看的信息。
1.运行!rsdt命令,感觉是让 WinDBG 进行查找的动作
||0:6: kd> !rsdt
Sorry: Unable to get ACPI!AcpiInformation.
Searching for RSDP.*************************************************************************
*** ***
*** ***
*** Either you specified an unqualified symbol, or your debugger ***
*** doesn't have full symbol information. Unqualified symbol ***
*** resolution is turned off by default. Please either specify a ***
*** fully qualified symbol module!symbolname, or enable resolution ***
*** of unqualified symbols by typing ".symopt- 100". Note that ***
*** enabling unqualified symbol resolution with network symbol ***
*** server shares in the symbol path may cause the debugger to ***
*** appear to hang for long periods of time when an incorrect ***
*** symbol name is typed or the network symbol server is down. ***
*** ***
*** For some commands to work properly, your symbol path ***
*** must point to .pdb files that have full type information. ***
*** ***
*** Certain .pdb files (such as the public OS symbols) do not ***
*** contain the required information. Contact the group that ***
*** provided you with these symbols if you need this command to ***
*** work. ***
*** ***
*** Type referenced: hal!_RSDT_32 ***
*** ***
*************************************************************************
.........................................0x0effe0: Read 0x000020 of 0x000024 bytes
Could not locate the RSDT pointer
2. !acpicache 命令,显示当前系统 Cache 的ACPI Table
||0:6: kd> !acpicache
Dumping cached ACPI tables...
XSDT @(fffff7e200004018) Rev: 0x1 Len: 0x000104 TableID: CFL-ULT
DBGP @(fffff7e200005018) Rev: 0x1 Len: 0x000034 TableID: CFL-ULT
MCFG @(fffff7e200006018) Rev: 0x1 Len: 0x00003c TableID: CFL-ULT
FACP @(fffff7e200050018) Rev: 0x6 Len: 0x000114 TableID: CFL-ULT
APIC @(fffff7e200051018) Rev: 0x3 Len: 0x00012c TableID: CFL-ULT
BOOT @(fffff7e200054018) Rev: 0x1 Len: 0x000028 TableID: TIANO
DMAR @(fffff7e200055018) Rev: 0x1 Len: 0x0000a8 TableID: CFL
HPET @(fffff7e20007e018) Rev: 0x1 Len: 0x000038 TableID: CFL-ULT
FPDT @(ffffe3020d0fe9e8) Rev: 0x1 Len: 0x000044 TableID: CFL-ULT
DSDT @(ffffe3020d400018) Rev: 0x2 Len: 0x045806 TableID: CFL-ULT
SSDT @(ffffe3020d0a7018) Rev: 0x2 Len: 0x001b1c TableID: CpuSsdt
SSDT @(ffffe3020f31f018) Rev: 0x2 Len: 0x0031c6 TableID: SaSsdt
SSDT @(ffffe3020f322208) Rev: 0x2 Len: 0x00045a TableID: Tpm2Tabl
SSDT @(ffffe3020f322698) Rev: 0x2 Len: 0x000046 TableID: MeSsdt
TPM2 @(ffffe3020f322708) Rev: 0x3 Len: 0x000034 TableID: CFL
UEFI @(ffffe3020f322768) Rev: 0x1 Len: 0x000042 TableID: CFL-ULT
SSDM @(ffffe3020f3227d8) Rev: 0x1 Len: 0x000055 TableID:
SSDT @(ffffe3020f322858) Rev: 0x2 Len: 0x000538 TableID: PerfTune
ECDT @(ffffe3020f322db8) Rev: 0x1 Len: 0x000069 TableID: CFL-ULT
SSDT @(ffffe3020d05e018) Rev: 0x2 Len: 0x002f5c TableID: CnlU_Rvp
SSDT @(ffffe3020e7fa978) Rev: 0x2 Len: 0x000fae TableID: Ther_Rvp
SSDT @(ffffe3020d05b018) Rev: 0x2 Len: 0x0029c5 TableID: xh_whld4
SSDT @(ffffe3020d0a5018) Rev: 0x2 Len: 0x001b67 TableID: UsbCTabl
LPIT @(ffffe3020d0a6ba8) Rev: 0x1 Len: 0x00005c TableID: CFL-ULT
WSMT @(ffffe3020d0a6c38) Rev: 0x1 Len: 0x000028 TableID: CFL-ULT
SSDT @(ffffe3020d058018) Rev: 0x2 Len: 0x0027de TableID: PtidDevc
SSDT @(ffffe3020d0a3018) Rev: 0x2 Len: 0x00149f TableID: TbtTypeC
DBG2 @(ffffe3020d0a4548) Rev: 000 Len: 0x000054 TableID: CFL-ULT
NHLT @(ffffe3020d0a1018) Rev: 000 Len: 0x001783 TableID: CFL
BGRT @(ffffe3020d0a2908) Rev: 0x1 Len: 0x000038 TableID: CFL-ULT
3. !fadt 命令,显示 FADT 的信息
||0:6: kd> !fadt
FADT -- fffff8036da7aee0
FADT revision is 6, which is not understood by this debugger
HEADER - fffff8036da7aee0
Signature: FACP
Length: 0x00000114
Revision: 0x06
Checksum: 0xa1
OEMID: INTEL
OEMTableID: CFL-ULT
OEMRevision: 0x20170001
CreatorID: INTL
CreatorRev: 0x20160422
FADT - BODY - fffff8036da7af04
FACS: 0x8ca12000
DSDT: 0x8cbb6000
Int Model: Dual PIC
SCI Vector: 0x009
SMI Port: 0x000000b2
ACPI On Value: 0x0f0
ACPI Off Value: 0x0f1
SMI CMD For S4 State: 0x0f2
PM1A Event Block: 0x00001800
PM1B Event Block: 0x00000000
PM1 Event Length: 0x004
PM1A Control Block: 0x00001804
PM1B Control Block: 0x00000000
PM1 Control Length: 0x002
PM2 Control Block: 0x00001850
PM2 Control Length: 0x001
PM Timer Block: 0x00001808
PM Timer Length: 0x004
GP0 Block: 0x00001860
GP0 Length: 0x020
GP1 Block: 0x00000000
GP1 Length: 0x00000000
GP1 Base: 0x00000010
C2 Latency: 0x00065
C3 Latency: 0x003e9
Memory Flush Size: 0x00000
Memory Flush Stride: 0x00000
Duty Cycle Index: 0x001
Duty Cycle Index Width: 0x003
Day Alarm Index: 0x00d
Month Alarm Index: 0x000
Century byte (CMOS): 0x032
Boot Architecture: 0x0001
The machine does not contain a legacy i8042
Flags: 0x0020c4b5
WRITEBACKINVALIDATE_WORKS .................. SET
WRITEBACKINVALIDATE_DOESNT_INVALIDATE ...... CLEAR
SYSTEM_SUPPORTS_C1 ......................... SET
P_LVL2_UP_ONLY ............................. CLEAR
PWR_BUTTON_GENERIC ......................... SET
SLEEP_BUTTON_GENERIC ....................... SET
RTC_WAKE_GENERIC ........................... CLEAR
RTC_WAKE_FROM_S4 ........................... SET
TMR_VAL_EXT ................................ CLEAR
DCK_CAP .................................... CLEAR
RESET_CAP .................................. SET
RESET_VALUE: 6
RESET_REG: System I/O - 0000000000000cf9
SEALED_CASE_CAP ............................ CLEAR
HEADLESS_CAP ............................... CLEAR
CPU_SW_SLP_CAP ............................. CLEAR
PCI_EXP_WAK ................................ SET
USE_PLATFORM_CLOCK ......................... SET
RTC_WAKE_VALID_FROM_S4 ..................... CLEAR
REMOTE_POWER_ON_CAPABLE .................... CLEAR
FADT_FORCE_CLUSTERED_APIC_MODE ............. CLEAR
FADT_FORCE_APIC_PHYSICAL_DESTINATION_MODE .. CLEAR
ACPI_HARDWARE_NOT_PRESENT .................. CLEAR
AOAC_CAPABLE_PLATFORM ...................... SET
上述实验平台为 WHL HDK,有兴趣的朋友可以试试。
参考:
1. https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/other-acpi-debugging-extensions