Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 9 Jul 2000 12:27:59 +0200 (METDST)
From:      hm@hcs.de (Hellmuth Michaelis)
To:        dcs@newsguy.com (Daniel C. Sobral)
Cc:        hm@hcs.de, freebsd-current@FreeBSD.ORG, peter@freebsd.org
Subject:   Re: config/hints changes: panic booting pcvt kernel
Message-ID:  <20000709102759.67F2D1029@hcswork.hcs.de>
In-Reply-To: <39683F6F.833723A9@newsguy.com> from "Daniel C. Sobral" at "Jul 9, 0 06:01:35 pm"

next in thread | previous in thread | raw e-mail | index | archive | help
From the keyboard of Daniel C. Sobral:

> > After the latest config/hints changes, just commenting the syscons driver
> > "sc" line and uncommenting the pcvt "vt" line in the GENERIC kernel config
> > file, a booting kernel panics after the the message "atkbdc0: <Keyboard
> > controller (i8042)> .." with a fatal trap 12, page fault while in kernel mode.
> > 
> > This is reliably reproducible on my 2 test machines running current cvsuped
> > a day ago.
> > 
> > I'm now trying and searching for two days and i'm running out of ideas. It
> > might be that i'm doing something very stupid here, but i tried hard to make
> > shure i'm doing not. Help ....
> 
> I recall there were lots of problems with syscons after the hints
> change. *IF* people had the USERCONFIG option, things would work.
> Otherwise...
> 
> I do not know if vt suffers from the same problem, nor do I know if the
> fix done was specific to syscons or not.

Thanks for the reply - it seems indeed to be a strange problem. In the mean-
time i found out that the pcvt probe routine was never called until i added
something like DEVMETHOD(device_identify, pcvt_identify) to the device
methods structure.

But the effect is the same, it still panics after 

atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0

with

Fatal trap 12: page fault while in kernel mode
fault virtual address   = 0x0
fault code              = supervisor read, page not present
instruction pointer     = 0x8:0xc019c73f
stack pointer           = 0x10:0xc0346aac
frame pointer           = 0x10:0xc0346aac
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 0 (swapper)
interrupt mask          = net tty bio cam
kernel: type 12 trap, code=0
Stopped at      strcmp+0x1b:    cmpb    %al,0(%edx)

a ddb trace gives:

strcmp(0,c026a120) at strcmp+0x1b
kbd_get_switch(c026a120,c0a2d060,c0a6a880,c0346b10,c0241bb8) at kbd_get_switch+$
atkbd_probe_unit(0,0,1,1,c0a2e078) at atkbd_probe_unit+0x10
atkbdprobe(c0a72a80,c0a72a80,c0a6a880,c0a72a80,1) at atkbdprobe+0xdc
device_probe_child(c0a6a880,c0a72a80,c0a72a80,c0a6a880,0) at device_probe_child$
device_probe_and_attach(c0a72a80) at device_probe_and_attach+0x35
bus_generic_attach(c0a6a880,c0a2d080,c0a5b780,c0a6a880,1) at bus_generic_attach$
atkbdc_attach(c0a6a880,c0a6a880,c0346bc8,8,0) at atkbdc_attach+0x18c
device_probe_and_attach(c0a6a880) at device_probe_and_attach+0x8e   
isa_probe_children(c0a5b780) at isa_probe_children+0xde
configure(0,344c00,34b000,0,c011c6d4) at configure+0x4a
mi_startup(c0346fb4,b0246,ffe,34b000,c017417d) at mi_startup+0x70
begin() at begin+0x4b

The code where it panics is in /sys/dev/kbd/kbd.c:

        SLIST_FOREACH(p, &keyboard_drivers, link) {
                if (strcmp(p->name, driver) == 0)
                        return p->kbdsw;
        }
        list = (const keyboard_driver_t **)kbddriver_set.ls_items;
        while ((p = *list++) != NULL) {
                if (strcmp(p->name, driver) == 0)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                        return p->kbdsw;
        }

when this statement should get executed.

The strange thing is that now pcvt is correctly probed and attached (and
the keyboard is accessed and does function) so the keyboard structures should
have been initialised correctly - but still there is this null pointer in the
kbd_get_switch ......

Any hints from the more "hints-knowledged" would be highly appreciated .. ;-)

hellmuth
-- 
Hellmuth Michaelis                                    Tel   +49 40 55 97 47-70
HCS Hanseatischer Computerservice GmbH                Fax   +49 40 55 97 47-77
Oldesloer Strasse 97-99                               Mail  hm [at] hcs.de
D-22457 Hamburg                                       WWW   http://www.hcs.de


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000709102759.67F2D1029>