|
|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.
, G/ K) l E# E分为两种情况
$ x+ R) G; a+ R' G(1):而且EC和SYS合用一个SPI ROM.* @2 K7 w* l$ G4 c: p
在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.% i" Z2 m7 M6 n: m4 r& ?4 ]
在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是
% q; v" X# t. L8 Z) ?, s留给EC ROM使用,所以不会去flash.7 q% V% c6 {1 g/ \8 z5 q
反之,如果是flash EC ROM.
- U+ b8 `# U% I& I1 H2 }5 H UEC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。9 V# t, {5 T' E3 t/ [4 o
可以用intel的fpt.exe来实现这种思想。* R& z9 w( q# k* z
fpt -f file.rom -a 0x800005 A( X- N. x& g: z6 o
就是跑过前面的512K来刷file.rom到SPI ROM中。& C8 L% B A f" C+ \& W* {' A' |
fpt -f ec.rom -a 0x0 -l 0x80000
\5 s) S' \5 b1 t6 i1 ?5 v就是将EC.rom写入SPI开始的地方,长度是512K' \( ] M; z2 g1 ]9 J$ v" X
我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC
( e5 V) X ~( I它自已还是会影射到0xFFFFFFF0地方开始执行。3 m5 ?# m; M1 b j0 z" D
EC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)6 o3 h- I1 _2 u7 F6 v7 k
如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读* }6 b# e4 A$ r: \% M
SYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。; v6 y4 [: H# ] u1 S
$ v4 H, Q; E9 e+ P1 U4 Y' x; e8 {; z
第二种情况:
+ C" i0 g* J3 g9 d" Q9 {EC和SYS是分开的。2 C$ U/ ?) D9 Y) P$ a! \: a
那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。
F2 `: v/ f, U$ A; e; {calpella平台就是这样子的(一定要这样子)
2 t4 \/ F4 T* r# q" B2 l R* YSYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。 s4 z. ^0 X' E+ U: P9 b( D* z
: N T3 N* u# w; a
SYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|