Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 Aug 1996 20:52:51 +0200 (MET DST)
From:      J Wunsch <j@uriah.heep.sax.de>
To:        freebsd-hackers@freebsd.org (FreeBSD hackers)
Cc:        sos@freebsd.org
Subject:   Re: locking up
Message-ID:  <199608151852.UAA01372@uriah.heep.sax.de>
In-Reply-To: <199608140700.JAA11609@ra.dkuug.dk> from "sos@freebsd.org" at "Aug 14, 96 09:00:35 am"

next in thread | previous in thread | raw e-mail | index | archive | help
As sos@freebsd.org wrote:

> Hmm, this one I know about, the suggested fix is to disable the
> LED update sequence (or get another KBD controller)...
> This will hang the keyboard both under X and in text mode...

I don't think that's a keyboard _controller_ problem, it's merely a
problem in handling the keyboard bus.

Basically, the keyboard bus has been designed in the IBM PC era to be
a uni-directional serial bus.  There's a simple `clock' line where the
initial signal slope indicates the start of a character transmission.
When going to the AT however, IBM decided to abuse this bus for bi-
directional transfer, e.g. in order to update the keyboard LEDs, and a
few other functions.  Of course, the hardware remained the same, and
no method of bus arbitration has been added.  Thus, if both sides
assert the keyboard clock simultaneously, they start sending data
then, and will eventually time out in getting no further response.
The `Update LEDs' command is the most obvious offender, since it often
happens together with scan codes being sent by the keyboard.

Even systems like SCO suffer from this problem, i could reproducibly
hang the latest SCO on one of the newer (supported!) HP Vectra
machines we have been setting up on behalf of a customer.

I'm not sure offhand, but there must be a possible recovery strategy
in trying to abort the pending transfers, and re-initializing every-
thing (the keyboard controller _and_ the keyboard).

-- 
cheers, J"org

joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)



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