Note: FACP/FADT table with ACPI Enable/Disable

之前Dump FACP/FADT 內的欄位其中有幾個欄位是為了讓OSPM 知道如何讓System/Hardware  進入 ACPI Mode. 分別是

SCI_INT, SCI interrupt 讓OS知道 SCI 是實際對應到那個 IRQ上, 一般的PC上大多是預設為 IRQ 9, 如果有MADT表的話(for Multiprocessor)會以MADT內的為準(現在大多已經是MultiCore系統,  所以MADT相形重要, 另外MADT也有取代 MP v1.4 Spec的用途, 現代的OS會以MADT為準, 而不是MP), BIOS 需要將對應的 GPIO and IRQ Routing 設定與其相同.

SMI_CMD, 所謂的 Software SMI  I/O port, 當 Software 對這個Port 下寫入command 時將會產生一個 I/O Trap 去產生一個 SMI, 在Intel plarform 這個值應該是 0xB2, 也就是說對I/O 0xB2 Port寫入一個值, 南橋將產生一個 SMI

ACPI_ENABLE, support ACPI 的 OS 使用這個值去寫入上面的 SMI_CMD I/O port, 讓 SMM 內的 ACPI SMI Handler 知道這是一個 ACPI Award OS 要起動了!

ACPI_DISABLE, 當OS要離開 ACPI Mode 時, 會下這個欄位內的值到 SMI_CMD I/O port 中, 脫離執行SW SMI 的 Disable ACPI mode

OS 要進行 Sleeping 時, 會依序Evaluting下列 ACPI Method(Section 7.3 & 7.4 in ACPI rev 4.0)

Method (_TTS(Sx)), Transition To State, OSPM 透過它開始通知所有設備開始進行S0 ~ S5轉換

Method (_PTS), Prepare To Sleep, OSPM 在進入Sleep Mode (S1 ~ S5) 前第一個會執行的動作

Method (_GTS), Going To Sleep, 這個是Optional Method, 假設存在 DSDT中, OSPM必須執行它, 去設定

而從 Sleeping State 返回則是

Method (_BFS), Back From Sleep,

Method (_WAK), System Wakeup

Method (_TTS(0)), Transition To State, 指定回到S0 State

上面幾個ACPI Method 提供了OEM 在進行Sx轉換時, 可以針對硬體與驅動程式客制化動作的可能!

 

廣告

發表迴響

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

WordPress.com Logo

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

Twitter picture

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

Facebook照片

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

Google+ photo

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

連結到 %s

%d 位部落客按了讚: