|
|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.
. M' W+ g, |9 B8 p5 c分为两种情况
/ d; i/ V5 u2 m( e' _" n: s(1):而且EC和SYS合用一个SPI ROM.) O( K) G* I# k. @
在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.
0 ]& l" U5 r1 j1 k) O8 ]. b; i在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是/ @# g: i; [! Z! Z6 o
留给EC ROM使用,所以不会去flash.
8 |7 L( Z5 h+ k9 @反之,如果是flash EC ROM.: O; ^, P, L3 M7 T; ]
EC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。
# s' p7 W( i# w/ O7 _可以用intel的fpt.exe来实现这种思想。
" Y" T; N7 ^, j3 gfpt -f file.rom -a 0x80000" z% E$ N! Q0 @; ?7 o0 F1 ^! m. ]
就是跑过前面的512K来刷file.rom到SPI ROM中。% K" p% d" e% D- z s; J4 e0 ?( U5 q- Y
fpt -f ec.rom -a 0x0 -l 0x80000. B# f; H" r# ~" }0 |1 `' ~
就是将EC.rom写入SPI开始的地方,长度是512K$ Y( c9 ~& G9 r7 d
我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC: G7 p; A7 E% x: V8 \( ], J
它自已还是会影射到0xFFFFFFF0地方开始执行。
2 o+ h' d g, K) w7 C$ e9 vEC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)
$ E% m, i: t( F/ K+ v如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读6 i9 {& }. ?: P8 f
SYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。
* o/ E/ C+ R: |$ [
$ `' S/ Q, h% D4 O第二种情况:0 k+ f! l3 n. {$ k& ]
EC和SYS是分开的。8 j& \7 K# P" k! ^% ]
那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。% N9 o' y6 `+ u2 v: ]* z" R
calpella平台就是这样子的(一定要这样子)! @8 T/ F0 N' N$ `7 f
SYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。; Y+ [- ]6 U8 D) \
5 s& z c# S8 |: m$ K1 L- [
SYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|