|
|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.
% y' `# t7 P6 `分为两种情况
. |0 V3 G; ]8 _4 P: f' }(1):而且EC和SYS合用一个SPI ROM.+ u7 [) T0 q3 ]: `. z
在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.! x/ h+ a+ |, g* k& R
在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是% M! z6 G1 n! n3 F
留给EC ROM使用,所以不会去flash.% k7 Y/ C+ v, C5 o. T4 l
反之,如果是flash EC ROM.# |. t! C& n! o9 N( z. }) ^" ?
EC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。( ^& r; q* R @) e5 d, s
可以用intel的fpt.exe来实现这种思想。
: J7 X7 G" I0 J% E7 p6 vfpt -f file.rom -a 0x80000" t) X& A2 e8 q
就是跑过前面的512K来刷file.rom到SPI ROM中。+ o* T8 c3 {( e9 g* S! d
fpt -f ec.rom -a 0x0 -l 0x80000! o7 n, O, E! U n
就是将EC.rom写入SPI开始的地方,长度是512K" t _/ M$ @6 |
我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC
- w* d: L) D h' a# P9 H O% ]3 c它自已还是会影射到0xFFFFFFF0地方开始执行。% d: a: s3 \6 T5 j% q6 z, r
EC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)# c! @# _% D+ D' m+ s
如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读
" M1 U% |4 L4 [& |! }SYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。7 n/ d5 s5 @0 [' ?* a
$ d& ^- n) s4 l0 s( k第二种情况:$ T( D; [4 e3 \- b# `0 P
EC和SYS是分开的。
5 R8 G4 V4 a, l. N0 R9 E7 M那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。9 W4 O0 {; R) {$ l; y
calpella平台就是这样子的(一定要这样子)
( m p" l/ A6 P8 N$ W( USYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。
3 i8 ^; o4 l& k) {$ u \3 m( Y
/ l! b. X0 y/ g0 W3 v- _! ?SYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|