|
发表于 2009-6-17 21:28:27
|
显示全部楼层
你所指的BIOS应该是SYS BIOS吗.& k7 ^! L, f T h, C% O. {
分为两种情况, `# H( w( E4 `& k7 q3 ]2 C
(1):而且EC和SYS合用一个SPI ROM., u9 F- n; h7 u" a
在flash sys bios时EC什么也不用做,虽然EC和SYS共用一个SPI ROM.
% Z8 ^+ a8 d; v! m在BIOS是有定义要flash的SPI ROM的位置,事先BIOS已经知道那几个Block是) C; |, c1 o1 ]' r2 V7 r/ P
留给EC ROM使用,所以不会去flash.2 q8 l1 ~# l& O6 j
反之,如果是flash EC ROM.
6 O0 N3 f4 G# K+ X) bEC的flash tool也知道自已应该把Code写到那个block的SPI ROM中。
/ ]1 R5 }# ?1 E7 ]8 P+ O可以用intel的fpt.exe来实现这种思想。, P2 X& X5 t" n8 E& v; B
fpt -f file.rom -a 0x800000 }8 u/ x- f$ E! z) {& m
就是跑过前面的512K来刷file.rom到SPI ROM中。; E6 t( w C% L* I8 P8 t, c
fpt -f ec.rom -a 0x0 -l 0x80000 B# D" I3 D( o% z z* t( f
就是将EC.rom写入SPI开始的地方,长度是512K
8 w# q. P6 M9 C6 o L我看到的SYSBIOS是在开始的地方,地址0x0留64KB的空间给EC
5 r' m. o! z z它自已还是会影射到0xFFFFFFF0地方开始执行。8 u5 t" d1 g0 r, }& P5 t
EC ROM可以当然SYS BIOS中的一个PCI设备的ROM来看待(当然不会被enum)
1 d5 f/ q6 M/ {5 V0 ~+ a如果EC的位置不会在第一位,ITE的也不知道自已要跑到什么地方去读% K. J( j4 J" M' q' @. @% _- X
SYS是从BIOS最后的地方开始执行,EC是从最头开始执行,各取所需。
+ I3 v) P# S a, q+ Q+ H6 X7 k8 K. a J4 w$ a w
第二种情况:
1 k6 N! T, @: s2 ^$ s3 TEC和SYS是分开的。
c. F% d' ~) v2 `( n: O# a {- N那就是各玩各的,你想怎么刷就怎么刷,两者是独立的。3 ~9 _! S1 q, |$ r1 Y y2 i# C
calpella平台就是这样子的(一定要这样子)
+ M) x" R3 {5 t2 h1 hSYSBIOS要留出512K的ME和descriptor空间,没有多少空间给EC用了。( V/ R; y7 @' F0 \3 U: s: H/ @
5 N# [+ e" k3 XSYS怎么知道要从SPI来读SYSBIOS rom,是由PCH的硬联线决定的。 |
|