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)"