|
|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.
+ B! P! t, v0 O分为两种情况* h5 E8 Q. B( H. l) ^& I
(1):而且EC和SYS合用一个SPI ROM.
( g W6 ~; d# |/ s在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.
8 Q7 g' n& {3 V# b) \: u在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是* A1 S' R' C2 P& K( t* L
留给EC ROM使用,所以不会去flash.
4 Z) c8 R- d. G# E0 [/ Z& Y反之,如果是flash EC ROM.0 g( Z# x; H/ U
EC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。
7 G; F) R: r" c1 Z5 N/ o4 {1 _可以用intel的fpt.exe来实现这种思想。$ [* ?7 L! h+ l2 ^' w9 [0 }/ A
fpt -f file.rom -a 0x80000
Y @( g0 y, n4 n就是跑过前面的512K来刷file.rom到SPI ROM中。# W$ o# P7 t2 C1 @( Z) ]# Q
fpt -f ec.rom -a 0x0 -l 0x80000* i2 L" d8 t1 g
就是将EC.rom写入SPI开始的地方,长度是512K
& p' G8 z! |3 u5 O我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC
5 w+ G+ W+ w& @0 W1 ]+ }6 d8 z它自已还是会影射到0xFFFFFFF0地方开始执行。
9 E6 Z8 ~3 p8 |7 V& y) |, \EC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)
* i; X4 A! r: _6 ]2 E- A! \: i如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读
, o1 M2 S6 B% {, T' pSYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。
) H, F) z' o& v7 y' U1 d, r: x1 W# k3 q4 d0 d4 d4 x
第二种情况:
- x9 I+ b" I# f5 _: dEC和SYS是分开的。
. B- Y9 p) d( N1 @& ~那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。, \/ ^& i% R: Z9 A" z1 j# c: T3 {3 ^
calpella平台就是这样子的(一定要这样子)2 ]" t2 o0 G1 j& t; y5 s. L4 N" m4 b2 m
SYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。
5 X* K3 E0 W9 S4 p5 }' T; F3 b# _0 v4 @; }8 P
SYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|