天天看點

RW 搜尋ACPI協定RSD PTR表

Read&Write Utility可以讀取系統中各種ACPI表,下圖是我的ThinkPad的ACPI表:

RW 搜尋ACPI協定RSD PTR表

    通過這張圖,可以說,RW讀全了所有ACPI表。但是,有些品牌筆記本的實作,比如TOSHIBA/Dynabook,在RW的ACPI Table标簽頁上找不到RSDP結構和RSDT表!對于新人學習ACPI協定很不友善!經過一番嘗試,筆者發現可以通過搜尋記憶體的方式,定位到RSDP和RSDT。

    首先定位RSD PTR(即RSDP結構),根據ACPI協定,該結構中包含XSDT Base Address和RSDT Base Address。點選"Memory dump"按鈕----在Memory對話框中點選Find----在Find pattern編輯框中輸入 RSD PTR,同時勾選ASCII複選框:

RW 搜尋ACPI協定RSD PTR表

當然,為了縮小範圍,可以在Start Address和End Address中填寫起始和終止位址。一般這個位址可以參考XSDT Table中Entry0起始位址和最後一個EntryN結束位址,比如我的XSDT Table中Entry0的位址為0x97FF6000,RSD PTR一般在這個位址之前,是以Start Address取0x97000000。Entry22的起始位址為0x97F57000,是以End Address取0x98000000:

RW 搜尋ACPI協定RSD PTR表

搜尋結果到兩串"RSD PTR"開頭的字元串,第二串所在的位址是RSD PTR結構所在記憶體,即圖中位址Address=0x097FFE014。根據ACPI協定,從這個位址起,偏移0x10處是RSDT Base Address,偏移0x18是XSDT Base Address:

RW 搜尋ACPI協定RSD PTR表