|
|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.3 f2 n4 @& l& n4 p% O- P* b
分为两种情况
- ]3 _0 Q: B# }7 ]4 Q5 \7 g(1):而且EC和SYS合用一个SPI ROM.
0 ]$ N2 X- h- E9 [) V在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.
, x' y0 R( c4 k在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是
% G$ o/ @: H3 v A' x2 B2 r- C留给EC ROM使用,所以不会去flash.
' d, K8 E$ A$ M% ]反之,如果是flash EC ROM.
+ q. G0 E" w! ~EC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。
2 X2 |4 t. R; ~5 U" f& `可以用intel的fpt.exe来实现这种思想。
5 G# e8 }/ ~4 |: ]. ffpt -f file.rom -a 0x80000
( s2 W( y+ ?; V: E: d4 }就是跑过前面的512K来刷file.rom到SPI ROM中。) c' r0 u' }% g# m( E* A
fpt -f ec.rom -a 0x0 -l 0x800003 |, M4 G u3 g
就是将EC.rom写入SPI开始的地方,长度是512K1 s1 o( K% T( `/ c! N
我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC/ }! l) ^! o7 v. M) ]5 K4 b4 S( e
它自已还是会影射到0xFFFFFFF0地方开始执行。" s: U* _. s; K2 D5 {( {. s! ]7 D" C
EC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)
4 x. c; P* _4 A3 N3 b如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读
! X' E( P$ l5 ESYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。
C( K" R" A0 }' q; ^) @* l5 d7 c2 M4 l# t: I! B, y
第二种情况:- j& R: y3 G3 u+ S% S8 }3 i
EC和SYS是分开的。6 y7 s! \. Y- U% Z, L' _" _
那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。
8 F+ u1 [6 q& l1 n) v) y- \8 ecalpella平台就是这样子的(一定要这样子)
6 C- | M' `# c" U4 w. F USYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。6 g: h* r+ U+ ?) q/ F2 c' j, `" l
( ^( e: W/ [8 U9 o) k+ n
SYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|