diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2006-12-28 20:52:37 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2006-12-28 20:52:37 +0000 |
commit | 0b01b38b841191cb2c45c1ac48294a8ecba73490 (patch) | |
tree | b571ab45711288b7d6add03ac44fce4017e6e5c4 /sys/dev/pci | |
parent | 7df7a9c02c60213ba2c07ae53c1852476ae8877d (diff) |
Add support for the Cronyx Omega serial ports card; this particular card
forces the com(4) uart type to ST16C654 since that's what's on it;
from Alexei G. Malinin (alexei.malinin@inetcomm.ru)
Diffstat (limited to 'sys/dev/pci')
-rw-r--r-- | sys/dev/pci/puc.c | 13 | ||||
-rw-r--r-- | sys/dev/pci/pucdata.c | 18 |
2 files changed, 29 insertions, 2 deletions
diff --git a/sys/dev/pci/puc.c b/sys/dev/pci/puc.c index 7bc2d954ae4..5f96ea35c71 100644 --- a/sys/dev/pci/puc.c +++ b/sys/dev/pci/puc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: puc.c,v 1.10 2006/08/01 20:10:29 jolan Exp $ */ +/* $OpenBSD: puc.c,v 1.11 2006/12/28 20:52:36 miod Exp $ */ /* $NetBSD: puc.c,v 1.3 1999/02/06 06:29:54 cgd Exp $ */ /* @@ -61,6 +61,8 @@ #include <dev/pci/pcivar.h> #include <dev/pci/pucvar.h> +#include <dev/pci/pcidevs.h> + struct puc_pci_softc { struct puc_softc sc_psc; @@ -214,6 +216,15 @@ puc_pci_attach(parent, self, aux) paa.hwtype = 0; /* autodetect */ paa.intr_string = &puc_pci_intr_string; paa.intr_establish = &puc_pci_intr_establish; + + /* + * If this is a serial card with a known specific chip, provide + * the UART type. + */ + if (PCI_VENDOR(pa->pa_id) == PCI_VENDOR_PLX && + PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_PLX_CRONYX_OMEGA) + paa.hwtype = 0x08; /* XXX COM_UART_ST16C654 */ + puc_common_attach(sc, &paa); } diff --git a/sys/dev/pci/pucdata.c b/sys/dev/pci/pucdata.c index 7509fbd40ef..f9982d689e1 100644 --- a/sys/dev/pci/pucdata.c +++ b/sys/dev/pci/pucdata.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pucdata.c,v 1.45 2006/12/21 18:53:26 deraadt Exp $ */ +/* $OpenBSD: pucdata.c,v 1.46 2006/12/28 20:52:36 miod Exp $ */ /* $NetBSD: pucdata.c,v 1.6 1999/07/03 05:55:23 cgd Exp $ */ /* @@ -1263,6 +1263,22 @@ const struct puc_device_description puc_devices[] = { }, }, + /* Cronyx Engineering Ltd. Omega-PCI (8 serial port) card. */ + { /* "Cronyx Omega-PCI" */ + { PCI_VENDOR_PLX, PCI_PRODUCT_PLX_CRONYX_OMEGA, 0, 0 }, + { 0xffff, 0xffff, 0, 0 }, + { + { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ }, + }, + }, + /* Avlab Technology, Inc. Low Profile PCI 4 Serial: 4S */ { /* "Avlab Low Profile PCI 4 Serial" */ { PCI_VENDOR_AVLAB, PCI_PRODUCT_AVLAB_LPPCI4S, 0, 0 }, |