|
|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.
* ?5 |$ Q4 l' M6 c+ B分为两种情况9 I/ B+ x4 R( e, [# A; _; v
(1):而且EC和SYS合用一个SPI ROM.9 B9 U' J9 W1 s4 K$ F
在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.
% M4 j' I9 }7 L+ i在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是
3 u2 A5 z" C' L$ k留给EC ROM使用,所以不会去flash.
. ]- `# X4 `" E反之,如果是flash EC ROM.& L0 X# x; A G. P
EC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。2 |- e/ K" Y& a' \3 T8 }0 q) ^
可以用intel的fpt.exe来实现这种思想。
6 ]/ H# I' ]+ D6 r( U* E {. L6 D) efpt -f file.rom -a 0x80000
8 S& t' q$ U: c9 ?" _4 g- i) H就是跑过前面的512K来刷file.rom到SPI ROM中。0 c2 g1 B/ O( |6 Z
fpt -f ec.rom -a 0x0 -l 0x80000" T3 Y u3 J' ~5 S7 p. s
就是将EC.rom写入SPI开始的地方,长度是512K
! @. @3 b6 E! ]7 N8 W9 U4 u' I我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC5 u) X( Z% J; p A+ l
它自已还是会影射到0xFFFFFFF0地方开始执行。5 c1 `* D* ?- C. c' v
EC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)
8 O3 d( x2 \ }' j如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读5 n( h# ~. ]" F+ Z
SYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。
6 c5 g8 L- A% G1 n) C4 }1 v/ F: _5 K) A/ k' H
第二种情况:- |8 R5 f) M6 N* h
EC和SYS是分开的。
2 D* Y8 p7 x, c' }8 \那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。
& q, |6 p4 R8 C& U9 Vcalpella平台就是这样子的(一定要这样子), u( F$ [6 e! z6 I: r' w
SYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。9 h. z, C5 ?# |% h* r3 ^
Q J8 Y H) w0 F0 wSYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|