From owner-freebsd-hackers Tue Jun 27 14:10:45 1995 Return-Path: hackers-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id OAA03258 for hackers-outgoing; Tue, 27 Jun 1995 14:10:45 -0700 Received: from gndrsh.aac.dev.com (gndrsh.aac.dev.com [198.145.92.241]) by freefall.cdrom.com (8.6.10/8.6.6) with ESMTP id OAA03250 for ; Tue, 27 Jun 1995 14:10:42 -0700 Received: (from rgrimes@localhost) by gndrsh.aac.dev.com (8.6.11/8.6.9) id OAA07820; Tue, 27 Jun 1995 14:10:31 -0700 From: "Rodney W. Grimes" Message-Id: <199506272110.OAA07820@gndrsh.aac.dev.com> Subject: Re: 2.05R reboot hangs To: bde@zeta.org.au (Bruce Evans) Date: Tue, 27 Jun 1995 14:10:31 -0700 (PDT) Cc: bde@zeta.org.au, hackers@freebsd.org, wpaul@skynet.ctr.columbia.edu In-Reply-To: <199506272033.GAA22671@godzilla.zeta.org.au> from "Bruce Evans" at Jun 28, 95 06:33:46 am X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Length: 1601 Sender: hackers-owner@freebsd.org Precedence: bulk > > >> You initialize it before jumping to the reset vector. > > >One that is very very hard to get right for most [3-4]86's is the > >CPUID that is stored id DX:AX on power up reset since that is the > >only way to get this value. > > "Genuine Intel NOT!" :-). > > >I don't want to call cold boot, I guess that was not clear from > >above. Also jumping to 0xFFFF:0000 (note your address above is > >not the reset vector the value here is) is not a documented interface > > There is no value there, only code that normally has a value embedded > in it. > > >to the BIOS. Calling cold boot is about as reliable as triple faulting > >or hitting the keyboard reset. The one and only proper way to > >make this work reliable on all machines as far as I can tell would > >be a good old int 0x19, and that means I had better leave the BDA's > >intact. > > As I explained about 10 messages ago, int 0x19 isn't even useful for > rebooting from DOS because it doesn't reinitialize hooked vectors. > > I now think the keyboard reset is best. It apparently requires disabling > gateA20. The code that disables it needs to run from an address < 1MB. > Page 0 is a good place. Okay, I can agree with that one, let me see about hacking some code into the 0x500->0x1000 range that does the drop out of protected mode, gate A20 off, then slam the keyboard controller. I think you are right in that this is going to be the most reliable mechanism. -- Rod Grimes rgrimes@gndrsh.aac.dev.com Accurate Automation Company Reliable computers for FreeBSD