Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Feb 2012 23:15:35 +0100
From:      Milan Obuch <freebsd-hardware@dino.sk>
To:        freebsd-hardware@freebsd.org
Subject:   Re: PER-C40C minipci card under FreeBSD
Message-ID:  <20120221231535.641419b1@atom.dino.sk>
In-Reply-To: <20120221124333.0e8a9763@atom.dino.sk>
References:  <20120220220237.7474cc1e@atom.dino.sk> <20120221124333.0e8a9763@atom.dino.sk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 21 Feb 2012 12:43:33 +0100
Milan Obuch <freebsd-hardware@dino.sk> wrote:

> On Mon, 20 Feb 2012 22:02:37 +0100
> Milan Obuch <freebsd-hardware@dino.sk> wrote:
> 
> > Hi,
> > 
> > is somebody using $subject? I need to get this card working in order
> > to get more serial ports in ALIX boards. Unfortunately, all I am
> > getting is hangup - last lines on console are
> > 
> > pci0: <simple comms, UART> at device 13.0 (no driver attached)
> > puc0: <Oxford Semiconductor OX9160/OX16PCI954 UARTs (function 1)>
> > port 0x1440-0x145f,0x1480-0x149f mem
> > 0x80040000-0x80040fff,0x80080000-0x80080fff irq 12 at device 13.1 on
> > pci0
> > puc0: Reserved 0x20 bytes for rid 0x10 type 4 at 0x1440
> > puc0: [FILTER]
> > 
> > and nothing more happens (second line is wrapped here, very long for
> > mail).
> > 

After consulting datasheet, I found this part of pucdata.c looks
erroneously to me:

 { 0x1415, 0x9511, 0xffff, 0,
   "Oxford Semiconductor OX9160/OX16PCI954 UARTs (function 1)",
    DEFAULT_RCLK,
    PUC_PORT_4S, 0x10, 0, 8,
 },

Function 1 is actually local bus/parallel port, and this could really
be the reason for hang I observed. Comparing what I found in datasheet
with other entries I found replacing above entry with

 { 0x1415, 0x9505, 0xffff, 0,
   "Oxford Semiconductor OXuPCI952 UARTs (function 0)",
   DEFAULT_RCLK,
   PUC_PORT_2S, 0x10, 4, 0,
 },

makes me happier, I see some well looking lines in console log:

puc0: <Oxford Semiconductor OXuPCI952 UARTs (function 0)> port
0x1400-0x1407,0x1440-0x1447,0x1480-0x1487,0x14c0-0x14c7,0x1800-0x181f
mem 0xe0040000-0xe0040fff irq 9 at device 12.00
uart1: <16550 or compatible> at port 1 on puc0
uart1: fast interrupt
uart2: <16550 or compatible> at port 2 on puc0
uart2: fast interrupt

Just one thing remains to resolve - it looks like baud rates are
incorrect. Connecting two port with null modem cable and running

cu -l /dev/cuau1 -s 9600
cu -l /dev/cuau2 -s 9600

makes functioning connection, as in 'what I type in one session appears
at the second and vice versa', but when I connect one of my 'new' ports
with other serial port, all I see is just some garbage.

How could I find where I should put 'the last change' to make
baud rates correct?

Regards,
Milan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120221231535.641419b1>