From owner-freebsd-hackers Mon Jun 29 09:06:16 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id JAA11682 for freebsd-hackers-outgoing; Mon, 29 Jun 1998 09:06:16 -0700 (PDT) (envelope-from owner-freebsd-hackers@FreeBSD.ORG) Received: from dingo.cdrom.com (dingo.cdrom.com [204.216.28.145]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id JAA11677 for ; Mon, 29 Jun 1998 09:06:13 -0700 (PDT) (envelope-from mike@dingo.cdrom.com) Received: from dingo.cdrom.com (localhost [127.0.0.1]) by dingo.cdrom.com (8.8.8/8.8.5) with ESMTP id JAA00334; Mon, 29 Jun 1998 09:05:37 -0700 (PDT) Message-Id: <199806291605.JAA00334@dingo.cdrom.com> X-Mailer: exmh version 2.0zeta 7/24/97 To: Josef Belkovics cc: freebsd-hackers@FreeBSD.ORG Subject: Re: BROKEN_KEYBOARD_RESET In-reply-to: Your message of "Mon, 29 Jun 1998 11:38:06 +0200." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 29 Jun 1998 09:05:37 -0700 From: Mike Smith Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > > > My home pc (Cyrix 486DX4) does not a CPU reset via the keyboard controller > > > or via invltbl() (/sys/i386/i386/vm_machdep.c). Is somebody able to say me > > > patch which will reset through bios. Or in some other way. (Don't write - > > > throw it out.) > > > > Write your own, if it matters that much to you. Look at how the VM86 > > stuff calls the BIOS, find a suitable BIOS vector, and try it. > > > And if you manage to do it, please contribute the code! When I was a > > FreeBSD newbie, I was stuck with such a motherboard. I switched to > > FreeBSD from Linux, and I could reboot it with "reboot=bios" in Linux. > > > A friend of mine, and more experienced FreeBSD hacker, made a valiant > > effort to port the code, but we never did get it to work. I've ditched > > that motherboard (and the next one), but enough people still ask about > > this problem that I would like to be able to point to a fix. > > > Does it have a PCI or EISA bus? There are PCI and EISA resets... > > Only ISA bus. > > > I would recommend disassembling the keyboard portion of the BIOS to > > see what it's doing so you can duplicate it... > > Keyboard comes from xt (and has switch for xt/at). Probably its controller > does not know about 'cpu reset' command. And 'cyrix 486dx4' certainly does > not understand idea in invltbl(). The cpu reset command is normally performed by the keyboard controller, not the keyboard itself. > I will try in asembler only following: > a) i change cpu mode from protected to 'normal' > b) i change appropriate segment registers > c) i change appropriate bios constant to enable warm post > d) i will call appropritae bios function (int 19h ?) Sounds pretty good; you may have some fun going back to real mode though - you will have to copy your code down below the 1M mark. Have a look at the way the APM stuff does it, as it has to do basically the same thing (although it saves a lot of state that you can safely discard). -- \\ Sometimes you're ahead, \\ Mike Smith \\ sometimes you're behind. \\ mike@smith.net.au \\ The race is long, and in the \\ msmith@freebsd.org \\ end it's only with yourself. \\ msmith@cdrom.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message