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

UEFI S3 flow chart

[复制链接]
发表于 2008-5-10 13:05:43 | 显示全部楼层 |阅读模式
一:平台初始化的多个阶段:, p! _' O# j( E3 p
(1) Pre-EFI Initialization (PEI)7 _! y/ [$ N$ o; y7 t' R/ C
PEI 负责尽可能的初始化平台为执行DXE 做准备,
+ u" Y/ H. n; a7 w9 {(2) Driver Execution Environment (DXE)% ], @/ ~3 c; T& {( C2 p' A8 M  q
在DXE 阶段可能会改变PEI 初始化的环境,有些参数会被DXE 重写。
5 P1 K( {# K8 w& P' B* i+ X  q
1 z( P5 m: ~9 P- o  i* w) q
二:平台初始化的流程:
- c4 p& E2 S8 H0 e; V7 }
(1) I/O 操作8 t' C  r8 p$ i* {
(2) 内存操作
& o& ^+ R' v* F6 ]- O7 O/ o. p5 P(3) 配置PCI 配置空间+ ^; z) v7 q1 V7 S( N
(4) 通过PPIs 收集平台的动作。
; e3 Y6 v2 V) y5 b8 y7 f

/ ]) Q; n( O" Q/ y, s, {: [三:恢复平台状态:' o+ c7 j! g# c9 x. q" D1 V" w
S3 返回是加载平台的Preboot 配置,加载的过程需要通过所有的Framework 初始化,因为
" a" ]% x: P1 I6 UFramework 不知道以下信息* b6 q1 S9 J* X6 y) \
* PEIMs 提供的Preboot 配置7 C" f" I6 H1 e: ~1 f
 不同厂商提供的驱动最后Framework 还是需要像正常启动一下执行一次,执行流程% b( g& }2 p( h1 S+ [; F
如下:
5 F- x  s( k: t 1.GIF + M% `2 S4 K2 q2 d

" P# @, ]3 D% q" o4 x& P; H2 W9 z" e% N$ ]' f
四:S3 恢复阶段的执行流程:1 l- J; ?) b# e& L; z# I* B  w; r
SEC 是第一个被Framework 执行的,因此SEC 保存了S3 返回时的启动路径8 L1 I' Y: w$ n. Y  N
1:PEI 和S3 返回的路径:7 w0 Z% L1 `$ D" F
S3 返回时Framework 将加载PEI 的端口配置。PEIM 可能调用相应的PEI 服务找出正
9 d$ t1 Y4 o; x+ `确的启动路径。PEIM 会保存配置正常的启动过程,并且利用来配置S3 的返回路
- q# C9 u" @! z! a" h径。
% |; Z) G- z! i5 c 2.GIF $ l# S& W& E7 Y1 v& V* m' G. _
2:在PEI 过程中保存配置数据
% y3 L' }9 r* @3 h9 r有很多种方法来保存配置数据,如firmware volume 变量,nonvolatile storage (NVS)
" u* Q+ [8 U) R3: DXE 和S3 返回启动路径; u0 F! g& W- m/ {* K0 P
在DXE 阶段,有多种DXE 可以使平台到Preboot 阶段。让DXE 进入S3 返回启动路径" q0 C; t& R/ H2 U8 C+ x+ I
使DXE 驱动存在一定风险,原因如下:
* DXE 启动有很多服务,这使它变的很庞大
1 i5 E" G. W, D! w; _* 加载DXE 从flash 空间需要一定的时间。
如果DXE 在启动过程中能在NVS 中保存,那么DXE 需要的大量内存和复杂的/ d! h7 g: F( l- D" O1 i- j
DXE 启动过程就不需要执行。
' ^* I' }6 J6 C4 P8 S  ]' PFramework 提供一个boot script 让S3 返回时获得DXE 的所有信息。这些信息是在
+ Z9 i. l7 H% X1 H3 o" N* ZDXE 驱动正常启动过程中保存在平台的NVS 中形成的。在S3 启动过程中到NVS 中查+ A  h( k( v* v( ?2 N
找boot script,
+ ~+ k6 t$ R5 d3 a( L% b找到后加载这些配置。
* ACPI 要求BIOS 加载chipset 和CPU 的配置信息& w9 ?; m' O  r4 t* a, \" u
* Chipset 的配置包括:memory,I/O 和PCI 的配置。这些信息是在DXE 启动过程
; p! f6 N6 P& J0 ]3 s中保存下来的。0 ?9 H% D) ?; y6 N+ j; P
* CPU 的配置包括:SMM,Microcode updates, Processor-specific initialization,
; s* e1 Y7 c, L# ]% m: q- P! PProcessor chache setting.
4: Framework Boot Script:
+ `5 K9 _! S1 }" I6 p( HFramework boot script 是一个script 用来描述一些常用的初始化平台操作。如I/O,
5 m: v2 o& x1 Q& i) U( ]; Umemory, PCI 和SMBus。4 V! ?* Y# L/ N& r  y! `
可能有多个boot script tables 在某些平台,这些table 描述了如何成功让平台进入
! j+ g% p% w# SPreboot 状态。
/ D) _; R" n. w1 z4 O1 y* d5:S3 返回PPI 和DXE IPL PPI  ?2 X# ^- ^, r7 U: h3 _
DXE IPL PPI 是最后一个被执行的PPI 在PEI 阶段,将提供正确的启动路径给
1 b" e4 j* c. N! X* vFramework。因此,DXE IPL PPI 将初始化CPU 和Preboot 平台,最后跳到OS 的) b* u) g3 V( W! Y* d
呼醒向量处。在正常启动时DXE 是不会执行他的。
3 M  U& m$ y( R1 f0 Z. f# a在S3 返回时,DXE IPL PPI 将会定位S3 Resume PPI.如果被找到,DXE IPL PPI 将会把
( O0 ~1 z/ S+ n( b( u- w控制权交给S3 Resume PPI. S3 Resume PPI 将会执行一此配置让平台进入Preboot) A0 a7 m6 ]) C* H) I
state.9 Z  E# K* T2 [1 [+ J/ K0 r- G- P1 V
S3 Resume PPI 必须执行Framework boot Script table 来加载平台配置。它负责找到OS2 U6 p6 O2 B6 l' `! E6 L* A2 |
waking vector 并且将控制权交给OS 来完成S3 返回。, w0 E9 j/ q+ L% N6 U/ Y
在整个过程中,只有内存是S3 启动可以使用的。任何内存使用会扰乱系统的context(国( B4 p! R# H5 E0 _# Z2 K
入喜欢叫他为 上下文 ),使S3 失败。
- g2 h2 ?& b( k  {8 K& _S3 Resume PPI 需要知道如下情况:2 S( c' z8 T3 A; ~
* 内存S3 boot Script Table 的地址或者firmware volume file 中S3 boot script table6 ~1 u& P) C8 l. ?& p4 [' p
的地址。0 T# M9 y1 r& r# b+ P, E
* RSDT 指针中ACPI 开始的地址和OS 的waking vector
- o9 }+ z& k& _3 o0 Q% g* 保留一段内存给S3 返回时使用。

- W$ f3 F  s  ?( Z# p6 i7 U4 e, v0 n2 S 3.GIF
发表于 2008-5-10 14:48:27 | 显示全部楼层
图好象看不见,是我的级别不够吗??
回复

使用道具 举报

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

S3 Resume in UEFI.rar

127.25 KB, 下载次数: 1166

回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-18 17:48 , Processed in 0.103422 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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