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

UEFI S3 flow chart

[复制链接]
发表于 2008-5-10 13:05:43 | 显示全部楼层 |阅读模式
一:平台初始化的多个阶段:. h$ b$ g9 y! `8 X3 L
(1) Pre-EFI Initialization (PEI); ]+ M0 Y" S! r& \' m$ @
PEI 负责尽可能的初始化平台为执行DXE 做准备,
' Y% W1 Z& b- }4 u5 y(2) Driver Execution Environment (DXE), D$ X* H5 J- w/ W# T* R8 P% T5 g
在DXE 阶段可能会改变PEI 初始化的环境,有些参数会被DXE 重写。

# R6 x3 \) \7 ^8 y# p2 e8 ?/ p6 N# ]# I3 _
二:平台初始化的流程:
0 S9 K' }2 Z# }5 @' s, d
(1) I/O 操作
9 `8 q6 v7 s- v5 ?+ i(2) 内存操作; g/ Z9 v  X( `5 T
(3) 配置PCI 配置空间
$ g% K7 f; f1 y; A% m4 F(4) 通过PPIs 收集平台的动作。
; \8 G) E# W- Y0 V5 `

+ K, O/ [, E$ h9 E  Z$ T, l9 G/ m. s三:恢复平台状态:8 d, {% C) J6 O5 ]6 \3 }/ D
S3 返回是加载平台的Preboot 配置,加载的过程需要通过所有的Framework 初始化,因为
2 R4 _$ w, `5 w8 o$ ]5 _" xFramework 不知道以下信息% k& }& a) r( e6 Q* O- y
* PEIMs 提供的Preboot 配置
8 `4 ?8 z/ V! i, L 不同厂商提供的驱动最后Framework 还是需要像正常启动一下执行一次,执行流程' F& [# U2 L, t1 n# ?: [9 \$ d$ g% D
如下:  ?/ Z- P2 i* O+ b6 \) }! I: B
1.GIF
) C& R; a" k: i, _- z  q0 v2 E- B- W: k. d2 Z5 a! [4 ~
9 g+ W7 E, w8 c. K  d
四:S3 恢复阶段的执行流程:: C  g0 _  M& S5 t
SEC 是第一个被Framework 执行的,因此SEC 保存了S3 返回时的启动路径
" @$ s+ W& G, n" R/ d$ ~, X/ M1:PEI 和S3 返回的路径:2 y0 s3 e$ p: x% @" s0 K0 M
S3 返回时Framework 将加载PEI 的端口配置。PEIM 可能调用相应的PEI 服务找出正
' K7 x4 E" m* ^# }# O- L确的启动路径。PEIM 会保存配置正常的启动过程,并且利用来配置S3 的返回路' }; c. N8 u! `
径。7 O/ M& m8 S7 H/ S
2.GIF
8 e2 T* }! A% x$ M& H1 ?2:在PEI 过程中保存配置数据* K# k* e- d: @3 _9 F6 K! X9 Q
有很多种方法来保存配置数据,如firmware volume 变量,nonvolatile storage (NVS)! K- Y* a' x  U% B
3: DXE 和S3 返回启动路径! N, E! J( [& B  a
在DXE 阶段,有多种DXE 可以使平台到Preboot 阶段。让DXE 进入S3 返回启动路径  Y: k6 O4 x: B4 K& G* w7 X  t+ V, A6 C
使DXE 驱动存在一定风险,原因如下:
* DXE 启动有很多服务,这使它变的很庞大  v5 ^/ `9 e6 ~9 i, U( [& j
* 加载DXE 从flash 空间需要一定的时间。
如果DXE 在启动过程中能在NVS 中保存,那么DXE 需要的大量内存和复杂的" }; L8 I; v3 q. E& i5 Y1 z& Z; d, Y
DXE 启动过程就不需要执行。
" i/ `, B1 O1 \$ G' }Framework 提供一个boot script 让S3 返回时获得DXE 的所有信息。这些信息是在2 ?0 p$ {  i; M7 ^2 m/ }. n( A
DXE 驱动正常启动过程中保存在平台的NVS 中形成的。在S3 启动过程中到NVS 中查7 w7 V* K6 n: l
找boot script,$ q* u6 ~  {; t
找到后加载这些配置。
* ACPI 要求BIOS 加载chipset 和CPU 的配置信息5 c- R6 R9 g, D& p0 j6 N
* Chipset 的配置包括:memory,I/O 和PCI 的配置。这些信息是在DXE 启动过程" t+ m' p4 f, Y  y( x' ]; X
中保存下来的。
: w  ?1 b, Q7 v# Z: O8 _- G* CPU 的配置包括:SMM,Microcode updates, Processor-specific initialization,
; s' P8 z; s, X0 j# a5 `8 |& ?, RProcessor chache setting.
4: Framework Boot Script:! s$ m1 F! n1 H
Framework boot script 是一个script 用来描述一些常用的初始化平台操作。如I/O,. B9 Z  a. B( z# S  o7 k' z
memory, PCI 和SMBus。
9 c" c& E- M% r, G: K2 O, {1 z: h可能有多个boot script tables 在某些平台,这些table 描述了如何成功让平台进入! s6 U* w1 A, Y3 G; _% m) [8 s: o
Preboot 状态。
. ], N# X5 P# }5:S3 返回PPI 和DXE IPL PPI! H+ q. U9 h  y$ f% w, m
DXE IPL PPI 是最后一个被执行的PPI 在PEI 阶段,将提供正确的启动路径给9 ^" t. S( n, M- n4 I
Framework。因此,DXE IPL PPI 将初始化CPU 和Preboot 平台,最后跳到OS 的
& B6 H7 V+ B. ?1 @5 W% M" ^$ L呼醒向量处。在正常启动时DXE 是不会执行他的。; `: F" y  H( s
在S3 返回时,DXE IPL PPI 将会定位S3 Resume PPI.如果被找到,DXE IPL PPI 将会把, i* H. l) i' Y) s' L) v  _# M
控制权交给S3 Resume PPI. S3 Resume PPI 将会执行一此配置让平台进入Preboot( v( g% l5 s+ I2 O: c6 o/ s9 T
state.1 {( B2 Q. \1 M- E1 z* b  c
S3 Resume PPI 必须执行Framework boot Script table 来加载平台配置。它负责找到OS
+ A3 V" S8 z5 L  V1 p: hwaking vector 并且将控制权交给OS 来完成S3 返回。/ u* R" @4 {1 i9 \) A. @0 Z
在整个过程中,只有内存是S3 启动可以使用的。任何内存使用会扰乱系统的context(国
/ a) `! P5 {$ \, A( D7 K- n, f入喜欢叫他为 上下文 ),使S3 失败。
9 C4 ^( @9 j$ k3 WS3 Resume PPI 需要知道如下情况:
# x7 p$ G3 u3 N4 U( E7 R
* 内存S3 boot Script Table 的地址或者firmware volume file 中S3 boot script table
2 T' A. F2 K% l  e的地址。
# a8 N$ Y* @5 P9 ^  j0 E1 B$ b* RSDT 指针中ACPI 开始的地址和OS 的waking vector- \! K4 N7 A9 n2 `9 o5 E
* 保留一段内存给S3 返回时使用。

# s* Q5 @8 f0 }( y+ ^) ^ 3.GIF
发表于 2008-5-10 14:48:27 | 显示全部楼层
图好象看不见,是我的级别不够吗??
回复

使用道具 举报

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

S3 Resume in UEFI.rar

127.25 KB, 下载次数: 998

回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-13 07:05 , Processed in 0.046427 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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