Grrr, so the vendor changed the device without changing any IDs that we
currently use for matching (main/subsystem device/vendor IDs) or revision
number - so somebody is going to need a custom kernel to get the device
working.

Anyone know which is the more common card? I note there are *no*
8-port sunix 40xx in dmesglog at all.




On 2012/01/03 16:35, Sebastian Benoit wrote:
> Hi,
> 
> Sebastian Reitenbach(sebas...@l00-bugdead-prods.de) on 2012.01.01 19:46:43 
> +0100:
> >  Hi,
> > 
> > On Sunday, January 1, 2012 19:35 CET, Sebastian Benoit 
> > <benoit-li...@fb12.de> wrote: 
> >  
> > > Hi,
> > > 
> > > i also discovered this problem 2 years ago, but sadly cannot remember if 
> > > i reported
> > > it.
> > > 
> > > Patch rev. 1.65 made the top 4 ports of an older SUNIX card inoperable. A
> > > newer card had the problem the other way round (top 4 ports started 
> > > working)
> > > and I believe that I just swapped the cards.
> > 
> > Sthen sent me a patch, that did not helped out of the box, but with naddys 
> > help I came up with this, which made it 
> > work for me again:
> > 
> > 
> > Index: pucdata.c
> > ===================================================================
> > RCS file: /cvs/src/sys/dev/pci/pucdata.c,v
> > retrieving revision 1.78
> > diff -u -r1.78 pucdata.c
> > --- pucdata.c       26 Oct 2011 14:20:25 -0000      1.78
> > +++ pucdata.c       31 Dec 2011 17:08:11 -0000
> > @@ -1441,6 +1441,21 @@
> >     },
> >  
> >     {   /* SUNIX 406X 8S */
> > +       {   PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x5066 },
> > +       {   0xffff, 0xffff, 0xffff, 0xffff },
> > +       {
> > +           { PUC_COM_POW2(3), 0x10, 0x0000 },
> > +           { PUC_COM_POW2(3), 0x10, 0x0008 },
> > +           { PUC_COM_POW2(0), 0x14, 0x0000 },
> > +           { PUC_COM_POW2(0), 0x14, 0x0008 },
> > +           { PUC_COM_POW2(0), 0x18, 0x0000 },
> > +           { PUC_COM_POW2(0), 0x1c, 0x0000 },
> > +           { PUC_COM_POW2(0), 0x20, 0x0000 },
> > +           { PUC_COM_POW2(0), 0x24, 0x0000 },
> > +       },
> > +   },
> > +
> > +   {   /* SUNIX 406X 8S */
> >         {   PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4060 },
> >         {   0xffff, 0xffff, 0xffff, 0xe0f0 },
> >         {
> > 
> > 
> > 
> > 
> > 
> > > 
> > > the non-working card is in a soekris and i am not using it, but i have a
> > > dmesg:
> 
> I can confirm that this card
> 
> > > broken card:
> > > 
> > > (OpenBSD 5.0 (GENERIC) #39: Mon Aug  8 14:53:43 MDT 2011
> > >     dera...@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC)
> > > 
> > > puc0 at pci0 dev 14 function 0 "Sunix 40XX" rev 0x01: ports: 8 com
> > > com3 at puc0 port 0 irq 10: ti16750, 64 byte fifo
> > > com3: probed fifo depth: 32 bytes
> > > com4 at puc0 port 1 irq 10: ti16750, 64 byte fifo
> > > com4: probed fifo depth: 32 bytes
> > > com5 at puc0 port 2 irq 10: ti16750, 64 byte fifo
> > > com5: probed fifo depth: 32 bytes
> > > com6 at puc0 port 3 irq 10: ti16750, 64 byte fifo
> > > com6: probed fifo depth: 32 bytes
> > > com7 at puc0 port 4 irq 10: ti16750, 64 byte fifo
> > > com7: probed fifo depth: 32 bytes
> > > com8 at puc0 port 5 irq 10: ti16750, 64 byte fifo
> > > com8: probed fifo depth: 32 bytes
> > > com9 at puc0 port 6 irq 10: ti16750, 64 byte fifo
> > > com9: probed fifo depth: 32 bytes
> > > com10 at puc0 port 7 irq 10: ti16750, 64 byte fifo
> > > com10: probed fifo depth: 32 bytes
> 
>  0:14:0: Sunix 40XX
>         0x0000: Vendor ID: 1409 Product ID: 7168
>         0x0004: Command: 0181 Status ID: 0280
>         0x0008: Class: 07 Subclass: 00 Interface: 02 Revision: 01
>         0x000c: BIST: 00 Header Type: 00 Latency Timer: 00 Cache Line Size:
> 00
>         0x0010: BAR io addr: 0x0000e500/0x0020
>         0x0014: BAR io addr: 0x0000e520/0x0010
>         0x0018: BAR io addr: 0x0000e530/0x0008
>         0x001c: BAR io addr: 0x0000e538/0x0008
>         0x0020: BAR io addr: 0x0000e540/0x0008
>         0x0024: BAR io addr: 0x0000e548/0x0008
>         0x0028: Cardbus CIS: 00000000
>         0x002c: Subsystem Vendor ID: 1409 Product ID: 5066
>         0x0030: Expansion ROM Base Address: 00000000
>         0x0038: 00000000
>         0x003c: Interrupt Pin: 01 Line: 0a Min Gnt: 00 Max Lat: 00
> 
> works again with the patch above (tested with tip and a machine with serial
> console connected to each port in turn).
> 
> This card that is currently working (with snapshot from Dec. 11th):
> 
>  0:14:0: Sunix 40XX
>         0x0000: Vendor ID: 1409 Product ID: 7168
>         0x0004: Command: 0001 Status ID: 0280
>         0x0008: Class: 07 Subclass: 00 Interface: 02 Revision: 01
>         0x000c: BIST: 00 Header Type: 00 Latency Timer: 00 Cache Line Size:
> 00
>         0x0010: BAR io addr: 0x0000e500/0x0020
>         0x0014: BAR io addr: 0x0000e520/0x0010
>         0x0018: BAR io addr: 0x0000e530/0x0008
>         0x001c: BAR io addr: 0x0000e538/0x0008
>         0x0020: BAR io addr: 0x0000e540/0x0008
>         0x0024: BAR io addr: 0x0000e548/0x0008
>         0x0028: Cardbus CIS: 00000000
>         0x002c: Subsystem Vendor ID: 1409 Product ID: 5066
>         0x0030: Expansion ROM Base Address: 00000000
>         0x0038: 00000000
>         0x003c: Interrupt Pin: 01 Line: 0a Min Gnt: 00 Max Lat: 00
> 
> 
> When I boot the kernel with patch above all serial ports on the card except
> port 1 do no longer respond.
> This card was bought about a year after the first one. Its currently in use
> as a terminal server for 5 switches/routers at a remote site so i cannot
> easily check all ports, however, only tty03 aka port 1 is working with the
> patch.
> 
> let me know if i can test anything else.
> 
> /Benno

Reply via email to