From owner-freebsd-stable@FreeBSD.ORG  Tue Apr 27 20:08:45 2010
Return-Path: <owner-freebsd-stable@FreeBSD.ORG>
Delivered-To: freebsd-stable@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 0C5FF106566B
	for <freebsd-stable@freebsd.org>; Tue, 27 Apr 2010 20:08:45 +0000 (UTC)
	(envelope-from fb-stable@psconsult.nl)
Received: from mx1.psconsult.nl (psc11.adsl.iaf.nl [80.89.238.138])
	by mx1.freebsd.org (Postfix) with ESMTP id 93E568FC12
	for <freebsd-stable@freebsd.org>; Tue, 27 Apr 2010 20:08:44 +0000 (UTC)
Received: from mx1.psconsult.nl (psc11.adsl.iaf.nl [80.89.238.138])
	by mx1.psconsult.nl (8.14.4/8.14.4) with ESMTP id o3RJlQQc014352
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO)
	for <freebsd-stable@freebsd.org>; Tue, 27 Apr 2010 21:47:32 +0200 (CEST)
	(envelope-from fb-stable@psconsult.nl)
Received: (from paul@localhost)
	by mx1.psconsult.nl (8.14.4/8.14.4/Submit) id o3RJlPdU014351
	for freebsd-stable@freebsd.org; Tue, 27 Apr 2010 21:47:26 +0200 (CEST)
	(envelope-from fb-stable@psconsult.nl)
X-Authentication-Warning: mx1.psconsult.nl: paul set sender to
	fb-stable@psconsult.nl using -f
Date: Tue, 27 Apr 2010 21:47:25 +0200
From: Paul Schenkeveld <fb-stable@psconsult.nl>
To: freebsd-stable@freebsd.org
Message-ID: <20100427194725.GA14112@psconsult.nl>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.5.19 (2009-01-05)
Subject: puc(4) timedia baudrate problem
X-BeenThere: freebsd-stable@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Production branch of FreeBSD source code <freebsd-stable.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-stable>, 
	<mailto:freebsd-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-stable>
List-Post: <mailto:freebsd-stable@freebsd.org>
List-Help: <mailto:freebsd-stable-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-stable>,
	<mailto:freebsd-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 27 Apr 2010 20:08:45 -0000

Hi,

I was pleasantly surprised to see that puc(4) in 8-stable recognizes my
8 port serial cards and identifies them as follows:

    puc0: <Timedia technology 8 Port Serial> port 0xe500-0xe51f,0xe520-0xe52f,0xe530-0xe537,0xe538-0xe53f,0xe540-0xe547,0xe548-0xe54f irq 10 at device 14.0 on pci0
    puc0: [FILTER]
    uart2: <16550 or compatible> on puc0
    uart2: [FILTER]
    uart3: <Non-standard ns8250 class UART with FIFOs> on puc0
    uart3: [FILTER]
    uart4: <Non-standard ns8250 class UART with FIFOs> on puc0
    uart4: [FILTER]
    uart5: <Non-standard ns8250 class UART with FIFOs> on puc0
    uart5: [FILTER]
    uart6: <Non-standard ns8250 class UART with FIFOs> on puc0
    uart6: [FILTER]
    uart7: <Non-standard ns8250 class UART with FIFOs> on puc0
    uart7: [FILTER]
    uart8: <Non-standard ns8250 class UART with FIFOs> on puc0
    uart8: [FILTER]
    uart9: <Non-standard ns8250 class UART with FIFOs> on puc0
    uart9: [FILTER]

The first two ports work correctly but the baudrate of the other six
is incorrect, i.e. I have to use 'tip -76800 uart5' to get the port
to communicate at 9600 baud.  I 'know' that this particular hardware
has a baudrate multiplier on the first two ports but not on the other
six.

In pucdata.c I see:

	{   0x1409, 0x7168, 0xffff, 0,
	    NULL,
	    DEFAULT_RCLK * 8,
	    PUC_PORT_NONSTANDARD, 0x10, -1, -1,
	    .config_function = puc_config_timedia
	},

which suggests all ports have the same clock multiplier.

I do not understand enough about the working of the puc driver to see
where this multiplier is looked up per port.  Back in 2007 I managed
to get this card to work on FB 6.2 bij changing the puc driver but it
had a separate config line per port at that time.

Hopefully someone can help me to fix this last glitch that keeps me
from upgrading my terminal servers to 8-stable.

Regards,

Paul Schenkeveld