|
|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.5 }' M4 _& C0 A$ ~# d
分为两种情况
8 O, r, |6 ]8 B(1):而且EC和SYS合用一个SPI ROM.
$ a3 H! b* o9 m* l. O5 t( A# S在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.
2 k+ [! { d4 W- X在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是5 p/ K; G- c5 b
留给EC ROM使用,所以不会去flash.- w' W: G- [% d3 C* h" J9 I
反之,如果是flash EC ROM.2 {9 o9 K/ T" d g# a6 I/ z
EC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。
) P0 a' C8 p5 d0 s: m可以用intel的fpt.exe来实现这种思想。" G7 X, O5 e' J/ S2 u
fpt -f file.rom -a 0x800001 s C' l4 T# s) x6 v3 X3 `
就是跑过前面的512K来刷file.rom到SPI ROM中。
( B! w6 i0 x s- X8 ]fpt -f ec.rom -a 0x0 -l 0x80000
' ~( e: ^% X7 \* y. z6 @就是将EC.rom写入SPI开始的地方,长度是512K
! c$ ^# j* ~# O) w4 [我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC
$ b. J" Z9 ^7 ~3 ]' I0 b. U% W它自已还是会影射到0xFFFFFFF0地方开始执行。+ h P3 ?, z9 @8 k
EC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)
) x0 c6 O! {1 X! I4 T. ?如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读
7 k- c9 w6 {' n: r9 y) ^SYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。9 Y6 K' K/ A0 M* Z$ T7 S; X4 x
: H# d) Y5 Z2 h+ B# B1 s
第二种情况:0 V! e1 Z$ a3 ~3 `
EC和SYS是分开的。
9 i T0 g. p! n2 P J- x$ F: u那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。
* c9 o- A ?4 z) g* w4 Z2 K2 C9 _calpella平台就是这样子的(一定要这样子)
$ W ^- a7 a5 l8 S8 DSYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。
, E7 d( g/ {: O2 a# t3 y3 z1 Q: s$ v F$ J; o/ j3 i3 v# |
SYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|