05_DXE_Phase

来源:互联网 发布:黑马程序员 达内 编辑:程序博客网 时间:2024/06/08 16:02

转自: http://blog.yam.com/wttmama/article/33762726

這次要說的是 Dxe Phase 了。

這部份說真的,也花了我不少時間看。
主要還是在於瞭解它的思路和架構。


又要套用這張圖了。
看看上圖的 DXE 在做啥…
Intrinsic Service … ( 應該是 Dxe Foudation )
再來還是一樣,Dispatch ,Dispatch Device , Bus or Service Driver。
然後進入 Boot Manager ( BDS Phase )

這張圖真的很好用吧?mm…
接下來導入正題…
從 PEI -> DXE 到底做了什麼事,DXE 本身又做了什麼事呢。
一樣,看圖吧,如下圖
這一張,真的是好圖,它表現了很多事。
1. PEI 會留下 Hob 給 Dxe Foundation 使用( 圖有 ,也可以看 PEI Phase 說明 )
2. Hob 本身含有重要的 Information ,一樣如圖
3. Dxe Foudation 和 Dxe Drivers 透過 Achitecture Protocols 和 Motherboard 溝通( 其就是指硬體的意思 )

 
換句話說~ Dxe Foudation 其實是 Depend on Hob 的。這很重要,這樣才能安排 Resource。
而 Dxe Foudation 到底有什麼東西,之前其實大概有說過,會建立 System Table 
而 System Table 有什麼東西呢?如下圖所示

 a. Boot Service Table 
 b. Runtime Service Table
 c. Configuration Table
 d. Active Consoles

其中,最重要的,其實就是 Boot Services, Runtime Services ,及可以透過 Boot Serivices Access的Handle Database 。

1. Boot Services
可以看到它含有很多 Service ,其中 之前提到過的 Event , Timer  , Image Serives
還有,Memory Service。都是寫 Dxe Driver 不可或缺的 Services 。

2. Runtime Services 
其中最重要的應該就是 Variable Serives 用來存 non-Valitile Data。

3. Dxe 必須含有的 Dispatch Services。
還有其它拉里拉喳…

有一張圖,其實有大概含入 Foudation 需要啥,如下所示,其實剛好就是System Table藍底的部份

還有一張圖,也算是蠻經典的

暗紅色,其實就是 System Table 可連到的 Architecture Protocols 。

而比較特別的是 Configuration Table ( 看 System Table 那張圖 )
其實是可以放自己喜歡的東西,是可擴充的。還不錯,目前是沒塞啥,但是~如果你有擴充需求
是可以放 reference 在這裡的。

整個 Dxe Phase 花了不少 code 在 Initialize 。
然後會進入 Dispatch 。

Dispatch 在 Dxe Phase 就很講究了,這又要看 PI Spec 了,裡面有張圖如下
一個 Dxe Driver 它的週期就是這樣,特別的是它的 Dependence 是用 recursive 來做的。
這裡的 Dxe Driver 也是要從 FV 找。
但這裡的 Firmware file 是有壓縮的。( Foudation 有提供解壓縮 )
當 Dispatch 完畢後,就會把 Boot Manager 這個 Dxe Driver 拉出來進入 BDS

其實做的大項目事情和 PEI 很像, Initialize , Dispatch , next Step 。
但它很聰明的分開了,以責任的方式分開了。

而這一段的目的是什麼?別忘了,看圖
應該有 fu 吧?

目前談到的是 Dxe Phase 在 Framwork 中,做了什麼。
但很多事沒談到,這裡稍為寫一下…

1. EFI Driver Model
 1.1 Device Driver
 1.2 Bus Driver
 1.3 Device Path 的說明
 1.4 Driver Binding Protocol 。

2. 這一階段的 Driver 都在做啥?
 這其實就是接下來要研究的東西,每一個 Driver 都是一個課題。 
 
3. 重要的 Dxe Serivce 

4. BDS 其實還是在 Dxe Phase 裡,但它是 DXE 的最後一部份了。

5. SMM Mode, SMI

6. CSM 

7. ACPI
原创粉丝点击