|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.; o% a; @$ n4 S) m5 w0 t3 G
分为两种情况
8 m" K6 R4 H [3 r& h6 U(1):而且EC和SYS合用一个SPI ROM.
3 n! P2 b. J- N7 k+ u* ?在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.7 T2 ^. u) z% V3 f1 o4 |
在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是- _" F, K: u1 {( U* t
留给EC ROM使用,所以不会去flash.& J) ^- M! |2 x* b$ ] D
反之,如果是flash EC ROM.: \, V# f6 t. K
EC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。. }. t" [# Z! h( u) V. M
可以用intel的fpt.exe来实现这种思想。
* ~6 A3 X ^0 D. w" k. Dfpt -f file.rom -a 0x80000% T- P' h, a6 {$ |% Y. M# X
就是跑过前面的512K来刷file.rom到SPI ROM中。
" C R8 ^+ _8 `! c8 C# \fpt -f ec.rom -a 0x0 -l 0x80000! c: \/ M# {: y) n# J
就是将EC.rom写入SPI开始的地方,长度是512K6 x& i" ^4 r$ X/ y, E
我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC
9 p, Y) A% @" ?, x! t; q它自已还是会影射到0xFFFFFFF0地方开始执行。6 ~. e0 U) ~6 h6 i1 f; l
EC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)
+ D! I$ C- L) t$ E2 K3 y$ U如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读
3 ?( v% ?, R$ o: `SYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。: i4 z3 S* V; Q/ w
& s% s% ^/ s# G+ i9 m" Y第二种情况:( M& \( C! b3 p3 C* F
EC和SYS是分开的。- {0 T/ t# h7 }; v9 G P2 c1 t9 h
那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。, j/ |( p2 N; B \# f) z1 m2 w; G
calpella平台就是这样子的(一定要这样子); D2 r$ q0 o7 R3 w2 x
SYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。! q! N5 e- f9 n: Q1 X
+ F* z0 K* |% e9 X- b
SYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|