|
|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.
; \* G9 u$ B1 [) R4 X2 d& J分为两种情况
7 `, C" h9 b; |! r, I& p; o(1):而且EC和SYS合用一个SPI ROM.
. y' K% e; D4 P. O( S. w: k! o+ Q在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.
0 B4 Z3 [2 ?6 E8 s/ d( z在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是
- m) Y- X+ `2 d留给EC ROM使用,所以不会去flash.% C8 B9 H- V4 V @2 Q' S
反之,如果是flash EC ROM.* Z- P' g/ l, X
EC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。
* n' J1 _5 C/ n& o1 R R7 h可以用intel的fpt.exe来实现这种思想。
2 }+ l4 a. }& _: {. d" tfpt -f file.rom -a 0x80000
" G) v0 ^' D2 ~$ ^5 a3 x, x3 Q( t就是跑过前面的512K来刷file.rom到SPI ROM中。1 d+ H0 N- Z4 a
fpt -f ec.rom -a 0x0 -l 0x80000- i# q( S0 u0 _" F y4 a
就是将EC.rom写入SPI开始的地方,长度是512K
2 C5 W4 F" r3 m. {8 G我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC
X5 `, ?! y" A# ]) {3 K它自已还是会影射到0xFFFFFFF0地方开始执行。- Y. L4 q* Y- {8 \$ q
EC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)! o3 F# |0 G0 w- L! h* c
如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读
% W" h1 i9 u. K9 c2 | J- ?) wSYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。
% T/ q. v5 [' y3 S+ e. R5 y+ v( G4 D$ f# f
第二种情况:
2 x& g. R! ~; }: h1 u5 D* N7 Z6 `EC和SYS是分开的。
- \" z* N8 @1 L+ T) W* T2 M那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。' T( @+ h' J+ ~# Z7 q
calpella平台就是这样子的(一定要这样子)
5 x; T9 w* a% U; e7 jSYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。
, c3 [8 D( }* W* R: ?! F8 E% l* T8 v1 C' @* j& g
SYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|