|
|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.% w# }0 D+ M& W2 l
分为两种情况" H5 [4 b! k; D% }& Y
(1):而且EC和SYS合用一个SPI ROM.' K/ s5 p, H3 q4 [& g
在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.
0 f; G# v. f' A2 t3 D% I' E7 E! W在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是/ h1 ^ a6 H: n* \3 F
留给EC ROM使用,所以不会去flash.& {" K) g5 [- ]# W0 y3 D; W
反之,如果是flash EC ROM.
+ G3 R8 l/ B( V' a2 UEC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。
- {8 U. c8 i/ u3 f9 K/ w6 S可以用intel的fpt.exe来实现这种思想。; p* K* q8 B( L1 ^1 |' B
fpt -f file.rom -a 0x80000( Z* `3 `( l% o) u
就是跑过前面的512K来刷file.rom到SPI ROM中。
! r# |4 |3 @1 g% D3 n/ C0 e- Nfpt -f ec.rom -a 0x0 -l 0x80000
- K- M d4 u9 S* k4 F就是将EC.rom写入SPI开始的地方,长度是512K' v' K2 R0 @, ?
我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC9 C+ f. Y' y) k, A6 G4 Y
它自已还是会影射到0xFFFFFFF0地方开始执行。
1 B* ]7 j4 h0 e. q9 I& b1 O3 {EC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)" D" e3 Z+ z, S9 J
如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读; b0 F) c0 x) s; A3 M
SYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。/ x7 t, `7 ~9 h( `
! n6 m' Z* l6 B. p第二种情况:$ j w- a' |; y" E/ D6 @: l3 d
EC和SYS是分开的。9 a' l5 j; X7 x: M
那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。' j2 e. K: T- e$ M+ k z. n" B) ~
calpella平台就是这样子的(一定要这样子)
' v% E# F0 i" DSYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。
. |! M4 I0 h Q& ]; F* w$ d! ]
( a% Y8 _0 d/ h# }/ K6 A+ JSYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|