|
我是个软件工程师 没碰过硬件和芯片 我想咨询一个问题:
2 E3 L0 T5 b, R. | q) d; d/ X9 g' U- D; Y t, [$ H; T
首先我的目标是希望架空主板上的bios 让cpu直接执行我自己的bios: K: E( W8 D4 p
3 T L5 {" M# d/ t2 h
经过调研(如果有错误请纠正,谢谢),发现有一种bios仿真器可以达成这个目的。
+ L- g4 w: x5 x9 c& ~! E
9 s7 g2 ] y0 m. o9 ^0 P' c9 b; T我找到一个bios仿真器 这个仿真器应该只能使用lpc和fwh的芯片 为了以防万一我打算买5片lpc/fwh自适应的芯片
2 b3 i+ h) w' F# p# K9 c
7 S, g- j& h9 k2 v. q于是就发现需要一款bios编程器 由于自己机器没有并口(太慢也是另外一个原因 不过我想请假一下 是不是lpc和fwh本身
( i3 r7 ^" V: x5 J' j- u也不快 所以就算用了usb接口的也不会太快 而用了并口的也没慢到哪里 对么) 发现usb口的支持Lpc/fwh的bios编程器几乎没有
1 s( f I! f* l: s! \) q; {
7 z- W0 w! q9 U5 f G$ ^0 ?而bios编程器大都是dip的 所以还需要一个plcc32转dip32的转接座
: |% R3 O3 G) l! P# {- v7 R3 l2 i, [8 X9 T/ P; B
最后还得买10跟带插头的杜邦线 用于连接主板上的lpc header和bios仿真器上的lpc header% k( O; u5 r* @- [( W$ ^
# {8 E% ^$ x7 e3 |5 u% M. L2 m
然后还得记得买个拔取夹来拔出plcc32的lpc/fwh芯片...0 O9 v( v; p0 A+ G n" E, q8 Z: A
: `' }& T+ X) ^& {% s# ^8 o3 @0 E
如果还有疏漏请提醒 谢谢4 j: h0 C1 l5 A5 m+ @
& B7 o& D- {/ @0 i6 y: a
然后是boot bios destination的问题 主板上的bios是连接在spi上的 而Boot BIOS Strap引脚内部有2个上拉电阻
+ g0 o6 V. u/ K7 K$ U根据文档说明 如果Boot BIOS Strap引脚在PWROK的上升沿时是11(2位)则从spi flash抓码 如果是00就从lpc抓码 那如果
7 k, U3 L' X: H$ k) a按照我的思路 是不是我需要在这2个Boot BIOS Strap引脚焊2个下拉电阻才能从lpc抓吗?
4 R$ B3 ?/ ?" F5 d) p9 [; r0 `) a& n
: y% Y T% K/ m另外如果抛开上面的Boot BIOS Strap问题 我看手册上有提到软strap 而且这个软strap会先于bios和软件来决定一些配置$ p+ \1 U n& u9 |0 t" y9 W# G8 T. j
而软strap的机制也是依赖于spi flash 如果这个spi flash的signature正确 就会读取其中的descriptor 而descriptor $ q, Q6 J+ A9 S0 M, ~6 P5 S1 C% ~
又会包含指向PCH Soft Straps区域 那我的问题是如果这个区域的内容包含了Boot BIOS Strap的设置 是不是Boot BIOS Strap
' ]6 i* o* s7 l" N. H5 s引脚的电平是多少也无法影响了 哪怕被我给下拉了结果还是可能会从spi flash抓码? 这里我有点糊涂 因为soft strap的加载$ l/ G( p; B+ w6 G" d% O! _. i( o( m
是先于boot BIOS Strap引脚的 那么到底听谁的?还是说soft strap里根本不包含boot BIOS Strap相关的设置?0 t) n+ F I4 I! B. _- ^1 S* v2 I
8 o, T& r: }# e |5 J如果soft strap里包含boot BIOS Strap相关的设置 那么我是不是应该用什么方法来破坏flash上的signature 这样
) P/ g8 `" ?3 W& o' T2 J2 h# cdescriptor mode就会无效 这样硬件也就不会去load PCH Soft Straps的设置了 对么?. [6 s3 q4 I, J/ u7 O. J. q7 B1 s% W
7 \3 M' [5 o3 P4 m+ n; V最后 有个GCS—General Control and Status寄存器 这个寄存器是可读写的 读功能明白 写功能是什么意思呢? 如果有代码访问
" r1 i$ h- s( X& l; D; U到并修改了这个寄存器的值 请问还有什么意义?难道说我可以往spi flash里写入一段程序 这段程序修改这个寄存器 把这里的
, V V) A* ?4 N H& f L/ ~5 eBoot BIOS Strap设置给改成lpc 那么下条指令cpu就会从lpc抓了么 我没弄明白这个寄存器里的Boot BIOS Strap是可写的到底
5 y0 i8 p2 ~; y0 ^0 [1 X有什么用处$ a/ k6 }6 l8 N. \ F% T& n
n' P4 m7 V# Q- H( V2 B, [
上面就是我的全部问题 一方面是硬件上的准备是否齐全 另一方面是我担心焊2个下拉电阻是不是有用, d' x1 A2 I3 F V1 w, E
$ }$ ^; l' o! E( F1 x" V& ?0 G; t1 d2 O[ 本帖最后由 growlanser 于 2012-2-27 22:26 编辑 ] |
|