|
|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.# u5 H8 b: [; T6 T
分为两种情况- U! @+ g8 Q. [0 h" q4 a
(1):而且EC和SYS合用一个SPI ROM.
6 a% \( Y1 W2 |/ B7 Y, ^在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.2 F2 x6 `6 ~5 D2 ]3 U: z* F, a1 W
在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是
4 w5 t9 L3 u% `$ D留给EC ROM使用,所以不会去flash.
; j* r( R* T. A9 [$ j反之,如果是flash EC ROM.
, I4 ~( x2 i/ WEC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。
3 L+ M9 S- W& @7 L7 V可以用intel的fpt.exe来实现这种思想。
8 y( E! X( g% Z6 _$ Hfpt -f file.rom -a 0x80000
- U2 W8 T" M3 C) M就是跑过前面的512K来刷file.rom到SPI ROM中。5 C* q' D4 w4 g5 _
fpt -f ec.rom -a 0x0 -l 0x80000
5 j6 H/ ?; G" f" j& A$ m" T. X就是将EC.rom写入SPI开始的地方,长度是512K9 \1 q3 q* c0 X# h. q
我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC( E; y5 P" p# `# }/ \+ N t
它自已还是会影射到0xFFFFFFF0地方开始执行。
6 d( l$ w( B s2 K2 ]* A( p! hEC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)
, c$ l" P/ T+ ?: Q如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读, ?: |4 e( a0 J& M, Y
SYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。
* w% {& K# }; [" f) N5 h r ]! ?) `5 |
第二种情况:, ^! U% Y- o$ U' G s ~+ p+ K$ K
EC和SYS是分开的。# u, X) i" W; `) e3 K3 b2 H
那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。" H, a4 ~ X' {/ K* G1 Y B
calpella平台就是这样子的(一定要这样子)2 I5 {# S3 T1 ?1 v7 ~
SYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。
2 m* p! A6 e( I
; r8 P8 ` f& j3 C4 c' f- MSYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|