|
|
|
Reset Control 2 j% A4 @# f% W. N: V$ \, k& {9 D
1.Reset Introduction& s0 v7 ]& F7 g( A9 A* S$ N1 b% w
' K H2 M0 W8 ]& c, S8 x
Reset机制是BIOS中一个很基本的动作,很多部分的操作往往需要做一下Reset然后才能正常工作。Reset如影随形无处不在,哪个功能不正常就Reset一下呗(玩笑而已:)),Reset在BIOS code中还真是挺多的,翻翻code就会找到像MRC初始化、ME设置、Setup的调整 、三键重启、BIOS Flash之后的Reset等等。虽说Reset是一个很简单的操作,但是我一直搞不清楚Reset有哪些种类,这些Reset分类的区别以及使用时机,所以就打算总结一下。翻翻spec发现其实Reset大致上就分为1. HW Reset 2.Soft Reset 3.Special Cycle Reset 4.Global Reset这么几类,每一个类别下又可能有几种不同的实现方法,后续就分别介绍一下各个Reset的原理以及使用方法。% {7 U* K: Y; P/ x
# \8 ?1 Z+ I( q$ x
2.Hard Reset$ y0 o# L" t* S, k; N
- ?6 [8 y& V0 G3 `- u3 Q; o
HW Reset通常是将整个Chipset以及连接在Chipset上的所有的bus device都会被Reset,它的信号上的表现就是Chipset将会给出PLTRST# signal(Platform Reset),BIOS可以通过向RST_CTL Register (CF9h)下06或者0E的cmd来产生一个HW Reset,06和0E的区别是0E会产生一个Power Cycle,也就是S3# S4# S5#的信号会依次下达。因为这和S5的power sequence是一样的,所以0E的HW Reset也通常被称之为S5RESET。Hard Reset常见开启或者关掉某些device,或者一些port的时候可能就需要做一次Hard Reset将bus reset,再重新分配和扫描资源。' |# A% n! g0 |5 Z) K
( T( B, _& h k
3.Soft Reset
0 c; u' b4 S( i5 s$ d ~
" V. Y P0 O* x* f) N! f: K) i+ pSoft Reset指的是只Reset CPU其他部分不受影响。Soft Reset有很多种方法,比较常见的是透过IO Port 92 or CF9还有就是64port 下FE CMD,虽然操作方法不一样,但是最终都是透过拉CPUINIT# 16个PCI clock实现Reset CPU的目的。Soft Reset通常对应的就是BIOS 的warm boot,比如常见的三键重启,或者windows下的reboot等动作。5 Z7 ^) _: ]5 d7 H2 p3 r' R
- _6 Q. V+ B& W5 o; ? r M" q4.Global Reset5 f. [. M$ w" {0 k
6 u( f! m! e' e( Z4 M9 O
Global Reset又称为Powerok Reset亦或者是Full Reset,它与Hard Reset非常像也是下06/OE到CF9唯一的差别就是,它需要将LPC那边CF9GR的BIT举起来。Global Reset有一个显著的特点是它会有一个掉电的动作,有些Device如ME or TPM,对它们的初始化或者设置通常都需要做一次Global Reset.
' `4 F, r% {6 F" _) ?. }
/ B8 _8 K1 f" p3 {& y9 T) ^5.Special Cycle Reset
4 y1 {2 @1 l" D# @
5 J8 B/ b/ y- LSpecial Cycle Reset按照BWG上的说法,是指当CPU产生一个shutdown special cycle时Chipset将会产生一个soft reset而且该soft reset无法避免,不留痕迹!:)2 U& ~' o" [0 a; n' Z
J# c' S g6 ~$ P$ _
_; J# ]; p* \; I0 BPeter
% }! N' C$ {# U8 i9 P' X( ~/ Y, t
! f- O' A" I+ f8 n9 ?! [; `$ A- Y* I' h- q! d
2010-07-04/ ~1 V/ P V8 f* N( ^* e
, d4 d0 a, u f2 L- T[ 本帖最后由 peterhu 于 2010-10-29 16:28 编辑 ] |
|