Linux ACPI服務(wù)ACPI 驅(qū)動體系簡介
這個體系主要目的在于讓操作系統(tǒng)和當(dāng)前的 ACPI 硬件隔離開,讓 Linux 中通過一系列的接口來訪問 ACPI 層。下面列出 ACPI CA 的接口,例如電源管理和配置,熱拔插等等。
在 Linux ACPI服務(wù)規(guī)范中將 ACPI 體系分割成 ACPI 核心層(Core subsystem),用于提供基本的 Linux ACPI服務(wù)(AML 翻譯和名字空間管理);OS 服務(wù)層(OS service)提供針對不同的操作系統(tǒng)的和 ACPI 單元接口服務(wù),下面將詳細介紹它們。
a. Linux ACPI服務(wù)ACPI 核心層:
ACPI 核心層分成幾個相互關(guān)聯(lián)的邏輯模塊,每個模塊之間包含一些相關(guān)的 ACPI API,當(dāng)用戶在編寫相關(guān)的含有 ACPI 服務(wù)的驅(qū)動程序的時候,會調(diào)用這些相關(guān)模塊的接口。
1. AML Interpreter: 從上可知AML(后面將詳細介紹)分析器是基礎(chǔ),負責(zé)分析和運行從本地計算機 BIOS 提供的 AML 文件流,一般說來 AML 翻譯器為其他的 ACPI 服務(wù)模塊提供方法節(jié)點運行和獲得名字空間中某個方法節(jié)點的對象服務(wù)。
2. ACPI Table Management 是一個負責(zé)載入,管理,分析,校驗 ACPI 模塊中所使用的各種來自系統(tǒng) BIOS 的一些特殊的支持 ACPI 服務(wù)的表格,例如:RSDT,F(xiàn)SDT,F(xiàn)ACS,DSDT等等,這些表在操作系統(tǒng)進行初始化的時候被載入內(nèi)存。
3. Namespace Management 在 AML 翻譯器之上提供名字空間服務(wù),它負責(zé)創(chuàng)建和管理內(nèi)部的名字空間。
4. Resource Management:資源管理提供建立在名字空間資源的配置和獲取,其中包括了 PCI的設(shè)備的地址區(qū)間,中斷等重要參數(shù)。它所提供的服務(wù)包括:獲取和設(shè)定當(dāng)前的資源,獲取設(shè)備上可能存在的地址區(qū)間以及 PCI 設(shè)備的中斷路由表(IRQ Routing Tables),獲取當(dāng)前設(shè)備的電源支持能力(例如是否支持 S1-S5 狀態(tài))。
***CPI H/W Management:該模塊用于控制對橋芯片上 ACPI 寄存器和時鐘以及其他 ACPI 關(guān)聯(lián)硬件的訪問,例如 ACPI GPE 狀態(tài)寄存器和使能寄存器,系統(tǒng)狀態(tài)獲得。 Event handling:事件管理模塊是用于管理系統(tǒng)控制中斷(SCI)的發(fā)生和 GPE 事件的響應(yīng),SCI 包括 ACPI 時鐘中斷,以及 GPE 事件管理。這個單元負責(zé)"分發(fā)"地址空間和操作空間(OperationRegion)的事件到當(dāng)前的操作系統(tǒng)層,并負責(zé)調(diào)用相關(guān)的句柄來進行處理。
b.Linux ACPI服務(wù)OS 服務(wù)層:
ACPI OS 服務(wù)層(OSL)可以讓 ACPI 邏輯模塊在本地操作系統(tǒng)上運行。OS 服務(wù)層通過可在主機操作系統(tǒng)中使用的接口,設(shè)備驅(qū)動程序,將從 ACP 核心的服務(wù)轉(zhuǎn)換成本地操作系統(tǒng)的訪問和調(diào)用;而操作系統(tǒng)層通過 OSL 向 ACPI 核心層發(fā)出呼叫;OSL 層對 ACPI 核心層實現(xiàn)了一系列完成操作系統(tǒng)獨立功能的標(biāo)準(zhǔn)接口(例如存儲分配和硬件訪問)。 OSL 的組成模塊介紹:
1.OS 引導(dǎo)服務(wù):
在 OS 載入過程中引導(dǎo)服務(wù)是一些初始化的功能,在大多數(shù)其它的操作系統(tǒng)初始化之前執(zhí)行。這些服務(wù)包括 ACPI 子系統(tǒng)的初始化。
2.設(shè)備驅(qū)動載入服務(wù):
對于出現(xiàn)在 ACPI 名字空間中的設(shè)備節(jié)點,操作系統(tǒng)必須有一個模塊用以探測到它們并載入驅(qū)動,讀入配置空間,設(shè)備驅(qū)動載入服務(wù)提供這項裝置。
3.操作系統(tǒng)運行服務(wù):
運行服務(wù)包括大部分 ACPI 系統(tǒng)和 OS 交互的外圍接口,用于當(dāng)前內(nèi)核的進程/線程操作,以及提供和當(dāng)前操作系統(tǒng)接口的互斥,信號,進程隊列,休眠,暫停等,以及事件日志及電源管理功能。
4.異步服務(wù)
異步功能包括中斷服務(wù)(系統(tǒng)控制中斷),事件處理和分配(既定事件,GPE 事件,通知事件和操作區(qū)訪問事件),以及錯誤處理。
文章轉(zhuǎn)載自網(wǎng)管網(wǎng):http://www.bitscn.com/plus/view.php?aid=7150
【編輯推薦】