|
|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.+ F# u, d: @3 b8 B! U9 P
分为两种情况: f( @7 C v1 r
(1):而且EC和SYS合用一个SPI ROM.- r- U6 G% d4 m) n/ x; `$ ^) t
在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.2 B, ?; W! ?4 p2 w/ J) R
在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是
1 m+ l! ^3 U+ I: ?9 ]) R2 c留给EC ROM使用,所以不会去flash.3 |0 H# k7 C, F9 m' n3 `2 }; `
反之,如果是flash EC ROM.8 P9 C+ Y9 v! }& |2 x
EC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。5 B" e: D0 q9 W' \
可以用intel的fpt.exe来实现这种思想。' u( C. [2 b+ ^1 x
fpt -f file.rom -a 0x80000
3 o \. N4 t5 d& h8 ]8 w5 p) Q就是跑过前面的512K来刷file.rom到SPI ROM中。
) {# _) s6 o" [, o$ Lfpt -f ec.rom -a 0x0 -l 0x80000
9 ]# P7 e1 A I" l就是将EC.rom写入SPI开始的地方,长度是512K- }& A8 l* P) n. e) w8 t
我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC D: D/ t8 L v4 P8 v
它自已还是会影射到0xFFFFFFF0地方开始执行。0 q6 e$ p' ?6 o/ ]3 @$ ~
EC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)& R2 q7 t( y; p$ U- d3 p
如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读
Q3 z- V# ?1 X6 _SYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。* Z- S f% p' |: ^
[7 m' W' z, g" G1 n" s2 q* W
第二种情况:
; l& a8 Z+ z4 B# DEC和SYS是分开的。
g7 [8 J! d2 S$ u+ }. F' N那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。
/ O/ f6 \5 g, E- ucalpella平台就是这样子的(一定要这样子)
; }& n3 y+ A" p5 Y: i! Q& e4 CSYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。$ {2 r6 w+ S# E2 n2 o8 _# r. L% u
, W {8 H: S( L# T
SYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|