|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.
/ b, n/ z5 q% C7 G- c5 F* }5 g分为两种情况
& `9 g( t1 U: P5 C( M7 J ]% k! R(1):而且EC和SYS合用一个SPI ROM.
& I: B0 _3 g9 Y# |8 r2 k9 Z1 H在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.$ {5 f4 I4 B3 A$ \1 M
在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是
9 w1 s7 z) P6 g: U留给EC ROM使用,所以不会去flash.
J" _* S" f* }% e) M反之,如果是flash EC ROM.' T6 w4 f9 b) t1 q( M0 T+ D! V
EC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。: \; D/ O! r' g6 S
可以用intel的fpt.exe来实现这种思想。# o/ {. z1 d. t% ~5 e( R
fpt -f file.rom -a 0x80000
. e' h& J3 I) p. X0 O0 F就是跑过前面的512K来刷file.rom到SPI ROM中。
% ?$ h9 y: Z' |4 N0 Bfpt -f ec.rom -a 0x0 -l 0x80000! `- q6 a z) ?. S
就是将EC.rom写入SPI开始的地方,长度是512K o9 _0 a; r* W! X/ r5 w; \- p& e
我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC% ]7 L0 o1 r8 A1 n7 h
它自已还是会影射到0xFFFFFFF0地方开始执行。5 u u% l2 G, h: y* ^
EC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)
6 X* {$ z5 a O* [( N) O6 Z5 z8 p1 i如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读" P5 N9 z4 w( E3 e% e2 ?" B' a6 M
SYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。
. X! N' c9 J( ~! V% Q: J- C
9 e% Q5 p$ b# Q* c3 j! ^% G& E0 J7 u第二种情况:
& D- W, ]! ]9 S) P- W+ CEC和SYS是分开的。
7 b/ e0 H& `) _; x! m$ }那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。2 Z: X# F1 i3 y. X; i+ o/ O+ s" y/ v1 h, l
calpella平台就是这样子的(一定要这样子)/ q7 a9 T5 A: I) J0 L1 b$ G
SYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。4 F, |6 P: D4 k7 [( N0 F
6 M/ E- R' [' R$ w/ \( T0 m' pSYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|