i386/140947: Serial I/O is terminally screwed under 8.x.
Karl Denninger
karl at FS.denninger.net
Fri Nov 27 19:00:09 UTC 2009
>Number: 140947
>Category: i386
>Synopsis: Serial I/O is terminally screwed under 8.x.
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: freebsd-i386
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Fri Nov 27 19:00:06 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator: Karl Denninger
>Release: FreeBSD 8.0-STABLE i386
>Organization:
Karls Sushi and Packet Smashers
>Environment:
System: FreeBSD FS.denninger.net 8.0-STABLE FreeBSD 8.0-STABLE #3: Fri Nov 27 08:32:51 CST 2009 karl at FS.denninger.net:/usr/obj/usr/src/sys/KSD-SMP i386
puc0: <Oxford Semiconductor OX16PCI954 UARTs> port 0x4060-0x407f,0x4040-0x405f m
em 0x94503000-0x94503fff,0x94502000-0x94502fff irq 16 at device 0.0 on pci3
puc0: [FILTER]
uart2: <16550 or compatible> on puc0
uart2: [FILTER]
uart3: <16550 or compatible> on puc0
uart3: [FILTER]
uart4: <16550 or compatible> on puc0
uart4: [FILTER]
uart5: <16550 or compatible> on puc0
uart5: [FILTER]
puc0 at pci0:3:0:0: class=0x070006 card=0x00001415 chip=0x950a1415 rev=0x00 hdr=0x00
bar [10] = type I/O Port, range 32, base 0x4060, size 32, enabled
bar [14] = type Memory, range 32, base 0x94503000, size 4096, enabled
bar [18] = type I/O Port, range 32, base 0x4040, size 32, enabled
bar [1c] = type Memory, range 32, base 0x94502000, size 4096, enabled
cap 01[40] = powerspec 1 supports D0 D2 D3 current D0
#
# SMP -- Generic kernel configuration file for FreeBSD/i386 SMP
# Use this for multi-processor machines
#
# $FreeBSD: src/sys/i386/conf/SMP,v 1.5.6.1 2005/09/18 03:37:58 scottl Exp $
include GENERIC
ident KSD-SMP
# To make an SMP kernel, the next line is needed
#options SMP # Symmetric MultiProcessor Kernel
#
# We also need the firewall, divert, and PPS_SYNC (for the GPS) options
#
options IPFIREWALL
options IPDIVERT
options PPS_SYNC
#
# Rate-shaping requirements
#
options DUMMYNET
options HZ=1000
#options SYSVSHM
#
# Local stuff
#
device rp # Comtrol Rocketport Board
device sound # Generic sound card drivers
#device ubsa # USB Serial Adapters
#device ucom
#device uftdi
#device uplcom
device umct
device puc
>Description:
Serial I/O fails with a lockup after a variable amount of time.
Modem-controlled ports are succeptible, especially those that
require tight adherence to that capability.
There is no reset possible without rebooting the machine. Attempts
to "probe" the port by stopping the running process(es) and
re-initializing them fail.
This IDENTICAL board in the IDENTICAL machine was functioning
properly under 7.x over the space of about a year under extremely
heavy use. As soon as 8.x-RC2 was loaded, and subsequently with the
released version (as seen above) it failed and has remained dead.
The custom kernel with "PPS_SYNC" is present as one
of the ports (on the motherboard) is used for a GPS clock under ntpd.
This port is operating fine - it is relatively low-traffic, of
course, containing only timecode. Another port used to talk to an
APC UPS (again, low traffic) is also ok.
All ports in use for Hylafax, however, lock up as described above.
Attempting to limit FIFO depth with 0x100 or 0x200 flags on the
ports has no effect.
>How-To-Repeat:
Put a "puc" style board in the machine, set up hylafax, send a few
dozen faxes. The driver will wedge.
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-i386
mailing list