Instead of deciding which iockbc port is the keyboard port, and which one is the
authormiod <miod@openbsd.org>
Wed, 25 Dec 2013 21:01:01 +0000 (21:01 +0000)
committermiod <miod@openbsd.org>
Wed, 25 Dec 2013 21:01:01 +0000 (21:01 +0000)
commit07eb5baf9161566c9a1a82efdaa97df238f53a8f
tree95e55128c2aa79e28a86ee62e1f975d82d458e8d
parent6fe055f519e5c3a3cb250908643bcbe56f9b4e83
Instead of deciding which iockbc port is the keyboard port, and which one is the
mouse port, depending upon the system time, match what the prom is doing and
actually probe for a keyboard on both ports, and decide the first port with a
keyboard is the keyboard port.

If no keyboard is found, but a mouse is found, decide the keyboard port is the
empty one.

If no device is found, then we can try and pick the defaults, depending upon
the system we are running on, as this used to be the case (i.e. coping with
Fuel having keyboard on port 1 and mouse on port 0 when connecting devices
according to the chassis' markings).

This is necessary because different IO9 board revisions on Tezro come with
different wirings, and we can not tell these boards apart.

Discussed with "nullnilaki" (nullnilaki on gmail) who is the lucky owner of an
Onyx 350 with correct wiring and a Tezro with inverted wiring. Tested on Octane
and Fuel with all combinations of devices connected (mouse only, keyboard only,
keyboard and mouse) in both ports, glass and serial console.

XXX We probably want to allow for more pckbd attachment flexibility on non-x86
XXX platforms eventually (at least where the PS/2 slots are really independent,
XXX so that we can attach pckbd to any port and better cope with human error
XXX when connecting devices.
sys/arch/sgi/dev/iockbc.c
sys/dev/ic/i8042reg.h