From owner-freebsd-hackers Mon Jun 29 02:37:06 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id CAA10075 for freebsd-hackers-outgoing; Mon, 29 Jun 1998 02:37:06 -0700 (PDT) (envelope-from owner-freebsd-hackers@FreeBSD.ORG) Received: from albert.osu.cz (albert.osu.cz [195.113.106.11]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id CAA10059 for ; Mon, 29 Jun 1998 02:36:55 -0700 (PDT) (envelope-from belkovic@albert.osu.cz) Received: from localhost (belkovic@localhost) by albert.osu.cz (8.8.5/8.6.12) with SMTP id LAA01116 for ; Mon, 29 Jun 1998 11:38:07 +0200 (MET DST) Date: Mon, 29 Jun 1998 11:38:06 +0200 (MET DST) From: Josef Belkovics To: freebsd-hackers@FreeBSD.ORG Subject: Re: BROKEN_KEYBOARD_RESET Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII 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(). 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 ?) Code will be on place of invltbl() in vm_machdep.c. This is only cca 10 instructions. Maybe it would try more experienced FreeBSD hacker. (Good example I saw in /sys/boot/biosboot. (I did hier quick hack to change vga palette register for white and green - the change in ?.h file for syscons.c left _white_ cursor - terrible.)) Josef Belkovics To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message