Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Jun 1998 09:05:37 -0700
From:      Mike Smith <mike@smith.net.au>
To:        Josef Belkovics <belkovic@albert.osu.cz>
Cc:        freebsd-hackers@FreeBSD.ORG
Subject:   Re: BROKEN_KEYBOARD_RESET 
Message-ID:  <199806291605.JAA00334@dingo.cdrom.com>
In-Reply-To: Your message of "Mon, 29 Jun 1998 11:38:06 %2B0200." <Pine.BSF.3.95q.980629113722.1110A-100000@albert.osu.cz> 

next in thread | previous in thread | raw e-mail | index | archive | help
> > > 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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199806291605.JAA00334>