From owner-freebsd-current Fri May 17 08:54:02 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id IAA26518 for current-outgoing; Fri, 17 May 1996 08:54:02 -0700 (PDT) Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.19]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id IAA26512 for ; Fri, 17 May 1996 08:53:54 -0700 (PDT) Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.12/8.6.9) id BAA28332; Sat, 18 May 1996 01:47:15 +1000 Date: Sat, 18 May 1996 01:47:15 +1000 From: Bruce Evans Message-Id: <199605171547.BAA28332@godzilla.zeta.org.au> To: charnier@lirmm.fr, current@FreeBSD.org Subject: Re: Keyboard reset failed Sender: owner-current@FreeBSD.org X-Loop: FreeBSD.org Precedence: bulk >I got this message at boot since the last commit to syscons. I tried to >increase the number of tries to 20 (default is 10) but no luck. The returned >val is 0xfa (aka KB_ACK)... I'd like to know why it used to work. It used to wait forever for valid input. Now it reads garbage input if valid input arrives later than expected, but it partially compensates for this bug by silently retrying up to 10 times if the garbage happens to equal KB_ACK (which it usually does). Try increasing the number of tries a lot more and printing the number of retries. Garbage is also read in the `while (retries--)' loop. inb(KB_DATA) isn't valid until a few usec after (inb(KB_STAT) & KB_BUF_FULL) != 0, but KB_STAT isn't read at all in this loop. I see times of 5ms between sending the KB_RESET and receiving the KB_ACK, and 3 ms between receiving the KB_ACK and receiving the KB_RESET_DONE. Bruce