I'm using the following code to reset the comp:
Reset proc
loop1: in al,64h ;wait 8042 ready
test al,2
jnz loop1
mov al,0FEh ;write reset command
out 64h,al
ret
Reset endp
This works, the comp reboots. (BTW, does it work on machines after
Pentium I?)
However, that does not pulse the RESET signal on the ISA bus.
Anyone knows how to accomplish that?
I think Mark Larson posted that a while ago, at least for one chipset.
Here's a link which covers various CPU reset methods. I think the method
Mark posted is #4:
http://groups.google.com/group/alt.os.development/msg/2fff6635c0be1e2c?hl=en
Rod Pemberton
I've been ignoring this group for a while, but if anyone is still
interested in this, I'll add a few more provisos --
(1) Some chipsets require multiple writes to do this (and some ignore
bit 3, so this is not a full reset, just a CPU and possibly north
bridge reset). This is more reliable code:
mov dx, 0xCF9
mov al, 0x0A
out dx, al
mov al, 0x0E
out dx, al
And (2) the most reliable way get a full reset is to shut down the
system with a wake up after the power supply has completed a shutdown
(this is about 10 seconds for the "best" power supplies I know of). It
is not nearly so simple, involving interactions with the BIOS and CMOS
and/or EFI implementation. Avoid it if you can live with the
limitations of (1).
--Charles
lidt [$]
int3
Mike Gonta
look and see - many look but few see