*BSD News Article 6630


Return to BSD News archive

Newsgroups: comp.unix.bsd
Path: sserve!manuel.anu.edu.au!munnari.oz.au!sgiblab!sdd.hp.com!think.com!ames!sun-barr!cs.utexas.edu!uunet!news.univie.ac.at!chx400!klarenbe
From: klarenbe@chx400.switch.ch (Paul Klarenberg)
Subject: Solution to vectra hang problem.
Message-ID: <1992Oct16.110720.12533@chx400.switch.ch>
Summary: Solution to vectra hang problem.
Keywords: HP, Vectra, boot, hang, copyright
Organization: Swiss Academic and Research Network SWITCH
Date: Fri, 16 Oct 1992 11:07:20 GMT
Lines: 29

[I'm posting this for a friend]

The solution to the Vectra 386/20N hang after copyright.

  I tracked it down to a problem in pcprobe, the probe routine
for the console. As Terry Lambert pointed out in his reply to
my first posting a fix for the 'hang after copyright' is in the beta
testkit. As I only have the alfa-3 version (2-sep 92) I do not know
exactly what the fix in the beta-kit is..
  But placing a DELAY(1000) inbetween outb(KBOUTP, CMDBYTE); and
kbd_CMD(KBC_RESET); in pcprobe (file ..../isa/pccons.c) solves the
problem. Ok but now the *why*!
  I looked in the Bios Technical Reference Manual for the Vectra 386/20N,
but nothing is said about the time the keyboardcontroller (8042 micro
controller) takes to execute a command. The 8042 is a single chip
microcontroller that executes a program stored in an embedded ROM (16K).
The program controls the keyboard and several settings of the main board
(password, fast reset for mode switching etc..) On a 386/20N it also
controls the built in bus mouse.
   The routines kbc_8042cmd() and kbd_cmd() in pccons.c only test if the
command has been removed from the inputregister of the controller. They do
not test that the command finished executing inside the controller. So I
think the problem is that the keyboard controller locks up because two
commands are given too soon after each other.

Reinier Kleipool
Reinier.Kleipoo@HPITCB.hp.hp.400net.nl
Reinier Kleipool /HPITCB/85