PERFORCE change 95068 for review
Marcel Moolenaar
marcel at FreeBSD.org
Wed Apr 12 14:50:36 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=95068
Change 95068 by marcel at marcel_nfs on 2006/04/12 14:49:30
Replace the rmask and rval arrays with vendor, device, subvendor
and subdevice variables. When subvendor is 0xffff, don't test the
subvendor and subdevice values. This strips 24 bytes from the
description.
While here, sort the list on vendor, device, subvendor and
subdevice.
Affected files ...
.. //depot/projects/uart/dev/puc/puc_pci.c#10 edit
.. //depot/projects/uart/dev/puc/pucdata.c#20 edit
.. //depot/projects/uart/dev/puc/pucvar.h#16 edit
Differences ...
==== //depot/projects/uart/dev/puc/puc_pci.c#10 (text+ko) ====
@@ -85,42 +85,37 @@
int puc_config_win877(struct puc_softc *);
static const struct puc_device_description *
-puc_find_description(uint32_t vend, uint32_t prod, uint32_t svend,
- uint32_t sprod)
+puc_pci_match(device_t dev, const struct puc_device_description *desc)
{
- int i;
+ uint16_t device, subdev, subven, vendor;
-#define checkreg(val, index) \
- (((val) & puc_devices[i].rmask[(index)]) == puc_devices[i].rval[(index)])
-
- for (i = 0; puc_devices[i].name != NULL; i++) {
- if (checkreg(vend, PUC_REG_VEND) &&
- checkreg(prod, PUC_REG_PROD) &&
- checkreg(svend, PUC_REG_SVEND) &&
- checkreg(sprod, PUC_REG_SPROD))
- return (&puc_devices[i]);
- }
-
-#undef checkreg
-
- return (NULL);
+ vendor = pci_get_vendor(dev);
+ device = pci_get_device(dev);
+ while (desc->vendor != 0xffff &&
+ (desc->vendor != vendor || desc->device != device))
+ desc++;
+ if (desc->vendor == 0xffff)
+ return (NULL);
+ if (desc->subvendor == 0xffff)
+ return (desc);
+ subven = pci_get_subvendor(dev);
+ subdev = pci_get_subdevice(dev);
+ while (desc->vendor == vendor && desc->device == device &&
+ (desc->subvendor != subven || desc->subdevice != subdev))
+ desc++;
+ return ((desc->vendor == vendor && desc->device == device)
+ ? desc : NULL);
}
static int
puc_pci_probe(device_t dev)
{
- uint32_t v1, v2, d1, d2;
const struct puc_device_description *desc;
if ((pci_read_config(dev, PCIR_HDRTYPE, 1) & PCIM_HDRTYPE) != 0)
return (ENXIO);
- v1 = pci_read_config(dev, PCIR_VENDOR, 2);
- d1 = pci_read_config(dev, PCIR_DEVICE, 2);
- v2 = pci_read_config(dev, PCIR_SUBVEND_0, 2);
- d2 = pci_read_config(dev, PCIR_SUBDEV_0, 2);
-
- desc = puc_find_description(v1, d1, v2, d2);
+ desc = puc_pci_match(dev, puc_devices);
if (desc == NULL)
return (ENXIO);
device_set_desc(dev, desc->name);
@@ -130,13 +125,8 @@
static int
puc_pci_attach(device_t dev)
{
- uint32_t v1, v2, d1, d2;
- v1 = pci_read_config(dev, PCIR_VENDOR, 2);
- d1 = pci_read_config(dev, PCIR_DEVICE, 2);
- v2 = pci_read_config(dev, PCIR_SUBVEND_0, 2);
- d2 = pci_read_config(dev, PCIR_SUBDEV_0, 2);
- return (puc_attach(dev, puc_find_description(v1, d1, v2, d2)));
+ return (puc_attach(dev, puc_pci_match(dev, puc_devices)));
}
static device_method_t puc_pci_methods[] = {
==== //depot/projects/uart/dev/puc/pucdata.c#20 (text+ko) ====
@@ -42,16 +42,14 @@
#include <dev/pci/pcireg.h>
#include <dev/pci/pcivar.h>
-#include <dev/sio/sioreg.h>
#include <dev/puc/pucvar.h>
int puc_config_win877(struct puc_softc *);
const struct puc_device_description puc_devices[] = {
- { "Sunix SUN1889",
- { 0x0009, 0x7168, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x0009, 0x7168, 0xffff, 0,
+ "Sunix SUN1889",
DEFAULT_RCLK * 8,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
@@ -59,9 +57,8 @@
},
},
- { "Diva Serial [GSP] Multiport UART",
- { 0x103c, 0x1048, 0x103c, 0x1282 },
- { 0xffff, 0xffff, 0xffff, 0xffff },
+ { 0x103c, 0x1048, 0x103c, 0x1282,
+ "Diva Serial [GSP] Multiport UART",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
@@ -70,33 +67,95 @@
},
},
- { "Comtrol RocketPort 550/4 RJ45",
- { 0x11fe, 0x8014, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x10b5, 0x1076, 0x10b5, 0x1076,
+ "VScom PCI-800",
+ DEFAULT_RCLK * 8,
+ {
+ { PUC_PORT_TYPE_COM, 0x18, 0x00 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x08 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x10 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x18 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x20 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x28 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x30 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x38 },
+ },
+ },
+
+ { 0x10b5, 0x1077, 0x10b5, 0x1077,
+ "VScom PCI-400",
+ DEFAULT_RCLK * 8,
+ {
+ { PUC_PORT_TYPE_COM, 0x18, 0x00 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x08 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x10 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x18 },
+ },
+ },
+
+ /*
+ * Boca Research Turbo Serial 658 (8 serial port) card.
+ * Appears to be the same as Chase Research PLC PCI-FAST8
+ * and Perle PCI-FAST8 Multi-Port serial cards.
+ */
+ { 0x10b5, 0x9050, 0x12e0, 0x0021,
+ "Boca Research Turbo Serial 658",
DEFAULT_RCLK * 4,
{
- { PUC_PORT_TYPE_COM, 0x10, 0x00 },
- { PUC_PORT_TYPE_COM, 0x10, 0x08 },
- { PUC_PORT_TYPE_COM, 0x10, 0x10 },
- { PUC_PORT_TYPE_COM, 0x10, 0x18 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x00 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x08 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x10 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x18 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x20 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x28 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x30 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x38 },
},
},
- { "Comtrol RocketPort 550/Quad",
- { 0x11fe, 0x8015, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x10b5, 0x9050, 0x12e0, 0x0031,
+ "Boca Research Turbo Serial 654",
DEFAULT_RCLK * 4,
{
- { PUC_PORT_TYPE_COM, 0x10, 0x00 },
- { PUC_PORT_TYPE_COM, 0x10, 0x08 },
- { PUC_PORT_TYPE_COM, 0x10, 0x10 },
- { PUC_PORT_TYPE_COM, 0x10, 0x18 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x00 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x08 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x10 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x18 },
+ },
+ },
+
+ /*
+ * Dolphin Peripherals 4035 (dual serial port) card. PLX 9050, with
+ * a seemingly-lame EEPROM setup that puts the Dolphin IDs
+ * into the subsystem fields, and claims that it's a
+ * network/misc (0x02/0x80) device.
+ */
+ { 0x10b5, 0x9050, 0xd84d, 0x6808,
+ "Dolphin Peripherals 4035",
+ DEFAULT_RCLK,
+ {
+ { PUC_PORT_TYPE_COM, 0x18, 0x00 },
+ { PUC_PORT_TYPE_COM, 0x1c, 0x00 },
+ },
+ },
+
+ /*
+ * Dolphin Peripherals 4014 (dual parallel port) card. PLX 9050, with
+ * a seemingly-lame EEPROM setup that puts the Dolphin IDs
+ * into the subsystem fields, and claims that it's a
+ * network/misc (0x02/0x80) device.
+ */
+ { 0x10b5, 0x9050, 0xd84d, 0x6810,
+ "Dolphin Peripherals 4014",
+ 0,
+ {
+ { PUC_PORT_TYPE_LPT, 0x20, 0x00 },
+ { PUC_PORT_TYPE_LPT, 0x24, 0x00 },
},
},
- { "Comtrol RocketPort 550/8 RJ11 part A",
- { 0x11fe, 0x8010, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x11fe, 0x8010, 0xffff, 0,
+ "Comtrol RocketPort 550/8 RJ11 part A",
DEFAULT_RCLK * 4,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
@@ -105,9 +164,9 @@
{ PUC_PORT_TYPE_COM, 0x10, 0x18 },
},
},
- { "Comtrol RocketPort 550/8 RJ11 part B",
- { 0x11fe, 0x8011, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+
+ { 0x11fe, 0x8011, 0xffff, 0,
+ "Comtrol RocketPort 550/8 RJ11 part B",
DEFAULT_RCLK * 4,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
@@ -117,9 +176,8 @@
},
},
- { "Comtrol RocketPort 550/8 Octa part A",
- { 0x11fe, 0x8012, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x11fe, 0x8012, 0xffff, 0,
+ "Comtrol RocketPort 550/8 Octa part A",
DEFAULT_RCLK * 4,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
@@ -128,9 +186,9 @@
{ PUC_PORT_TYPE_COM, 0x10, 0x18 },
},
},
- { "Comtrol RocketPort 550/8 Octa part B",
- { 0x11fe, 0x8013, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+
+ { 0x11fe, 0x8013, 0xffff, 0,
+ "Comtrol RocketPort 550/8 Octa part B",
DEFAULT_RCLK * 4,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
@@ -140,9 +198,8 @@
},
},
- { "Comtrol RocketPort 550/8 part A",
- { 0x11fe, 0x8018, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x11fe, 0x8014, 0xffff, 0,
+ "Comtrol RocketPort 550/4 RJ45",
DEFAULT_RCLK * 4,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
@@ -151,9 +208,9 @@
{ PUC_PORT_TYPE_COM, 0x10, 0x18 },
},
},
- { "Comtrol RocketPort 550/8 part B",
- { 0x11fe, 0x8019, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+
+ { 0x11fe, 0x8015, 0xffff, 0,
+ "Comtrol RocketPort 550/Quad",
DEFAULT_RCLK * 4,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
@@ -163,9 +220,8 @@
},
},
- { "Comtrol RocketPort 550/16 part A",
- { 0x11fe, 0x8016, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x11fe, 0x8016, 0xffff, 0,
+ "Comtrol RocketPort 550/16 part A",
DEFAULT_RCLK * 4,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
@@ -174,9 +230,9 @@
{ PUC_PORT_TYPE_COM, 0x10, 0x18 },
},
},
- { "Comtrol RocketPort 550/16 part B",
- { 0x11fe, 0x8017, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+
+ { 0x11fe, 0x8017, 0xffff, 0,
+ "Comtrol RocketPort 550/16 part B",
DEFAULT_RCLK * 4,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
@@ -194,69 +250,29 @@
},
},
- /*
- * XXX no entry because I have no data:
- * XXX Dolphin Peripherals 4006 (single parallel)
- */
-
- /*
- * Dolphin Peripherals 4014 (dual parallel port) card. PLX 9050, with
- * a seemingly-lame EEPROM setup that puts the Dolphin IDs
- * into the subsystem fields, and claims that it's a
- * network/misc (0x02/0x80) device.
- */
- { "Dolphin Peripherals 4014",
- { 0x10b5, 0x9050, 0xd84d, 0x6810 },
- { 0xffff, 0xffff, 0xffff, 0xffff },
- 0,
+ { 0x11fe, 0x8018, 0xffff, 0,
+ "Comtrol RocketPort 550/8 part A",
+ DEFAULT_RCLK * 4,
{
- { PUC_PORT_TYPE_LPT, 0x20, 0x00 },
- { PUC_PORT_TYPE_LPT, 0x24, 0x00 },
+ { PUC_PORT_TYPE_COM, 0x10, 0x00 },
+ { PUC_PORT_TYPE_COM, 0x10, 0x08 },
+ { PUC_PORT_TYPE_COM, 0x10, 0x10 },
+ { PUC_PORT_TYPE_COM, 0x10, 0x18 },
},
},
- /*
- * XXX Dolphin Peripherals 4025 (single serial)
- * (clashes with Dolphin Peripherals 4036 (2s variant)
- */
-
- /*
- * Dolphin Peripherals 4035 (dual serial port) card. PLX 9050, with
- * a seemingly-lame EEPROM setup that puts the Dolphin IDs
- * into the subsystem fields, and claims that it's a
- * network/misc (0x02/0x80) device.
- */
- { "Dolphin Peripherals 4035",
- { 0x10b5, 0x9050, 0xd84d, 0x6808 },
- { 0xffff, 0xffff, 0xffff, 0xffff },
- DEFAULT_RCLK,
+ { 0x11fe, 0x8019, 0xffff, 0,
+ "Comtrol RocketPort 550/8 part B",
+ DEFAULT_RCLK * 4,
{
- { PUC_PORT_TYPE_COM, 0x18, 0x00 },
- { PUC_PORT_TYPE_COM, 0x1c, 0x00 },
- },
- },
-
- /*
- * Dolphin Peripherals 4036 (dual serial port) card.
- * (Dolpin 4025 has the same ID but only one port)
- */
- { "Dolphin Peripherals 4036",
- { 0x1409, 0x7168, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
- DEFAULT_RCLK * 8,
- {
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
{ PUC_PORT_TYPE_COM, 0x10, 0x08 },
+ { PUC_PORT_TYPE_COM, 0x10, 0x10 },
+ { PUC_PORT_TYPE_COM, 0x10, 0x18 },
},
},
/*
- * XXX no entry because I have no data:
- * XXX Dolphin Peripherals 4078 (dual serial and single parallel)
- */
-
-
- /*
* SIIG Boards.
*
* SIIG provides documentation for their boards at:
@@ -266,14 +282,8 @@
* use in their documentation.
*/
- /*
- * SIIG "10x" family boards.
- */
-
- /* SIIG Cyber I/O PCI 16C550 (10x family): 1S, 1P */
- { "SIIG Cyber I/O PCI 16C550 (10x family)",
- { 0x131f, 0x1010, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x1010, 0xffff, 0,
+ "SIIG Cyber I/O PCI 16C550 (10x family)",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x18, 0x00 },
@@ -281,10 +291,8 @@
},
},
- /* SIIG Cyber I/O PCI 16C650 (10x family): 1S, 1P */
- { "SIIG Cyber I/O PCI 16C650 (10x family)",
- { 0x131f, 0x1011, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x1011, 0xffff, 0,
+ "SIIG Cyber I/O PCI 16C650 (10x family)",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x18, 0x00 },
@@ -292,10 +300,8 @@
},
},
- /* SIIG Cyber I/O PCI 16C850 (10x family): 1S, 1P */
- { "SIIG Cyber I/O PCI 16C850 (10x family)",
- { 0x131f, 0x1012, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x1012, 0xffff, 0,
+ "SIIG Cyber I/O PCI 16C850 (10x family)",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x18, 0x00 },
@@ -303,20 +309,16 @@
},
},
- /* SIIG Cyber Parallel PCI (10x family): 1P */
- { "SIIG Cyber Parallel PCI (10x family)",
- { 0x131f, 0x1020, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x1020, 0xffff, 0,
+ "SIIG Cyber Parallel PCI (10x family)",
0,
{
{ PUC_PORT_TYPE_LPT, 0x18, 0x00 },
},
},
- /* SIIG Cyber Parallel Dual PCI (10x family): 2P */
- { "SIIG Cyber Parallel Dual PCI (10x family)",
- { 0x131f, 0x1021, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x1021, 0xffff, 0,
+ "SIIG Cyber Parallel Dual PCI (10x family)",
0,
{
{ PUC_PORT_TYPE_LPT, 0x18, 0x00 },
@@ -324,10 +326,8 @@
},
},
- /* SIIG Cyber Serial Dual PCI 16C550 (10x family): 2S */
- { "SIIG Cyber Serial Dual PCI 16C550 (10x family)",
- { 0x131f, 0x1030, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x1030, 0xffff, 0,
+ "SIIG Cyber Serial Dual PCI 16C550 (10x family)",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x18, 0x00 },
@@ -335,10 +335,8 @@
},
},
- /* SIIG Cyber Serial Dual PCI 16C650 (10x family): 2S */
- { "SIIG Cyber Serial Dual PCI 16C650 (10x family)",
- { 0x131f, 0x1031, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x1031, 0xffff, 0,
+ "SIIG Cyber Serial Dual PCI 16C650 (10x family)",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x18, 0x00 },
@@ -346,10 +344,8 @@
},
},
- /* SIIG Cyber Serial Dual PCI 16C850 (10x family): 2S */
- { "SIIG Cyber Serial Dual PCI 16C850 (10x family)",
- { 0x131f, 0x1032, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x1032, 0xffff, 0,
+ "SIIG Cyber Serial Dual PCI 16C850 (10x family)",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x18, 0x00 },
@@ -357,10 +353,8 @@
},
},
- /* SIIG Cyber 2S1P PCI 16C550 (10x family): 2S, 1P */
- { "SIIG Cyber 2S1P PCI 16C550 (10x family)",
- { 0x131f, 0x1034, 0, 0 }, /* XXX really? */
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x1034, 0xffff, 0, /* XXX really? */
+ "SIIG Cyber 2S1P PCI 16C550 (10x family)",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x18, 0x00 },
@@ -369,10 +363,8 @@
},
},
- /* SIIG Cyber 2S1P PCI 16C650 (10x family): 2S, 1P */
- { "SIIG Cyber 2S1P PCI 16C650 (10x family)",
- { 0x131f, 0x1035, 0, 0 }, /* XXX really? */
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x1035, 0xffff, 0, /* XXX really? */
+ "SIIG Cyber 2S1P PCI 16C650 (10x family)",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x18, 0x00 },
@@ -381,10 +373,8 @@
},
},
- /* SIIG Cyber 2S1P PCI 16C850 (10x family): 2S, 1P */
- { "SIIG Cyber 2S1P PCI 16C850 (10x family)",
- { 0x131f, 0x1036, 0, 0 }, /* XXX really? */
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x1036, 0xffff, 0, /* XXX really? */
+ "SIIG Cyber 2S1P PCI 16C850 (10x family)",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x18, 0x00 },
@@ -393,10 +383,8 @@
},
},
- /* SIIG Cyber 4S PCI 16C550 (10x family): 4S */
- { "SIIG Cyber 4S PCI 16C550 (10x family)",
- { 0x131f, 0x1050, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x1050, 0xffff, 0,
+ "SIIG Cyber 4S PCI 16C550 (10x family)",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x18, 0x00 },
@@ -406,10 +394,8 @@
},
},
- /* SIIG Cyber 4S PCI 16C650 (10x family): 4S */
- { "SIIG Cyber 4S PCI 16C650 (10x family)",
- { 0x131f, 0x1051, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x1051, 0xffff, 0,
+ "SIIG Cyber 4S PCI 16C650 (10x family)",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x18, 0x00 },
@@ -419,10 +405,8 @@
},
},
- /* SIIG Cyber 4S PCI 16C850 (10x family): 4S */
- { "SIIG Cyber 4S PCI 16C850 (10x family)",
- { 0x131f, 0x1052, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x1052, 0xffff, 0,
+ "SIIG Cyber 4S PCI 16C850 (10x family)",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x18, 0x00 },
@@ -432,24 +416,43 @@
},
},
- /*
- * SIIG "20x" family boards.
- */
+ { 0x131f, 0x2010, 0xffff, 0,
+ "SIIG Cyber I/O PCI 16C550 (20x family)",
+ DEFAULT_RCLK,
+ {
+ { PUC_PORT_TYPE_COM, 0x10, 0x00 },
+ { PUC_PORT_TYPE_LPT, 0x14, 0x00 },
+ },
+ },
+
+ { 0x131f, 0x2011, 0xffff, 0,
+ "SIIG Cyber I/O PCI 16C650 (20x family)",
+ DEFAULT_RCLK,
+ {
+ { PUC_PORT_TYPE_COM, 0x10, 0x00 },
+ { PUC_PORT_TYPE_LPT, 0x14, 0x00 },
+ },
+ },
+
+ { 0x131f, 0x2012, 0xffff, 0,
+ "SIIG Cyber I/O PCI 16C850 (20x family)",
+ DEFAULT_RCLK,
+ {
+ { PUC_PORT_TYPE_COM, 0x10, 0x00 },
+ { PUC_PORT_TYPE_LPT, 0x14, 0x00 },
+ },
+ },
- /* SIIG Cyber Parallel PCI (20x family): 1P */
- { "SIIG Cyber Parallel PCI (20x family)",
- { 0x131f, 0x2020, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x2020, 0xffff, 0,
+ "SIIG Cyber Parallel PCI (20x family)",
0,
{
{ PUC_PORT_TYPE_LPT, 0x10, 0x00 },
},
},
- /* SIIG Cyber Parallel Dual PCI (20x family): 2P */
- { "SIIG Cyber Parallel Dual PCI (20x family)",
- { 0x131f, 0x2021, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x2021, 0xffff, 0,
+ "SIIG Cyber Parallel Dual PCI (20x family)",
0,
{
{ PUC_PORT_TYPE_LPT, 0x10, 0x00 },
@@ -457,112 +460,98 @@
},
},
- /* SIIG Cyber 2P1S PCI 16C550 (20x family): 1S, 2P */
- { "SIIG Cyber 2P1S PCI 16C550 (20x family)",
- { 0x131f, 0x2040, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x2030, 0xffff, 0,
+ "SIIG Cyber Serial Dual PCI 16C550 (20x family)",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
- { PUC_PORT_TYPE_LPT, 0x14, 0x00 },
- { PUC_PORT_TYPE_LPT, 0x1c, 0x00 },
+ { PUC_PORT_TYPE_COM, 0x14, 0x00 },
},
},
- /* SIIG Cyber 2P1S PCI 16C650 (20x family): 1S, 2P */
- { "SIIG Cyber 2P1S PCI 16C650 (20x family)",
- { 0x131f, 0x2041, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x2031, 0xffff, 0,
+ "SIIG Cyber Serial Dual PCI 16C650 (20x family)",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
- { PUC_PORT_TYPE_LPT, 0x14, 0x00 },
- { PUC_PORT_TYPE_LPT, 0x1c, 0x00 },
+ { PUC_PORT_TYPE_COM, 0x14, 0x00 },
},
},
- /* SIIG Cyber 2P1S PCI 16C850 (20x family): 1S, 2P */
- { "SIIG Cyber 2P1S PCI 16C850 (20x family)",
- { 0x131f, 0x2042, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x2032, 0xffff, 0,
+ "SIIG Cyber Serial Dual PCI 16C850 (20x family)",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
- { PUC_PORT_TYPE_LPT, 0x14, 0x00 },
- { PUC_PORT_TYPE_LPT, 0x1c, 0x00 },
+ { PUC_PORT_TYPE_COM, 0x14, 0x00 },
},
},
- /* SIIG Cyber I/O PCI 16C550 (20x family): 1S, 1P */
- { "SIIG Cyber I/O PCI 16C550 (20x family)",
- { 0x131f, 0x2010, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x2040, 0xffff, 0,
+ "SIIG Cyber 2P1S PCI 16C550 (20x family)",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
{ PUC_PORT_TYPE_LPT, 0x14, 0x00 },
+ { PUC_PORT_TYPE_LPT, 0x1c, 0x00 },
},
},
- /* SIIG Cyber I/O PCI 16C650 (20x family): 1S, 1P */
- { "SIIG Cyber I/O PCI 16C650 (20x family)",
- { 0x131f, 0x2011, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x2041, 0xffff, 0,
+ "SIIG Cyber 2P1S PCI 16C650 (20x family)",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
{ PUC_PORT_TYPE_LPT, 0x14, 0x00 },
+ { PUC_PORT_TYPE_LPT, 0x1c, 0x00 },
},
},
- /* SIIG Cyber I/O PCI 16C850 (20x family): 1S, 1P */
- { "SIIG Cyber I/O PCI 16C850 (20x family)",
- { 0x131f, 0x2012, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x2042, 0xffff, 0,
+ "SIIG Cyber 2P1S PCI 16C850 (20x family)",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
{ PUC_PORT_TYPE_LPT, 0x14, 0x00 },
+ { PUC_PORT_TYPE_LPT, 0x1c, 0x00 },
},
},
- /* SIIG Cyber Serial Dual PCI 16C550 (20x family): 2S */
- { "SIIG Cyber Serial Dual PCI 16C550 (20x family)",
- { 0x131f, 0x2030, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x2050, 0xffff, 0,
+ "SIIG Cyber 4S PCI 16C550 (20x family)",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
{ PUC_PORT_TYPE_COM, 0x14, 0x00 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x00 },
+ { PUC_PORT_TYPE_COM, 0x1c, 0x00 },
},
},
- /* SIIG Cyber Serial Dual PCI 16C650 (20x family): 2S */
- { "SIIG Cyber Serial Dual PCI 16C650 (20x family)",
- { 0x131f, 0x2031, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x2051, 0xffff, 0,
+ "SIIG Cyber 4S PCI 16C650 (20x family)",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
{ PUC_PORT_TYPE_COM, 0x14, 0x00 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x00 },
+ { PUC_PORT_TYPE_COM, 0x1c, 0x00 },
},
},
- /* SIIG Cyber Serial Dual PCI 16C850 (20x family): 2S */
- { "SIIG Cyber Serial Dual PCI 16C850 (20x family)",
- { 0x131f, 0x2032, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x2052, 0xffff, 0,
+ "SIIG Cyber 4S PCI 16C850 (20x family)",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
{ PUC_PORT_TYPE_COM, 0x14, 0x00 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x00 },
+ { PUC_PORT_TYPE_COM, 0x1c, 0x00 },
},
},
- /* SIIG Cyber 2S1P PCI 16C550 (20x family): 2S, 1P */
- { "SIIG Cyber 2S1P PCI 16C550 (20x family)",
- { 0x131f, 0x2060, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x2060, 0xffff, 0,
+ "SIIG Cyber 2S1P PCI 16C550 (20x family)",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
@@ -571,10 +560,8 @@
},
},
- /* SIIG Cyber 2S1P PCI 16C650 (20x family): 2S, 1P */
- { "SIIG Cyber 2S1P PCI 16C650 (20x family)",
- { 0x131f, 0x2061, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x2061, 0xffff, 0,
+ "SIIG Cyber 2S1P PCI 16C650 (20x family)",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
@@ -583,10 +570,8 @@
},
},
- /* SIIG Cyber 2S1P PCI 16C850 (20x family): 2S, 1P */
- { "SIIG Cyber 2S1P PCI 16C850 (20x family)",
- { 0x131f, 0x2062, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x131f, 0x2062, 0xffff, 0,
+ "SIIG Cyber 2S1P PCI 16C850 (20x family)",
DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
@@ -595,73 +580,56 @@
},
},
- /* SIIG Cyber 4S PCI 16C550 (20x family): 4S */
- { "SIIG Cyber 4S PCI 16C550 (20x family)",
- { 0x131f, 0x2050, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
- DEFAULT_RCLK,
+ { 0x1393, 0x1040, 0xffff, 0,
+ "Moxa Technologies, Smartio C104H/PCI",
+ DEFAULT_RCLK * 8,
{
- { PUC_PORT_TYPE_COM, 0x10, 0x00 },
- { PUC_PORT_TYPE_COM, 0x14, 0x00 },
{ PUC_PORT_TYPE_COM, 0x18, 0x00 },
- { PUC_PORT_TYPE_COM, 0x1c, 0x00 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x08 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x10 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x18 },
},
},
- /* SIIG Cyber 4S PCI 16C650 (20x family): 4S */
- { "SIIG Cyber 4S PCI 16C650 (20x family)",
- { 0x131f, 0x2051, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
- DEFAULT_RCLK,
+ { 0x1393, 0x1041, 0xffff, 0,
+ "Moxa Technologies, Smartio CP-104UL/PCI",
+ DEFAULT_RCLK * 8,
{
- { PUC_PORT_TYPE_COM, 0x10, 0x00 },
- { PUC_PORT_TYPE_COM, 0x14, 0x00 },
{ PUC_PORT_TYPE_COM, 0x18, 0x00 },
- { PUC_PORT_TYPE_COM, 0x1c, 0x00 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x08 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x10 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x18 },
},
},
- /* SIIG Cyber 4S PCI 16C850 (20x family): 4S */
- { "SIIG Cyber 4S PCI 16C850 (20x family)",
- { 0x131f, 0x2052, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
- DEFAULT_RCLK,
- {
- { PUC_PORT_TYPE_COM, 0x10, 0x00 },
- { PUC_PORT_TYPE_COM, 0x14, 0x00 },
- { PUC_PORT_TYPE_COM, 0x18, 0x00 },
- { PUC_PORT_TYPE_COM, 0x1c, 0x00 },
- },
- },
-
- /* VScom PCI-200L: 2S */
- { "VScom PCI-200L",
- { 0x14d2, 0x8020, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+ { 0x1393, 0x1141, 0xffff, 0,
+ "Moxa Technologies, Industio CP-114",
DEFAULT_RCLK * 8,
{
- { PUC_PORT_TYPE_COM, 0x14, 0x00 },
{ PUC_PORT_TYPE_COM, 0x18, 0x00 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x08 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x10 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x18 },
},
},
- /* VScom PCI-400: 4S */
- { "VScom PCI-400",
- { 0x10b5, 0x1077, 0x10b5, 0x1077 },
- { 0xffff, 0xffff, 0xffff, 0xffff },
+ { 0x1393, 0x1680, 0xffff, 0,
+ "Moxa Technologies, C168H/PCI",
DEFAULT_RCLK * 8,
{
{ PUC_PORT_TYPE_COM, 0x18, 0x00 },
{ PUC_PORT_TYPE_COM, 0x18, 0x08 },
{ PUC_PORT_TYPE_COM, 0x18, 0x10 },
{ PUC_PORT_TYPE_COM, 0x18, 0x18 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x20 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x28 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x30 },
+ { PUC_PORT_TYPE_COM, 0x18, 0x38 },
},
},
- /* VScom PCI-800: 8S */
- { "VScom PCI-800",
- { 0x10b5, 0x1076, 0x10b5, 0x1076 },
- { 0xffff, 0xffff, 0xffff, 0xffff },
+ { 0x1393, 0x1681, 0xffff, 0,
+ "Moxa Technologies, C168U/PCI",
DEFAULT_RCLK * 8,
{
{ PUC_PORT_TYPE_COM, 0x18, 0x00 },
@@ -674,122 +642,72 @@
{ PUC_PORT_TYPE_COM, 0x18, 0x38 },
},
},
- /*
- * VScom PCI-800H. Uses 8 16950 UART, behind a PCI chips that offers
- * 4 com port on PCI device 0 and 4 on PCI device 1. PCI device 0 has
- * device ID 3 and PCI device 1 device ID 4.
- */
- { "Titan PCI-800H",
- { 0x14d2, 0xa003, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
+
+ { 0x13a8, 0x0158, 0xffff, 0,
+ "Cronyx Omega2-PCI",
DEFAULT_RCLK * 8,
{
- { PUC_PORT_TYPE_COM, 0x10, 0x00 },
- { PUC_PORT_TYPE_COM, 0x10, 0x08 },
- { PUC_PORT_TYPE_COM, 0x10, 0x10 },
- { PUC_PORT_TYPE_COM, 0x10, 0x18 },
+ { PUC_PORT_TYPE_COM, 0x010, 0x000 },
+ { PUC_PORT_TYPE_COM, 0x010, 0x200 },
+ { PUC_PORT_TYPE_COM, 0x010, 0x400 },
+ { PUC_PORT_TYPE_COM, 0x010, 0x600 },
+ { PUC_PORT_TYPE_COM, 0x010, 0x800 },
+ { PUC_PORT_TYPE_COM, 0x010, 0xA00 },
+ { PUC_PORT_TYPE_COM, 0x010, 0xC00 },
+ { PUC_PORT_TYPE_COM, 0x010, 0xE00 },
},
},
- { "Titan PCI-800H",
- { 0x14d2, 0xa004, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
- DEFAULT_RCLK * 8,
+
+ { 0x1407, 0x0100, 0xffff, 0, /* MASK */
+ "Lava Computers dual serial port",
+ DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
- { PUC_PORT_TYPE_COM, 0x10, 0x08 },
- { PUC_PORT_TYPE_COM, 0x10, 0x10 },
- { PUC_PORT_TYPE_COM, 0x10, 0x18 },
+ { PUC_PORT_TYPE_COM, 0x14, 0x00 },
},
},
- { "Titan PCI-200H",
- { 0x14d2, 0xa005, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
- DEFAULT_RCLK * 8,
+
+ { 0x1407, 0x0120, 0xffff, 0, /* MASK */
+ "Lava Computers Quattro-PCI serial port",
+ DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
- { PUC_PORT_TYPE_COM, 0x10, 0x08 },
+ { PUC_PORT_TYPE_COM, 0x14, 0x00 },
},
},
- { "Titan VScom PCI-200HV2", /* 2S */
- { 0x14d2, 0xe020, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
- DEFAULT_RCLK * 8,
+ { 0x1407, 0x0180, 0xffff, 0, /* MASK */
+ "Lava Computers Octopus-550 8-port serial",
+ DEFAULT_RCLK,
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00 },
{ PUC_PORT_TYPE_COM, 0x14, 0x00 },
- },
- },
- /*
- * VScom (Titan?) PCI-800L. More modern variant of the
- * PCI-800. Uses 6 discrete 16550 UARTs, plus another
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list