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>