wxjgya 发表于 2011-4-23 15:20:21

求系统重启时bios产生重启信号(KBRST)的过程

各位老师,我想做这样的一个过程,在WINDOWS窗口下软件重启的时候,我测试到I/O芯片(台式机)在kbrst管脚上发出一个低脉冲信号给了南北桥,因为系统基本关机,所以这个信号的产生肯定是由BIOS产生的,现在我想把这个I/O芯片去掉,在CPLD里面模拟产生这个信号给南北桥,但不知道KBRST的产生过程,在I/O芯片LPC47M172的手册上看到如下内容:
If Port 92 is enabled, i.e., bit 2 of KRST_GA20 is set to 1, then a pulse is generated by writing a 1 to bit 0
of the Port 92 Register and this pulse is AND’ed with the pulse generated from the 8042. This pulse is
output on pin nKBDRST and its polarity is controlled by the GPI/O polarity configuration.
我的理解是这样,先对 KRST_GA20的BIT 2写1,然后对PORT 92的BIT 0写1,在I/O芯片的KBRST管脚上应该就有低脉冲输出,但测量是没有的,我是在DOS下面的DEBUG程序输入的,譬如:O 0F(KRST_GA20地址) 04,然后输入 O 92 25(bit 0写1),不知道是否正确,还是因为DOS下是在实模式下,不知道能否这样操作,这个过程肯定是由BIOS产生的,各位做BIOS的时候应该比较清楚,所以了解的情说一下,谢谢!

xtdumpling 发表于 2011-4-23 20:46:17

你试试发0FEh到IO 64口呢?Windows XP有60/64口的时候好像是发这个命令重启的.
debug
-o 64 FE

重启的方式这里有讲:
http://www.ufoit.com/thread-107-1-1.html

wxjgya 发表于 2011-4-24 22:16:54

谢谢xtdumpling

根据SUPER IO的手册,通过KBRST信号产生的复位信号有两重,一种是64端口写FE,另外一种是通过PROT 92的BITO位来控制,我尝试着用64端口的FE来输出复位,在CPLD里面只要译码到64端口的FE数据就输出复位信号给南桥,但在WINDOWS进度条切换到WINDOWS界面的时候,系统就重启了,我怀疑在系统启动的过程中是否还有其它的条件参与控制KBRST信号输出,在BIOS里面这应该是一段通用的代码,可能大家注意的比较少吧,我明天去公司再做下实验看看。
谢谢xtdumpling!
页: [1]
查看完整版本: 求系统重启时bios产生重启信号(KBRST)的过程