Adapted from NetBSD, which in turn got the id's from Linux.

Not sure about the PUC_MAX_PORTS bump from 8 to 16 (and the comment), it 
grows pucdata.o from 13k to 23k (on i386) for just one card.


Index: sys/dev/pci/pcidevs
===================================================================
RCS file: /cvs/src/sys/dev/pci/pcidevs,v
retrieving revision 1.1624
diff -u -r1.1624 pcidevs
--- sys/dev/pci/pcidevs 9 Oct 2011 21:39:11 -0000       1.1624
+++ sys/dev/pci/pcidevs 11 Oct 2011 06:57:54 -0000
@@ -320,6 +320,7 @@
 vendor SYMPHONY2       0x1c1c  Symphony Labs
 vendor TEKRAM2         0x1de1  Tekram
 vendor TEHUTI          0x1fc9  Tehuti Networks
+vendor SUNIX2          0x1fd4  Sunix
 vendor HINT            0x3388  Hint
 vendor 3DLABS          0x3d3d  3D Labs
 vendor AVANCE2         0x4005  Avance Logic
@@ -5230,6 +5231,7 @@
 /* Sunix */
 product SUNIX 40XX             0x7168  40XX
 product SUNIX 4018A            0x7268  4018A
+product SUNIX2 50XX            0x1999  50XX
 
 /* Surecom products */
 product SURECOM NE34           0x0e34  NE-34
Index: sys/dev/pci/pucdata.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/pucdata.c,v
retrieving revision 1.75
diff -u -r1.75 pucdata.c
--- sys/dev/pci/pucdata.c       9 Oct 2011 21:46:32 -0000       1.75
+++ sys/dev/pci/pucdata.c       11 Oct 2011 06:57:54 -0000
@@ -1463,6 +1463,120 @@
        },
 
        /*
+        * SUNIX 50XX series of serial/parallel combo cards.
+        * Tested with 5066A.
+        */
+       {   /* SUNIX 5008 1P */
+           {   PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0100 },
+           {   0xffff, 0xffff, 0xffff, 0xeff0 },
+           {
+               { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
+           },
+       },
+
+       {   /* SUNIX 5016 16S */
+           {   PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0010 },
+           {   0xffff, 0xffff, 0xffff, 0xffff },
+           {
+               { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x14, 0x10, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x14, 0x18, COM_FREQ * 8 },
+/*
+ * PUC_MAX_PORTS needs to be raised in order to reach these ports
+ */
+#if PUC_MAX_PORTS >= 16
+               { PUC_PORT_TYPE_COM, 0x14, 0x20, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x14, 0x28, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x14, 0x30, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x14, 0x38, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x14, 0x40, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x14, 0x48, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x14, 0x50, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x14, 0x58, COM_FREQ * 8 },
+#endif /* PUC_MAX_PORTS >= 16 */
+           },
+       },
+
+       {   /* SUNIX 5027 1S */
+           {   PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0001 },
+           {   0xffff, 0xffff, 0xffff, 0xffff },
+           {
+               { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
+           },
+       },
+
+       {   /* SUNIX 5037 2S */
+           {   PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0002 },
+           {   0xffff, 0xffff, 0xffff, 0xffff },
+           {
+               { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
+           },
+       },
+
+       {   /* SUNIX 5056 4S */
+           {   PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0004 },
+           {   0xffff, 0xffff, 0xffff, 0xffff },
+           {
+               { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
+           },
+       },
+
+       {   /* SUNIX 5066 8S */
+           {   PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0008 },
+           {   0xffff, 0xffff, 0xffff, 0xffff },
+           {
+               { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x14, 0x10, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x14, 0x18, COM_FREQ * 8 },
+           },
+       },
+
+       {   /* SUNIX 5069 1S / 1P */
+           {   PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0101 },
+           {   0xffff, 0xffff, 0xffff, 0xeff0 },
+           {
+               { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
+           },
+       },
+
+       {   /* SUNIX 5079 2S / 1P */
+           {   PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0102 },
+           {   0xffff, 0xffff, 0xffff, 0xffff },
+           {
+               { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
+           },
+       },
+
+       {   /* SUNIX 5099 4S / 1P */
+           {   PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0104 },
+           {   0xffff, 0xffff, 0xffff, 0xffff },
+           {
+               { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
+               { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
+           },
+       },
+
+       /*
         * Boca Research Turbo Serial 654 (4 serial port) card.
         * Appears to be the same as Chase Research PLC PCI-FAST4 card,
         * same as Perle PCI-FAST4 Multi-Port serial card
Index: sys/dev/pci/pucvar.h
===================================================================
RCS file: /cvs/src/sys/dev/pci/pucvar.h,v
retrieving revision 1.10
diff -u -r1.10 pucvar.h
--- sys/dev/pci/pucvar.h        22 Jul 2010 17:16:10 -0000      1.10
+++ sys/dev/pci/pucvar.h        11 Oct 2011 06:57:54 -0000
@@ -38,7 +38,7 @@
  * Author: Christopher G. Demetriou, May 14, 1998.
  */
 
-#define        PUC_MAX_PORTS           8
+#define        PUC_MAX_PORTS           16
 
 struct puc_device_description {
        u_int16_t       rval[4];
Index: share/man/man4/puc.4
===================================================================
RCS file: /cvs/src/share/man/man4/puc.4,v
retrieving revision 1.43
diff -u -r1.43 puc.4
--- share/man/man4/puc.4        22 Mar 2011 03:56:07 -0000      1.43
+++ share/man/man4/puc.4        11 Oct 2011 06:57:54 -0000
@@ -111,6 +111,15 @@
 .It Tn "SUNIX 407x (2 port serial and 1 port parallel)"
 .It Tn "SUNIX 408x (2 port serial and 2 port parallel)"
 .It Tn "SUNIX 409x (4 port serial and 2 port parallel)"
+.It Tn "SUNIX 5008 (1 port parallel)"
+.It Tn "SUNIX 5016 (16 port serial)"
+.It Tn "SUNIX 5027 (1 port serial)"
+.It Tn "SUNIX 5037 (2 port serial)"
+.It Tn "SUNIX 5056 (4 port serial)"
+.It Tn "SUNIX 5066 (8 port serial)"
+.It Tn "SUNIX 5069 (1 port serial and 1 port parallel)"
+.It Tn "SUNIX 5079 (2 port serial and 1 port parallel)"
+.It Tn "SUNIX 5099 (4 port serial and 1 port parallel)"
 .It Tn "Syba Tech Ltd. PCI-4S2P-550-ECP (4 port serial and 2 port parallel)"
 .It Tn "US Robotics 3CP5609 PCI (modem)"
 .It Tn "VScom PCI 800  (8 port serial, probably OEM)"

Reply via email to