|
|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.
/ a% }, Z) m; K8 K' I) m8 Y分为两种情况
6 e$ M* @2 `& E' C(1):而且EC和SYS合用一个SPI ROM.8 b. W- R9 t, O" v3 V
在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.
0 B; T1 P* j$ d, f在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是
5 M& r0 C Q6 t留给EC ROM使用,所以不会去flash.0 c7 @$ ~1 d9 E: o' ]
反之,如果是flash EC ROM.
# f2 o& s- g7 l3 f' oEC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。
: t3 l* `4 P# i) K( l3 r可以用intel的fpt.exe来实现这种思想。- m( V$ H# n$ B! A2 L9 M
fpt -f file.rom -a 0x80000, k1 E: d! u* y0 Y" q3 C/ s0 h
就是跑过前面的512K来刷file.rom到SPI ROM中。5 E' H; g6 g+ t Z3 j/ [
fpt -f ec.rom -a 0x0 -l 0x80000
6 A) W5 Q* O1 D% u就是将EC.rom写入SPI开始的地方,长度是512K. `; _0 [$ M$ |& g1 x
我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC! m, b. X" }1 |+ R: x: k
它自已还是会影射到0xFFFFFFF0地方开始执行。
7 ^- l& _0 d6 E) Q( wEC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)8 P5 T5 _: P ^ x
如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读
: u& B6 a' F6 FSYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。
3 {# \0 |% R6 J9 N3 c/ l, m R8 |! S8 S) B- Q* p6 o% J
第二种情况:
# G( k0 {" |! x* s, ?) t" kEC和SYS是分开的。3 k8 @: o# R; i$ s
那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。
/ e9 a, C6 t2 Z# n+ i P5 b! ccalpella平台就是这样子的(一定要这样子)
" }: k, s/ u. r2 X( |4 ~4 G: ESYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。
6 V* }# b- U& D( f0 ~
2 W, P+ W% a) t' n$ O& @7 BSYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|