|
|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.
9 Y0 X! @( z4 z L' _6 D7 R分为两种情况
# u1 _- J! g' P(1):而且EC和SYS合用一个SPI ROM.
0 \, y. ^# ~& `* d1 ?在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.
4 H7 T# C4 s' ~+ T" [8 w4 C- ^在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是
6 `8 [: O( e: T留给EC ROM使用,所以不会去flash.
& N5 [! A2 h: L反之,如果是flash EC ROM.+ Z. ~9 B* l [% K W
EC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。
/ Y$ P2 Y6 ?* j) K2 m可以用intel的fpt.exe来实现这种思想。' c& u) i/ O R6 D; \& J( I2 o
fpt -f file.rom -a 0x80000
/ X3 h* I! k* E; ?/ V; ]就是跑过前面的512K来刷file.rom到SPI ROM中。* B+ j) b& ?' F/ G7 e2 ]4 N
fpt -f ec.rom -a 0x0 -l 0x80000
, u0 _% {' T* d" {+ ~; \! Q! N就是将EC.rom写入SPI开始的地方,长度是512K$ f& X/ b; A, h$ S& w8 g
我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC
* u- a; q4 \: S) B它自已还是会影射到0xFFFFFFF0地方开始执行。
0 v: z5 @- ^3 q; LEC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum). P# @) _, Y' Q1 X4 Q
如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读
0 F' j& S: g1 \1 P. K* T; k2 ^SYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。. _6 _. a X) f
& [ w, X" ]- Z# ^5 s D# [+ |
第二种情况:
( T5 Q1 s' O6 H' i* S% P( WEC和SYS是分开的。& | R, i @ `+ e' B
那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。& \) C: ~; k3 i: a0 [' |
calpella平台就是这样子的(一定要这样子)5 w+ H+ C9 y' l- W
SYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。& g% `" c& n5 w: T, t5 D3 @
v& \, k- ?1 f a; T
SYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|