|
|
我是个软件工程师 没碰过硬件和芯片 我想咨询一个问题:
1 J5 M- `2 @) j
+ E7 M4 O* I- ?/ U5 X: J& M0 m首先我的目标是希望架空主板上的bios 让cpu直接执行我自己的bios
, P9 ^1 p# Z* m$ q1 G% W( S! a" o- v, e j# k @& _6 @
经过调研(如果有错误请纠正,谢谢),发现有一种bios仿真器可以达成这个目的。
# R7 f8 x% c1 c" a0 w4 G6 e" l9 L2 j$ ]: U0 ]) O1 M) l
我找到一个bios仿真器 这个仿真器应该只能使用lpc和fwh的芯片 为了以防万一我打算买5片lpc/fwh自适应的芯片
8 `* z/ |8 `& t7 q+ ?3 ]' G
; i/ F# b: ]! \' _6 o/ E& I0 B% G于是就发现需要一款bios编程器 由于自己机器没有并口(太慢也是另外一个原因 不过我想请假一下 是不是lpc和fwh本身
& m2 D( g Q7 {6 d$ i! s- w也不快 所以就算用了usb接口的也不会太快 而用了并口的也没慢到哪里 对么) 发现usb口的支持Lpc/fwh的bios编程器几乎没有
! S' w! E' u) r) y% d2 c
% X* ?( o' v/ l$ p. ^$ ?而bios编程器大都是dip的 所以还需要一个plcc32转dip32的转接座 / y6 x2 Q; |; H$ H8 m8 t1 Q
/ I; v( Y5 p/ U) F6 q1 F& O+ V6 L最后还得买10跟带插头的杜邦线 用于连接主板上的lpc header和bios仿真器上的lpc header9 M- b' @. m) m" f2 |! H
9 b* k) S( ]+ t4 }: [6 \
然后还得记得买个拔取夹来拔出plcc32的lpc/fwh芯片..." c ^1 {8 u6 |
" U; U9 F3 Y. m1 B4 n: f2 B9 [
如果还有疏漏请提醒 谢谢
; u2 \4 C2 p0 u5 t; {8 {5 y1 k h* g1 M. B0 w! l- K- F
然后是boot bios destination的问题 主板上的bios是连接在spi上的 而Boot BIOS Strap引脚内部有2个上拉电阻6 b0 _* i4 p( A; G' |
根据文档说明 如果Boot BIOS Strap引脚在PWROK的上升沿时是11(2位)则从spi flash抓码 如果是00就从lpc抓码 那如果6 z; b/ r8 H: [9 w# j8 _6 V
按照我的思路 是不是我需要在这2个Boot BIOS Strap引脚焊2个下拉电阻才能从lpc抓吗?2 T* t$ Y* K: K9 i
( ^1 D1 ~+ e5 k8 U: q$ \" |) @
另外如果抛开上面的Boot BIOS Strap问题 我看手册上有提到软strap 而且这个软strap会先于bios和软件来决定一些配置& }5 @+ W' [/ l$ W0 s8 Z I4 {2 K
而软strap的机制也是依赖于spi flash 如果这个spi flash的signature正确 就会读取其中的descriptor 而descriptor - v" c. p4 p e" g' Q: t7 I
又会包含指向PCH Soft Straps区域 那我的问题是如果这个区域的内容包含了Boot BIOS Strap的设置 是不是Boot BIOS Strap+ t. ~& ?5 ]; g- o1 _5 y5 H/ J( p; d0 O/ B
引脚的电平是多少也无法影响了 哪怕被我给下拉了结果还是可能会从spi flash抓码? 这里我有点糊涂 因为soft strap的加载: @ }- E1 a+ Q7 w: O6 N
是先于boot BIOS Strap引脚的 那么到底听谁的?还是说soft strap里根本不包含boot BIOS Strap相关的设置?* L( [ Y! ~$ [. h& a# b% [* v
# `) ?4 ^/ j# P9 k/ p
如果soft strap里包含boot BIOS Strap相关的设置 那么我是不是应该用什么方法来破坏flash上的signature 这样, D( s8 {# a5 d! \2 k/ r) h
descriptor mode就会无效 这样硬件也就不会去load PCH Soft Straps的设置了 对么?, B5 y& E7 o ~
4 ]- S5 l( s% Z% T) R最后 有个GCS—General Control and Status寄存器 这个寄存器是可读写的 读功能明白 写功能是什么意思呢? 如果有代码访问
0 L9 x" r6 n, a到并修改了这个寄存器的值 请问还有什么意义?难道说我可以往spi flash里写入一段程序 这段程序修改这个寄存器 把这里的
" ^2 U6 ]) ?! [4 j# ^& |' ^Boot BIOS Strap设置给改成lpc 那么下条指令cpu就会从lpc抓了么 我没弄明白这个寄存器里的Boot BIOS Strap是可写的到底
, l! y( j t: w" q有什么用处
1 ]8 i: u! P: g+ ^" w m7 i9 n4 B" g+ p+ ]! a; p) r2 W, @# N
上面就是我的全部问题 一方面是硬件上的准备是否齐全 另一方面是我担心焊2个下拉电阻是不是有用
/ `9 f7 E7 |) |" l: d) v, Y% n7 _& a
0 _7 _' N, k) J* I" H7 n[ 本帖最后由 growlanser 于 2012-2-27 22:26 编辑 ] |
|