|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.( d* i" Y" [# `& t
分为两种情况2 [; x/ z8 a/ B% @ O8 k
(1):而且EC和SYS合用一个SPI ROM.
" ^- t" O! P) p1 k- l' W在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.
- |, ~( \1 e4 C" u2 {7 P在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是2 Z6 ?! P! l/ \: [8 Z3 r
留给EC ROM使用,所以不会去flash.) x* E6 R3 w7 L" W6 s; n9 _) s
反之,如果是flash EC ROM.; D8 |% Q+ \% P0 c1 ]9 T0 t
EC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。& E6 v& S( n% O4 |% p
可以用intel的fpt.exe来实现这种思想。4 _3 o/ i2 `; K$ [$ Y
fpt -f file.rom -a 0x80000
0 s( U4 T- e$ a2 a就是跑过前面的512K来刷file.rom到SPI ROM中。9 I5 T+ s: e/ k v7 C$ ^
fpt -f ec.rom -a 0x0 -l 0x80000
5 N" ^+ @4 @+ H- [9 R _就是将EC.rom写入SPI开始的地方,长度是512K
* a# l, u0 m5 D我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC) T' Y$ U% D4 t1 k
它自已还是会影射到0xFFFFFFF0地方开始执行。2 j+ K1 B# W- {' Z q
EC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)
& C9 E8 f( e1 ]0 w如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读4 ~5 n$ n& |! N! d& ~5 W1 A
SYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。0 ]8 Q6 A) R% X
, M4 `) I+ a" w+ q$ a& ?第二种情况:$ N" ~7 I$ i# a; X" ], A
EC和SYS是分开的。: S) \5 k% b$ T* t3 S8 A# `/ M
那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。1 J }* o7 q$ _* r: k7 n
calpella平台就是这样子的(一定要这样子)
3 s! v- F: U, bSYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。
, {3 F% H" ~4 b8 f7 n X- U
. `7 Q. O6 L# z& N8 G9 nSYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|