|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.; g# _" A) d v. r$ g
分为两种情况2 }! d+ `/ e* q& Y0 C& R! P
(1):而且EC和SYS合用一个SPI ROM.4 L) w: J0 i K% q: R
在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.3 R6 N5 x! j* ^1 E
在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是
# V+ u$ o( @" K留给EC ROM使用,所以不会去flash.8 N4 S" A7 e3 j0 d$ r$ d
反之,如果是flash EC ROM., _& G3 Y; m" S: ^; D$ K4 R
EC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。
$ c- e, l( a! S可以用intel的fpt.exe来实现这种思想。% X% q7 m' f; W; D* z, l" w/ }
fpt -f file.rom -a 0x80000
7 A; A$ a! e3 O- B就是跑过前面的512K来刷file.rom到SPI ROM中。
, O6 a0 n$ Y+ J# O1 w! H* Cfpt -f ec.rom -a 0x0 -l 0x80000
8 P' h4 K' h$ P& P0 F# P$ W就是将EC.rom写入SPI开始的地方,长度是512K
' p9 o2 A& |$ t" j/ {我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC0 y( w" |, i) j! Z/ [
它自已还是会影射到0xFFFFFFF0地方开始执行。 i3 D0 s, p- u, M5 C/ P
EC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)4 G/ L. i' _5 Z) q/ i
如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读
P, e$ M) I. N5 a/ ?# lSYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。# S7 E" b# q8 z3 C, o7 k5 t% v
' v& F9 C1 l' H
第二种情况:
- j# [& @/ V% jEC和SYS是分开的。
, v4 B4 |- A+ U- X2 j7 W) K那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。- K1 O& n- \6 @ c8 o) D
calpella平台就是这样子的(一定要这样子)) v7 T0 [& I" g
SYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。
& b+ [% B& {% F1 S
8 T+ G9 a/ |1 \) D, g8 ^SYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|