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

UEFI S3 flow chart

[复制链接]
发表于 2008-5-10 13:05:43 | 显示全部楼层 |阅读模式
一:平台初始化的多个阶段:
  P3 J$ d% }% B  B9 Z  r% W
(1) Pre-EFI Initialization (PEI)
, k4 S2 C3 S1 F0 NPEI 负责尽可能的初始化平台为执行DXE 做准备,4 O8 \& e  K/ r& P
(2) Driver Execution Environment (DXE)
+ i# R- c5 g, b& U, s. ~( Z在DXE 阶段可能会改变PEI 初始化的环境,有些参数会被DXE 重写。

+ p0 h3 H: u0 i4 ]: u' `( C, Q8 I/ ?( S; [+ }( A: G0 a
二:平台初始化的流程:
; ^. {# q% u- k6 J' e
(1) I/O 操作# q' ]7 F; _/ S
(2) 内存操作
' @8 m3 L5 ]. V+ l# x(3) 配置PCI 配置空间: e) B- I8 g* D$ N) d% k: a$ a+ O
(4) 通过PPIs 收集平台的动作。
, b, c2 {6 X- I& C* _

1 g- W& E- U0 E3 k三:恢复平台状态:/ b7 V( O# E8 `. a" |7 u7 d
S3 返回是加载平台的Preboot 配置,加载的过程需要通过所有的Framework 初始化,因为
; N" F; a* m# x' M, i1 O# nFramework 不知道以下信息
* X; P+ u; G  G- U6 Q* PEIMs 提供的Preboot 配置
& `6 S2 y: G/ |' O' x! l 不同厂商提供的驱动最后Framework 还是需要像正常启动一下执行一次,执行流程
/ E- p4 ^3 D" e0 Z0 Y如下:/ A( G% A  z9 ]' K# Q1 \1 r! \
1.GIF
0 z) d% c5 j; h9 r% h. x( ?
3 I; m9 F6 f+ v  b8 Y0 D) w- }$ M0 e) K; V4 q$ Q1 m
四:S3 恢复阶段的执行流程:; b4 u# T- F5 @, V, H
SEC 是第一个被Framework 执行的,因此SEC 保存了S3 返回时的启动路径5 c3 ?# L1 t. D0 }) F( J) ^
1:PEI 和S3 返回的路径:8 a/ {/ v  e: m
S3 返回时Framework 将加载PEI 的端口配置。PEIM 可能调用相应的PEI 服务找出正( q( b" o" W; ^  G. M
确的启动路径。PEIM 会保存配置正常的启动过程,并且利用来配置S3 的返回路' d) i( H8 E3 K/ f7 U% J
径。
1 i4 O5 ^3 A5 c* e. I 2.GIF 1 t* U7 J# F( n3 B. |: i
2:在PEI 过程中保存配置数据
4 S4 p  k% f! m7 \: u有很多种方法来保存配置数据,如firmware volume 变量,nonvolatile storage (NVS)
! D" R0 H/ |6 `& W- c3: DXE 和S3 返回启动路径
# i- i" M, C8 h/ Z$ G, ]. `在DXE 阶段,有多种DXE 可以使平台到Preboot 阶段。让DXE 进入S3 返回启动路径
1 l" t2 y9 N6 K使DXE 驱动存在一定风险,原因如下:
* DXE 启动有很多服务,这使它变的很庞大
5 `0 {$ Z! v$ x* 加载DXE 从flash 空间需要一定的时间。
如果DXE 在启动过程中能在NVS 中保存,那么DXE 需要的大量内存和复杂的2 g2 ?0 O# `' L' |9 n
DXE 启动过程就不需要执行。
# u$ ~5 E, m' }Framework 提供一个boot script 让S3 返回时获得DXE 的所有信息。这些信息是在
8 B# K3 C. S* k$ tDXE 驱动正常启动过程中保存在平台的NVS 中形成的。在S3 启动过程中到NVS 中查
/ Y/ q. a6 c' }. p  l找boot script,
' F/ s1 b& I& i  F找到后加载这些配置。
* ACPI 要求BIOS 加载chipset 和CPU 的配置信息1 K5 Y! ?/ b1 t: E5 d
* Chipset 的配置包括:memory,I/O 和PCI 的配置。这些信息是在DXE 启动过程
% J6 t( V0 I  C/ w中保存下来的。8 s7 [) N: p# a4 F
* CPU 的配置包括:SMM,Microcode updates, Processor-specific initialization,
% q% P' I0 L1 P1 kProcessor chache setting.
4: Framework Boot Script:2 E0 V; @- q' w% L1 M/ Y
Framework boot script 是一个script 用来描述一些常用的初始化平台操作。如I/O,
; r' r$ T2 T3 e6 G9 s5 |+ _& hmemory, PCI 和SMBus。7 k5 g- [& D& I% ?+ M# R
可能有多个boot script tables 在某些平台,这些table 描述了如何成功让平台进入9 \' D: c) E8 ~3 |1 U: ?' H" M1 n4 r
Preboot 状态。1 k9 a, c* t# V, x/ k) _
5:S3 返回PPI 和DXE IPL PPI. ^, A* G' I2 r& ~
DXE IPL PPI 是最后一个被执行的PPI 在PEI 阶段,将提供正确的启动路径给( w$ W1 j( {6 }( ]1 c! E
Framework。因此,DXE IPL PPI 将初始化CPU 和Preboot 平台,最后跳到OS 的* y2 _2 V1 y' N4 U) x+ s0 t) _
呼醒向量处。在正常启动时DXE 是不会执行他的。3 \+ `! M" `+ ~6 Y. U' V9 w
在S3 返回时,DXE IPL PPI 将会定位S3 Resume PPI.如果被找到,DXE IPL PPI 将会把2 p: e6 s" u; H; U" Q! @
控制权交给S3 Resume PPI. S3 Resume PPI 将会执行一此配置让平台进入Preboot% M. K) W3 ?- j1 y  m6 X8 _
state.
( H9 H) x  u. {, {4 L5 ^S3 Resume PPI 必须执行Framework boot Script table 来加载平台配置。它负责找到OS0 t# {' n, |7 l9 N' f
waking vector 并且将控制权交给OS 来完成S3 返回。; {) K7 k0 F' _* X
在整个过程中,只有内存是S3 启动可以使用的。任何内存使用会扰乱系统的context(国
( h, |4 D: Q% x. [! w/ ^入喜欢叫他为 上下文 ),使S3 失败。2 Y! [9 x; C) b) Q+ o
S3 Resume PPI 需要知道如下情况:
  v2 a: x3 S; n3 @! `
* 内存S3 boot Script Table 的地址或者firmware volume file 中S3 boot script table6 ^! n' u! Y9 o" ]
的地址。
+ G$ W3 H/ i1 F. c& Z$ w, h* RSDT 指针中ACPI 开始的地址和OS 的waking vector
' G$ f$ B' H9 C4 c! {* 保留一段内存给S3 返回时使用。

8 b) p8 ?$ v$ q" U* r# l 3.GIF
发表于 2008-5-10 14:48:27 | 显示全部楼层
图好象看不见,是我的级别不够吗??
回复

使用道具 举报

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

S3 Resume in UEFI.rar

127.25 KB, 下载次数: 1584

回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-11-1 19:32 , Processed in 0.573860 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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