From owner-freebsd-hardware Sat May 9 04:32:23 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id EAA06117 for freebsd-hardware-outgoing; Sat, 9 May 1998 04:32:23 -0700 (PDT) (envelope-from owner-freebsd-hardware@FreeBSD.ORG) Received: from itw.itworks.com.au (root@itw.itworks.com.au [203.32.61.6]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id EAA06109 for ; Sat, 9 May 1998 04:32:19 -0700 (PDT) (envelope-from gavin@itworks.com.au) Received: from localhost (gavin@localhost) by itw.itworks.com.au (8.8.8/8.8.5) with SMTP id VAA20206; Sat, 9 May 1998 21:29:14 +1000 (EST) Date: Sat, 9 May 1998 21:29:13 +1000 (EST) From: Gavin Cameron To: Bruce Evans cc: freebsd-hardware@FreeBSD.ORG Subject: Re: Serial port problems In-Reply-To: <199805091115.VAA30393@godzilla.zeta.org.au> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hardware@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org Stoping in sioprobe() and single stepping give me the following Probing for devices on the ISA bus: Breakpoint at _sioprobe: pushl %ebp db> s Stopped at _sioprobe+0x1: movl %esp,%ebp db> Stopped at _sioprobe+0x3: subl $0x1c,%esp db> Stopped at _sioprobe+0x6: pushl %edi db> Stopped at _sioprobe+0x7: pushl %esi db> Stopped at _sioprobe+0x8: pushl %ebx db> Stopped at _sioprobe+0x9: cmpb $0,_already_init.114 db> Stopped at _sioprobe+0x10: jnz _sioprobe+0x48 db> Stopped at _sioprobe+0x12: movl $0xf0201870,%ecx db> Stopped at _sioprobe+0x17: cmpl $0,_isa_devtab_tty+0x4 db> Stopped at _sioprobe+0x1e: jz _sioprobe+0x41 db> Stopped at _sioprobe+0x20: cmpl $0xf02001f4,0x4(%ecx) db> Stopped at _sioprobe+0x27: jnz _sioprobe+0x38 db> Stopped at _sioprobe+0x29: cmpl $0,0x34(%ecx) db> Stopped at _sioprobe+0x2d: jz _sioprobe+0x38 db> Stopped at _sioprobe+0x2f: movl 0x8(%ecx),%edx db> Stopped at _sioprobe+0x32: addl $0x4,%edx db> Stopped at _sioprobe+0x35: xorb %al,%al db> Stopped at _sioprobe+0x37: outb %al,%dx db> cu: Got hangup signal Disconnected. gavin@ferret {143} : cu -l cuaa1 -s 9600 Connected. Stopped at _sioprobe+0x3b: cmpl $0,0x4(%ecx) db> s Stopped at _sioprobe+0x3f: jnz _sioprobe+0x20 db> Stopped at _sioprobe+0x20: cmpl $0xf02001f4,0x4(%ecx) db> Stopped at _sioprobe+0x27: jnz _sioprobe+0x38 db> Stopped at _sioprobe+0x29: cmpl $0,0x34(%ecx) db> Stopped at _sioprobe+0x2d: jz _sioprobe+0x38 db> Stopped at _sioprobe+0x2f: movl 0x8(%ecx),%edx db> Stopped at _sioprobe+0x32: addl $0x4,%edx db> Stopped at _sioprobe+0x35: xorb %al,%al db> Stopped at _sioprobe+0x37: outb %al,%dx db> Does this shed light for anyone? Thanks Gavin []------------------------------------+-------------------------------------[] | Gavin Cameron | ITworks Consulting | | Ph : 0418 390350 | Suite 100, 85 Grattan Street | | Fax : +61 3 9347 6544 | Carlton, Victoria | | Email : gavin@itworks.com.au | Australia, 3053 | []------------------------------------+-------------------------------------[] On Sat, 9 May 1998, Bruce Evans wrote: > >I've just acquired 2 servers to run 2.2.6-RELEASE on. They are both using > >Iwill P55XUB motherboards. The book that came with the motherboard says > >that the onboard serial ports are NS16C550 compatible. > > It apparently misspells `incompatible' :-). There have been several > reports that serial ports on Iwills don't work under FreeBSD. > > >If I boot up using a serial console I get the boot messages coming through > >loud and clear (so the serial port was probed and is working), but the > > This doesn't follow. The boot messages are printed by an independent part > of the driver that doesn't probe the ports or use interrupts. > > >kernel panic as soon as is probes for the serial ports. The last message > >before the cu session closed is > > Probing for devices ocu: Got hangup signal > > > >which is the probing of the ISA bus message. > > > >If I cu again and enter cont into ddb I get > > > >Fatal trap 12: page fault while in kernel mode > >fault virtual address = 0x4 > >fault code = supervisor read, page not present > >instruction pointer = 0x8:0xf01c37ee > >stack pointer = 0x10:0xefbfff80 > >frame pointer = 0x10:0xefbfff80 > >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 () > >interrupt mask = > >kernel: type 12 trap, code=0 > >Stopped at _cninit_finish+0x26: movl 0x4(%edx),%eax > > The panic is caused by a null pointer bug (cdevsw[SIO_MAJOR] = 0, and > cninit_finish() doesn't check). It shows that all sio probes failed, > but we already know that. > > The hangup is more interesting. The console output routines attempt to > switch the h/w state so that you can debug sio probes using sio output, > but switching the DTR state back off might cause avoidable hangups, so > DTR is left on. > > To debug the probes, you have to start earlier. Boot with -d and put > a breakpoint at sioprobe() and look around. > > Bruce > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hardware" in the body of the message