Subject: Re: Pain .. oh, pain.
To: None <port-sparc@NetBSD.ORG>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: port-sparc
Date: 07/31/1997 10:22:10
> To make matters worse, I rebooted into single-user mode and once it
> gets past asking you for root/dump/root-fs-type (I booted -sa), it
> refused to recognize keyboard input (save Stop-A).

I had a very similar problem; after throwing debugging code into
various places, I tracked it down to the keyboard not sending back a
reset code after being reset (or at least kbd.c not getting it).

I added some code so that I could at least get keystrokes.  Every now
and then since then, a machine has gone dead on me at boot until this
code kicked in; I don't know what it is, but _something_ must be losing
those reset codes.

I have several patches in sys/arch/sparc/dev/kbd.c; the part that's
relevant to this discussion is

@@ -345,6 +346,15 @@
                 * Do not know how to translate yet.
                 * We will find out when a RESET comes along.
                 */
+/* If a RESET doesn't come along in a little while, fake enough of it
+   to at least get keystrokes. */
+static int n = 0;
+if (++n > 10)
+{ ks->kbd_unshifted = kbd_unshifted;
+ks->kbd_shifted = kbd_shifted;
+ks->kbd_cur = ks->kbd_unshifted;
+printf("[kbd_translate: faking RESET]\n");
+}
                return (-1);
        }
        down = !KEY_UP(c);

I'd written off my problems as a flaky keyboard, but if this patch
fixes anything for you, there is probably something deeper wrong and it
may deserve to be sent-pr; it's unlikely that everybody's keyboards
went flaky at exactly the same time as the kernels got switched.

					der Mouse

			       mouse@rodents.montreal.qc.ca
		     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B