|
|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.& }* z& h; B* T+ n
分为两种情况
! y3 Z; P. G; U(1):而且EC和SYS合用一个SPI ROM.
" Z5 J0 i' K0 h0 b' u1 |5 ?在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.1 D: }0 _0 [9 R
在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是! S6 q" @3 w' B/ A5 I0 Z1 r3 y
留给EC ROM使用,所以不会去flash.
6 A4 W: y- c% Q1 A, B( X3 @( F反之,如果是flash EC ROM.
: u- O" ?7 a) {1 w" q) O: eEC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。* H- W1 ~3 o4 ^
可以用intel的fpt.exe来实现这种思想。
7 Y& E4 r* I8 C/ M- J. _4 {fpt -f file.rom -a 0x80000! {) N8 n1 o, X+ H
就是跑过前面的512K来刷file.rom到SPI ROM中。 z# _8 i* a: t3 K3 q7 i% s
fpt -f ec.rom -a 0x0 -l 0x80000) x- r1 p0 L+ ~, ?
就是将EC.rom写入SPI开始的地方,长度是512K. W* s) z _: n. y% V% Q/ ]
我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC7 k* ?4 [4 U' a# r! {( Y1 ^
它自已还是会影射到0xFFFFFFF0地方开始执行。
7 |7 [9 w0 b- N- v0 @6 VEC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)
' I7 {5 I* h* _- L6 T& c) s4 H如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读5 s! i* d C4 g, f" P% m2 y6 ]
SYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。
3 x8 R* d# [" y/ }5 |4 Z4 M+ C9 z' Z& W$ t+ T
第二种情况:
* @" K9 ~ M' yEC和SYS是分开的。! X$ s2 z# E- ^0 p, R0 |5 `4 Z+ k
那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。
0 V+ x/ y, s3 l' J. {, Xcalpella平台就是这样子的(一定要这样子)
2 v0 Y5 b2 V- w. f8 d" i, @+ SSYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。9 z9 W' n+ G5 D# L2 R8 s% Z
5 \ `" U; p8 |/ U7 d9 _; C! d4 }
SYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|