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

UEFI S3 flow chart

[复制链接]
发表于 2008-5-10 13:05:43 | 显示全部楼层 |阅读模式
一:平台初始化的多个阶段:
4 _% n) u% e2 @1 }+ l7 B8 a: A
(1) Pre-EFI Initialization (PEI)
1 @- c# n+ D  t: P. M2 lPEI 负责尽可能的初始化平台为执行DXE 做准备,
& u/ S6 A2 _2 X7 f$ j' n, H(2) Driver Execution Environment (DXE)! L' j- H! v, j  T- v
在DXE 阶段可能会改变PEI 初始化的环境,有些参数会被DXE 重写。
7 v" D, e7 w) f# s9 E

4 Y2 E6 d9 c3 R) X2 G* z% Z* M' }二:平台初始化的流程:
% L1 T% {/ w: U; _
(1) I/O 操作- S9 \9 T1 C, K8 C3 H7 q
(2) 内存操作* z/ ]+ L4 e+ @+ }$ q
(3) 配置PCI 配置空间
0 j- ~) |2 n3 [  e6 I% o(4) 通过PPIs 收集平台的动作。
: g# L0 s% u4 [( J0 h7 K

, r# c/ ]. r. o4 U: Q三:恢复平台状态:
; Q9 Y0 ~% B" ~# e8 z: I; b9 y
S3 返回是加载平台的Preboot 配置,加载的过程需要通过所有的Framework 初始化,因为
. @) Q# a/ ~# ?: I' R# [4 }" i5 p7 FFramework 不知道以下信息0 O, G5 l0 ^, y' x, X( K
* PEIMs 提供的Preboot 配置
8 e0 t, }$ ^3 d8 t: n 不同厂商提供的驱动最后Framework 还是需要像正常启动一下执行一次,执行流程/ |  M0 `9 I# X8 ^5 s* }
如下:
0 a3 Z' b3 a) J/ ~0 D 1.GIF 4 g5 X' y/ @0 r, A+ {
$ f# M( T  E5 x$ p7 V1 ~) ]; p

$ C8 L% W, L. q7 l/ g4 z- D0 Q, g四:S3 恢复阶段的执行流程:! \; p$ ]4 Z. v
SEC 是第一个被Framework 执行的,因此SEC 保存了S3 返回时的启动路径
0 X/ u: W, j9 H' E. h, a- k2 k1:PEI 和S3 返回的路径:8 P5 A( C" }0 X4 N
S3 返回时Framework 将加载PEI 的端口配置。PEIM 可能调用相应的PEI 服务找出正
( [' L( I9 R% N( {确的启动路径。PEIM 会保存配置正常的启动过程,并且利用来配置S3 的返回路
7 U2 A& ~8 W# I" A% N% v径。
$ H0 Q) S. ~: `, V: h0 c" s9 V8 | 2.GIF 1 N. f5 ?6 Z# i# G  f9 C- H
2:在PEI 过程中保存配置数据3 H" o4 C, ^/ r! {
有很多种方法来保存配置数据,如firmware volume 变量,nonvolatile storage (NVS)( {5 c& I# U; E& u2 m* p* O
3: DXE 和S3 返回启动路径- x) ^' \# _) G/ X
在DXE 阶段,有多种DXE 可以使平台到Preboot 阶段。让DXE 进入S3 返回启动路径
0 i: _5 h( S' N5 C- @# s使DXE 驱动存在一定风险,原因如下:
* DXE 启动有很多服务,这使它变的很庞大
" H/ h% T0 G& g; P" C' O4 X* 加载DXE 从flash 空间需要一定的时间。
如果DXE 在启动过程中能在NVS 中保存,那么DXE 需要的大量内存和复杂的9 }3 y8 Q7 [2 e1 O
DXE 启动过程就不需要执行。
: J5 j% P5 L+ K. f1 |5 C- ~Framework 提供一个boot script 让S3 返回时获得DXE 的所有信息。这些信息是在
7 V8 x7 O2 x* h3 N9 X: H. Z0 U1 CDXE 驱动正常启动过程中保存在平台的NVS 中形成的。在S3 启动过程中到NVS 中查1 [' l  q3 K0 o! D0 M+ ~
找boot script,
9 b2 _# C, ]) ?4 O* e, x' x找到后加载这些配置。
* ACPI 要求BIOS 加载chipset 和CPU 的配置信息* P4 g7 M4 ?$ X4 f
* Chipset 的配置包括:memory,I/O 和PCI 的配置。这些信息是在DXE 启动过程
6 E0 t2 j8 S' t* J) @- @9 P中保存下来的。
: T+ y% I8 n2 h- M5 \& E* r$ Y6 a* CPU 的配置包括:SMM,Microcode updates, Processor-specific initialization,4 f, S+ K0 i) c% ?* k
Processor chache setting.
4: Framework Boot Script:3 T; a! x* a; X3 v. u
Framework boot script 是一个script 用来描述一些常用的初始化平台操作。如I/O,
9 Y( {' Q. K  Q, }4 l8 D6 c2 }memory, PCI 和SMBus。
$ l  Q  P* L5 l9 Y+ I' H可能有多个boot script tables 在某些平台,这些table 描述了如何成功让平台进入
; N3 u" B# j( W' Q1 g: ~- bPreboot 状态。+ `* U4 ~1 R- b+ `# z; X
5:S3 返回PPI 和DXE IPL PPI
' }7 _8 e6 r0 y! O" \+ A. iDXE IPL PPI 是最后一个被执行的PPI 在PEI 阶段,将提供正确的启动路径给
$ t6 C" ~! v2 ~Framework。因此,DXE IPL PPI 将初始化CPU 和Preboot 平台,最后跳到OS 的% K" V2 O( R! U" M
呼醒向量处。在正常启动时DXE 是不会执行他的。
- h8 l2 T  W6 v4 ^8 |2 G3 O" X2 c* C在S3 返回时,DXE IPL PPI 将会定位S3 Resume PPI.如果被找到,DXE IPL PPI 将会把
: K8 b6 e- u/ O控制权交给S3 Resume PPI. S3 Resume PPI 将会执行一此配置让平台进入Preboot
. G! }4 H# B' v! W6 p$ I3 b4 Wstate.
. e* [! @7 t: jS3 Resume PPI 必须执行Framework boot Script table 来加载平台配置。它负责找到OS# V" g5 f9 t9 P! b6 Q
waking vector 并且将控制权交给OS 来完成S3 返回。
$ b9 ]4 l  L8 R3 u, n! K6 T8 K, d在整个过程中,只有内存是S3 启动可以使用的。任何内存使用会扰乱系统的context(国
9 W+ [* \: r2 v- _7 L入喜欢叫他为 上下文 ),使S3 失败。# ?$ e+ e* J' O  |
S3 Resume PPI 需要知道如下情况:0 S$ v  ?" _  t8 x* c6 Q( x8 ]" u4 u
* 内存S3 boot Script Table 的地址或者firmware volume file 中S3 boot script table
8 o: r1 J$ {" T5 u# x的地址。
8 n9 i: t, f7 h1 o* RSDT 指针中ACPI 开始的地址和OS 的waking vector
6 _6 r% s# L* e: C* 保留一段内存给S3 返回时使用。
9 Q& f. h" ?/ `: W3 V
3.GIF
发表于 2008-5-10 14:48:27 | 显示全部楼层
图好象看不见,是我的级别不够吗??
回复

使用道具 举报

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

S3 Resume in UEFI.rar

127.25 KB, 下载次数: 1366

回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-5 12:49 , Processed in 0.082766 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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