Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Feb 2012 09:57:55 -0500
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-hardware@freebsd.org
Cc:        Milan Obuch <freebsd-hardware@dino.sk>
Subject:   Re: PER-C40C minipci card under FreeBSD
Message-ID:  <201202220957.56016.jhb@freebsd.org>
In-Reply-To: <20120222135843.7b3693ff@atom.dino.sk>
References:  <20120220220237.7474cc1e@atom.dino.sk> <20120221231535.641419b1@atom.dino.sk> <20120222135843.7b3693ff@atom.dino.sk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday, February 22, 2012 7:58:43 am Milan Obuch wrote:
> On Tue, 21 Feb 2012 23:15:35 +0100
> Milan Obuch <freebsd-hardware@dino.sk> wrote:
> 
> [ snip ]
> 
> > 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
> > 
> 
> [ snip ]
> 
> This is final patch which works for me:
> 
> --- pucdata.c.orig      2012-02-21 16:47:33.000000000 +0100
> +++ pucdata.c.patched   2012-02-22 12:10:44.000000000 +0100
> @@ -696,6 +696,12 @@
>             PUC_PORT_4S, 0x10, 0, 8,
>         },
>  
> +       {   0x1415, 0x9505, 0xffff, 0,
> +           "Oxford Semiconductor OXuPCI952 UARTs (function 0)",
> +           DEFAULT_RCLK * 8,
> +           PUC_PORT_2S, 0x10, 4, 0,
> +       },
> +
>         {   0x1415, 0x950a, 0x131f, 0x2030,
>             "SIIG Cyber 2S PCIe",
>             DEFAULT_RCLK * 10,
> @@ -708,11 +714,13 @@
>             PUC_PORT_4S, 0x10, 0, 8,
>         },
>  
> +#if 0
>         {   0x1415, 0x9511, 0xffff, 0,
>             "Oxford Semiconductor OX9160/OX16PCI954 UARTs (function 1)",
>             DEFAULT_RCLK,
>             PUC_PORT_4S, 0x10, 0, 8,
>         },
> +#endif
>  
>         {   0x1415, 0x9521, 0xffff, 0,
>             "Oxford Semiconductor OX16PCI952 UARTs",
> 
> pciconf -lv tells following about card functions:
> 
> puc0@pci0:0:12:0: class=0x070006 card=0x00001415 chip=0x95051415 rev=0x01 
hdr=0x00
>     vendor   = 'Oxford Semiconductor Ltd'
>     device   = 'OXuPCI952 (Dual 16C950 UART)'
>     class    = simple comms
>     subclass = UART
> none1@pci0:0:12:1: class=0x068000 card=0x00001415 chip=0x95111415 rev=0x01 
hdr=0x00
>     vendor   = 'Oxford Semiconductor Ltd'
>     device   = 'OX16PCI954 (Quad 16950 UART) function 1 (8bit bus)'
>     class    = bridge
> 
> This patch works for me on both 10-CURRENT and 8.3-PRERELEASE.

Hmm, ok.  Unfortunately there are other devices that need the commented out
entry.  I've sent a followup to that original PR to see if that device has
a subvendor device ID.

-- 
John Baldwin



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