|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.$ A: I. k N4 r$ B6 h
分为两种情况
- ?9 T; [* {! u3 U& i! @, A; B E( n(1):而且EC和SYS合用一个SPI ROM.
3 J6 n. b) c9 F' v" F( `在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.
1 @9 }1 y" Z& D0 i- K在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是$ q/ u2 Q1 X# Y- m
留给EC ROM使用,所以不会去flash.) Y0 g* V! p* f3 L! C$ _5 _. W
反之,如果是flash EC ROM.9 z, I/ \6 I, [! o% i
EC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。
) D- V( P3 I9 ^6 v9 A可以用intel的fpt.exe来实现这种思想。. r4 A" G& I# H9 w, `; m
fpt -f file.rom -a 0x80000
. R2 b, ~% O, V, X4 E就是跑过前面的512K来刷file.rom到SPI ROM中。9 w! P6 ], `7 Z) s
fpt -f ec.rom -a 0x0 -l 0x80000
% u, E: S# d. [, I) P4 c就是将EC.rom写入SPI开始的地方,长度是512K" W% d B" ?6 M
我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC3 A* {( a8 ~8 b) G) W. N& Q
它自已还是会影射到0xFFFFFFF0地方开始执行。" ?. o4 X4 r; V9 B% f
EC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)& e- {$ Y4 Q( [6 f+ u/ G5 Y( _9 p
如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读2 C$ e, u7 [, t" B% y: R; \5 D9 g
SYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。/ w8 o$ V- A1 R$ c3 q: P$ Q4 i
0 I3 S% w$ V0 X' Q, `
第二种情况: q8 O, w" o" E! g ]
EC和SYS是分开的。) q6 K: k9 g5 d# o% O" F
那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。
9 Q$ R# W7 f) _7 J/ gcalpella平台就是这样子的(一定要这样子)2 Z3 k# b. ^ b" G5 [" @
SYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。
; o4 M E5 m9 ^) b( C
* y% A4 T. x7 n: w$ h4 C \ [SYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|