From owner-freebsd-hardware Sat May 9 05:55:12 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id FAA10605 for freebsd-hardware-outgoing; Sat, 9 May 1998 05:55:12 -0700 (PDT) (envelope-from owner-freebsd-hardware@FreeBSD.ORG) Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.19]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id FAA10596 for ; Sat, 9 May 1998 05:55:08 -0700 (PDT) (envelope-from bde@godzilla.zeta.org.au) Received: (from bde@localhost) by godzilla.zeta.org.au (8.8.7/8.8.7) id WAA00469; Sat, 9 May 1998 22:52:50 +1000 Date: Sat, 9 May 1998 22:52:50 +1000 From: Bruce Evans Message-Id: <199805091252.WAA00469@godzilla.zeta.org.au> To: bde@zeta.org.au, gavin@itworks.com.au Subject: Re: Serial port problems Cc: freebsd-hardware@FreeBSD.ORG 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+0x35: xorb %al,%al >db> >Stopped at _sioprobe+0x37: outb %al,%dx This turns off DTR (among other things). >db> cu: Got hangup signal >Disconnected. DTR is normally connected to CD for a PC <-> PC connection, so turning off DTR drops CD and not-dumb-enough terminal programs disconnect. >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 >... >Does this shed light for anyone? It probably takes a few thousand instructions to get anywhere interesting. 0x80 in the device flags would show which parts of the probe fail. According to previous reports, IRQ4 doesn't go away properly when the device drives IRQ4 low. It would be interesting to know if IRQ4 ever has the correct value. Its value is given by bit 0x10 in port 0x20 (`call inb(0x20)' in ddb). Programming sio0 manually in ddb should make it go low: call outb(0x3f8+3,3) call outb(0x3f8+1,0) call outb(0x3f8+4,0xb) Disconnecting sio0 from IRQ4 should then make it float high: call outb(0x3f8+4,0x3) Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hardware" in the body of the message