|
|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.
/ A( V* G+ ?# b$ s" q% H8 F分为两种情况
* l: E0 L" p7 x4 b8 e R(1):而且EC和SYS合用一个SPI ROM.
7 P* ]- J, E5 C/ J% W, \& x) N在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.
7 H6 G% o+ p/ }- k8 }$ u$ l. S2 M在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是
) [0 ]; `, x+ A' r- s9 g留给EC ROM使用,所以不会去flash.
. f' X J" r' f0 q# B反之,如果是flash EC ROM.
; x& X! j: ^8 e+ vEC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。
4 e. a% g& g9 O; k* u4 w# v可以用intel的fpt.exe来实现这种思想。
- L5 ?+ x% w6 p3 x' b3 Hfpt -f file.rom -a 0x80000; n8 t$ w# A5 ~5 M6 k9 u
就是跑过前面的512K来刷file.rom到SPI ROM中。: V- |1 U" _+ B% w: ~
fpt -f ec.rom -a 0x0 -l 0x80000
$ u3 K [$ O1 I: k就是将EC.rom写入SPI开始的地方,长度是512K
n, x L) v, `/ T) I+ P5 u我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC
8 U6 g7 w4 {4 o" A" t( a它自已还是会影射到0xFFFFFFF0地方开始执行。$ Y' p. q1 i) G! i
EC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)
9 x- Q. C8 [% n9 [$ a如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读
( z* B9 Q- R3 x8 z+ n- u# gSYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。5 d. [; X/ Z. H* X# i4 c
0 i% w/ k; V; `: G z$ N第二种情况:
6 {- _5 r8 h; `2 y1 [* o e4 WEC和SYS是分开的。
1 D, q# g5 y) ^6 H那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。
d& d& F% z7 l2 B! Z7 M3 N) Ncalpella平台就是这样子的(一定要这样子)
9 u; X( s( o+ t$ W/ {6 u% xSYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。! o" o" W | N l) Q- q
7 m" c, _0 K7 m# e- k3 E9 WSYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|