Skip site navigation (1)Skip section navigation (2)
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>