Loading...

freebsd-hardware@freebsd.org

[Prev] Thread [Next]  |  [Prev] Date [Next]

Re: PER-C40C minipci card under FreeBSD Milan Obuch Wed Feb 22 05:01:20 2012

On Tue, 21 Feb 2012 23:15:35 +0100
Milan Obuch <[EMAIL PROTECTED]> 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:

[EMAIL PROTECTED]: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
[EMAIL PROTECTED]: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.

Regards,
Milan
_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hardware
To unsubscribe, send any mail to "[EMAIL PROTECTED]"