找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 30284|回复: 5

UEFI S3 flow chart

[复制链接]
发表于 2008-5-10 13:05:43 | 显示全部楼层 |阅读模式
一:平台初始化的多个阶段:
- K' P4 {% t5 ]
(1) Pre-EFI Initialization (PEI)
) c2 f+ k0 }* G( T$ sPEI 负责尽可能的初始化平台为执行DXE 做准备,1 a* f% m+ ~0 F+ m3 b
(2) Driver Execution Environment (DXE)
2 u: X/ W0 l! c" \1 D在DXE 阶段可能会改变PEI 初始化的环境,有些参数会被DXE 重写。

! P+ r+ U8 ^+ L7 S4 T# [3 @& `8 X, u& V( T
二:平台初始化的流程:2 u- T" q2 `( ?4 i) B
(1) I/O 操作0 i% N1 N" l7 K% v" v4 ]
(2) 内存操作2 `9 P* o0 [1 F
(3) 配置PCI 配置空间3 q2 s6 y# Z7 E( l; N; f- A
(4) 通过PPIs 收集平台的动作。
. E% b% X' C* Q6 n' `
! k  u; T; {' f1 a+ H3 m
三:恢复平台状态:
+ G& O$ S- M3 m  Y# T! e- u9 _
S3 返回是加载平台的Preboot 配置,加载的过程需要通过所有的Framework 初始化,因为* Z) c9 ~1 ]" R" [4 _
Framework 不知道以下信息, C: W/ K9 w/ ]5 T, N7 o* v
* PEIMs 提供的Preboot 配置
, [) `+ U; |& @+ A/ P  A+ v 不同厂商提供的驱动最后Framework 还是需要像正常启动一下执行一次,执行流程" K. h! @; O) \  k, p. y
如下:$ ?) M! ]- c& @* Q7 R
1.GIF 6 i3 N. ~# M& M5 u6 P0 e: n7 G

$ T" C$ w! L$ n2 Y! A7 k: Q8 G/ f/ u7 B' M% {
四:S3 恢复阶段的执行流程:1 g- s- |% L+ L* I
SEC 是第一个被Framework 执行的,因此SEC 保存了S3 返回时的启动路径6 |" O: h$ s1 \+ q
1:PEI 和S3 返回的路径:
1 w" y$ i2 [3 L( X- a. o1 AS3 返回时Framework 将加载PEI 的端口配置。PEIM 可能调用相应的PEI 服务找出正8 }( v& f2 J; P8 x, ~/ a6 x6 h
确的启动路径。PEIM 会保存配置正常的启动过程,并且利用来配置S3 的返回路' Q' p4 l! H: ]: H. _, P* H7 m" k
径。
' {& V0 ^0 X& c$ Y* ^ 2.GIF 7 B) d) Y5 l9 A( |# O8 p: _
2:在PEI 过程中保存配置数据
5 }- p$ ]7 i9 o有很多种方法来保存配置数据,如firmware volume 变量,nonvolatile storage (NVS)
' f- D# Y+ d/ G3: DXE 和S3 返回启动路径
. t6 v* ~4 J7 F1 E8 P& r! B在DXE 阶段,有多种DXE 可以使平台到Preboot 阶段。让DXE 进入S3 返回启动路径
7 r* n* t3 j' E( s8 u+ k& J  [$ \使DXE 驱动存在一定风险,原因如下:
* DXE 启动有很多服务,这使它变的很庞大
6 g/ X# A/ a0 X0 X' P" m7 P* 加载DXE 从flash 空间需要一定的时间。
如果DXE 在启动过程中能在NVS 中保存,那么DXE 需要的大量内存和复杂的9 V7 ^. ]0 \/ n9 B0 B8 I! N7 Y
DXE 启动过程就不需要执行。
  ?* ?7 m5 m5 c8 J- ?& lFramework 提供一个boot script 让S3 返回时获得DXE 的所有信息。这些信息是在) N, A) F4 c6 {  O
DXE 驱动正常启动过程中保存在平台的NVS 中形成的。在S3 启动过程中到NVS 中查
6 Y2 }2 d# S+ ?9 T: n找boot script,2 ]$ V8 T+ j; j- @. j1 a
找到后加载这些配置。
* ACPI 要求BIOS 加载chipset 和CPU 的配置信息
6 C, U/ G6 \# i) c) K! t& A( c% M* Chipset 的配置包括:memory,I/O 和PCI 的配置。这些信息是在DXE 启动过程! u) R  ^) O- G9 A2 }& G
中保存下来的。6 y8 A( t- q6 {+ \$ ~* L. ~8 t. s
* CPU 的配置包括:SMM,Microcode updates, Processor-specific initialization,
  m) i0 q* z8 ]8 D7 z/ I$ kProcessor chache setting.
4: Framework Boot Script:/ x' s3 U, Q- t- Y9 f. m
Framework boot script 是一个script 用来描述一些常用的初始化平台操作。如I/O,
! s' P& x  K( E  @  ]memory, PCI 和SMBus。
3 u- e5 W, l$ ?可能有多个boot script tables 在某些平台,这些table 描述了如何成功让平台进入/ E  l/ p" h, O( X0 h
Preboot 状态。+ C& r6 `! _) O/ u" p( B
5:S3 返回PPI 和DXE IPL PPI
1 f2 U) A3 Q" a: f- n* {DXE IPL PPI 是最后一个被执行的PPI 在PEI 阶段,将提供正确的启动路径给
5 U' g0 `# g/ ]% M# P7 x0 x" ~Framework。因此,DXE IPL PPI 将初始化CPU 和Preboot 平台,最后跳到OS 的" [9 e, w1 z& ~  @9 e1 B
呼醒向量处。在正常启动时DXE 是不会执行他的。/ u* L( q5 A8 p! O$ b: k& V" O' O
在S3 返回时,DXE IPL PPI 将会定位S3 Resume PPI.如果被找到,DXE IPL PPI 将会把* w* M' F# |7 _- N0 d6 p1 p; W6 q  ]
控制权交给S3 Resume PPI. S3 Resume PPI 将会执行一此配置让平台进入Preboot$ v. k0 v* \+ f; L
state.7 S# `0 \0 x; T2 i
S3 Resume PPI 必须执行Framework boot Script table 来加载平台配置。它负责找到OS
8 g2 m; k8 m' Uwaking vector 并且将控制权交给OS 来完成S3 返回。: u4 b/ O5 d  q6 |
在整个过程中,只有内存是S3 启动可以使用的。任何内存使用会扰乱系统的context(国0 s, Q9 }  T& D8 p. }: a1 N: w: }% C
入喜欢叫他为 上下文 ),使S3 失败。
# S) d' O& [) I0 r! c' {9 oS3 Resume PPI 需要知道如下情况:
; S2 }( [; W" T+ h8 I1 x4 L1 w
* 内存S3 boot Script Table 的地址或者firmware volume file 中S3 boot script table
: E0 |  C) _; i+ o/ z的地址。
5 b3 Y% m% ^3 b1 v2 x& W* RSDT 指针中ACPI 开始的地址和OS 的waking vector
  M: {7 `# ^& v# T9 P* E* 保留一段内存给S3 返回时使用。

/ M  Y' e( L& U" X 3.GIF
发表于 2008-5-10 14:48:27 | 显示全部楼层
图好象看不见,是我的级别不够吗??
回复

使用道具 举报

 楼主| 发表于 2008-5-10 23:13:21 | 显示全部楼层
看这个文档吧!好象图片在上面不能显示还是怎么了。

S3 Resume in UEFI.rar

127.25 KB, 下载次数: 1488

回复

使用道具 举报

发表于 2010-10-9 09:10:15 | 显示全部楼层
讲解的还算详细  初学者 学习了 哈
回复

使用道具 举报

发表于 2010-10-15 16:07:46 | 显示全部楼层
Good,期待下一期。
回复

使用道具 举报

发表于 2010-11-8 10:06:35 | 显示全部楼层
支持,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2026-4-24 22:38 , Processed in 0.043714 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表