|
|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.
@, U. A7 I% Y, u$ k: D5 E+ a分为两种情况' b( R0 p$ y$ d3 q: O; Z& A
(1):而且EC和SYS合用一个SPI ROM., t$ I* d2 `$ a# f: |
在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM." K# p- n. M4 w" v
在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是
9 B% b& k6 `1 Z6 D$ X留给EC ROM使用,所以不会去flash.
+ ^3 R, }, n* ]7 M3 E$ O反之,如果是flash EC ROM.+ X3 W, q r6 K, L
EC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。7 \/ r) ]6 C2 E5 F1 b. d6 K
可以用intel的fpt.exe来实现这种思想。
2 y# @" R: F# O% P+ s! d5 zfpt -f file.rom -a 0x80000# m: y6 a) [/ z2 c8 e7 E
就是跑过前面的512K来刷file.rom到SPI ROM中。- `3 c- I$ G7 q7 e
fpt -f ec.rom -a 0x0 -l 0x800006 _ J+ R! v( c' N- {- Y. O
就是将EC.rom写入SPI开始的地方,长度是512K
; @* H( c" t: g- l4 e4 W我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC: a7 Q, V: Q; q+ I+ {" ]4 j
它自已还是会影射到0xFFFFFFF0地方开始执行。
7 \- G9 X9 {2 kEC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)% j6 F7 H9 L; o+ V( ~, j8 x" O
如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读4 M/ h6 o1 r' l1 Y4 \
SYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。
& X0 ~. b7 ]9 v3 v& r& i8 D/ K; J9 S/ T/ R
第二种情况:
8 w- U! Z0 N5 j1 `* nEC和SYS是分开的。
' Q( N3 X, g( c6 ]0 o: h那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。% D) P4 `% @; f/ Q. Q' Z
calpella平台就是这样子的(一定要这样子)
! l0 H' g" y+ x$ K& w$ c. ASYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。$ F) d" q% G. N9 C% B
- c; I; s! X Q. h* K- I
SYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|