|
|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.% [7 y* M& a3 I; I2 N; t( h
分为两种情况- H9 N6 j5 B+ v I" D3 B
(1):而且EC和SYS合用一个SPI ROM.
) a5 _8 A. G, w; i, ?' f在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.$ b9 f: Q- T$ W6 a ^- I* v, v
在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是) y% [: [- c6 h) p
留给EC ROM使用,所以不会去flash.+ a* ~ U0 v2 t
反之,如果是flash EC ROM.
- U' Z7 [; j8 O5 _3 U6 vEC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。
: ]0 x/ L4 e- Y+ A. B z2 k+ ~. D' `可以用intel的fpt.exe来实现这种思想。
4 y: E0 W6 k; a" w7 afpt -f file.rom -a 0x80000$ Q m: H9 I0 \ S; L# E
就是跑过前面的512K来刷file.rom到SPI ROM中。
1 k+ v, S0 i7 R) a* Ifpt -f ec.rom -a 0x0 -l 0x80000
( X2 |) j; v( x k就是将EC.rom写入SPI开始的地方,长度是512K' G: ]' |8 C& |+ {% v8 a, u' }6 M5 o' d
我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC
+ ^+ w$ n O4 S9 ?- }' G它自已还是会影射到0xFFFFFFF0地方开始执行。
: {1 g- \( \* `, G% YEC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)6 G$ o# y" z4 R6 D7 b9 `4 w2 I4 P1 I
如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读8 ~0 B) |# C6 c/ B# S' T- F+ k; v
SYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。% }4 d! q' f, a1 q
' u1 t' R9 r( o第二种情况:6 I8 G& Z1 N! V T5 ]7 z
EC和SYS是分开的。
" M# Z+ y" `! U9 I( u, B _那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。
7 s1 ~* I. w! ~; hcalpella平台就是这样子的(一定要这样子)
) x1 v: |2 C7 y( T/ K) t8 t( |0 |& PSYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。; o, p3 X7 f0 B4 _+ y7 I k
! x- G" F( L$ s$ ?: aSYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|