|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.3 T: m$ e/ I0 Q: D6 G5 h
分为两种情况
" V9 _2 V6 m' R7 G7 Q) Z(1):而且EC和SYS合用一个SPI ROM.
3 m7 H* m: D' h* j7 C在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.2 C+ q9 x1 w {
在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是
# c3 ?1 U6 ]4 m8 q留给EC ROM使用,所以不会去flash.
5 Z7 b. A! @7 N* }反之,如果是flash EC ROM. d0 P; m, r1 }( Y0 |+ ?0 F+ D( r5 Q
EC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。4 c* U7 X' V+ g7 K* k
可以用intel的fpt.exe来实现这种思想。
g7 T( v+ Z! P; i$ i V& b1 Nfpt -f file.rom -a 0x80000
. W, [( g& \0 ?1 L就是跑过前面的512K来刷file.rom到SPI ROM中。
( P0 `# X' k* J0 A! i) nfpt -f ec.rom -a 0x0 -l 0x800009 I6 H& ]) B8 B% T$ q0 ]* l
就是将EC.rom写入SPI开始的地方,长度是512K* V: ^! R" V8 d+ R: k* j
我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC
. M" r( I$ e7 ~2 L它自已还是会影射到0xFFFFFFF0地方开始执行。
5 c# [. e3 {; A# I( eEC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)) G6 b3 f- w, U4 n: ]
如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读
7 M6 R5 d6 a0 zSYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。
! ?* |0 F, Y& h8 E& f
9 b5 L; U& D$ f第二种情况:
; U& L/ a( b; Q' p% j* QEC和SYS是分开的。* u% \/ ~- m& j/ n* O) O( p
那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。
# U6 r: d8 A1 v* H$ Xcalpella平台就是这样子的(一定要这样子) I {/ L4 G" G1 `* j7 u
SYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。. r1 u, u' g' u% a; m; A
6 L& @7 i- j' }% y& e
SYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|