|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.
, u8 Z; o6 d& N* |8 B2 L x分为两种情况
$ B. G7 [# W9 G: |(1):而且EC和SYS合用一个SPI ROM.- ]* S5 V/ C7 h0 b: I/ `1 \
在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.0 Q$ O6 ^" S# l0 e8 u2 C3 U4 j* ~
在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是% j$ P7 E3 y+ o9 i3 {8 R8 m1 N- |
留给EC ROM使用,所以不会去flash.1 d) d" r# Y1 g: p& G
反之,如果是flash EC ROM.$ U# G" V' [+ [, K, S6 t8 G
EC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。! q% v9 a/ L. z) g1 }
可以用intel的fpt.exe来实现这种思想。
, A7 m4 U4 q+ [0 W, efpt -f file.rom -a 0x80000
% m5 j+ n# q3 N5 X就是跑过前面的512K来刷file.rom到SPI ROM中。
' O3 L! ?9 h9 D& a. |( [fpt -f ec.rom -a 0x0 -l 0x80000
, U# Q( Z8 h0 Z: F% p就是将EC.rom写入SPI开始的地方,长度是512K
; s( ^$ o7 a" `% M! [% ^% @0 x我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC: ?; U. H) a2 c- l* P5 Y
它自已还是会影射到0xFFFFFFF0地方开始执行。
+ E6 J/ T# i- fEC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)4 y) M8 ?/ ^) l! e( b* Q& Z
如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读( p+ m3 i _* {- {2 Y1 r
SYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。; ~( R# p; k( H( D2 M3 ]2 a
& [5 e" _1 R6 D2 H0 h第二种情况:
% N: a" @9 n" M9 l* ^$ Z# ]) vEC和SYS是分开的。# a" b7 D. D, ?) @+ g
那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。
2 _: j5 F2 N4 C( ]. }8 R$ E4 u. fcalpella平台就是这样子的(一定要这样子)
+ J* B& m7 x$ I- R/ |. HSYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。. b ~5 Y r3 z: V+ E, q h
4 m; A$ Q! s$ ~SYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|