i386/87026: Bootup hang on atkbdc on Compaq 1850R between
6.0-CURRENT-SNAP004 and 6.0-BETA5
Nick Evans
nevans at talkpoint.com
Fri Oct 7 11:00:28 PDT 2005
The following reply was made to PR i386/87026; it has been noted by GNATS.
From: Nick Evans <nevans at talkpoint.com>
To: bug-followup at FreeBSD.org
Cc:
Subject: Re: i386/87026: Bootup hang on atkbdc on Compaq 1850R between
6.0-CURRENT-SNAP004 and 6.0-BETA5
Date: Fri, 7 Oct 2005 13:50:33 -0400
Received the following from Marius Strobl:
--------------
On Thu, Oct 06, 2005 at 06:29:44PM -0400, Nick Evans wrote:
>
> I've got a Compaq 1850R (dual 600Mhz P3, 512MB) that I tried upgrading to
> 6.0- BETA5 from 4.9-RELEASE today, but she hangs on:
>
> atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
> atkbd0: <AT Keyboard> irq 1 on atkbdc0
>
> I used an older 6.0-CURRENT-SNAP004 disc whose kernel was compiled on Jun
> 02, 2005 and the system boots up just fine. With the following:
>
> atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
> atkbd0: <AT Keyboard> irq 1 on atkbdc0
> kbd0 at atkbd0
> atkbd0: [GIANT-LOCKED]
> ...
>
> I noticed on June 10th you committed changes to atkbdc and was wondering if
> it's possible there was a bug or regression introduced with them. I'm leary
> about building world until I'm sure I can get past the keyboard driver hang.
Hi,
the commit on June 10th mainly moved all files related to atkbdc(4)
and its children to sys/dev/atkbdc and reshuffled some code but
had next to no functional changes on architectures other than
sparc64. So far there where no reports that these changes actually
broke one of these drivers, only false ones. One was that on some
machines the fact that the malloc-type atkbdc(4) defines no longer
is static happend to exhaust UMA_BOOT_PAGES on some machines which
were already close the edge due to other changes. UMA_BOOT_PAGES
was increased accordingly. There was another report of keyboard
problems since then but which turned out to be triggered by
ehci(4):
http://lists.freebsd.org/pipermail/freebsd-current/2005-August/053957.html
I have look at my changes to atkbdc(4) etc. over and over again
due to these and still can't think of why the changes could
have a negative impact on these drivers. Therefore I think that
other changes since June 2nd are causing you problems. The
ever ongoing changes to interrupt handling and routing on i386
come to my mind (probing and attaching the keyboards triggers
interrupts and I've seen hangs during device configuration caused
by problems with interrupts before). But generally I unfortunately
can't think of a particular change.
It sounds like you already installed a 6.0 kernel on the hard disk.
If that's the case you could try some things in order to avoid
the hang. In particular you could try to add hint.atkbd.0.flags="0x1"
to /boot/device.hints and also try with hint.atkbd.0.flags="0x8".
You could also try to remove the hint.atkb* lines there entirely,
that way the keyboard controller and its children should be probed
somewhat later in that game through PnP rather than as legacy ISA
devices. If your board supports ACPI you could also try whether
enabling it makes a difference.
> Is there anything I can try on the BETA5 disc to either get more information
> about the hang to pass on to you or bypass the issue entirely?
>
Well, you could do a verbose boot but I don't think that won't
yield relevant information. If you build a custom kernel with
options DDB and KDB enabled or have a 6.0 BETA3 disk which
still had these enabled in the GENERIC kernel (I think BETA 4.0,
too, but certainly not BETA5) you could try to press CTRL-ALT-ESC
in oder to break into the debugger and check with the 'where'
command where the machine hangs. Whether breaking into the
debugger via that key sequence works however depends on whether the
keyboard works at that time (either due to being sufficiently
attached for high-level console support or still working through
low-level console support before it is reinitialized). If that
doesn't work you'll need to use a serial console together with a
kernel that is built with options BREAK_TO_DEBUGGER in addition to
DDB and KDB and send a break signal on the serial line.
Marius
------------------------
It appears there is some sort of interrupt problem as he mentions. I took
another 1850R server without any additional PCI cards installed and 6.0-BETA5
boots fine. The original server contained two fxp cards and a hifn crypto
accelerator. I will test a few additional things to isolate the problem
further.
More information about the freebsd-i386
mailing list