|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.
( ]# I7 } j( W" h) P) T& w分为两种情况
6 R9 G Q) @( @7 Y(1):而且EC和SYS合用一个SPI ROM.
( {& e7 [: v J% ?# b在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.8 L" R% O" u$ Z2 J8 t8 B
在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是
' ]8 c% V0 o! k# c; L3 s留给EC ROM使用,所以不会去flash.
* t1 q) P! a2 c1 ]" h3 n反之,如果是flash EC ROM.. B# W4 s0 C. d
EC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。
- @0 s8 s* A+ w) ~/ _, T7 a& Q可以用intel的fpt.exe来实现这种思想。% s2 Y. t7 s+ W6 \+ a) l/ c7 n
fpt -f file.rom -a 0x80000& b! A& o! A c j
就是跑过前面的512K来刷file.rom到SPI ROM中。) s- F" R# |& {8 ?
fpt -f ec.rom -a 0x0 -l 0x800003 i5 p: i. g$ p0 D8 I3 q
就是将EC.rom写入SPI开始的地方,长度是512K* n8 u" C9 t' M
我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC
' l7 i9 ?* {/ q/ Y& x它自已还是会影射到0xFFFFFFF0地方开始执行。4 U+ L+ a" P7 ~; A6 g
EC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)1 N e6 b6 H! h8 q2 H h7 R
如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读
( x6 e+ `; t: `3 d; j5 SSYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。
& z/ T) t2 s: N# `* s4 a2 H2 }& x
7 u7 q I* T' t0 z$ r3 l第二种情况:
7 x- P, \) i: z3 X' {EC和SYS是分开的。8 Y9 D& G1 w7 \4 j/ b; p
那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。5 A3 R4 m! Z, \/ J G
calpella平台就是这样子的(一定要这样子): B ^2 p$ K' u, O9 b1 s3 O
SYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。
0 v, g2 ~! b+ F. \6 ~! e) j: J7 R9 ]' m+ o+ z, t# ^( b' S$ ]# E
SYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|