|
|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.* q* @0 o- X3 `# t( `
分为两种情况6 @% f2 L5 f. ]; ^
(1):而且EC和SYS合用一个SPI ROM.. u) j! I; ]4 `2 ]4 @& l& j
在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.
7 k2 `, b& \6 R( Z4 l! V在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是
, {( F' R) Q: J% Y5 r8 r; D留给EC ROM使用,所以不会去flash.( g% A$ `. n7 ?" G$ w4 N
反之,如果是flash EC ROM.
9 T1 [( V8 f3 ~; \' A$ LEC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。
9 A t1 g7 [* @可以用intel的fpt.exe来实现这种思想。
" a7 i& d' e* q6 ]5 ufpt -f file.rom -a 0x80000& a; W/ y. w% K
就是跑过前面的512K来刷file.rom到SPI ROM中。
+ {+ ?7 A/ l+ P; o1 U rfpt -f ec.rom -a 0x0 -l 0x80000
; @, w7 D5 m1 H就是将EC.rom写入SPI开始的地方,长度是512K
' T. {$ w/ ~) E3 A5 W我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC2 o" M8 z( v5 i6 t( [5 V
它自已还是会影射到0xFFFFFFF0地方开始执行。
! t* T& ^+ g& W0 O/ x0 fEC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)
2 Z/ |9 Z! x4 F6 |$ x如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读6 B1 a$ @; }0 \* d) [; q* K
SYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。: m% K8 a' _) s' O
6 s. u' i6 w5 `& F3 r
第二种情况:
, b, z* v0 n7 b- R" n2 ?EC和SYS是分开的。
3 C! {& f$ f' l# I, ^% B* \那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。; s* `2 }7 Y% c# E
calpella平台就是这样子的(一定要这样子)
0 L0 ^4 T% a3 U& x; GSYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。
2 w1 i4 T) z7 R, }" ], {4 J) W, _. w& J+ ?0 o* _' \4 }6 h/ c
SYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|