Date: Sat, 9 May 1998 21:29:13 +1000 (EST) From: Gavin Cameron <gavin@itworks.com.au> To: Bruce Evans <bde@zeta.org.au> Cc: freebsd-hardware@FreeBSD.ORG Subject: Re: Serial port problems Message-ID: <Pine.BSF.3.96.980509212554.11121l-100000@itw.itworks.com.au> In-Reply-To: <199805091115.VAA30393@godzilla.zeta.org.au>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.96.980509212554.11121l-100000>
