|
|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.. R4 v P' g7 [
分为两种情况- }2 h% ? w' B, `, f7 I( K8 Q2 p
(1):而且EC和SYS合用一个SPI ROM.% f5 Q; O' { _( ?6 p' U
在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.
# S( Z' `/ p7 Y4 d$ {- J* }在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是0 Q+ ?9 z b/ [! K4 w6 C
留给EC ROM使用,所以不会去flash.; ]! G2 @, g7 c$ R
反之,如果是flash EC ROM.! P' \8 G) e2 Q1 Q
EC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。
; k) d; z8 y7 K' |可以用intel的fpt.exe来实现这种思想。
. q5 L; d& q1 H( R1 e+ g. pfpt -f file.rom -a 0x80000
! H* m* E: e. n, V$ l1 s就是跑过前面的512K来刷file.rom到SPI ROM中。2 B9 w$ Z- K5 \: s0 L
fpt -f ec.rom -a 0x0 -l 0x80000+ \$ c# Y! a2 E6 ?" ?! h, s
就是将EC.rom写入SPI开始的地方,长度是512K7 P, T) ]+ B' [# @
我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC! [1 x7 ^/ q! L: @- |7 Z, \1 D6 d( B" D
它自已还是会影射到0xFFFFFFF0地方开始执行。! F @. S# i9 P, L
EC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)
D D) ~1 l \; N如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读; C- Z, v% j% H0 K) |5 d5 _; m0 V
SYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。
# V0 B8 b+ x1 z3 h- _- Z# l" r2 n
7 d/ p- @' o8 H @1 y3 V$ p第二种情况:/ [, L4 e* a7 ]; O
EC和SYS是分开的。
; _& y v# B6 G* H; f1 s3 H' p3 a1 U那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。( i- {" ~" i# g, y, k: q: P) k
calpella平台就是这样子的(一定要这样子)
8 g |* ?& d8 ]% t, r# f: aSYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。. |; C* v; C2 o+ n# ]! l
) @ L/ n' g: B/ r4 L$ R9 S% d2 ^SYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|