首页
社区
课程
招聘
[分享]LPT接口刷写主板BIOS芯片
发表于: 2011-9-14 16:35 28005

[分享]LPT接口刷写主板BIOS芯片

2011-9-14 16:35
28005

本文介绍了用LPT接口实现SPI编程器的功能,适用于BIOS修复、BIOS调试开发等用途。

先说一下故事背景。

SerialICE项目(http://www.serialice.com/)在系统BIOS启动初期即接管Processor,使用改编的QEMU引擎以模拟方式介入后续指令的执行,从而实现硬件ICE的调试功能。
沿用SerialICE的思路,本人已成功将手上的华硕P5k-e+Intel Q6600改造成(非完美的)硬件调试器。这种的调试器比bochs调时器支持的硬件广泛,bochs需要为每一种外部设备编写代码模拟,bochs至今仍不支持1394接口,bochs的显卡过于老旧,根本无法运行DirectX9/10的代码。另外显示卡、以太网卡等外围部件不需要软件模拟,执行速度比bochs快很多。

为了开发这个项目,需要反复折腾BIOS ROM,官方的刷写工具只能在系统正常的时候使用,调试期间经常把BIOS刷死,因此必须另想办法。现在的PC主机板BIOS ROM芯片一般都采用SPI接口,SPI协议引脚少,实现简单。通常在ROM旁边有一个7针的外部编程接口,如下图所示。


老旧电脑的LPT接口配以合适的程序,能实现诸如SPI、JTAG等很多功能,除了速度稍慢。LPT的DB25插头引脚定义如下图。

捷克的Rayer利用LPT实现了SPI的接口编程(http://rayer.ic.cz/elektro/spipgm.htm)。接线图如下图所示。

找一个IDE硬盘或软驱的接头,砍下一部分并附带接线,与LPT的DB25插头按下表连接。


3.3V电源可取自本机ATX电源(桔黄色就是+3.3V)或另外的备用电源。由于SPI EEPROM数字电路芯片的瞬态电流比较大,需要在3.3V电源Vcc脚与GND之间接不小于1000uF的电容(耐压6V以上),Rayer电路中的150欧姆电阻可有可无。最后制成的电缆类似下图。


Rayer在网站上提供了一个SPI编程工具(SPIPGM),但是这个工具适用的芯片范围很窄。

flashrom项目(http://flashrom.org)提供了对更多芯片的支持。

电缆连接正确,电源接通后
运行flashrom -p rayer_spi即显示侦侧出的SPI EEPROM的型号;
运行flashrom -r bios.rom -p rayer_spi可以dump出EEPROM;
运行flashrom -w bios.rom -p rayer_spi可以写入EEPROM。

有了这个几乎免费的ROM芯片编程器,就可以随心所欲,毫无顾忌的修改BIOS了。预掌握Processor,必先掌握BIOS。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 6
支持
分享
最新回复 (21)
雪    币: 27
活跃值: (127)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
2
很感兴趣,哪里能找到更多学习资料?
2011-9-14 18:01
0
雪    币: 316
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
了解下.谢谢分享..
mark!
2011-9-14 19:54
0
雪    币: 475
活跃值: (64)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
支持啊,编程器的钱能省下来了
2011-9-14 22:01
0
雪    币: 135
活跃值: (719)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
请详细介绍一下将主板改成硬件调试器的过程吧!
"使用改编的QEMU引擎以模拟方式介入后续指令的执行,从而实现硬件ICE的调试功能"这倒是个不错的思路.
另外,Intel现在开放的BLDK(一个bootloader,用于在嵌入式应用中替代BIOS,不过好像现在只能用于Atom E6xx和5xx, 能启动Linux等,但Windows启动不了)好像开机运行少许指令就可以进行调试(当然需要第2台调试主机).

其实我一直在想,为什么没有公司实现面向桌面的裸机虚拟化,性能肯定比现在基本OS上的虚拟化高不少.
2011-9-14 22:50
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
6
终于有人改成功了~热烈庆祝,求楼主分享经验~
2011-9-14 23:00
0
雪    币: 451
活跃值: (78)
能力值: ( LV12,RANK:470 )
在线值:
发帖
回帖
粉丝
7
支持,修改方法看起来不错
可惜偶的台式机比较老,不想改了,
2011-9-15 13:01
0
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
楼主强大,支持
2011-9-15 22:32
0
雪    币: 241
活跃值: (67)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
找太不用的机器试试
2011-9-16 14:37
0
雪    币: 169
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
很感兴趣, 楼主强人啊
2011-9-16 14:45
0
雪    币: 237
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
这个牛!!!真想自己也整个!!
2011-9-16 15:22
0
雪    币: 237
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
不错,再慢也比串口快吧。
2011-9-18 15:38
0
雪    币: 41
活跃值: (194)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
13
mark .bios 调试不用老拔芯片了···
2011-9-20 01:08
0
雪    币: 382
活跃值: (352)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
14
这个好玩.强烈要求分享经验
2011-9-20 01:15
0
雪    币: 244
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
太让人期待了。
2011-9-20 16:25
0
雪    币: 4560
活跃值: (1002)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
太牛了,不顶不行啊
2011-9-20 16:31
0
雪    币: 4902
活跃值: (130)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
膜拜下强人。。。
2011-9-21 14:53
0
雪    币: 121
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
这个都是手工制作……
2011-9-21 18:38
0
雪    币: 220
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
偶对硬件调试器很感兴趣 呵呵
2011-9-23 14:05
0
雪    币: 563
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
这个的顶下收下!!BIOS 有点像 EEPROM
2011-9-25 22:19
0
雪    币: 219
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
谢谢分享经验。
2011-10-28 16:26
0
雪    币: 463
活跃值: (116)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
COOL ,

楼主当年 幻影 不是就是用硬件调试器 脱掉的么
2011-10-29 05:40
0
游客
登录 | 注册 方可回帖
返回
//