Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 20 Jun 1998 14:32:18 -0500 (CDT)
From:      Wm Brian McCane <root@bmccane.maxbaud.net>
To:        Bruce Evans <bde@zeta.org.au>
Cc:        current@FreeBSD.ORG, dacole@netcom.ca
Subject:   Re: sio problem
Message-ID:  <Pine.BSF.3.96.980620142945.18012B-100000@bmccane.maxbaud.net>
In-Reply-To: <199806191816.EAA31192@godzilla.zeta.org.au>

next in thread | previous in thread | raw e-mail | index | archive | help
Another possible cause of this problem (which I saw 3-4 days ago when I
rebuilt my kernel), is unconfigured PNP serial boards.  I have a working
sio0 and sio1 on the motherboard, with a PNP modem card as sio2.  I didn't
configure the sio2 (because I didn't need it), and it sat there and
screwed my sio1 until I rebooted '-c' and configured the port to
port 0x3e8,irq 5.

	brian

On Sat, 20 Jun 1998, Bruce Evans wrote:

> >example:  I type 'a', nothing shows.  I type 't', the a appears.  I
> >type '<cr>', the t appears.  I type <cr> again, I get OK to appear.
> 
> sio interrupts are apparently not working.
> 
> >I'm curious about the 'irc maps' stuff (as seen in the following dmesg
> >dumps)
> 
> They tell you whether sio interrupts worked normally at probe time.
> 
> >NONWORKING 486 (example 1):
> >
> >sio0: irq maps: 0x8009 0x8019 0x8009 0x8009
> >sio0 at 0x3f8-0x3ff irq 4 flags 0x10 on isa
> >sio0: type 16550A
> >
> >(ick.)
> 
> Irq 4 worked normally here.  The 0x10 bit was originally off (no irq 4
> present), then it went on (irq 4 for ready-to-transmit-another-character),
> then it went off (driver examined status) and stayed off.  The 0x8 bit
> can't be relied on here, but if it is set it then the setting is probably
> due to initialization of irq 3 for sio1 and/or sio3.
> 
> >NONWORKING 486 (after turning off all but sio0 from visual config):
> >
> >sio0: configured irq 4 not in bitmap of probed irqs 0
> >sio0: irq maps: 0x1 0x1 0x1 0x1
> >sio0 at 0x3f8-0x3ff irq 4 flags 0x20010 on isa
> >sio0: type ST16650A
> >
> >(identical ick.)
> 
> Irq 4 didn't work at all here.  This would have caused a the probe to
> fail in previous versions.  The 0x8 bit is apparently clear because you
> disabled the other sio ports.  Sio ports with conflicting irqs should
> not be disabled, because an active irq on an unconfigured port might
> stop interrupts from working on a configured port.
> 
> >WORKING p100:
> >
> >sio0: irq maps: 0x1 0x11 0x1 0x1
> >sio0 at 0x3f8-0x3ff irq 4 flags 0x10 on isa
> >sio0: type 16550A
> >
> >(happy contented config, seemingly.  this entire email done over this 
> >connection, through aliasing even.)
> 
> Irq 4 worked normally here.
> 
> >NONWORKING 486 (example 1):
> >...
> >sio0: irq maps: 0x8009 0x8019 0x8009 0x8009
> >sio0 at 0x3f8-0x3ff irq 4 flags 0x10 on isa
> >sio0: type 16550A
> >sio1: irq maps: 0x8001 0x8009 0x8001 0x8001
> >sio1 at 0x2f8-0x2ff irq 3 on isa
> >sio1: type 16450
> >sio2: configured irq 5 not in bitmap of probed irqs 0x10
>        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>        This error would have caused the probe to fail before.
> >sio2: irq maps: 0x8001 0x8011 0x8001 0x8001
>        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>        Sio2's irq is apparently 4, so it conflicts at the hardware level.
> >sio2 at 0x3e8-0x3ef irq 5 on isa
>                      ^^^^^
>        Unfortunately, the configuration lies about the irq, so the conflict
>        is not detected by FreeBSD.
> >sio2 not probed due to irq conflict with ed0 at 5
>  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>        Fortunately, the irq conflicted with something else, and sio2 should
>        not have been attached, so sio0 should have worked.  The probe
>        message is silly - the previous messages were from sio2 being probed
>        :-).  sio2 just fails a conflict check after being probed.
> >sio3: configured irq 9 not in bitmap of probed irqs 0x8000
> >sio3: irq maps: 0x1 0x8001 0x1 0x1
> >sio3 at 0x2e8-0x2ef irq 9 on isa
> >sio3: type 16550A
>        Similarly for sio3, except there is no fortuitous conflict to
>        prevent it being attached.
> 
> Apparently the conflicting irqs weren't conflicting enough to interfere
> at probe time (not that that would make any difference), but conflicted
> enough to cause problems later.
> 
> >NONWORKING 486 (after turning off all but sio0 from visual config):
> >...
> >sio0: configured irq 4 not in bitmap of probed irqs 0
> >sio0: irq maps: 0x1 0x1 0x1 0x1
> >sio0 at 0x3f8-0x3ff irq 4 flags 0x20010 on isa
> >sio0: type ST16650A
> 
> Apparently the unitialialized conflicting irq for sio2 interferes even
> at probe time.
> 
> >WORKING p100:
> >...
> >sio0: irq maps: 0x1 0x11 0x1 0x1
> >sio0 at 0x3f8-0x3ff irq 4 flags 0x10 on isa
> >sio0: type 16550A
> >sio1: irq maps: 0x1 0x9 0x1 0x1
> >sio1 at 0x2f8-0x2ff irq 3 on isa
> >sio1: type 16550A
> >sio2: disabled, not probed.
> >sio3: disabled, not probed.
> 
> Do you have sio2-3?  They could only conflict if the BIOS didn't initialize
> them properly, but it seems to be normal for BIOSes to not initialize them
> at all after a warm boot.
> 
> Possible fix: configure the ports to what you have (all 4 there, with
> conflicting irqs).
> 
> Bruce
> 
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-current" in the body of the message
> 


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?Pine.BSF.3.96.980620142945.18012B-100000>