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

UEFI S3 flow chart

[复制链接]
发表于 2008-5-10 13:05:43 | 显示全部楼层 |阅读模式
一:平台初始化的多个阶段:# V$ I0 R. Q5 t
(1) Pre-EFI Initialization (PEI)4 ~, C9 d( O# C
PEI 负责尽可能的初始化平台为执行DXE 做准备,, Y6 y3 p: ^" q1 l( V7 a' f
(2) Driver Execution Environment (DXE)
+ {" ?0 j5 L; N  s6 g# t* |在DXE 阶段可能会改变PEI 初始化的环境,有些参数会被DXE 重写。

9 [: v8 c1 P+ \- \& |1 A* \
; e# T$ W; i2 \; a. L/ ^7 u二:平台初始化的流程:
1 P% y7 E3 W- E
(1) I/O 操作
2 l& _" S8 r! d  ?5 ^0 i: k* K6 Q(2) 内存操作3 `1 {6 m8 ]. u% U; o
(3) 配置PCI 配置空间4 @/ @9 c. C' B
(4) 通过PPIs 收集平台的动作。

2 z2 _* k+ k/ o; r: H2 @: X. R8 r, R+ i
三:恢复平台状态:( L6 H# E; h" D% j  D+ s* q
S3 返回是加载平台的Preboot 配置,加载的过程需要通过所有的Framework 初始化,因为
. T8 r  m6 r  r6 G" s8 uFramework 不知道以下信息
% N3 T, \4 t' A. G: I4 P2 z* PEIMs 提供的Preboot 配置
, J" W9 n' V: A* C9 \ 不同厂商提供的驱动最后Framework 还是需要像正常启动一下执行一次,执行流程
8 D& y3 w! H0 @: d' q: p- k$ \如下:5 H# \1 j0 U( S, r3 d+ Z" x
1.GIF
, m" y$ Q. E4 R- o* Z7 P" L2 x. k- x6 @! J% G: y' y7 c# Z

" O5 r& b  M9 B9 E+ V3 u四:S3 恢复阶段的执行流程:
" p" X+ o1 M# J( H
SEC 是第一个被Framework 执行的,因此SEC 保存了S3 返回时的启动路径
; y5 Z3 Y/ {: _7 M2 G% J. f- G1:PEI 和S3 返回的路径:
* m( F* e# F/ o; K4 kS3 返回时Framework 将加载PEI 的端口配置。PEIM 可能调用相应的PEI 服务找出正
6 v/ v/ {; m& C2 I. p5 ]; r+ K9 }% @" }确的启动路径。PEIM 会保存配置正常的启动过程,并且利用来配置S3 的返回路
- j5 K) B5 P6 q5 d" o径。
6 e0 r; C) e) w) s" A/ S$ F+ }  c 2.GIF 6 M8 `! R) R% x
2:在PEI 过程中保存配置数据
9 E; ]1 S5 S: v4 G2 u- V. s2 ?有很多种方法来保存配置数据,如firmware volume 变量,nonvolatile storage (NVS)7 i4 l$ C* p! O' U* t+ c
3: DXE 和S3 返回启动路径
5 }$ j% m7 O4 p0 b  x( d5 L在DXE 阶段,有多种DXE 可以使平台到Preboot 阶段。让DXE 进入S3 返回启动路径6 s" N. q2 X3 [, `8 I0 ]8 q
使DXE 驱动存在一定风险,原因如下:
* DXE 启动有很多服务,这使它变的很庞大8 Q7 R/ h0 _2 l6 {
* 加载DXE 从flash 空间需要一定的时间。
如果DXE 在启动过程中能在NVS 中保存,那么DXE 需要的大量内存和复杂的
/ ~$ Q6 b# F3 i' u) L4 N* }4 ]DXE 启动过程就不需要执行。  e; F1 s9 i3 _0 h6 T
Framework 提供一个boot script 让S3 返回时获得DXE 的所有信息。这些信息是在4 e' F* m' j! E; H! K3 h) W
DXE 驱动正常启动过程中保存在平台的NVS 中形成的。在S3 启动过程中到NVS 中查
% [) ?% w9 d' s5 M7 \! `找boot script,8 o2 Y- L+ j" v4 `
找到后加载这些配置。
* ACPI 要求BIOS 加载chipset 和CPU 的配置信息/ a2 x3 ^  w! b: X, d* p
* Chipset 的配置包括:memory,I/O 和PCI 的配置。这些信息是在DXE 启动过程
# I# z- P! |1 N. h' f2 c/ W) P* {! w中保存下来的。
" d" P% r/ A; j5 a' J! J( g* CPU 的配置包括:SMM,Microcode updates, Processor-specific initialization,  @/ i. X" r7 K5 r' N' r( k
Processor chache setting.
4: Framework Boot Script:; y- a- c, V, ?
Framework boot script 是一个script 用来描述一些常用的初始化平台操作。如I/O,
" E! D5 m9 ^$ P! E* I8 m, h, qmemory, PCI 和SMBus。4 {6 L, O8 e+ t( b* k
可能有多个boot script tables 在某些平台,这些table 描述了如何成功让平台进入6 h; K: C/ J3 u8 A
Preboot 状态。
1 o9 n- o8 g4 t) R* c5:S3 返回PPI 和DXE IPL PPI
" ]+ v- x9 T* t- `* S  q+ h6 CDXE IPL PPI 是最后一个被执行的PPI 在PEI 阶段,将提供正确的启动路径给
# V1 r% J  U* C1 S( |8 rFramework。因此,DXE IPL PPI 将初始化CPU 和Preboot 平台,最后跳到OS 的3 L! l- a3 z9 I* z& C
呼醒向量处。在正常启动时DXE 是不会执行他的。8 ^. M8 ^6 ]% L; }/ B
在S3 返回时,DXE IPL PPI 将会定位S3 Resume PPI.如果被找到,DXE IPL PPI 将会把
: r0 H& m5 p3 r' p$ }$ i9 o控制权交给S3 Resume PPI. S3 Resume PPI 将会执行一此配置让平台进入Preboot$ B% w8 D8 [5 S: I# i. _
state.
; ]9 X3 f  B3 kS3 Resume PPI 必须执行Framework boot Script table 来加载平台配置。它负责找到OS- n' o1 l/ v- G* s6 B! H+ {
waking vector 并且将控制权交给OS 来完成S3 返回。
) z! k- a$ L/ A, ?9 o在整个过程中,只有内存是S3 启动可以使用的。任何内存使用会扰乱系统的context(国
. g* M9 r7 V! A( E, Z入喜欢叫他为 上下文 ),使S3 失败。4 Z% N# Q+ I6 ?1 Y5 ^4 m# `
S3 Resume PPI 需要知道如下情况:: |  o3 p. H! I( U7 d
* 内存S3 boot Script Table 的地址或者firmware volume file 中S3 boot script table
: j& f$ q. h# \9 g' E的地址。
3 Y5 f5 x( q, V  J( g: ~* K* RSDT 指针中ACPI 开始的地址和OS 的waking vector
* k5 B2 k0 |2 p6 o: E7 m% L  Q1 Q* 保留一段内存给S3 返回时使用。
1 c5 F2 n/ h7 V8 z, C$ p
3.GIF
发表于 2008-5-10 14:48:27 | 显示全部楼层
图好象看不见,是我的级别不够吗??
回复

使用道具 举报

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

S3 Resume in UEFI.rar

127.25 KB, 下载次数: 1373

回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-15 05:37 , Processed in 0.310311 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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