PUC Serial I/O problem - copy of gnats-filed bug report (as
discussed previously)
Karl Denninger
karl at denninger.net
Fri Nov 27 18:56:09 UTC 2009
Karl Denninger wrote:
> This is pretty serious folks - as noted below I have tried several
> options including limiting FIFO depth with the flags with no result.
> The PUC-based ports are basically useless under 8.x as a consequence. I
> can reproduce this lockup within 15-30 minutes every time.
>
>
>> Submitter-Id: current-users
>> Originator: Karl Denninger
>> Organization: Karls Sushi and Packet Smashers
>> Confidential: no <FreeBSD PRs are public data>
>> Synopsis: Serial I/O is terminally screwed under 8.x.
>> Severity: serious
>> Priority: high
>> Category: i386
>> Class: sw-bug
>> Release: FreeBSD 8.0-STABLE i386
>> 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:
>>
>
> <how to correct or work around the problem, if known (multiple
> lines)>
>
For what its worth, USB-based serial adapters also fail in the same way,
but faster (they have NEVER been reliable in this regard, and this
hasn't improved)
-- Karl
More information about the freebsd-stable
mailing list