|
|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.! f) _9 z8 S. p7 `! a
分为两种情况2 H U$ I! n) b8 t
(1):而且EC和SYS合用一个SPI ROM." V0 N* n$ C7 Q1 ]3 b7 p
在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.
1 K+ @% h# m$ A. e在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是' m, {# G" {6 l
留给EC ROM使用,所以不会去flash.0 v, h: N3 P: \& T
反之,如果是flash EC ROM.
& K5 c- S+ Q; f% g0 K7 z1 lEC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。
* d$ x% d0 ?* W, ]! T可以用intel的fpt.exe来实现这种思想。
/ y: X' n' z$ h$ y: z! _3 p7 J: vfpt -f file.rom -a 0x800009 b7 @; X- X4 b
就是跑过前面的512K来刷file.rom到SPI ROM中。4 A, P) n5 y) n9 S2 z1 x
fpt -f ec.rom -a 0x0 -l 0x80000. H. O/ P! D5 V4 L: c
就是将EC.rom写入SPI开始的地方,长度是512K
3 w& }1 q% x# \. x7 U我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC, K8 G8 G6 M0 P2 i
它自已还是会影射到0xFFFFFFF0地方开始执行。
" P! T: a5 |+ f5 p. Q+ hEC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)! f* ]5 i: G% O" V7 j' u9 h
如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读' C( \+ ?& C/ O
SYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。
; q9 h4 E+ o; X* x/ X% Z8 B( D. f
+ ^) D t8 ~+ L P第二种情况:
$ {. J7 h* G3 xEC和SYS是分开的。
/ z0 L0 p* j- |8 z+ Y$ t那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。
# [ h) Y& Z1 h! C( `* U0 ecalpella平台就是这样子的(一定要这样子)
( b/ _! |+ E# {" fSYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。
% w% E8 H" M; O: P9 }5 ^ U' b! ?5 T2 R, |
SYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|